8ba6736ecbb85cbeeb2e691d9f2a0385bd219762
[gcc.git] / gcc / ChangeLog
1 2000-06-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2
3 * mklibgcc.in (LIB2FUNCS): Add missing space.
4
5 2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk>
6
7 * tree.h (enum tree_index): Add vector type nodes.
8 Add accessor macros for them.
9 (TYPE_REPRESENATION_TYPE): New macro.
10 * tree.c (build_common_tree_nodes_2): Build these nodes.
11 (finish_vector_type): New function.
12 * c-common.c (type_for_mode): Handle vector modes.
13 * tm.texi (VECTOR_MODE_SUPPORTED_P): Document.
14
15 * dbxout.c (dbxout_type): Handle VECTOR_TYPEs.
16 * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers.
17 * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs.
18 (gen_type_die): Likewise.
19 * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers.
20 (fundamental_type_code): Likewise.
21 (type_is_fundamental): VECTOR_TYPEs aren't.
22 (output_type): Handle VECTOR_TYPEs.
23
24 2000-06-25 Kazu Hirata <kazu@hxi.com>
25
26 * config/arm.c: Fix a comment typo.
27 * config/arm.h: Likewise.
28
29 2000-06-25 Philipp Thomas <pthomas@suse.de>
30
31 * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog
32 compiler found.
33 AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no.
34 * configure: Rebuilt.
35
36 2000-06-25 John David Anglin <dave.anglin@nrc.ca>
37
38 * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions.
39
40 2000-06-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
41
42 * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating
43 libgcc.a.
44
45 2000-06-24 Marc Espie <espie@cvs.openbsd.org>
46
47 * collect2.c (resolve_lib_name): Move '/' check to more rational place.
48
49 2000-06-24 Dirk Duellmann <Dirk.Duellmann@cern.ch>
50
51 * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0.
52
53 2000-06-24 Jakub Jelinek <jakub@redhat.com>
54
55 * stmt.c (expand_decl_cleanup): Emit a dummy insn after
56 last_unconditional_cleanup.
57
58 2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk>
59
60 * tree.def (VECTOR_TYPE): New node type.
61 * tree.h: Adjust some comments to reflect addition of vector types.
62 (TYPE_VECTOR_SUBPARTS): New macro.
63 * stor-layout.c (layout_type): Handle VECTOR_TYPE.
64 * c-convert.c (convert): Likewise.
65 * convert.c (convert_to_integer): Handle vector modes.
66 (convert_to_vector): New function.
67 * convert.h (convert_to_vector): Declare.
68 * expr.c (convert_move): Handle vector modes.
69 * expmed.c (extract_bit_field): Don't abort for vector modes.
70
71 2000-06-24 Marek Michalkiewicz <marekm@linux.org.pl>
72
73 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype.
74 * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr):
75 New functions, common code moved from function_{prologue,epilogue}
76 and extended to support the -mtiny-stack option.
77 (function_prologue, function_epilogue): Use them.
78 Use lo8/hi8 consistently for asm output readability.
79 (avr_hard_regno_mode_ok): New function.
80 * config/avr/avr.h (TARGET_SWITCHES): Fix typo. Add -mtiny-stack.
81 (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c.
82 (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function.
83 * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack.
84 Write SPH before SPL.
85 (*movqi): No need to disable interrupts for just one "out"
86 in alternative 5. Change length attribute from 4 to 1.
87 * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__):
88 Write SPH before SPL.
89
90 2000-06-24 Bernd Schmidt <bernds@cygnus.co.uk>
91
92 * rtl.texi (Vector Operations): New node.
93 (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus.
94 (Conversions): Add ss_truncate, us_truncate.
95 * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER,
96 VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE,
97 US_TRUNCATE): New rtx codes.
98 * machmode.def: Add vector modes.
99 * machmode.h (enum mode_class): Add MODE_VECTOR_INT and
100 MODE_VECTOR_FLOAT.
101 (INTEGER_MODE_P): Check for MODE_VECTOR_INT.
102 (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT.
103 (VECTOR_MODE_P): New.
104
105 2000-06-24 Nathan Sidwell <nathan@codesourcery.com>
106
107 * cpp.texi: Clarify #pragma GCC namespace.
108
109 2000-06-24 Philipp Thomas <pthomas@suse.de>
110
111 * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build
112 all catalogs specified in ALL_LINGUAS.
113 * configure: Rebuilt.
114
115 2000-06-23 Jakub Jelinek <jakub@redhat.com>
116
117 * config/sparc/sparc.md (reload_outdi+1): Handle
118 HOST_BITS_PER_WIDE_INT == 64 case correctly.
119 (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise.
120
121 2000-06-23 Geoffrey Keating <geoffk@cygnus.com>
122
123 * alias.c (fixed_scalar_and_varying_struct_p): Don't examine
124 struct vs. scalar-ness when -fno-strict-aliasing.
125
126 2000-06-23 Nathan Sidwell <nathan@codesourcery.com>
127
128 * cpplib.c (struct pragma_entry): New structure.
129 (pragma_dispatch): Pragma dispatcher.
130 (top_pragmas, gcc_pragmas): New static variables.
131 (do_pragma): Use pragma_dispatch.
132 (do_pragma_gcc): New pragma handler.
133 * cpp.texi: Update.
134
135 2000-06-23 Jakub Jelinek <jakub@redhat.com>
136
137 * calls.c (compute_argument_addresses): Force stack slots into
138 alias set 0.
139 * expr.c (emit_push_insn): Force pushes into alias set 0.
140
141 2000-06-23 Richard Henderson <rth@cygnus.com>
142
143 * config/ia64/ia64.md (pred_rel_mutex): Only take one register.
144 * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match.
145
146 2000-06-22 Jason Merrill <jason@redhat.com>
147
148 * toplev.c (compile_file): Always call timevar_print.
149 * Makefile.in (calls.o): Depend on TIMEVAR_H.
150
151 2000-06-22 Nathan Sidwell <nathan@codesourcery.com>
152
153 * varasm.c (constant_descriptor): Make contents unsigned char.
154 (mark_const_hash_entry): Adjust.
155 (const_hash): Just hash the code of unknown nodes.
156 (compare_constant_1): Adjust for unsigned char.
157 Use language specific expander on unknown nodes.
158 (record_constant_1): Likewise.
159
160 2000-06-21 Zack Weinberg <zack@wolery.cumb.org>
161
162 * cppfiles.c (cpp_make_system_header): New function.
163 * cpplib.h: Prototype it.
164 * cpplib.c (do_line, do_pragma_system_header): Use it.
165 * fix-header.c (read_scan_file): Use it.
166
167 * fix-header.c (check_macro_names): Cast second arg of
168 cpp_defined to const unsigned char *.
169 (read_scan_file): Make getchar_call const unsigned char.
170
171 2000-06-21 Zack Weinberg <zack@wolery.cumb.org>
172
173 * cppfiles.c: Include splay-tree.h, not hashtab.h.
174 (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete.
175 (destroy_include_file_node): New.
176 (_cpp_init_include_hash): Rename _cpp_init_include_table.
177 Create a splay tree, not a hash table.
178 (open_include_file): Look up the path in the include table,
179 do the multiple include optimization here, etc.
180 (cpp_included): Walk the path.
181 (find_include_file): Just walk the path calling
182 open_include_file, or call it directly for an absolute path.
183 (_cpp_fake_ihash): Rename _cpp_fake_include and update for new
184 scheme.
185 (read_include_file): Update for new scheme. Don't close the
186 file unless reading fails.
187 (_cpp_execute_include, cpp_read_file): Tweak for new scheme.
188
189 * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete.
190 (struct include_file): New.
191 (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New
192 macros.
193 (CPP_PEDANTIC, CPP_WTRADITIONAL): Update.
194 Update prototypes.
195
196 * cppinit.c: Include splay-tree.h.
197 (cpp_reader_init, cpp_cleanup): Update.
198
199 * cpplib.h (struct cpp_buffer): Change ihash field to
200 'struct include_file *inc'. Remove system_header_p.
201 (struct cpp_reader): Change all_include_files to a
202 struct splay_tree_s *.
203
204 * cpplex.c: Update all references to cpp_buffer->ihash and/or
205 cpp_buffer->system_header_p.
206 (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD.
207
208 * Makefile.in (SPLAY_TREE_H): New macro.
209 (cppfiles.o, cppinit.o): Update dependencies.
210
211 Wed Jun 21 11:05:48 2000 Martin Buchholz <martin@xemacs.org>
212
213 * invoke.texi (g++): "g++" is not a script anymore.
214
215 2000-06-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
216
217 * function.c (round_down): Delete obsolete prototype.
218
219 * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__.
220
221 2000-06-20 Zack Weinberg <zack@wolery.cumb.org>
222
223 * configure.in: Use 'test a = b' not 'test a == b'.
224 * configure: Regen.
225
226 * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS).
227
228 * Makefile.in: Remove all references to HOST_INTLLIBS.
229
230 * cpplex.c (parse_name): Don't warn about $ in identifiers if
231 skipping.
232
233 2000-06-20 Philipp Thomas <pthomas@suse.de>
234
235 * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later
236 for PA 2.0.
237
238 Mon Jun 19 23:26:40 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
239
240 * Take REG_INC notes into account.
241
242 2000-06-19 Zack Weinberg <zack@wolery.cumb.org>
243
244 * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c.
245 (primary: IDENTIFIER): Just call build_external_ref.
246 * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
247 Regenerate.
248 * c-lex.c (lastiddecl): Remove.
249 (yylex): Replace all instances of lastiddecl with local
250 variables.
251
252 * c-typeck.c (build_external_ref): New function. Treat decls
253 with C_DECL_ANTICIPATED mostly the same as nonexistent decls.
254 Look up the decl from the id here. Call lookup_objc_ivar.
255 * c-lang.c (lookup_objc_ivar): Stub.
256 * objc/objc-act.c (lookup_objc_ivar): New function.
257
258 * c-tree.h: Prototype lookup_objc_ivar and build_external_ref.
259 * c-lex.h: Don't declare lastiddecl.
260
261 2000-06-19 Benjamin Chelf <chelf@codesourcery.com>
262
263 * c-common.h (IF_COND): Added documentation.
264 (THEN_CLAUSE): Likewise.
265 (ELSE_CLAUSE): Likewise.
266 (WHILE_COND): Likewise.
267 (WHILE_BODY): Likewise.
268 (DO_COND): Likewise.
269 (DO_BODY): Likewise.
270 (RETURN_EXPR): Likewise.
271 (EXPR_STMT_EXPR): Likewise.
272 (FOR_INIT_STMT): Likewise.
273 (FOR_COND): Likewise.
274 (FOR_EXPR): Likewise.
275 (FOR_BODY): Likewise.
276 (SWITCH_COND): Likewise.
277 (SWITCH_BODY): Likewise.
278 (CASE_LOW): Likewise.
279 (CASE_HIGH): Likewise.
280 (GOTO_DESTINATION): Likewise.
281 (COMPOUND_BODY): Likewise.
282 (ASM_CV_QUAL): Likewise.
283 (ASM_STRING): Likewise.
284 (ASM_OUTPUTS): Likewise.
285 (ASM_INPUTS): Likewise.
286 (ASM_CLOBBERS): Likewise.
287 (DECL_STMT_DECL): Likewise.
288 (STMT_EXPR_STMT): Likewise.
289 (LABEL_STMT_LABEL): Likewise.
290
291 * c-common.def: Added documenetion for SRCLOC, EXPR_STMT,
292 COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT,
293 RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT,
294 LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR.
295
296 2000-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
297
298 * configure.in (--enable-checking): Update --help doc to reflect
299 new defaults. Ensure $ac_save_IFS is set before $IFS is changed.
300
301 Sun Jun 18 21:42:15 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
302
303 * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK.
304
305 * function.c (put_var_into_stack): Don't reference DECL_ fields
306 if input is a SAVE_EXPR.
307 Use set_mem_attributes in COMPLEX case.
308
309 2000-06-18 Richard Henderson <rth@cygnus.com>
310
311 * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare.
312 (ia64_file_start): Declare.
313 * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0.
314 (GR_REGNO_P): Likewise.
315 * config/ia64/ia64.c: Many prototypes.
316 (ia64_reg_numbers): Constify.
317 (ia64_input_reg_names, ia64_local_reg_names): Likewise.
318 (ia64_section_threshold): Make unsigned.
319 (ia64_print_operand): Constify.
320 (fix_range): Constify.
321 (ia64_init_builtins): Don't compare signed vs unsigned.
322 (ia64_expand_builtin): Likewise.
323
324 * config/ia64/ia64.h (EXTRA_CONSTRAINT): New.
325 (CONSTRAINT_OK_FOR_Q): New.
326 * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem.
327 (movsf_internal, movdf_internal): Likewise.
328 (cmovdi_internal): Rewrite so that constraints and predicates match;
329 simplify splitters.
330 (cmovsi_internal): Likewise.
331
332 * config/ia64/ia64.h (ASM_SPEC): Add -x for gas.
333 (ASM_FILE_START): New.
334 * config/ia64/ia64.c (ia64_file_start): New.
335 (rtx_needs_barrier): Handle pred.rel.mutex.
336 (emit_predicate_relation_info): New.
337 * config/ia64/ia64.md (pred_rel_mutex): New.
338 * config/ia64/linux.h (ASM_SPEC): Define.
339 * config/ia64/sysv4.h (ASM_FILE_START): Define.
340
341 * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko
342 filtering global register variables.
343
344 2000-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
345
346 * c-common.c (add_c_tree_codes): Fix definition for traditional C.
347
348 2000-06-17 Michael Meissner <meissner@redhat.com>
349
350 * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is
351 not present and there is a field after a '-'.
352
353 2000-06-17 Bruce Korb <bkorb@gnu.org>
354
355 * fixinc/check.tpl: finish the implementation of multiple tests
356 for a single fix
357 * fixinc/inclhack.def(ctrl_quotes_def): add a second test
358 (io_quotes_def): add a second test
359 (various): reorder `files' so that "limits.h" is never first
360 * fixinc/tests/base/*: update the testing output
361
362 Sat Jun 17 10:33:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
363
364 * gcc.texi: Remove reference to stupid.c.
365
366 2000-06-16 Benjamin Chelf <chelf@codesourcery.com>
367
368 * c-common.c (c_tree_code_type): New array.
369 (c_tree_code_length): Likewise.
370 (c_tree_code_name): Likewise.
371 (add_c_tree_codes): New function.
372
373 * c-common.h (add_c_tree_codes): Declare.
374 (enum c_tree_code): New enum.
375
376 * c-lex.c (init_parse): Added call to add_c_tree_codes.
377
378 2000-06-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
379
380 * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify
381 select pattern to also match macro defs with only one argument.
382
383 Thu Jun 15 18:56:12 2000 Jeffrey A Law (law@cygnus.com)
384
385 * i386.md: Create new [right,left] rotate and right shift
386 patterns to optimize shift by 1 bit for certain ia32 processors.
387 Update patterns which perform left shifts to optimize shift by
388 1 bit for certain ia32 processors.
389 * i386.c (const_int_1_operand): New predicate.
390 * i386.h (PREDICATE_CODES): Handle const_int_1_operand.
391 * i386-protos.h (const_int_1_operand): Prototype.
392
393 Wed Jun 14 23:46:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
394
395 * mips.c (machine_dependent_reorg): Fix braces for nested if.
396
397 2000-06-14 Geoff Keating <geoffk@cygnus.com>
398
399 * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare
400 LABEL_REFs.
401
402 2000-06-14 Richard Henderson <rth@cygnus.com>
403
404 * conflict.c (conflict_graph_compute): Don't look for REG_INC.
405
406 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit
407 auto-inc code.
408
409 * print-rtl.c (print_rtx): Emit space before mem alias set.
410
411 2000-06-14 David Edelsohn <edelsohn@gnu.org>
412
413 * rs6000.c (expand_block_move): Fix typo in earlier change.
414 (print_operand): Remove unused variables neg and op.
415 (toc_hash_mark_entry): Fix prototype.
416
417 2000-06-14 Benjamin Chelf <chelf@codesourcery.com>
418
419 * c-common.h (IF_COND): Moved here from cp/cp-tree.h.
420 (THEN_CLAUSE): Likewise.
421 (ELSE_CLAUSE): Likewise.
422 (WHILE_COND): Likewise.
423 (WHILE_BODY): Likewise.
424 (DO_COND): Likewise.
425 (DO_BODY): Likewise.
426 (RETURN_EXPR): Likewise.
427 (EXPR_STMT_EXPR): Likewise.
428 (FOR_INIT_STMT): Likewise.
429 (FOR_COND): Likewise.
430 (FOR_EXPR): Likewise.
431 (FOR_BODY): Likewise.
432 (SWITCH_COND): Likewise.
433 (SWITCH_BODY): Likewise.
434 (CASE_LOW): Likewise.
435 (CASE_HIGH): Likewise.
436 (GOTO_DESTINATION): Likewise.
437 (COMPOUND_BODY): Likewise.
438 (ASM_CV_QUAL): Likewise.
439 (ASM_STRING): Likewise.
440 (ASM_OUTPUTS): Likewise.
441 (ASM_INPUTS): Likewise.
442 (ASM_CLOBBERS): Likewise.
443 (DECL_STMT_DECL): Likewise.
444 (STMT_EXPR_STMT): Likewise.
445 (LABEL_STMT_LABEL): Likewise.
446 (SCOPE_BEGIN_P): Likewise.
447 (SCOPE_END_P): Likewise.
448 (SCOPE_STMT_BLOCK): Likewise.
449 (SCOPE_NULLIFIED_P): Likewise.
450 (SCOPE_NO_CLEANUPS_P): Likewise.
451 (SCOPE_PARTIAL_P): Likewise.
452 (ASM_VOLATILE_P): Likewise.
453 (STMT_LINENO): Likewise.
454 (STMT_LINENO_FOR_FN_P): Likewise.
455
456 * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR,
457 ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT,
458 FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT,
459 CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT,
460 SCOPE_STMT, CASE_LABEL, STMT_EXPR.
461
462 * gencheck.c (tree_codes[]): Added '#include "c-common.def"'.
463
464 2000-06-14 David O'Brien <obrien@FreeBSD.org>
465
466 * gcc.c (main): Quiet compiler warnings. argv is assumed to be
467 writable in parts of the GCC code.
468
469 * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf
470 specification match cast.
471
472 Wed Jun 14 09:25:57 2000 Jeffrey A Law (law@cygnus.com)
473
474 * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13.
475 * configure, config.in: Rebuilt.
476 * sys-protos.h: Similarly.
477
478 Wed Jun 14 03:39:58 EDT 2000 John Wehle (john@feith.com)
479
480 * ifcvt.c (EDGE_COMPLEX): Move definition ...
481 * basic-block.h (EDGE_COMPLEX): ... here.
482
483 * loop.c (check_dbra_loop): Specify the register when
484 generating REG_NONNEG notes and don't generate duplicates.
485
486 2000-06-13 Jakub Jelinek <jakub@redhat.com>
487
488 * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define.
489 (struct tree_type, struct tree_decl): Add user_align member.
490 * stor-layout.c (layout_decl): Set DECL_USER_ALIGN.
491 (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined
492 and DECL_USER_ALIGN 0, cap alignment to this value.
493 (place_field): Likewise.
494 (finalize_type_size): Set TYPE_USER_ALIGN.
495 (layout_type): Likewise.
496 (initialize_sizetypes): Likewise.
497 * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp.
498 DECL_USER_ALIGN to 1.
499 * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN.
500 (xfer_tag): Set TYPE_USER_ALIGN.
501 (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
502 (finish_enum): Likewise.
503 * stmt.c (expand_decl): Set DECL_USER_ALIGN.
504 (expand_anon_union_decl): Likewise.
505 * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN.
506 (build_index_type): Set TYPE_USER_ALIGN.
507 (build_range_type): Likewise.
508 (build_common_tree_nodes_2): Likewise.
509 * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning.
510
511 2000-06-13 Andreas Jaeger <aj@suse.de>
512
513 * configure.in: Use --enable-checking=misc,tree,gc by default if
514 no --enable-checking option is given and for
515 --enable-checking=yes.
516 * configure: Rebuilt.
517
518 2000-06-13 Richard Henderson <rth@cygnus.com>
519
520 * libgcc2.c (ia64_throw_helper): Use __builtin_return_address.
521 (__throw): Don't pass the address of a label.
522
523 * config/ia64/ia64.c (ia64_compute_frame_size): Use
524 current_function_is_leaf.
525 (ia64_expand_prologue): Likewise. Modify return_address_pointer_rtx
526 instead of reg_names[RETURN_ADDRESS_REGNUM].
527 (ia64_init_machine_status): Reset return_address_pointer_rtx.
528 * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename
529 from RETURN_ADDRESS_REGNUM. Update all uses.
530 (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return
531 zero instead of null on failure.
532 (ELIMINABLE_REGS): Add ra->b0 elimination.
533 (CAN_ELIMINATE): Update accordingly.
534 (INITIAL_ELIMINATION_OFFSET): Likewise.
535 (REGISTER_NAMES): Use an illegal assembler name for
536 RETURN_ADDRESS_POINTER_REGNUM.
537
538 2000-06-13 Richard Henderson <rth@cygnus.com>
539
540 * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS,
541 GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS.
542 (REG_CLASS_NAMES): Likewise.
543 (REG_CLASS_CONTENTS): Likewise.
544 (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove.
545 (HARD_REGNO_MODE_OK): Remove references to them.
546 (REGNO_REG_CLASS): Likewise.
547 (REG_CLASS_FROM_LETTER): Likewise.
548 (CLASS_MAX_NREGS): Likewise.
549 (REGISTER_MOVE_COST): Likewise.
550 * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise.
551 * config/ia64/ia64.md (*): Replace "e" constraints with "f".
552 (movqi_internal): Special case moves from zero.
553 (movhi_internal, movsi_internal): Likewise.
554 (movdi_internal): Likewise. Fill out "f" constraints.
555 (movsf_internal): Fill out "r" constraints.
556 (movdf_internal): Likewise.
557
558 2000-06-13 Richard Henderson <rth@cygnus.com>
559
560 * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM
561 alive before reload.
562
563 * haifa-sched.c (struct deps): Add in_post_call_group_p.
564 (add_dependence): Handle notes between SCHED_GROUP_P insns.
565 (remove_dependence): Always define.
566 (set_sched_group_p): New.
567 (sched_analyze_2): Use it.
568 (sched_analyze_insn): Don't special-case naked uses. Look for
569 and extend in_post_call_group_p.
570 (sched_analyze): Clear stale SCHED_GROUP_P. Set in_post_call_group_p.
571 (init_deps): Clear in_post_call_group_p.
572
573 2000-06-13 Richard Henderson <rth@cygnus.com>
574
575 * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and
576 CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE
577 and hard-coded tests.
578 (simplify_set): Likewise.
579 (gen_lowpart_for_combine): Likewise.
580 * emit-rtl.c (gen_lowpart_common): Likewise.
581 * global.c (find_reg): Likewise.
582 * local-alloc.c (find_free_reg): Likewise.
583 * recog.c (register_operand): Likewise.
584 * regclass.c (init_reg_sets_1): Likewise.
585 (record_operand_costs, regclass): Likewise.
586 * reload.c (push_reload): Likewise.
587 * reload1.c (choose_reload_regs): Likewise.
588 * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE.
589 * local-alloc.c (struct qty): Rename changes_size to changes_mode.
590 Update all references.
591 * regs.h (struct reg_info_def): Likewise.
592 (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE.
593 * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document.
594 (CLASS_CANNOT_CHANGE_MODE_P): Likewise.
595
596 * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename.
597 (CLASS_CANNOT_CHANGE_MODE_P): New.
598 * config/mips/mips.h: Likewise.
599 * config/pa/pa32-regs.h: Likewise.
600 * config/pa/pa64-regs.h: Likewise.
601 * config/rs6000/rs6000.h: Likewise.
602 * config/sh/sh.h: Likewise.
603 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New.
604 (CLASS_CANNOT_CHANGE_MODE_P): New.
605 * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code.
606 * config/d30v/d30v.h: Likewise.
607
608 2000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
609
610 * configure.in: Add AC_TYPE_GETGROUPS test.
611 * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups.
612 * configure: Rebuilt.
613 * config.in: Rebuilt.
614
615 2000-06-13 Richard Henderson <rth@cygnus.com>
616
617 * explow.c (set_mem_attributes): Do nothing for NULL type.
618
619 Tue Jun 13 14:45:10 2000 Jeffrey A Law (law@cygnus.com)
620
621 * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler
622 correctly.
623
624 2000-06-13 James E. Wilson <wilson@cygnus.com>
625
626 * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf.
627
628 Tue Jun 13 14:05:35 2000 Jeffrey A Law (law@cygnus.com)
629
630 * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference.
631
632 2000-06-13 Philipp Thomas <pthomas@suse.de>
633
634 * configure.in(ALL_LINGUAS): Changed en_UK to en_GB.
635 * configure: Rebuilt.
636
637 2000-06-07 David O'Brien <obrien@FreeBSD.org>
638
639 * configure.in: Adjust FreeBSD bits to match changes to config.guess.
640 We now default to ELF for the i386, and a.out is the special case.
641 * configure: Rebuilt.
642
643 Tue Jun 13 10:05:30 2000 Hans-Peter Nilsson <hp@axis.com>
644
645 * final.c (final_scan_insn): Delete notes between cc0 setter and
646 user when restarting from setter.
647
648 2000-06-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
649
650 * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and
651 cast to squelch signed/unsigned warnings.
652
653 2000-06-13 Zack Weinberg <zack@wolery.cumb.org>
654
655 * cpplib.c (handle_directive): Print non-NUL-terminated string
656 with %.*s.
657
658 2000-06-12 Michael Meissner <meissner@redhat.com>
659
660 * ifcvt.c (dead_or_predicable): Don't do conditional execution
661 path if the machine needs extra support to do conditional
662 execution.
663
664 Mon Jun 12 17:04:17 2000 Jeffrey A Law (law@cygnus.com)
665
666 * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC
667 to print the alias set.
668 * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly.
669
670 2000-06-12 J. David Anglin <dave@hiauly1.hia.nrc.ca>
671
672 * config/float-vax.h: Add GFLOAT defines.
673
674 Mon Jun 12 9:44:00 2000 Mark Klein <mklein@dis.com>
675
676 * configure.in: Update tm dependencies for MPE.
677 * configure: Rebuilt.
678
679 2000-06-12 H.J. Lu <hjl@gnu.org>
680
681 * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size.
682
683 2000-06-12 David Edelsohn <edelsohn@gnu.org>
684
685 * aix41.h (SUBTARGET_SWITCHES): Delete threads.
686 (CPP_SPEC): Change mthreads to pthread.
687 (LIB_SPEC): Likewise.
688 (STARTFILE_SPEC): Likewise.
689 * aix43.h (SUBTARGET_SWITCHES): Delete threads.
690 (CPP_SPEC): Change mthreads to pthread.
691 (LIB_SPEC): Likewise.
692 (STARTFILE_SPEC): Likewise.
693 * rs6000-protos.h (reg_or_arith_cint_operand): New.
694 * rs6000.c (reg_or_arith_cint_operand): New.
695 (num_insns_constant_wide): Decorate unsigned constant.
696 * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand.
697 * rs6000.md (addsi3): Use new predicate.
698 (subsi3, adddi3, subdi3): Likewise.
699
700 2000-06-12 Mark Mitchell <mark@codesourcery.com>
701
702 * c-common.c (lang_get_alias_set): Fix typo.
703
704 2000-06-12 Richard Earnshaw <rearnsha@arm.com>
705
706 * flow.c (mark_used_regs): Revert last change.
707 (life_analysis): Remove PROP_AUTOINC if running after reload.
708 (propagate_one_insn): PROP_AUTOINC is always off after reload.
709
710 2000-06-11 Richard Earnshaw <rearnsha@arm.com>
711
712 * flow.c (mark_used_regs): Don't call find_auto_inc after reload
713 has run.
714
715 2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
716
717 * bb-reorder.c (build_scope_forest): Initialize variable
718 `curr_scope'.
719
720 * calls.c (expand_call): Likewise for variables
721 `save_pending_stack_adjust' and `save_stack_pointer_delta'.
722
723 * i386.c (function_arg_advance, function_arg): Cast to avoid
724 signed/unsigned warnings.
725
726 * i386.h (MEMORY_MOVE_COST): Likewise.
727
728 * ifcvt.c (cond_exec_process_if_block): Initialize variables
729 `else_start' and `else_end'.
730
731 * libgcc2.h (__eh_alloc, __eh_free): Prototype.
732
733 * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'.
734
735 2000-06-10 Mark Mitchell <mark@codesourcery.com>
736
737 * Makefile.in (libintl.a): Depend on intl.all.
738
739 2000-06-09 H.J. Lu (hjl@gnu.org)
740
741 * Makefile.in (c-parse.o): Also depend on output.h.
742
743 2000-06-09 Rodney Brown <RodneyBrown@mynd.com>
744
745 * mcore-protos.h: discards const warning removal.
746 * mcore.c: discards const warning removal.
747
748 2000-06-09 Kazu Hirata <kazu@hxi.com>
749
750 * config/h8300/lib1funcs.asm: Declare the machine architecture at
751 the beginning of the file.
752
753 2000-06-09 J. David Anglin <dave@hiauly1.hia.nrc.ca>
754
755 * real.h: Add prototype for ldexp.
756
757 2000-06-09 Zack Weinberg <zack@wolery.cumb.org>
758
759 * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename
760 it ggc_alloc, drop second argument, never clear returned memory.
761 * ggc-common.c (ggc_alloc_string): Use ggc_alloc.
762 (ggc_alloc_cleared): New.
763 * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not
764 ggc_alloc_obj. Remove ggc_alloc macro.
765 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc.
766
767 * rtl.c (rtvec_alloc): Clear the vector always.
768 (rtx_alloc): Clear the first word always. Remove dirty
769 obstack tricks (this routine is no longer a bottleneck).
770 * tree.c (make_node): Clear the new node always.
771 (make_tree_vec): Likewise.
772 (tree_cons): Clear the common structure always.
773 (build1): Likewise; also, clear TREE_COMPLEXITY.
774 * gengenrtl.c: Use puts wherever possible. Remove extra
775 newlines.
776 (gendef): Clear the first word of an RTX in the generator
777 function, irrespective of ggc_p. Initialize '0' slots to
778 NULL.
779 (genlegend): Don't generate obstack_alloc_rtx routine, just a
780 thin wrapper macro around obstack_alloc.
781
782 * stmt.c (expand_fixup): Use ggc_alloc.
783 * c-typeck.c (add_pending_init): Use ggc_alloc.
784 * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem).
785 * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to
786 const0_rtx when it is created.
787 (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if
788 we are not in a function.
789
790 * tree.c (tree_class_check_failed): Make second arg an int.
791 * tree.h: Update prototype.
792
793 2000-06-09 Geoff Keating <geoffk@cygnus.com>
794
795 * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT
796 of an error_mark_node.
797
798 Fri Jun 9 20:35:13 2000 Denis Chertykov <denisc@overta.ru>
799
800 * config/avr/avr.c (asm_output_section_name): bugfix.
801
802 2000-06-09 Jason Merrill <jason@casey.soma.redhat.com>
803
804 * timevar.def: Add TV_EXPAND.
805 * timevar.c (timevar_print): Update timing information.
806 * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining.
807
808 * stmt.c (expand_return): Check for error_mark_node.
809
810 2000-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
811
812 * configure.in: Also avoid wrapping auto-build.h with IN_GCC.
813
814 * scan-types.sh (VALUE) Wrap use with double quotes to protect
815 variable against filename expansion when it contains "char *".
816
817 * system.h (SSIZE_MAX): Delete backup definition.
818
819 * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t)
820 instead of SSIZE_MAX.
821
822 2000-06-09 Jakub Jelinek <jakub@redhat.com>
823
824 * configure.in: Check whether gas supports -relax.
825 * configure, config.in: Rebuilt.
826 * config/sparc/sparc.h (ASM_RELAX_SPEC): Define.
827 (EXTRA_SPECS): Add asm_relax.
828 (ASM_SPEC): Add %(asm_relax).
829 (TARGET_SWITCHES): Add -mrelax and -mno-relax.
830 * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC.
831 (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r.
832 (ASM_SPEC): Add %(asm_relax).
833 * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise.
834 * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION,
835 never use sethi/jmpl for leaf tail calls. Use or with rs2 %g0
836 instead of mov, so that gas can further optimize it.
837
838 2000-06-08 James E. Wilson <wilson@bletchleypark.cygnus.com>
839
840 * dwarf2out.c (size_of_die, case dw_val_class_const): Use
841 size_of_sleb128.
842 (value_format, case dw_val_class_const): Use sdata format.
843 (output_die): Call output_sleb128.
844
845 2000-06-08 James E. Wilson <wilson@cygnus.com>
846
847 * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses
848 UNALIGNED_DOUBLE_INT_ASM_OP. Rename old macro to
849 ASM_OUTPUT_DWARF_CONST_DOUBLE.
850 (output_die, case dw_val_class_unsigned_const): Correct call to
851 ASM_OUTPUT_DWARF_DATA8.
852 (output_die, case dw_val_class_long_long): Use
853 ASM_OUTPUT_DWARF_CONST_DOUBLE.
854 * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when
855 pos is zero.
856
857 * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add.
858 (output_function_prologue): Fix mispelling.
859 (output_function_prologue, output_function_epilogue): Reorder to
860 match ia64.c definition order.
861 * config/ia64/ia64.c (ia64_expand_prologue): Add comment.
862 (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns.
863 Use r3 instead of r2 for large stack restores.
864 (ia64_output_end_prologue): New function.
865 (process_set): Emit ".restore sp" for epilogue stack restores.
866 * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define.
867
868 2000-06-08 Jakub Jelinek <jakub@redhat.com>
869
870 * dbxout.c (dbxout_type_fields): Don't segfault on fields with
871 incomplete types.
872
873 2000-06-08 Nathan Sidwell <nathan@codesourcery.com>
874
875 * frame.c (end_fde_sort): Remove extraneous erratic array test.
876
877 2000-06-08 Denis Perchine <dyp@perchine.com>
878
879 * frame.c (start_fde_sort): Don't malloc (0).
880
881 2000-06-07 Zack Weinberg <zack@wolery.cumb.org>
882
883 * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on
884 error_mark_node.
885 * print-tree.c (print_node): The transparent_union_flag means
886 different things for unions and arrays. Do not inspect it
887 with TYPE_TRANSPARENT_UNION.
888
889 2000-06-06 Jakub Jelinek <jakub@redhat.com>
890
891 * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef
892 returned NULL.
893
894 Wed Jun 7 20:34:33 2000 Denis Chertykov <denisc@overta.ru>
895
896 * config/avr/avr.c (asm_output_section_name): output section
897 attributes.
898 * config/avr/libgcc.S (.text.libgcc): declare section attributes.
899
900 2000-06-06 James E. Wilson <wilson@cygnus.com>
901
902 * frame.h (struct unwind_info_ptr): Collapse version, flags, and length
903 fields into header field.
904 (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New
905 macros to access length, flags, and version info from header field.
906 * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here.
907 * config/ia64/crtend.asm (__do_frame_setup_aux): Add here.
908 (__do_global_ctors_aux): Fix caller.
909 * config/ia64/frame-ia64.c (get_unwind_record): Change parameter
910 prologue_flag to header. Pass to read_P_record.
911 (read_P_record): New argument header. Implement P4 format.
912 Multiply P7_T_SIZE by 16.
913 (execute_one_ia64_descriptor): New static local region_header. Pass to
914 get_unwind_record. Copy r to region_header if r is a header record.
915 (print_all_records): Likewise.
916 (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH.
917 (__get_personality, __get_except_table): Likewise.
918 * config/ia64/ia64.c (process_set): Do not divide offsets by 4.
919
920 2000-06-06 Philipp Thomas <pthomas@suse.de>
921
922 * configure.in (AC_C_INLINE): Added.
923 * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default.
924 * configure: Regenerate.
925
926 2000-06-06 Mark Mitchell <mark@codesourcery.com>
927
928 * c-common.h (c_language_kind): New type.
929 (c_language): New variab.e
930 * c-common.c (lang_get_alias_set): Don't put structures in
931 non-zero alias sets in C++.
932 * c-decl.c (c_language): Define it.
933 * c-lex.c (doing_objc_thang): Remove.
934 * c-tree.h (doing_objc_thang): Make it a macro.
935 * objc/objc-act.c (lang_decode_option): Set c_language, not
936 doing_objc_thang.
937
938 2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
939
940 * diagnostic.c (output_maximum_width): Remove.
941 (doing_line_wrapping): Tweak.
942 (diagnostic_buffer): New object.
943 (global_output_buffer): New object.
944 (output_destroy_prefix): New function.
945 (default_initialize_buffer): Likewise.
946 (reshape_diagnostic_buffer): Likewise.
947 (initialize_diagnostics): Likewise.
948 (output_clear): Tweak.
949 (line_wrapper_printf): Adjust call to init_output_buffer.
950 (vline_wrapper_message_with_location): Likewise. Use
951 output_destroy_prefix.
952 (v_message_with_decl): Likewise.
953
954 * diagnostic.h (struct output_buffer): Constify prefix.
955 (init_output_buffer, output_get_prefix): Constify.
956 (diagnostic_message_length_per_line): Likewise.
957 (reshape_diagnostic_buffer): Declare.
958 (default_initialize_buffer): Declare.
959 (initialize_diagnostics): Declare.
960 (diagnostic_buffer): Declare new obbject.
961
962 * toplev.c: #include diagnostic.h
963 (display_help): Document diagnostic formatting options.
964 (decode_f_option): Handle diagnostic formatting options.
965 (main): Setup initialization for diagnostic messages outputter.
966
967 * toplev.h (set_message_length): Remove.
968
969 * Makefile.in (toplev.o): Depends upon diagnostic.h
970
971 * invoke.texi : Document diagnostics formatting options.
972
973 Tue Jun 6 19:25:32 2000 Philippe De Muyter <phdm@macqel.be>
974
975 * configure.in (Make the links): Typo fix : the file that must be
976 included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'.
977 * configure: File rebuilt.
978
979 2000-06-06 Nathan Sidwell <nathan@codesourcery.com>
980
981 * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines.
982 (eh_context): Add alloc_mask and alloc_buffer emergency fallback
983 space.
984 * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on
985 emergency eh_context buffer, if malloc fails.
986 (__eh_free): Moved from cp/exception.cc. Release to emergency
987 eh_context buffer, if appropriate.
988
989 2000-06-06 Jason Merrill <jason@casey.soma.redhat.com>
990
991 * expr.c (store_expr): Fix typo.
992
993 2000-06-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
994
995 * m68k.c (legitimize_pic_address): Move prototype ...
996
997 * m68k-protos.h (legitimize_pic_address): ... here.
998
999 * m68k.md (legitimize_pic_address): Delete prototypes.
1000 (untyped_call): Invoke GEN_CALL(), not gen_call().
1001
1002 * nextstep.c: Include system.h and toplev.h.
1003 (get_directive_line): Don't prototype.
1004 (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify.
1005
1006 * nextstep.h (handle_pragma): Prototype.
1007 (SECTION_FUNCTION): Prototype FUNCTION(). Move prototype of
1008 objc_section_init ...
1009 (EXTRA_SECTION_FUNCTIONS): ... here.
1010
1011 Tue Jun 6 08:17:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1012
1013 * sdbout.c (struct sdb_file): NAME now const.
1014 (sdbout_init): input_file_name now const.
1015 (sdbout_start_new_source_file): FILENAME now const.
1016 * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above.
1017
1018 2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
1019
1020 * c-typeck.c (build_conditional_expr): Handle complex data types.
1021
1022 2000-06-05 Jason Merrill <jason@casey.soma.redhat.com>
1023
1024 * explow.c (maybe_set_unchanging): New function, broken out from...
1025 (set_mem_attributes): Here.
1026 * expr.h: Declare it.
1027 * stmt.c (expand_decl): Call it.
1028
1029 2000-06-05 Richard Henderson <rth@cygnus.com>
1030
1031 * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE
1032 while looking for a register to inherit from.
1033
1034 2000-06-05 Jason Merrill <jason@casey.soma.redhat.com>
1035
1036 * Makefile.in (libgcc.ready): Lose.
1037 (libgcc.mk): Just use mv, not move-if-change.
1038 (LIBGCC_DEPS): New macro.
1039 (libgcc.a): Use it.
1040 (stmp-multilib): Likewise.
1041 * mklibgcc.in (stmp-dirs): New target. Make everything depend on
1042 it rather than the directories themselves.
1043 (LIB2ADD): Depend on the list file rather than 'force'.
1044
1045 * fold-const.c (fold, case COND_EXPR): Elide conversion between
1046 cv-qualified versions of types.
1047
1048 Mon Jun 5 14:06:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1049
1050 * config/sparc/sparc.c (short_branch): Correct error in range
1051 computation.
1052
1053 2000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1054
1055 * fixinc/inclhack.def: New include hacks for ultrix.
1056 * (nested_ultrix): Replaced by ultrix_nested_svc.
1057 * (ultrix_atof_param): test_text string added.
1058 * (ultrix_ifdef): Modified select string.
1059
1060 2000-06-05 Zack Weinberg <zack@wolery.cumb.org>
1061
1062 * objc/objc-act.c (generate_method_descriptors): Register
1063 objc_method_prototype_template as a GC root.
1064 (comp_method_with_proto): Register function_type as a GC root.
1065 (comp_proto_with_proto): Replace function_type1 and
1066 function_type2 with a two-element array; register it as a GC root.
1067
1068 (generate_protocols, build_protocol_initializer,
1069 generate_protocol_list, build_category_initializer,
1070 build_shared_structure_initializer): Do not cache cast_type
1071 and/or cast_type2.
1072
1073 2000-06-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1074
1075 * function.c (assign_parms): Add missing argument to set_mem_attributes
1076 call.
1077
1078 2000-06-05 Nathan Sidwell <nathan@codesourcery.com>
1079
1080 * tree.h (VOID_TYPE_P): New macro.
1081 (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P.
1082 * c-decl.c (grokdeclarator): Use VOID_TYPE_P.
1083 (get_parm_info): Likewise.
1084 (store_parm_decls): Likewise.
1085 (combine_parm_decls): Likewise.
1086 (finish_function): Likewise.
1087 * c-typeck.c (build_function_call): Likewise.
1088 (build_binary_op): Likewise.
1089 (build_conditional_expr): Likewise.
1090 (internal_build_compound_expr): Likewise.
1091 (convert_for_assignment): Likewise.
1092 * stmt.c (expend_expr_stmt): Likewise.
1093 (warn_if_unused_value): Likewise.
1094 (expand_return): Likewise.
1095 * c-parse.in (primary): Likewise.
1096 * c-parse.y, c-parse.c, c-parse.h: Regenerate.
1097 * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
1098
1099 Mon Jun 5 06:46:28 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1100
1101 * alias.c (get_alias_set): If compnent is addressable, use alias
1102 set of component.
1103 * c-decl.c (init_decl_processing): Don't call record_component_aliases.
1104 (grokdeclarator): Likewise.
1105 * c-typeck.c (common_type): Likewise.
1106
1107 2000-06-04 Alex Samuel <samuel@codesourcery.com>
1108
1109 * Makefile.in (OBJS): Remove dyn_string.o
1110 (dyn-string.o): Delete rule.
1111 * dyn-string.c: Delete file
1112 * dyn-string.h: Likewise.
1113
1114 2000-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1115
1116 * Makefile.in (intl.*): Honor non-zero exit codes in the intl
1117 subdir.
1118
1119 2000-06-03 Geoff Keating <geoffk@cygnus.com>
1120
1121 * alias.c (record_component_aliases): Don't inspect
1122 DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures.
1123
1124 Sat Jun 3 19:05:30 2000 Michael Meissner <meissner@redhat.com>
1125
1126 * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call
1127 it with the pattern to do machine dependent work.
1128 (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined,
1129 use it to modify the true/false tests used in conditional
1130 execution. If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are
1131 defined, invoke them if the conversion to conditional execution
1132 was successful or not.
1133
1134 * tm.texi (IFCVT_MODIFY_TESTS): Document.
1135 (IFCVT_MODIFY_INSN): Ditto.
1136 (IFCVT_MODIFY_FINAL): Ditto.
1137 (IFCVT_MODIFY_CANCEL): Ditto.
1138
1139 Sat Jun 3 15:26:13 2000 Matt Kraai <kraai@alumni.carnegiemellon.edu>
1140
1141 * toplev.c (main): Fix misspellings of possibility and language.
1142
1143 2000-06-03 Richard Henderson <rth@cygnus.com>
1144
1145 * alias.c (record_alias_subset): Initialize has_zero_child in the
1146 superset.
1147
1148 2000-06-03 Richard Earnshaw (rearnsha@arm.com)
1149
1150 * arm.md (untyped_call): Use GEN_CALL macro.
1151
1152 2000-06-02 Pekka Nikander <pnr@teldanex.tcm.hut.fi>
1153
1154 * Makefile.in: Use $(MAKE) not "make"
1155
1156 Fri Jun 2 19:31:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1157
1158 * alias.c (struct alias_set_entry): New field has_zero_child.
1159 (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase.
1160 (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET,
1161 do nothing.
1162 Call record_component_aliases for aggregate types.
1163 (record_alias_subset): Set has_zero_child.
1164 (record_component_aliases, case ARRAY_TYPE): Do nothing if
1165 TYPE_NONALIASES_COMPONENT.
1166 (record_component_aliases, case RECORD_TYPE): Test
1167 DECL_NONADDRESSABLE_P.
1168 * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead
1169 of TREE_ADDRESSABLE.
1170 * calls.c (initialize_argument_information): Only test
1171 TYPE_TRANSPARENT_UNION for UNION_TYPE.
1172 * function.c (assign_parms): Likewise.
1173 * integrate.c (function_cannot_inline_p): Likewise.
1174 * stor-layout.c (finish_record_layout): Don't call
1175 record_component_aliases.
1176 * tree.h (struct tree_int_cst): Use struct tree_common.
1177 (struct tree_real_cst, struct tree_string): Likewise.
1178 (struct tree_complex, struct tree_identifier): Likewise.
1179 (struct tree_list, struct tree_vec, struct tree_exp): Likewise.
1180 (struct tree_block, struct tree_type, struct tree_decl): Likewise.
1181 (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK.
1182 (TYPE_NONALIASES_COMPONENT): New macro.
1183 (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK.
1184 (DECL_NONADDRESSABLE_P): New macro.
1185 (struct tree_decl): Reorder bits for clarity of how many left;
1186 add non_adressable.
1187
1188 2000-06-02 Jason Merrill <jason@casey.soma.redhat.com>
1189
1190 * Makefile.in (libgcc.a): Also depend on $(LIB2ADD).
1191 * mklibgcc.in (force): New target.
1192 Make LIB2ADD stuff depend on it.
1193
1194 2000-06-02 Richard Henderson <rth@cygnus.com>
1195
1196 * alias.c (lang_get_alias_set): Remove.
1197 (get_alias_set): Call it directly, not indirectly.
1198 * c-common.c (lang_get_alias_set): Rename from c_get_alias_set.
1199 * c-common.h (c_get_alias_set): Don't declare.
1200 * c-decl.c (init_decl_processing): Don't set lang_get_alias_set.
1201 * expr.h (lang_get_alias_set): Declare as function, not pointer.
1202
1203 2000-06-02 Bruce Korb <bkorb@gnu.org>
1204
1205 * fixinc/server.c(sig_handler): resume closing server on SIGPIPE
1206 (server_setup): define the server's master pid
1207 (close_server): actually do the deed IFF we are the server's master
1208
1209 2000-06-02 Jakub Jelinek <jakub@redhat.com>
1210
1211 * c-common.c (c_get_alias_set): Check whether signed_type did not
1212 return its argument before calling get_alias_set on the result.
1213
1214 2000-06-02 Andrew MacLeod <amacleod@cygnus.com>
1215
1216 * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE.
1217
1218 Fri Jun 2 00:22:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1219
1220 * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave.
1221 (CONDITIONAL_REGISTER_USAGE): Mac registers are call used
1222 for TARGET_NOMACSAVE.
1223 (NOMACSAVE_BIT): Define.
1224 (TARGET_NOMACSAVE): Define.
1225 (TARGET_SWITCHES): Add "nomacsave".
1226
1227 2000-06-02 Toshiyasu Morita <toshi.morita@sega.com>
1228
1229 * sh.md (untyped_call): Remove excess parameters
1230
1231 2000-06-01 Loren J. Rittle <ljrittle@acm.org>
1232
1233 * fixinc/inclhack.def (osf_namespace_a): Relax expression to
1234 match that used before the conversion to c_fix style.
1235 * fixinc/fixincl.x: regenerate
1236
1237 2000-06-01 Stan Cox <scox@cygnus.com>
1238
1239 * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix
1240 macro argument typo.
1241
1242 2000-06-01 Zack Weinberg <zack@wolery.cumb.org>
1243
1244 * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL. Improve
1245 error message.
1246 * cpplib.c (parse_include): Remove support for VAX-C
1247 "#include starlet" misfeature.
1248
1249 2000-05-31 Laurynas Biveinis <lauras@softhome.net>
1250
1251 * cppfiles.c: conditionally define O_BINARY.
1252 (open_include_file): pass O_BINARY to open().
1253
1254 2000-06-01 Richard Henderson <rth@cygnus.com>
1255
1256 * i960.c (i960_br_predict_opcode): Remove.
1257 (i960_print_operand) [+]: Emit branch prediction hints.
1258 (i960_function_arg): Return early for VOIDmode.
1259 (i960_round_align): Return early for incomplete types.
1260 * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New.
1261 * i960.md (all conditional branches): Add "%+".
1262
1263 Thu Jun 1 12:24:21 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1264
1265 * alias.c (get_alias_set): Don't call language-specific routine more
1266 than is needed and clean up code a bit.
1267 * c-common.c (c_get_alias_set): All references whose type
1268 is char get alias set 0, but character types need not.
1269 * varasm.c (make_function_rtl): Don't call set_mem_attributes.
1270 (make_decl_rtl): Don't call it for FUNCTION_DECL.
1271
1272 2000-06-01 Bruce Korb <bkorb@gnu.org>
1273
1274 * fixinc/tests/base/...: new base result files
1275
1276 Thu Jun 1 09:37:35 2000 Clinton Popetz <cpopetz@cygnus.com>
1277
1278 * config/i386/i386.c (ix86_use_fcomi_compare): Make global.
1279 * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare.
1280 * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we
1281 will use FCOMI.
1282
1283 2000-06-01 Richard Henderson <rth@cygnus.com>
1284
1285 * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h.
1286
1287 * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing.
1288
1289 2000-05-31 Richard Henderson <rth@cygnus.com>
1290
1291 * config/ia64/ia64.c (sdata_symbolic_operand): Consider small
1292 CONSTANT_POOL_ADDRESS_P addresses for .sdata.
1293 * config/ia64/sysv4.h (SELECT_RTX_SECTION): New.
1294
1295 2000-05-31 Richard Henderson <rth@cygnus.com>
1296
1297 * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove.
1298 * config/ia64/ia64.c (ia64_expand_prediction): Move code ...
1299 (ia64_print_operand) [+]: ... here. Use current_output_insn.
1300 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New.
1301 * config/ia64/ia64.md (all branch/call patterns): Use %+.
1302
1303 2000-05-31 Richard Henderson <rth@cygnus.com>
1304
1305 * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers.
1306
1307 2000-05-31 Richard Henderson <rth@cygnus.com>
1308
1309 * ifcvt.c (merge_if_block): Be prepared for JOIN to have no
1310 remaining edges.
1311 (find_if_block): Allow THEN with no outgoing edges.
1312 * flow.c (merge_blocks_nomove): Remove a barrier not following
1313 a jump as well.
1314
1315 2000-05-31 Richard Henderson <rth@cygnus.com>
1316
1317 * flow.c (propagate_block): Move initialization of mem_set_list ...
1318 (init_propagate_block_info): ... here. Also track blocks with
1319 no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE.
1320
1321 2000-05-31 Richard Henderson <rth@cygnus.com>
1322
1323 * jump.c (jump_optimize_1): Revert 05-18 change.
1324
1325 2000-05-31 Mark Mitchell <mark@codesourcery.com>
1326
1327 * invoke.texi: Remove documentation for -fguiding-decls.
1328
1329 2000-05-31 Richard Henderson <rth@cygnus.com>
1330
1331 * configure.in: Fix typo last change.
1332
1333 2000-05-31 Philipp Thomas <pthomas@suse.de>
1334
1335 * configure.in (enable-nls): Enable if build == host, i.e. when
1336 not building a canadian cross compiler.
1337 (enable-maintainer-mode): Added for use with i18n.
1338 * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a
1339 cross section of ALL_LINGUAS and LINGUAS.
1340 * configure: Rebuild.
1341
1342 2000-05-31 Bruce Korb <bkorb@gnu.org>
1343
1344 * fixinc/check.tpl: rework to use test result tree
1345 * fixinc/Makefile.in: change invocation of check script
1346 * fixinc/check.diff: No longer needed
1347 * fixinc/fixincl.x: regenerate
1348 * fixinc/inclhack.def: add new tests
1349 * fixinc/tests/base/arch/i960/archI960.h: New test result
1350 * fixinc/tests/base/curses.h: modified test result
1351 * fixinc/tests/base/stdio.h: ditto
1352 * fixinc/tests/base/time.h: ditto
1353 * fixinc/tests/base/sys/asm.h: ditto
1354 * fixinc/tests/base/sys/stat.h: ditto
1355 * fixinc/tests/base/sys/wait.h: ditto
1356
1357 Wed May 31 13:17:20 2000 Philippe De Muyter <phdm@macqel.be>
1358
1359 * except.c (clear_function_eh_region): Do not free NULL.
1360
1361 Wed May 31 08:07:52 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1362
1363 * Makefile.in (c-decl.o): Depend on rtl.h and expr.h.
1364 * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT.
1365 (REG_BASE_VALUE): Remove unneeded cast to unsigned.
1366 (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT.
1367 (find_base_decl): New function, from c_find_base_decl in c-common.c.
1368 (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT.
1369 (get_alias_set): Likewise.
1370 Major rework to do more things and allow language-specific code
1371 to just handle special-cases.
1372 (record_alias_subset): Args are HOST_WIDE_INT.
1373 (record_component_alias): Local vars are HOST_WIDE_INT.
1374 Don't handle COMPLEX_EXPR.
1375 (get_varargs_alias_set): Moved from builtins.c.
1376 (get_frame_alias_set): New function.
1377 * builtins.c (expand_builtin_return_address): Use frame alias set.
1378 (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set
1379 for setjmp buffer.
1380 (get_memory_rtx): Rework to use set_mem_attributes.
1381 (get_varargs_alias_set): Deleted from here.
1382 * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT.
1383 (c_find_base_decl): Deleted from here.
1384 (c_get_alias_set): Remove many cases and rework to just handle
1385 C-specific cases.
1386 * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT.
1387 * c-decl.c (rtl.h, expr.h): Now included.
1388 (init_decl_processing): Call record_component_aliases on array types.
1389 (grokdeclarator): Likewise.
1390 Set TREE_ADDRESSABLE for all fields that are not bitfields.
1391 * c-typeck.c (common_type): Call record_component_aliases for array.
1392 * caller-save.c (setup_save_areas): Rework register loop for unsigned.
1393 Set all save areas to the frame alias set.
1394 * calls.c (initialie_argument_information): Call set_mem_attributes.
1395 (compute_argument_addresses, expand_call): Likewise.
1396 * explow.c (set_mem_attributes): New function.
1397 (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg.
1398 * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}.
1399 LEN and OFFSET now HOST_WIDE_INT.
1400 (clear_by_pieces): Similar changes.
1401 (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields.
1402 (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT.
1403 (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES.
1404 (clear_by_pieces_1): Likewise.
1405 (emit_push_insn): Call set_mem_attributes.
1406 (expand_expr, case INDIRECT_REF): Likewise.
1407 (expand_expr, case VAR_DECL): Call change_address.
1408 * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and
1409 tree_low_cst.
1410 (get_varargs_alias_set, get_frame_alias_set): New decls.
1411 (record_base_value, record_alias_subset, lang_get_alias_set): Likewise.
1412 (new_alias_set, set_mem_attributes): Likewse.
1413 * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT.
1414 (assign_stack_temp_for_type): Likewise.
1415 Can split slot even if alias set since can copy.
1416 Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P.
1417 (assign_temp): Use host_integerp and tree_low_cst.
1418 (put_var_into_stack): Properly handle SAVE_EXPR.
1419 (put_addressof_into_stack): Likewise.
1420 (assign_parms): Call set_mem_attributes.
1421 Delete #if 0 code.
1422 (fix_lexical_address): Put reference to chain into frame alias set.
1423 (expand_function_start): Call set_mem_attributes.
1424 * integrate.c (expand_inline_function): Likewise.
1425 * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES.
1426 * regmove.c (try_apply_stack_adjustment): Likewise.
1427 * reload.c (push_reload, make_memloc): Likewise.
1428 * reload1.c (alter_reg): Make alias sets for spilled pseudos.
1429 * rtl.def (MEM): Update comment.
1430 * rtl.h (MEM_ALIAS_SET): Now uses XCWINT.
1431 (move_by_pieces): Change length to HOST_WIDE_INT.
1432 (record_base_value, record_alias_subset): Delete from here.
1433 * stmt.c (expand_decl): Call set_mem_attributes.
1434 * stor-layout.c (finish_record_layout): Call record_component_aliases.i
1435 * toplev.c (compile_file): Call init_alias_once earlier.
1436 * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted
1437 from here: now in alias.c.
1438 * tree.h (struct tree_type): alias_set is HOST_WIDE_INT.
1439 (struct tree_decl): Likewise.
1440 (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here.
1441 * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes.
1442 (output_constant_def, force_const_mem): Likewise.
1443
1444 * flow.c (propagate_block): If block has no successors, stores to
1445 frame are dead if not used.
1446
1447 2000-05-31 Nathan Sidwell <nathan@codesourcery.com>
1448
1449 * stmt (expand_end_case): Reorder conversion sequence for jump
1450 table to avoid extra truncations.
1451
1452 Wed May 31 01:31:42 2000 Jeffrey A Law (law@cygnus.com)
1453
1454 * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn
1455 in the block is more than just a simple conditional branch.
1456 (noce_process_if_block): Similarly.
1457
1458 Tue May 30 22:25:57 2000 Alexandre Oliva <aoliva@cygnus.com>
1459
1460 * optabs.c (prepare_float_lib_cmp): Protect *px and *py from
1461 queue.
1462
1463 2000-05-30 Michael Meissner <meissner@redhat.com>
1464
1465 * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH
1466 instructions. Treat LO_SUM operations as loading the full integer
1467 constant.
1468
1469 2000-05-30 Richard Henderson <rth@cygnus.com>
1470
1471 * combine.c (get_pos_from_mask): Test exact_log2 result as signed.
1472
1473 2000-05-30 Richard Henderson <rth@cygnus.com>
1474
1475 * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return.
1476
1477 2000-05-30 Bruce Korb <bkorb@gnu.org>
1478
1479 * fixinc/tests/*: Added expected result files for fixinc's make check
1480 * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm
1481
1482 2000-05-30 Richard Henderson <rth@cygnus.com>
1483
1484 * config/alpha/alpha.md (*setne_internal): Use match_operator
1485 instead of working down from insn.
1486
1487 2000-05-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1488
1489 * invoke.texi (-Wtraditional): Update WRT function macros.
1490
1491 Tue May 30 09:57:32 2000 Philippe De Muyter <phdm@macqel.be>
1492
1493 * except.c (free_exception_table): Do not free NULL.
1494
1495 2000-05-29 Zack Weinberg <zack@wolery.cumb.org>
1496
1497 * cpplib.c (do_if): Don't save and restore only_seen_white here.
1498 * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white
1499 and skipping here.
1500
1501 2000-05-29 Richard Earnshaw (rearnsha@arm.com)
1502
1503 * flow.c (mark_used_reg): If a register is unconditionally live,
1504 remove any conditional death information.
1505
1506 2000-05-29 Richard Henderson <rth@cygnus.com>
1507
1508 * final.c (current_output_insn): New.
1509 (final_scan_insn): Set it.
1510 * output.h: Declare it.
1511
1512 2000-05-29 Richard Henderson <rth@cygnus.com>
1513
1514 * stor-layout.c (finalize_record_size): Fix typo.
1515
1516 * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END
1517 if nlabel is null.
1518
1519 2000-05-29 Zack Weinberg <zack@wolery.cumb.org>
1520
1521 * cpplib.h (cpp_reader): Remove if_stack. Change
1522 potential_control_macro to a cpp_hashnode *. Add skipping flag.
1523 * cpphash.h (struct ihash): Change control_macro to a
1524 cpp_hashnode * and shorten name to cmacro.
1525 Add NEVER_REINCLUDE constant.
1526
1527 * cppfiles.c (redundant_include_p): Drop cpp_reader argument.
1528 Examine the cmacro node directly, no need to call cpp_defined.
1529 (_cpp_execute_include, read_include_file): Set cmacro to
1530 NEVER_REINCLUDE, not U"".
1531 * cpplex.c (cpp_push_buffer): Don't set new->if_stack.
1532 (cpp_get_token): If pfile->skipping is true, discard text and
1533 keep scanning until we hit a directive; don't expand macros.
1534
1535 * cpplib.c (struct if_stack): Remove if_succeeded, add
1536 was_skipping. Change control_macro to a cpp_hashnode * and
1537 shorten name to cmacro. Remove typedef IF_STACK.
1538 (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *.
1539 (conditional_skip, skip_if_group,
1540 consider_directive_while_skipping): Delete.
1541 (push_conditional): New.
1542 (_cpp_handle_directive): Don't process directives other than
1543 conditionals if we are skipping.
1544
1545 (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif):
1546 Update to new scheme.
1547 (validate_else): Skip rest of line here, unconditionally.
1548 (_cpp_unwind_if_stack): The stack is per-buffer. Force
1549 pfile->skipping off.
1550
1551 (all): Remove `scare quotes' from error messages.
1552
1553 2000-05-29 Richard Henderson <rth@cygnus.com>
1554
1555 * function.c (emit_return_into_block): New line_note arg; emit it.
1556 (thread_prologue_and_epilogue_insns): Attempt to locate a line note
1557 for the close brace to accompany HAVE_return. Move all line notes
1558 following the epilogue to before the NOTE_INSN_EPILOGUE_BEG.
1559
1560 2000-05-29 Richard Henderson <rth@cygnus.com>
1561
1562 * longlong.h [__alpha] (count_leading_zeros): New.
1563 (count_trailing_zeros): New.
1564 (COUNT_LEADING_ZEROS_0): New.
1565
1566 * config/alpha/alpha.c (alpha_zero_comparison_operator): New.
1567 (alpha_split_conditional_move): New.
1568 * config/alpha/alpha-protos.h: Prototype them.
1569 * config/alpha/alpha.h (PREDICATE_CODES): Update.
1570 (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67.
1571 * config/alpha/alpha.md: Update ffs cix commentary.
1572 (*ze_and_ne): New.
1573 (*nabssf2, *nabsdf2): New.
1574 (*mov[qhsd]icc_internal): Use add_operand.
1575 (if_then_else constant splitters): New.
1576 (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New.
1577 (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New.
1578
1579 2000-05-29 Richard Henderson <rth@cygnus.com>
1580
1581 * combine.c (force_to_mode) [MINUS]: Convert subtraction from
1582 a constant to NEG or NOT when conditions allow.
1583
1584 * combine.c (combine_simplify_rtx): Don't create an if_then_else
1585 unless both args are general_operand. Don't canonicalize plus
1586 to ior unless it helps.
1587
1588 * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1;
1589 instead track register_life_up_to_date. Toggle no_new_pseudos
1590 around if_convert.
1591
1592 2000-05-28 Geoff Keating <geoffk@cygnus.com>
1593
1594 * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
1595 so output_operand doesn't see them.
1596
1597 Sun May 28 18:37:07 2000 Clinton Popetz <cpopetz@cygnus.com>
1598
1599 * lcm.c (make_preds_opaque): Fix comment.
1600 (optimize_mode_switching): Use NORMAL_MODE instead of
1601 MODE_USES_IN_EXIT_BLOCK. Change leftover instance of
1602 FP_MODE_NONE to no_mode. Rename MODE_AT_ENTRY to NORMAL_MODE.
1603 Handle insertions before an existing NOTE_INSN_BASIC_BLOCK.
1604 * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE.
1605 (MODE_USES_IN_EXIT_BLOCK): Delete.
1606 (MODE_AT_ENTRY) Rename to NORMAL_MODE.
1607 * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete.
1608 (MODE_AT_ENTRY): Rename to NORMAL_MODE.
1609 (MODE_NEEDED): Don't look for USE.
1610 (EPILOGUE_USES): Define.
1611
1612 Sun May 28 23:26:59 2000 Philippe De Muyter <phdm@macqel.be>
1613
1614 * mklibgcc.in (all): Variable initialised to `libgcc'.
1615
1616 2000-05-28 Gabriel Dos Reis <gdr@codesourcery.com>
1617
1618 * toplev.h (skip_leading_substring): New macro.
1619 * toplev.c (decode_f_option): Use skip_leading_substring instead
1620 of strncmp.
1621 (decode_W_option): Likewise.
1622
1623 2000-05-28 Nick Clifton <nickc@cygnus.com>
1624
1625 * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can
1626 modify reg_names.
1627
1628 2000-05-28 Richard Henderson <rth@cygnus.com>
1629
1630 * regclass.c (record_operand_costs): Protect reg_changes_size
1631 with CLASS_CANNOT_CHANGE_SIZE.
1632
1633 * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
1634
1635 2000-05-28 Richard Henderson <rth@cygnus.com>
1636
1637 * function.c (diddle_return_value): A pcc-style struct return
1638 returns a pointer.
1639
1640 2000-05-27 Zack Weinberg <zack@wolery.cumb.org>
1641
1642 * cppfiles.c: Read files in, using mmap if possible, then
1643 prescan them separately.
1644 (read_file, read_with_read): New functions.
1645 * cpplex.c: Don't define UCHAR_MAX.
1646 (_cpp_read_and_prescan): Rename to _cpp_prescan. Don't read
1647 the file here.
1648
1649 * cppinit.c (handle_option): Automatically define __cplusplus,
1650 __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see
1651 the respective -lang switch.
1652
1653 * cpphash.h (enum node_type, struct hashnode, _cpp_lookup
1654 prototype): Move to...
1655 * cpplib.h: ... here. Rename struct hashnode to struct
1656 cpp_hashnode and give it a typedef. Rename _cpp_lookup to
1657 cpp_lookup. Add 'fe_value' slot, a union tree_node *.
1658
1659 2000-05-27 Geoffrey Keating <geoffk@cygnus.com>
1660
1661 * config/rs6000/rs6000.md (movsi): Constify 'name'.
1662
1663 * regclass.c [CLASS_CANNOT_CHANGE_SIZE]
1664 (class_can_change_size): New variable.
1665 (reg_changes_size): New variable.
1666 (init_reg_sets_1): Initialise class_can_change_size.
1667 (record_operand_costs): Remove subreg_changes_size.
1668 Don't pass it around. Instead update reg_changes_size.
1669 (regclass): Initialise and free reg_changes_size. If a register
1670 changes size, don't preference it to a class that contains
1671 registers that can't change size.
1672 (record_reg_classes): Don't look at subreg_changes_size.
1673
1674 2000-05-27 Richard Henderson <rth@cygnus.com>
1675
1676 * print-rtl.c (reg_names): Remove const.
1677 * regclass.c (reg_names): Likewise.
1678 * regs.h (reg_names): Likewise.
1679 * hard-reg-set.h (reg_names): Likewise.
1680
1681 2000-05-27 Richard Henderson <rth@cygnus.com>
1682
1683 * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL.
1684
1685 2000-05-27 Richard Henderson <rth@cygnus.com>
1686
1687 * config/alpha/alpha.c (alpha_does_function_need_gp): Test
1688 TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef.
1689 (alpha_expand_prologue): Emit prologue_mcount if needed.
1690 * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0.
1691 * config/alpha/alpha.md (prologue_mcount): New.
1692 * config/alpha/linux.h (FUNCTION_PROFILER): Remove.
1693 (TARGET_PROFILING_NEEDS_GP): Undef before redefining.
1694 * config/alpha/netbsd.h: Likewise.
1695
1696 2000-05-27 Richard Henderson <rth@cygnus.com>
1697
1698 * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19
1699 change to config/elfos.h.
1700
1701 2000-05-27 Richard Henderson <rth@cygnus.com>
1702
1703 * Makefile.in (resource.o): Depend on except.h.
1704 * except.h (output_exception_table_data): Prototype.
1705 * genconfig.c (gen_peephole2): Prototype.
1706 * genemit.c (main): Include ggc.h.
1707 * genoutput.c: Revert parts of last change: include errors.h
1708 (main): Set progname.
1709 * recog.c: Include hard-reg-set.h before recog.h.
1710 * resource.c: Include except.h.
1711
1712 * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect
1713 with RTX_CODE.
1714 (alpha_write_linkage): Protect with BUFSIZ.
1715 (alpha_need_linkage): Update prototype.
1716 * config/alpha/alpha.c (function_arg): Move VMS code here.
1717 (alpha_links_base): Remove.
1718 (alpha_links): New.
1719 (mark_alpha_links_node, mark_alpha_links): New.
1720 (alpha_write_one_linkage): New.
1721 (alpha_need_linkage): Use a splay tree. Build the linkage symbol.
1722 (alpha_write_linkage): Use splay_tree_foreach.
1723 * config/alpha/alpha.md (call_vms): Use alpha_need_linkage
1724 to get the linkage symbol.
1725 (call_value_vms): Likewise.
1726 * config/alpha/elf.h (output_file_directive): Remove decl.
1727 (ctors_section, dtors_section): Prototype.
1728 (sbss_section, sdata_section): Prototype.
1729 * config/alpha/vms.h (FUNCTION_ARG): Remove.
1730 (readonly_section, link_section, literals_section): Prototype.
1731 (ctors_section, dtors_section): Prototype.
1732 (vms_valid_decl_attribute_p): Remove decl.
1733 (alpha_arg_type, alpha_arg_info_reg_val): Likewise.
1734
1735 2000-05-27 Geoff Keating <geoffk@cygnus.com>
1736
1737 * reload.c (get_secondary_mem): Don't widen floating-point modes.
1738
1739 * combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
1740 substituting the REG in a (subreg:X (reg:Y ...)).
1741
1742 2000-05-28 Neil Booth <NeilB@earthling.net>
1743
1744 * cpplex.c (_cpp_lex_line): Merge vertical space. Flag
1745 first token of a line BOL. Update EOF code for this.
1746 Remove illegal directive check - it appears in the (not
1747 yet committed) caller.
1748 * cpplib.h (BOL): New flag.
1749
1750 2000-05-28 Neil Booth <NeilB@earthling.net>
1751
1752 * cpplex.c (_cpp_init_toklist): No comment space to initialise.
1753 (_cpp_free_toklist): No comment space to free.
1754 (expand_comment_space): Remove.
1755 (save_comment_space): Place the comment in the current token and
1756 not in a separate comment space.
1757 (_cpp_lex_line): Save comments during plain code and #define
1758 directives only.
1759 * cpplib.h (struct _cpp_toklist): Remove comment space.
1760
1761 2000-05-28 Neil Booth <NeilB@earthling.net>
1762
1763 * cppexp.c (parse_assertion): Supply extra argument to
1764 _cpp_init_toklist.
1765 * cpplib.c (do_assert, do_unassert): Similarly.
1766 * cpphash.h (_cpp_init_toklist) Update.
1767 (_cpp_expand_token_space): New.
1768 (DUMMY_TOKEN, NO_DUMMY_TOKEN): New.
1769 * cpplex.c (_cpp_init_toklist): New argument.
1770 (parse_string2): New argument multiline_ok.
1771 (spell_token): Take a const cpp_token *.
1772 (INIT_NAME): Replace with INIT_TOKEN_NAME. Update tokens_used.
1773 (SPELL_ macros): Replace with enum.
1774 (expand_token_space): Replace with _cpp_expand_token_space.
1775 Take COUNT argument.
1776 (IS_DIRECTIVE): Update.
1777 (_cpp_lex_line): Update token structure before parsing number.
1778 Don't assume start at beginning of token list.
1779 (save_comment): Use INIT_TOKEN_NAME.
1780
1781 2000-05-27 Zack Weinberg <zack@wolery.cumb.org>
1782
1783 * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes
1784 -Wmissing-prototypes.
1785 * configure: Regenerate.
1786 * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES.
1787
1788 * builtins.c, calls.c: Change all instances of gen_call_* or
1789 gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*.
1790 * calls.c (struct_value_size_rtx): Separate definition from
1791 initialization to avoid unused variable warning.
1792
1793 * genflags.c (gen_macro): New function.
1794 (gen_proto): Call it for gen_call_* and gen_sibcall_*.
1795 (gen_nonproto): Delete.
1796 (gen_insn): Put all insns on the same obstack.
1797 (main): Generate prototypes for everything unconditionally.
1798
1799 * configure.in: Add AC_CHECK_TYPE(ssize_t). Remove commented
1800 out check for wchar_t.
1801 * acconfig.h: Add template for ssize_t. Remove @TOP@.
1802 * system.h: Add infrastructure for defining missing
1803 TYPE_MAX/TYPE_MIN macros. Use it to provide fallback
1804 definitions of UCHAR_MAX and SSIZE_MAX.
1805 * configure: Regenerate.
1806 * config.in: Regenerate.
1807
1808 * Makefile.in (libgcc2.ready): Rename to libgcc.ready.
1809 Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed
1810 headers.
1811 (clean): No need to delete libgcc1.a, libgcc1-asm.a,
1812 libgcc2.a, or libgcc1.null.
1813
1814 2000-05-27 Richard Henderson <rth@cygnus.com>
1815
1816 * Makefile.in (recog.o): Don't depend on resource.h.
1817 * recog.c: Don't include resource.h.
1818 (recog_last_allowed_insn): Remove.
1819 (recog_next_insn): Remove.
1820 (struct peep2_insn_data): New.
1821 (peep2_insn_data, peep2_current): New.
1822 (peep2_next_insn): New.
1823 (peep2_regno_dead_p, peep2_reg_dead_p): New.
1824 (peep2_find_free_register): New.
1825 (peephole2_optimize): Track life information by insn as we go.
1826 * recog.h: Update declarations.
1827 * resource.c (find_free_register, reg_dead_p): Remove.
1828 * resource.h: Remove their declarations.
1829 * toplev.c: Include hard-reg-set.h before recog.h.
1830
1831 * genconfig.c (max_insns_per_peep2): New.
1832 (gen_peephole2): New.
1833 (main): Call it.
1834 * genemit.c (output_peephole2_scratches): Generate calls to
1835 peep2_find_free_register; adjust surrounding code.
1836 (main): Have insn-emit.c include hard-reg-set.h before recog.h.
1837 * genrecog.c (change_state): Don't track last_insn.
1838 (write_action): Write into *_pmatch_len before accepting.
1839 (write_tree): Adjust peephole2_insns and subroutines to match.
1840
1841 * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.
1842
1843 * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
1844 (hard_int_register_operand): New.
1845 * config/alpha/alpha-protos.h: Declare it.
1846 * config/alpha/alpha.h (PREDICATE_CODES): Update.
1847 * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
1848 as needed; use peep2_reg_dead_p instead of dead_or_set_p.
1849
1850 2000-05-27 Richard Henderson <rth@cygnus.com>
1851
1852 * function.c (thread_prologue_epilogue_insns): Don't move the
1853 line note at the head of the chain. Only force a lineno note
1854 before the end of block 0.
1855
1856 2000-05-27 Richard Henderson <rth@cygnus.com>
1857
1858 * gensupport.c (collect_insn_data): Record the maximum number
1859 of alternatives, not the last seen.
1860
1861 * genoutput.c: Don't include errors.h.
1862 (struct data): Add lineno member.
1863 (have_error): New.
1864 (scan_operands): Use message_with_line instead of error.
1865 (validate_insn_alternatives): Likewise.
1866 (gen_insn): Accept and store the pattern's line number.
1867 (gen_peephole, gen_expand, gen_split): Likewise.
1868 (main): Don't set progname. Pass line_no to gen_foo.
1869
1870 2000-05-27 Richard Henderson <rth@cygnus.com>
1871
1872 * config/d30v/d30v.c (d30v_print_operand): Handle ':'.
1873 * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
1874 * config/d30v/d30v.md (attr predicable): New.
1875 (all insn patterns): Mark non-predicable patterns; use %: on the rest.
1876 (andsi3*): Unify into one pattern.
1877 (iorsi3*, xorsi3*): Likewise.
1878 (peephole2 patterns): Use peep2_reg_dead_p; verify not a
1879 conditional return.
1880 (old cond_exec patterns): Remove.
1881 (define_cond_exec): New.
1882
1883 Sat May 27 11:01:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1884
1885 * tree.h (TREE_CODE_LENGTH): New macro.
1886 * c-common.c (c_find_base_decl): Use it.
1887 * expr.c (safe_from_p): Likewise.
1888 * print-tree.c (print_node): Likewise.
1889 * tree.c (make_node, copy_node, get_identifier): Likewie.
1890 (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
1891 (build, build_nt, build_parse_node, simple_cst_equal): Likewise.
1892 * fold-const.c (make_range): Likewise.
1893 (fold): Likewise; also use first_rtl_op.
1894 * c-iterate.c (collect_iterators): Use first_rtl_op.
1895 * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
1896 Use IS_EXPR_CODE_CLASS.
1897 (preexpand_calls): Likewise.
1898 * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
1899 and TREE_CODE_LENGTH.
1900 * stmt.c (warn_if_unused_value): If no operands, no unused value.
1901
1902 2000-05-26 Geoffrey Keating <geoffk@cygnus.com>
1903
1904 * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
1905 than '%1(%*)'.
1906 (movdi_internal64): Likewise.
1907
1908 * config/rs6000/rs6000.md: Correct order of operands for DImode
1909 boolean patterns.
1910
1911 * config/rs6000/rs6000.c (boolean_or_operator): New function.
1912 * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
1913 * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
1914 * config/rs6000/rs6000.md: Use boolean_or_operator instead of
1915 boolean_operator for the boolean patterns without NOTs.
1916
1917 * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
1918 from reg_or_u_cint_operand. Change comment and behaviour.
1919 (logical_operand): Clean up, add assertion.
1920 (non_logical_cint_operand): Also check for
1921 reg_or_logical_cint_operand.
1922 * config/rs6000/rs6000.h (PREDICATE_CODES): Update.
1923 * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
1924 in the expander.
1925 (xorsi3): Likewise.
1926 (iordi3): Likewise.
1927 (xordi3): Likewise.
1928
1929 2000-05-26 Mark Mitchell <mark@codesourcery.com>
1930
1931 * tree.h (struct record_layout_info): Rename to (struct
1932 record_layout_info_s).
1933 * stor-layout.c (start_record_layout): Replace
1934 `record_layout_info' with `record_layout_info_s'.
1935
1936 2000-05-26 Richard Earnshaw <rearnsha@arm.com>
1937
1938 * flow.c (find_label_refs): New function.
1939 (find_basic_blocks_1): Call it for each alternative of a call
1940 placeholder.
1941
1942 2000-05-26 Richard Earnshaw <rearnsha@arm.com>
1943
1944 * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
1945 of get_pc.
1946
1947 2000-05-25 Richard Henderson <rth@cygnus.com>
1948
1949 * config/alpha/alpha.c (alpha_comparison_operator): Don't be
1950 so strict about DImode.
1951 (alpha_swapped_comparison_operator): Likewise.
1952 * config/alpha/alpha.md (*setne_internal): Name it. Allow
1953 any integer output mode.
1954 (*setcc_internal): Likewise.
1955 (*setcc_swapped_internal): Likewise.
1956 (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
1957 (*mov[qhs]icc_internal): New.
1958 (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.
1959
1960 2000-05-25 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1961
1962 * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
1963
1964 2000-05-25 Richard Henderson <rth@cygnus.com>
1965
1966 * bb-reorder.c (reorder_block_def): Reorder elements for size.
1967 Remove add_jump; add next; replace flags with visited.
1968 (rbd_init): Remove.
1969 (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
1970 (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
1971 (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
1972 (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
1973 (RBI): New.
1974 (reorder_index, reorder_last_visited): Remove.
1975 (skip_insns_after_block): Rewrite to use a switch.
1976 (get_common_dest): Remove.
1977 (chain_reorder_blocks): Remove.
1978 (record_effective_endpoints): Split out from reorder_basic_blocks.
1979 (make_reorder_chain): Likewise. Loop until all blocks are placed.
1980 (make_reorder_chain_1): Renamed from old make_reorder_chain.
1981 Only construct the reorder chain, do not move insns. Try harder
1982 to tail recurse.
1983 (label_for_bb, emit_jump_to_block_after): New.
1984 (fixup_reorder_chain): Use them. Do bulk block movement. Examine
1985 and adjust the jump insns appropriately. Fixup basic_block_info.
1986 (verify_insn_chain): Always define.
1987 (relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko
1988 in allocation size.
1989 (make_new_scope): Don't write zeros to calloc'd space.
1990 (build_scope_forest): Rely on xrealloc to DTRT.
1991 (reorder_basic_blocks): Don't build loop nest. Don't fail if
1992 profile_arc_flag. Streamline EH test.
1993
1994 * flow.c (redirect_edge_succ, redirect_edge_pred): New.
1995 * basic-block.h: Declare them.
1996
1997 2000-05-25 Alexandre Oliva <aoliva@cygnus.com>
1998
1999 * emit-rtl.c (reset_used_decls): New function.
2000 (unshare_all_rtl_again): Call it.
2001
2002 2000-05-25 Zack Weinberg <zack@wolery.cumb.org>
2003
2004 * cpplex.c (maybe_macroexpand): Warn about function-like
2005 macros used in non-function context, if -Wtraditional.
2006
2007 2000-05-25 Mark Mitchell <mark@codesourcery.com>
2008
2009 * recog.c (peephole2_optimize): Use INSN_P.
2010
2011 2000-05-25 Richard Henderson <rth@cygnus.com>
2012
2013 * ifcvt.c (seq_contains_jump): New.
2014 (noce_try_store_flag_constants): Use it to fail conversion.
2015 (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.
2016
2017 2000-05-25 Mark Mitchell <mark@codesourcery.com>
2018
2019 * except.h (can_throw): Declare it.
2020 * except.c (can_throw): Give it external linkage.
2021 * resource.c (find_dead_or_set_registers): Use can_throw.
2022
2023 2000-05-25 Richard Henderson <rth@cygnus.com>
2024
2025 * flow.c (mark_set_1): Don't record conditionally dead memory.
2026
2027 2000-05-25 Jan Hubicka <jh@suse.cz>
2028
2029 * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
2030 and pc_set at the place of simplejump_p and condjump_p.
2031 * cse.c (record_jump_equiv): Likewise.
2032 * emit-rtl.c (emit): Likewise.
2033 * explow.c (find_next_ref): Likewise.
2034 * flow.c (tidy_fallthru_edge): Likewise.
2035 (init_propagate_block_info): Likewise.
2036 * gcse.c (delete_null_pointer_checks): Likewise.
2037 * ifcvt.c (cond_exec_get_condition, noce_get_condition,
2038 dead_or_predicable): Likewise.
2039 * integrate.c (copy_insn_list): Likewise.
2040 * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
2041 for_each_insn_in_loop, check_dbra_loop, get_condition,
2042 insert_bct, load_mems): Likewise.
2043 * resource.c (find_dead_or_set_registers): Likewise.
2044 * sibcalls.c (simplejump_p): Likewise.
2045 * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.
2046
2047 2000-05-25 David Edelsohn <edelsohn@gnu.org>
2048
2049 * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
2050 to STRING case. Use doubleword STRING move for TARGET_POWERPC64
2051 when unaligned.
2052 * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
2053 (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
2054 (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
2055 * rs6000.md: Name various internal patterns.
2056
2057 2000-05-25 Jan Hubicka <jh@suse.cz>
2058
2059 * jump.c (invert_exp_1): Remove first argument, use pc_set
2060 to get the expression.
2061 (redirect_exp): Make static; redirect only the pc_set expression,
2062 remove first argument.
2063 (invert_exp): Remove first argument, make static.
2064 (jump_optimize): Use any_condjump_p, any_uncondjump_p and
2065 any_onlyjump at most places where we originaly did condjump_p
2066 and simplejump_p.
2067 (jump_back_p, follow_jumps, thread_jumps): Likewise.
2068 (delete_barrier_succesors): Use pc_set.
2069 (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
2070 calls of invert_exp and redirect_exp.
2071 * rtl.h (redirect_exp, invert_exp): Remove.
2072 * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.
2073
2074 2000-05-25 Richard Henderson <rth@cygnus.com>
2075
2076 * stmt.c (expand_end_bindings): Fix thinko last change.
2077
2078 2000-05-25 Andrew MacLeod <amacleod@cygnus.com>
2079 Andrew Haley <aph@cygnus.com>
2080
2081 * except.c (func_eh_entry): Add emitted field.
2082 (new_eh_region_entry): Set emitted field to 0;
2083 (output_exception_table_entry): Only emit previously un-emitted data,
2084 and send it to the eh_data section.
2085 (output_exception_table): Break out common parts. Output
2086 exception table for entire compilation unit to eh_data section.
2087 (output_exception_table_data): Common parts of output_exception_table.
2088 Send output to eh_data section.
2089 (output_function_exception_table): Output exception table data for
2090 a single function to eh_data section.
2091 (free_exception_table): New external to free the table.
2092 * except.h (free_exception_table): Add prototype.
2093 (output_function_exception_table): Add prototype.
2094 * final.c (final_end_function): Output function exception table
2095 for IA64_UNWIND_INFO.
2096 (final_scan_insn): Emit any unwind directives for an insn.
2097
2098 * frame-dwarf2.c: New file containing all DWARF 2 specific code
2099 from frame.c.
2100 * frame.c: Remove all DWARF 2 specific code.
2101 * config/ia64/frame-ia64.c: New file.
2102 (gthread_stuff): Make all gthread available with
2103 IA64_UNWIND_INFO.
2104 (dwarf_fde): Define an IA64 struct for dwarf_fde.
2105 (__register_frame_info, __register_frame): Move to common area of file.
2106 (__register_frame_info_table, __register_frame_table): Move to common i
2107 area.
2108 (__deregister_frame_info, __deregister_frame): Move to common area.
2109 (__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
2110 (read_uleb128): New version for ia64.
2111 (get_unwind_record): Read the next IA-64 unwind record.
2112 (read_R_record): Read a region header record.
2113 (process_a_b_reg_code): X record helper.
2114 (read_X_record): Read an X format record.
2115 (read_B_record): Read a B format record.
2116 (P3_record_types): List of record types matching the P3 format.
2117 (P7_record_types): List of record types matching the P7 format.
2118 (P8_record_types): List of record types matching the P8 format.
2119 (read_P_record): Read a P format record.
2120 (init_ia64_reg_loc): Set default fields for a register.
2121 (init_ia64_unwind_frame): Set defaults for all register records.
2122 (execute_one_ia64_descriptor): Execute one descriptor record.
2123 (rse_address_add): Calculate the position of a local reg in memory.
2124 (normalize_reg_loc): Turn a location descriptor into a memory address.
2125 (maybe_normalize_reg_loc): Only normalize a descriptor if it falls
2126 within a specified PC offset range.
2127 (get_real_reg_value): Given a register location, retrieve its value.
2128 (set_real_reg_value): Change the value of a register location.
2129 (copy_reg_value): Copy reg values, if needed.
2130 (copy_saved_reg_state): Copy all registers that need to be copied.
2131 (process_state_between): Normalize all frame register records that
2132 fall within the specified PC range.
2133 (frame_translate): Take a processed frame description, and turn
2134 everything into addresses.
2135 (build_ia64_frame_state ): Find and create frame state record for a PC.
2136 (get_personality): Get the personality routine for a given frame.
2137 (get_except_table): Get the exception table for a given frame.
2138 (record_name): Unwind record names for debugging.
2139 (print_record): Print and unwind record.
2140 (print_all_records): Print an entire unwind image.
2141 (__ia64_backtrace): Print a backtrace.
2142 (ia64_backtrace_helper): New function.
2143 (__register_frame_info_aux): New function.
2144 * config/ia64/crtend.asm (__do_frame_setup_aux): New function.
2145
2146 * frame.h (enum unw_record_type): New unwind record types.
2147 (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
2148 (struct unw_r_record, unwind_record): New unwind record structs.
2149 (struct unwind_info_ptr): Unwind information layout.
2150 (IA64_UNW_LOC_TYPE_*): Macros for different types for location
2151 descriptors.
2152 (struct ia64_reg_loc): Register location description.
2153 (struct ia64_frame_state): Location of all registers in a frame.
2154 (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
2155 * libgcc2.c (__ia64_personality_v1): Personality routine.
2156 (__calc_caller_bsp): Calculate the bsp register for the caller's
2157 frame.
2158 (ia64_throw_helper): Figure out who to return to and set up the
2159 registers.
2160 (__throw): Throw routine.
2161
2162 * output.h (assemble_eh_align, assemble_eh_label): New functions
2163 to generate EH info where we want it.
2164 (assemble_eh_integer): New function.
2165 * toplev.c (compile_file): Output module level exception table for
2166 non-ia64 targets.
2167 (main): Set exceptions_via_longjump and flag_new_exceptions based
2168 on IA64_UNWIND_INFO too.
2169
2170 * varasm.c (assemble_eh_label): Generate a label via
2171 ASM_OUTPUT_EH_LABEL if it has been specified.
2172 (assemble_eh_align): Generate an alignment directive via
2173 ASM_OUTPUT_EH_ALIGN if it has been specified.
2174 (assemble_eh_label): Generate an integer value via
2175 ASM_OUTPUT_EH_type if they have been specified.
2176 * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
2177 (ia64_init_builtins): Add __builtin_ia64_bsp
2178 and __builtin_ia64_flushrs.
2179 (ia64_expand_builtin): Add IA64_BUILTIN_BSP and
2180 IA64_BUILTIN_FLUSHRS.
2181 * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
2182 IA64_BUILTIN_FLUSHRS.
2183
2184 * config/ia64/ia64.md (flushrs): New insn to flush the register
2185 stack. Add to unspec list.
2186
2187 * config/ia64/crtbegin.asm (frame_object): Change size.
2188 (__do_frame_setup_aux): New function.
2189 * config/ia64/crtend.asm: call __do_frame_setup_aux.
2190 * config/ia64/t-ia64 (LIB2ADDEH): Add.
2191 * Makefile.in (LIB2ADDEH): Add.
2192 (LIB2ADD): Use LIB2ADDEH.
2193
2194 2000-05-24 Richard Henderson <rth@cygnus.com>
2195
2196 * recog.c (offsettable_address_p): If mode size is zero, assume
2197 BIGGEST_ALIGNMENT.
2198
2199 2000-05-24 J. David Anglin <dave@hiauly.hia.nrc.ca>
2200
2201 * configure.in: Check for -Wno-long-long option support and improve
2202 handling of warning CFLAGS for stages 1 and 2.
2203 * Makefile.in (WARN_CFLAGS): Move definition to configure.in.
2204 * configure: Regenerate.
2205
2206 Wed May 24 19:37:53 2000 Jeffrey A Law (law@cygnus.com)
2207
2208 * gcc.texi: Remove contributor list. Instead include contrib.texi.
2209 * contrib.texi: New file.
2210
2211 Thu May 25 02:27:22 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2212
2213 * loop.c (basic_induction_var): Avoid double recording of an increment.
2214
2215 Thu May 25 02:19:27 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2216
2217 * Back out this patch:
2218 Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
2219 * loop.h (struct induction): Add multi_insn_incr.
2220 * loop.c (basic_induction_var): New multi_insn_incr argument.
2221 Set it if we search back through previous insns for the biv.
2222 (record_biv): New multi_insn_incr argument; fill in struct induction.
2223 (strength_reduce): Discard an iv with multiple bivs, any of
2224 which require multiple insns to increment.
2225
2226 * loop.c (check_insn_for_bivs): Remove bits copied from above patch.
2227
2228 Thu May 25 02:09:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2229
2230 * rtl.h (loc_mentioned_in_p): Declare.
2231 * reload.c (loc_mentioned_in_p): Moved from here...
2232 * rtlanal.c (loc_mentioned_in_p): to here. No longer static.
2233 Fix loop increment for 'E' handling.
2234 * loop.c (strength_reduce): When doing biv->giv conversion,
2235 take multi-insn biv increments into account.
2236
2237 2000-05-24 Jason Merrill <jason@casey.soma.redhat.com>
2238
2239 * stmt.c (expand_end_bindings): Look through NOTEs to find a
2240 BARRIER.
2241
2242 2000-05-24 Mark Mitchell <mark@codesourcery.com>
2243
2244 * calls.c (expand_call): Handle cleanups in tail-recursion
2245 arguments analagously to cleanups in sibling calls.
2246
2247 2000-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2248
2249 * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND.
2250 All callers changed.
2251
2252 2000-05-24 Alexandre Oliva <aoliva@cygnus.com>
2253
2254 * expr.c (expand_assignment, store_expr, expand_expr,
2255 expand_expr_unaligned): Set in_check_memory_usage while emitting
2256 chkr_check_addr libcall.
2257
2258 2000-05-24 Nick Clifton <nickc@cygnus.com>
2259
2260 * fold-const.c (extract_muldiv): When constructing a
2261 multiplier/divisor, do not expect const_binop to correctly
2262 determine if overflow has occured, so check explicitly.
2263
2264 2000-05-24 Alexandre Oliva <aoliva@cygnus.com>
2265
2266 * c-decl.c (build_enumerator): Don't modify the value's type,
2267 convert it.
2268
2269 2000-05-24 Andreas Jaeger <aj@suse.de>
2270
2271 * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default.
2272
2273 2000-05-24 Eric Christopher <echristo@cygnus.com>
2274
2275 * configure.in: Redefine inhibit_libc conditions.
2276 * libgcc2.c: Remove inhibit_libc conditional define.
2277 * configure: Regenerate.
2278
2279 2000-05-24 Phil Edwards <pme@sourceware.cygnus.com>
2280
2281 * configure.in: For --enable-languages=LIST, check for empty LIST.
2282 * configure: Regenerate.
2283
2284 2000-05-24 Lars Brinkhoff <lars@nocrew.org>
2285
2286 * pdp11.h (STACK_BOUNDARY): Define.
2287
2288 2000-05-24 Jakub Jelinek <jakub@redhat.com>
2289
2290 * ifcvt.c (if_convert): Update life info globally.
2291
2292 2000-05-24 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2293
2294 * emit-rtl.c (unshare_all_decls): New function.
2295 (unshare_all_rtl): Call it.
2296
2297 2000-05-23 Nick Clifton <nickc@cygnus.com>
2298
2299 * configure.in: Treat 'strongarm' as if it were 'arm' when
2300 determining cpu type.
2301
2302 * configure: Regenerate.
2303
2304 * config/arm/arm.c: Change 'char *' to 'const char *' for cases
2305 where constant strings are involved.
2306
2307 * config/arm/arm.h (arm_condition_codes): Change type to 'const
2308 char *'.
2309
2310 * config/arm/arm-protos.h: Change 'char *' to 'const char *' for
2311 cases where constant strings are involved.
2312
2313 Tue May 23 15:08:31 2000 Clinton Popetz <cpopetz@cygnus.com>
2314
2315 * config/sh/sh.c (gen_far_branch, split_branches): Update
2316 to reflect new prototypes for redirect_jump and invert_jump.
2317 (sh_insn_length_adjustment): Get rid of const warnings.
2318
2319 2000-05-23 Kazu Hirata <kazu@hxi.com>
2320
2321 * invoke.texi (Options for Debugging Your Program or GCC): Update
2322 the names of dump files.
2323
2324 Tue May 23 13:58:52 2000 Philippe De Muyter <phdm@macqel.be>
2325
2326 * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix.
2327 * configure: Regenerated.
2328
2329 2000-05-23 Zack Weinberg <zack@wolery.cumb.org>
2330
2331 * simplify-rtx.c (SIGN_EXTEND): New macro.
2332 (simplify_unary_operation, simplify_binary_operation,
2333 simplify_relational_operation): Use SIGN_EXTEND. Make low
2334 halves of (low, high) pairs unsigned if they weren't already.
2335 (simplify_ternary_operation): Cast INTVAL to unsigned before
2336 comparing to a MODE_BITSIZE.
2337
2338 2000-05-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2339
2340 * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros
2341 rewritten from the internals of gcc_AC_NEED_DECLARATION{S}.
2342
2343 * configure.in (gcc_AC_CHECK_DECLS): Call this instead of
2344 gcc_AC_NEED_DECLARATIONS.
2345
2346 * dwarfout.c: Don't prototype time().
2347
2348 * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*.
2349
2350 * system.h: Likewise.
2351
2352 * toplev.c: Likewise.
2353
2354 2000-05-23 Zack Weinberg <zack@wolery.cumb.org>
2355
2356 * c-decl.c (pushdecl): Invert sense of test for non-global types.
2357
2358 Tue May 23 18:11:42 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2359
2360 * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION.
2361
2362 2000-05-23 Jonathan Larmour <jlarmour@redhat.co.uk>
2363
2364 * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define
2365
2366 Tue May 23 06:50:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2367
2368 * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler.
2369 (alpha_start_function): Never write ..ng label if VMS or NT.
2370 (alpha_align_insns): Remove GP_IN_USE arg.
2371 Alignment now unsigned.
2372 (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns.
2373 * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand
2374 and two define_insn's.
2375
2376 2000-05-22 Richard Henderson <rth@cygnus.com>
2377
2378 * combine.c (simplify_comparison): Use trunc_int_for_mode.
2379
2380 2000-05-22 Richard Henderson <rth@cygnus.com>
2381
2382 * stor-layout.c (place_field): Change rli->size to rli->offset.
2383
2384 2000-05-22 Richard Henderson <rth@cygnus.com>
2385
2386 * function.c (thread_prologue_and_epilogue_insns): Make sure
2387 existing line number notes appear after the prologue.
2388
2389 Mon May 22 21:49:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2390
2391 * config/alpha/alpha.c (alpha_fnname): New static variable.
2392 (print_operand, case '~'): New case.
2393 (alpha_expand_prologue): Emit prologue_ldgp insn if needed.
2394 (alpha_start_function): Set alpha_fnname.
2395 Write "ng" label if no ldgp; don't write ldgp insn.
2396 * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'.
2397 * config/alpha/alpha.md (prologue_ldgp): New define_insn.
2398
2399 Mon May 22 11:30:48 2000 Clinton Popetz <cpopetz@cygnus.com>
2400
2401 * jump.c (jump_optimize_1): Don't increment LABEL_NUSES
2402 on deleted labels.
2403
2404 2000-05-22 Zack Weinberg <zack@wolery.cumb.org>
2405
2406 * varasm.c (eh_frame_section): Revert change to argument list.
2407
2408 Mon May 22 13:14:03 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2409
2410 * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value.
2411 (gen_extend_insn, can_fix_p, can_float_p): Likewise.
2412
2413 * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove
2414 dangling "else" that causes "break" to be conditional.
2415 Also remove unneeded code at start.
2416
2417 Mon May 22 17:31:35 2000 Philippe De Muyter <phdm@macqel.be>
2418
2419 * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1.
2420 * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto.
2421 * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto.
2422
2423 2000-05-22 Jakub Jelinek <jakub@redhat.com>
2424
2425 * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has
2426 just one argument.
2427
2428 Mon May 22 06:57:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2429
2430 * alias.c (record_component_aliases): New function.
2431 * tree.h: Clean up some declarations and comments.
2432 (record_component_aliases): New declaration.
2433 * tree.c (get_alias_set): If type and has alias set, use it.
2434
2435 2000-05-22 Richard Henderson <rth@cygnus.com>
2436
2437 * simplify-rtx.c (simplify_ternary_operation): Try to simplify
2438 IF_THEN_ELSE to a setcc form.
2439 * jump.c (can_reverse_comparison_p): Be prepared for insn null.
2440
2441 2000-05-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2442
2443 * fixinc/inclhack.def (sun_malloc): Handle `calloc'.
2444 (sun_malloc, sysz_stdtypes_for_sun): Add test_text.
2445
2446 Sun May 21 16:42:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2447
2448 * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is
2449 not a PARALLEL.
2450
2451 2000-05-20 Alexandre Oliva <aoliva@cygnus.com>
2452
2453 * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
2454 * config/mn10300/mn10300.c (print_operand): Likewise.
2455
2456 * final.c (split_double): Right shift of negative values is not
2457 portable.
2458
2459 * ifcvt.c (if_convert): Scan and kill dead code.
2460
2461 * emit-rtl.c (unshare_all_rtl): Store the copied rtx.
2462
2463 2000-05-20 Zack Weinberg <zack@wolery.cumb.org>
2464
2465 * diagnostic.c: Eliminate implicit int.
2466 * except.c, gcc.c: Add static prototypes.
2467 * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED.
2468 * gensupport.c (process_rtx): Use XVEC to initialize vector
2469 slot of 'split'.
2470
2471 * print-rtl.c: If DEBUG_REGISTER_NAMES, define static
2472 debug_reg_names instead of static reg_names. If not, define
2473 global reg_names.
2474 * regclass.c: Don't define global reg_names unless
2475 DEBUG_REGISTER_NAMES is defined.
2476
2477 * reload1.c (order_regs_for_reload): Remove unused variable.
2478 * varasm.c: Include output.h after defaults.h. Define
2479 eh_frame_section as function of no args, not of unspecified args.
2480
2481 * gcc.c: Constify argbuf; arguments to store_arg,
2482 process_command, main; elements of struct command and struct
2483 switchstr; local variables in execute, process_command, main.
2484
2485 2000-05-20 Bruce Korb <bkorb@gnu.org>
2486
2487 * fixinc/inclhack.def: many applications of c_fix=format + tests
2488 * fixinc/check.diff: regenerated
2489 * fixinc/fixincl.x: regenerated
2490
2491 Sat May 20 09:30:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2492
2493 * alias.c: Clarify some comments.
2494 (record_base_value): REGNO is unsigned.
2495 * rtl.h (record_base_value): Likewise.
2496
2497 * alias.c (aliases_everything_p): Don't special-case QImode here.
2498 * c-common.c (c_get_alias_set): Do it here.
2499 Handle BIT_FIELD_REF by getting alias info for arg.
2500 Use POINTER_TYPE_P.
2501
2502 2000-05-20 Alexandre Oliva <aoliva@cygnus.com>
2503
2504 * mklibgcc.in: Restore rule to create ${dir}.
2505
2506 Sat May 20 08:45:41 2000 H.J. Lu <hjl@gnu.org>
2507
2508 * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for
2509 GCC_FOR_TARGET used by MULTILIBS.
2510 * mklibgcc.in: Make sure each .o file depends on the
2511 directory it will be in.
2512 Make the multilib directory depends libgcc.
2513
2514 Sat May 20 08:29:28 2000 H.J. Lu <hjl@gnu.org>
2515
2516 * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1.
2517
2518 Sat May 20 07:27:35 2000 Alexandre Oliva <aoliva@cygnus.com>
2519
2520 * fold-const.c (make_range): Handle degenerated intervals.
2521 Fixes c-torture/execute/991221-1.c
2522
2523 Fri May 19 18:16:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2524
2525 * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0.
2526 * reload.c (find_equiv_reg): Likewise.
2527 * alias.c (init_alias_analysis): Likewise.
2528 Only call prologue_epilogue_contains on insns.
2529 * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function.
2530 * bb-reorder.c (hard-reg-set.h): Include earlier.
2531 * haifa-sched.c (hard-reg-set.h): Likewise.
2532 * ifcvt.c (hard-reg-set.h): Likewise.
2533 * local-alloc.c (hard-reg-set.h): Likewise.
2534 * loop.c (hard-reg-set.h): Likewise.
2535 * predict.c (hard-reg-set.h): Likewise.
2536 * regrename.c (hard-reg-set.h): Likewise.
2537 * flow.c (hard-reg-set.h): Likewise.
2538 (reg_set_to_hard_reg_set): New function.
2539 * bitmap.c (regs.h, basic-block.h): No longer include.
2540 (bitmap.h): Now include.
2541 * conflict.c (hard-reg-set.h): Include.
2542 * profile.c (hard-reg-set.h): Likewise.
2543 * print-rtl.c (hard-reg-set.h): Likewise.
2544 * sbitmap.c (hard-reg-set.h): Likewise.
2545 * toplev.c (hard-reg-set.h): Likewise.
2546 * unroll.c (hard-reg-set.h, basic-block.h): Likewise.
2547 * hard-reg-set.h (reg_names): Now constant.
2548 * regs.h (reg_names): Likewise.
2549 * regclass.c (reg_names): Likewise.
2550 * loop.h (basic-block.h): No longer include.
2551 (bitmap.h): Now include.
2552 * reload1.c (order_regs_for_reload): Avoid loop over reg sets.
2553 * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes.
2554 (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise.
2555
2556 2000-05-19 Jan Hubicka <jh@suse.cz>
2557 Richard Henderson <rth@cygnus.com>
2558
2559 * basic-block.h (struct edge_def): New field "count".
2560 (struct basic_block_def): Likewise.
2561 * flow.c (entry_exit_blocks): Add count fileds.
2562 (split_edge): Keep count information up-to-date.
2563 (dump_edge_info, dump_flow_info): Dump count fields.
2564
2565 * final.c (count_instrumented_edges): Rename to edge from arc.
2566 (end_final): Update users.
2567 * profile.c: Include expr.h, basic-block.h.
2568 (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill.
2569 (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill.
2570 (ignore_next_note, return_label_execution_count): Kill.
2571 (bbg_file_name, da_file_name): Kill.
2572 (edge_info, bb_info): New structures.
2573 (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros.
2574 (count_instrumented_edges, total_num_edges): Rename to edge from arc.
2575 (total_num_edges_instrumented): Likewise.
2576 (init_arc, expand_spanning_tree): Kill.
2577 (fill_spanning_tree, tablejump_entry_p): Kill.
2578 (instrument_edges): Rewrite from instrument_arcs to use
2579 commit_edge_insertions infrastructure.
2580 (compute_branch_probabilities): Remove arguments; rewrite for
2581 CFG infrastructure; use rtl_dump_file directly.
2582 (branch_prob, find_spanning_tree): Likewise.
2583 (union_groups, find_group): New.
2584 (init_branch_prob): Make bbg_file_name and da_file_name local.
2585 (end_branch_prob): Use rtl_dump_file directly.
2586 (init_edge_profiler): Rename to edge from arc.
2587 (output_arc_profiler): Kill.
2588 (gen_edge_profiler): New.
2589 (output_func_start_profiler): Turn off profiling. Make the
2590 constructor static when we can.
2591 * rtl.h (branch_prob, end_branch_prob): Update prototypes.
2592
2593 * toplev.c (DFI_flow): Remove.
2594 (DFI_cfg, DFI_life): New.
2595 (dump_file): Update accordingly.
2596 (compile_file): Call end_branch_prob if profile_arc_flag too.
2597 (rest_of_compilation): Move flow1 cfg creation to DFI_cfg. Do edge
2598 profiling after the CFG is built. Move flow1 life analysis to
2599 DFI_life. Always estimate remaining probabilities.
2600
2601 2000-05-19 Richard Henderson <rth@cygnus.com>
2602
2603 * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT.
2604
2605 * flow.c (make_edges): The sibling call edge to exit is abnormal.
2606
2607 2000-05-19 Richard Henderson <rth@cygnus.com>
2608
2609 * jump.c (redirect_jump): Add delete_unused argument. Don't
2610 remove labels and code following when LABEL_NUSES goes to zero.
2611 (invert_jump): Likewise.
2612 (jump_optimize_1): Fix redirect/invert arguments.
2613 (do_cross_jump, thread_jumps): Likewise.
2614 * flow.c (split_edge): Likewise.
2615 * reorg.c (optimize_skip): Likewise.
2616 (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise.
2617 * profile.c (instrument_arcs): Likewise.
2618 * loop.c (find_and_verify_loops): Likewise. Fix indentation.
2619 * rtl.h: Update prototypes.
2620
2621 Fri May 19 12:05:13 2000 Clinton Popetz <cpopetz@cygnus.com>
2622
2623 * ssa.c (convert_from_ssa): Tell life_analysis we need death
2624 notes.
2625 (make_regs_equivalent_over_bad_edges): Only look at abnormal
2626 critical edges.
2627
2628 2000-05-19 Zack Weinberg <zack@wolery.cumb.org>
2629
2630 * cpphash.c (funlike_macroexpand): Make sure not to walk p1
2631 past l1 when deleting whitespace and markers.
2632
2633 * cpplex.c (_cpp_scan_until): Clear AUX field of tokens.
2634 * cpplib.c (do_unassert): Put the list to compare against on
2635 the stack.
2636
2637 2000-05-19 Bruce Korb <bkorb@gnu.org>
2638
2639 * fixinc/README: cleaned up old documentation
2640 * fixinc/check.diff: regenerated & verified on OSR5 on ix86
2641 * fixinc/check.tpl: compute the list of needed directories
2642 emit "#if defined(name)" because of conflict
2643 omit machine name differences from output differences
2644 * fixinc/inclhack.def( m88k_multi_incl ): Use `wrap' function
2645 (machine_name): change test text to use `sed' markers
2646 * fixinc/fixincl.x: regen
2647
2648 Fri May 19 06:49:35 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2649
2650 * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of
2651 a CONSTRUCTOR.
2652
2653 2000-05-18 Chris Demetriou <cgd@sibyte.com>
2654
2655 * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update
2656 it to match the current practice.
2657
2658 2000-05-18 Mark Mitchell <mark@codesourcery.com>
2659
2660 * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under.
2661
2662 2000-05-18 Richard Henderson <rth@cygnus.com>
2663
2664 * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New.
2665 * rtl.h (insn_dependant_p): Declare it.
2666 * loop.c (strength_reduce): Use it.
2667
2668 2000-05-18 Alexandre Oliva <aoliva@cygnus.com>
2669
2670 * config/mn10300/mn10300.c (expand_prologue, expand_epilogue):
2671 16-bit and 64-bit clean-up.
2672
2673 2000-05-18 Mark Elbrecht <snowball3@bigfoot.com>
2674
2675 * configure.in (*-pc-msdosdjgpp): Set float_format to none.
2676 * configure: Rebuilt.
2677
2678 2000-05-18 Zack Weinberg <zack@wolery.cumb.org>
2679
2680 * genopinit.c: Use $ for escape sequences in optab patterns.
2681 Remove backslashes from optab patterns. Change $A, $B, $C to
2682 expand to (int) whatever instead of just whatever; remove
2683 explicit (int) from all optab patterns.
2684
2685 * gensupport.c (xmalloc, xrealloc, xstrdup): Provide.
2686 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c,
2687 genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
2688 genrecog.c: Remove private copies of xmalloc, xrealloc, and
2689 xstrdup.
2690
2691 2000-05-18 Richard Henderson <rth@cygnus.com>
2692
2693 * jump.c (jump_optimize_1): Base minimum insn count during
2694 find_cross_jump on BRANCH_COST.
2695
2696 2000-05-18 Jakub Jelinek <jakub@redhat.com>
2697
2698 * print-rtl.c (print_rtx): Only print note line number as string
2699 if between NOTE_INSN_BIAS and NOTE_INSN_MAX.
2700 * final.c (final_scan_insn): Do nothing for note line number 0.
2701
2702 2000-05-18 Jakub Jelinek <jakub@redhat.com>
2703
2704 * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE
2705 from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from
2706 NOTE_INSN_DELETED_LABEL.
2707
2708 2000-05-18 Nick Clifton <nickc@cygnus.com>
2709
2710 * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant,
2711 uninitialised data in .rodata not .bss, and do not interpret an
2712 error in the initialisation value as meaning that the variable
2713 should be placed in the .bss section.
2714
2715 Thu May 18 12:10:18 2000 Philippe De Muyter <phdm@macqel.be>
2716
2717 * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o',
2718 not `$ac_cv_prog_cc_cc_c_o'.
2719 * configure: Regenerated.
2720
2721 2000-05-18 Chris Demetriou <cgd@sibyte.com>
2722 Richard Henderson <rth@cygnus.com>
2723
2724 * c-common.h (enum c_tree_index): Add g77 type entries.
2725 (g77_integer_type_node, g77_uinteger_type_node): New.
2726 (g77_longint_type_node, g77_ulongint_type_node): New.
2727 * c-decl.c (init_decl_processing): Initialize them.
2728
2729 2000-05-18 Richard Henderson <rth@cygnus.com>
2730
2731 * config/h8300/h8300.md (subs patterns): Use %G to negate.
2732
2733 * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT.
2734 (small_power_of_two): Likewise; use exact_log2.
2735 (adds_subs_operand, one_insn_adds_subs_operand): Remove.
2736 (output_adds_subs): Remove.
2737 (two_insn_adds_subs_operand): New.
2738 (split_adds_subs): New.
2739 * config/h8300/h8300-protos.h: Update.
2740 * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT.
2741 (CONST_OK_FOR_L): Match strict adds operands.
2742 (CONST_OK_FOR_N): Match struct subs operands.
2743 * config/h8300/h8300.md (adds_subs insns): Remove.
2744 (addhi patterns): Output adds/subs directly.
2745 (addsi_h8300h): Likewise.
2746 (addhi/addsi splitters): New. Decompose two_insn_adds_subs_operand.
2747
2748 2000-05-18 Zack Weinberg <zack@wolery.cumb.org>
2749
2750 * cppexp.c (parse_assertion): New.
2751 (lex): Call it for CPP_HASH. Remove CPP_ASSERTION case.
2752 (_cpp_parse_expr): Remove case '#'. Don't set
2753 parsing_if_directive.
2754 * cpphash.c (collect_objlike_expansion,
2755 collect_funlike_expansion, collect_params,
2756 _cpp_create_definition): The list no longer has a trailing
2757 VSPACE token.
2758 * cpphash.h (enum node_type): Add T_ASSERTION.
2759 (struct hashnode): Remove aschain, add pred.
2760 (struct predicate): New.
2761 Update prototypes.
2762
2763 * cpplex.c (expand_token_space): Handle both offset and
2764 nonoffset lists.
2765 (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete.
2766 (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist,
2767 _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens,
2768 _cpp_equiv_toklists): New.
2769 (_cpp_scan_line): Rename to _cpp_scan_until; add ability to
2770 stop at any single-character token, not just newline.
2771 (_cpp_lex_token): Remove special cases for #define and #if.
2772 (cpp_get_token): Expect # as a separate token type. Remove
2773 DIRECTIVE case.
2774 (_cpp_get_directive_token): Remove DIRECTIVE case.
2775 (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update.
2776
2777 * cpplib.c (_cpp_check_directive): Set dirno and
2778 SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags.
2779 (_cpp_handle_directive): Run # <number> through the same logic
2780 as normal directives.
2781 (do_define): Don't set parsing_define_directive. Use
2782 _cpp_scan_until. The list does not have a VSPACE at the end.
2783 (do_if): Save, clear, and restore only_seen_white around
2784 _cpp_parse_expr.
2785 (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/
2786 (do_assert, do_unassert): Rewrite.
2787
2788 * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION.
2789 (LIST_OFFSET): New flag.
2790 (struct cpp_toklist): Replace dir_handler and dir_flags with
2791 dirno and flags.
2792 (struct cpp_reader): Remove parsing_if_directive and
2793 parsing_define_directive.
2794
2795 2000-05-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2796
2797 * fixinc/inclhack.def (broken_cabs): Update fix to handle comments
2798 following the cabs decl which terminate on the following line.
2799 Add the corresponding test_text case.
2800
2801 2000-05-18 Neil Booth <NeilB@earthling.net>
2802
2803 * cppinit.c (cpp_reader_init): Initialise col_adjust and
2804 default tab stop size.
2805 (no_num, OPT_ftabstop): New.
2806 (handle_option): Handle "ftabstop=" command-line option.
2807 (print_help): Document it.
2808 * cpplex.c (COLUMN): Remove.
2809 (handle_newline): Reset col_adjust.
2810 (skip_whitespace): Update col_adjust as tabs encountered.
2811 (_cpp_lex_line): Update to use col_adjust. Call
2812 skip_whitespace for all whitespace.
2813 * cpplib.h (struct cpp_options): New member tabstop.
2814 (struct cpp_reader): New member col_adjust.
2815 (CPP_BUF_COL): Update.
2816 (CPP_BUF_COLUMN): New.
2817 * cpp.texi: Document "-ftabstop=" command line option.
2818
2819 Wed May 17 18:19:41 2000 Philippe De Muyter <phdm@macqel.be>
2820
2821 * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT
2822 files.
2823 * configure: Rebuilt.
2824
2825 Wed May 17 18:06:12 2000 John David Anglin <dave@hiauly1.hia.nrc.ca>
2826
2827 * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c.
2828
2829 * tree.c (build_common_tree_nodes): Do not build TI nodes unless
2830 HOST_BITS_PER_WIDE_INT is >= 64.
2831
2832 2000-05-17 Richard Henderson <rth@cygnus.com>
2833
2834 * jump.c (jump_optimize_1): Remove inactive but real insns
2835 in jump-to-next-insn optimization.
2836
2837 2000-05-17 Richard Henderson <rth@cygnus.com>
2838
2839 * toplev.c (rest_of_compilation): Don't call optimize_mode_switching
2840 unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos.
2841 Don't call recompute_reg_usage if no_new_pseudos is true.
2842 * lcm.c (optimize_mode_switching): Move ifdefs outside function.
2843 Return true if we did work; update global life information.
2844 * basic-block.h (optimize_mode_switching): Update decl.
2845
2846 2000-05-17 Neil Booth <neilb@earthling.net>
2847
2848 * cpplex.c (expand_name_space): Don't use ptrdiff_t.
2849
2850 2000-05-17 Zack Weinberg <zack@wolery.cumb.org>
2851
2852 * cpplib.c: New feature, #pragma system_header.
2853 * cpp.texi: Document special treatment of system headers, and
2854 the various mechanisms to get a header that special treatment.
2855
2856 2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2857
2858 * system.h (offsetof): Define at the very end, to ensure we prefer
2859 the platform's definition if available.
2860
2861 2000-05-16 Bruce Korb <bkorb@gnu.org>
2862
2863 * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE
2864 * fixinc/server.c: likewise
2865 * fixinc/fixfixes.c( char_macro_def_fix ): fix regex
2866 + #ifdef debugging code + use #def constant for
2867 sub-pattern count
2868 * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping
2869 on C++ math namespace
2870
2871 2000-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2872
2873 * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix):
2874 Don't check the return value of sprintf. Use asprintf to avoid
2875 buffer overflows.
2876
2877 Wed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
2878
2879 * flags.h (warn_unused_function, warn_unused_label,
2880 warn_unused_parameter, warn_unused_variable, warn_unused_value):
2881 Replace ``warn_unused''.
2882 (set_Wunused): Add declaration.
2883 * toplev.c (set_Wunused): New function.
2884 (warn_unused_function, warn_unused_label, warn_unused_parameter,
2885 warn_unused_variable, warn_unused_value): New variables.
2886 (W_options): Add -Wunused-function, -Wunused-function,
2887 -Wunused-label, -Wunused-parameter, -Wunused-variable and
2888 -Wunused-value. Delete -Wunused. Handled in decode_W_option.
2889
2890 * toplev.c (decode_W_option): Update -Wunused flags by calling
2891 set_Wunused.
2892 * c-decl.c (c_decode_option): Ditto for -Wall.
2893
2894 * stmt.c (expand_expr_stmt, expand_expr_stmt,
2895 warn_about_unused_variables): Replace warn_unused with more
2896 explicit warn_unused_value et.al.
2897 * function.c (expand_function_end): Ditto.
2898 * c-typeck.c (internal_build_compound_expr,
2899 internal_build_compound_expr): Ditto.
2900 * c-decl.c (poplevel, pop_label_level): Ditto.
2901 * toplev.c (check_global_declarations): Replace warn_unused with
2902 check for either warn_unused_function or warn_unused_variable.
2903
2904 * gcc.1, invoke.texi (Warning Options): Document
2905 -Wunused-function, -Wunused-function, -Wunused-label,
2906 -Wunused-parameter, -Wunused-variable and -Wunused-value options.
2907
2908 Wed May 17 10:28:12 2000 Philippe De Muyter <phdm@macqel.be>
2909
2910 * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in
2911 $(srcdir), not in the current directory.
2912
2913 2000-05-16 Richard Henderson <rth@cygnus.com>
2914
2915 * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the
2916 assembler supports it.
2917 (.fini, .init): Use a gp-relative indirect call.
2918 (__do_global_dtors_aux): Preserve the gp; rebundle.
2919 (__do_frame_setup): Likewise.
2920 * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1.
2921 (.init): Use a gp-relative indirect call.
2922 (__do_global_ctors_aux): Preserve the gp.
2923
2924 2000-05-16 Richard Henderson <rth@cygnus.com>
2925
2926 * flow.c (commit_one_edge_insertion): Be prepared for a return
2927 insn to be inserted on the edge with a normal jump.
2928 * jump.c (jump_optimize_1): Don't look to create return isns.
2929
2930 * flow.c (flow_delete_insn): Don't adjust reference count of notes.
2931 * jump.c (jump_optimize_1): Likewise.
2932 (returnjump_p): Verify the argument is a JUMP_INSN.
2933 * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL.
2934
2935 2000-05-16 Nick Clifton <nickc@cygnus.com>
2936
2937 * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace
2938 GET_RTX_CLASS (GET_CODE ()) == 'i'.
2939 (large_insn_p): Ditto.
2940 (m32r_is_insn): New function: Return true if the insn contains
2941 an executable instruction.
2942 (m32r_adjust_insn): Use m32r_is_insn.
2943 (m32r_sched_reorder): Use m32r_is_insn.
2944 (m32r_sched_variable_issue): Use m32r_is_insn.
2945
2946 2000-05-16 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2947
2948 * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like
2949 VAR_DECL.
2950
2951 * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
2952
2953 * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
2954 according to given options.
2955
2956 Tue May 16 12:17:31 2000 Jeffrey A Law (law@cygnus.com)
2957
2958 * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
2959 if X has VOIDmode either.
2960 (LIMIT_RELOAD_CLASS): Similarly.
2961
2962 * mn10200.md (indirect_jump, tablejump): Use "register_operand",
2963 not "general_operand" to match the processor's capabilities.
2964
2965 2000-05-16 Bruce Korb <bkorb@gnu.org>
2966
2967 * fixinc/README: corrected return address
2968 * fixinc/check.diff: regenerate, now that test works
2969 * fixinc/fixfixes.c(format_fix,format_write): reformatted
2970 (char_macro_def_fix,char_macro_use_fix): corrected and
2971 rewrote to use regex to parse the text
2972 * fixinc/inclhack.def: more testing
2973 * fixinc/fixincl.x: regenerated
2974
2975 * fixinc/inclhack.def: added several "test_text" attributes
2976 changed several fixes to use `c_fix = format'
2977 re-alphabetized the fixes
2978
2979 * fixinc/check.diff: regenerate
2980 * fixinc/fixincl.x: regenerate
2981 * fixinc/check.tpl: added `sparc' and `netinet' to the list
2982 of created dirs
2983
2984
2985 2000-05-16 Alexandre Oliva <aoliva@cygnus.com>
2986
2987 * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
2988
2989 2000-05-15 Richard Henderson <rth@cygnus.com>
2990
2991 * toplev.c (rest_of_compilation): Run full jump pass before
2992 find_basic_blocks of flow2.
2993
2994 2000-05-15 Richard Henderson <rth@cygnus.com>
2995
2996 * jump.c: Fix typos and clarify commentary from last change.
2997 (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
2998 (safe_to_remove_jump_p): Remove.
2999 (condjump_label): Use pc_set.
3000
3001 2000-05-15 Richard Henderson <rth@cygnus.com>
3002
3003 * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
3004 that get in the way after reload.
3005 (cond_exec_process_if_block): Skip a label heading THEN block.
3006
3007 2000-05-15 Richard Henderson <rth@cygnus.com>
3008
3009 * varasm.c (output_constant_pool): Abort instead of converting
3010 (improperly) deleted labels to zero.
3011
3012 2000-05-16 Neil Booth <NeilB@earthling.net>
3013
3014 * cpplex.c (parse_string2): Update comment.
3015 (cpp_lex_line): No special assertion treatment for '('.
3016 * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
3017 * cpplib.h (SYNTAX_ASSERT): Remove.
3018
3019 Mon May 15 21:45:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
3020
3021 * jump.c (condjump_p): Mark as depreached.
3022 (any_condump_p): New.
3023 (any_uncondump_p): New.
3024 (pc_set): New.
3025 (safe_to_remove_jump_p): New.
3026 * rtl.h (any_condump_p, any_uncondjump_p, pc_set
3027 safe_to_remove_jump_p): Declare.
3028
3029 Mon May 15 21:07:20 MET DST 2000 Jan Hubicka <jh@suse.cz>
3030
3031 * calls.c: Re-install both patches reverted by last patch.
3032 (struct arg_data): New field tail_call_reg.
3033 (initialize_argument_information): Initialize tail_call_reg
3034 (load_register_parameters): New argument flags, use
3035 tail_call_reg when emiting tail call sequence.
3036 (expand_call): Update call of load_register_parameters;
3037 copy unadjusted_args_size to adjusted_args_size.
3038
3039 Mon May 15 19:01:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
3040
3041 * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
3042 and bct_p parameters to flags.
3043 * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
3044 * rtl.h (loop_optimize): Update prototype.
3045 * toplev.c (rest_of_compilation): Update call of loop_optimize.
3046
3047 2000-05-15 Jakub Jelinek <jakub@redhat.com>
3048
3049 * calls.c (expand_call): Move expand_start_target_temps call after
3050 start_sequence().
3051
3052 2000-05-15 Neil Booth <NeilB@earthling.net>
3053
3054 * cpphash.c (trad_stringify, warn_trad_stringify,
3055 collect_params): Make some pointers pointers to const.
3056 * cpplex.c (auto_expand_name_space) Guaranteed to always
3057 expand by at least one character.
3058 (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
3059 (struct token_spelling): Use const U_CHAR * rather than PTR.
3060 (expand_name_space): Fix up token pointers if name space
3061 is moved when expanding.
3062 (INIT_NAME, cpp_scan_line, parse_name, parse_number,
3063 parse_string2, save_comment, spell_token, cpp_output_list):
3064 Update so the routines handle tokens with a direct pointer to
3065 their text, rather than an offset into the token's list's namebuf.
3066 (_cpp_lex_line): Rearrange for clarity.
3067
3068 * cpplib.c (_cpp_check_directive): Similarly.
3069 (do_define): Make SYM a pointer to const.
3070 * cpplib.h (struct cpp_name): Replace offset with direct pointer.
3071 (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
3072 (TOK_OFFSET): Delete.
3073 (TOK_NAME): Update.
3074
3075 2000-05-14 Geoffrey Keating <geoffk@cygnus.com>
3076
3077 * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
3078 64-bit ABI.
3079
3080 * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE
3081 into account.
3082 (logical_u_operand): Delete.
3083 (non_logical_cint_operand): Rewrite to take MODE into account.
3084 (non_logical_u_cint_operand): Delete.
3085 (boolean_operator): New function.
3086 (print_operand): Add new %q operand.
3087 * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
3088 remove logical_u_operand and non_logical_u_cint_operand,
3089 update logical_operand and non_logical_cint_operand.
3090 * config/rs6000/rs6000.md: Rewrite the patterns for performing
3091 logical operations to use %q.
3092
3093 * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
3094 (movdi): Make similar to movsi.
3095 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
3096 is no such thing as a DImode CONST_DOUBLE.
3097 * config/rs6000/rs6000.c (output_toc): Likewise.
3098
3099 * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
3100 codes when old mnemonics are in use. Print register names
3101 for cc registers when requested.
3102
3103 * optabs.c (expand_float): Don't allow mode widening that causes
3104 double rounding.
3105
3106 * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
3107 flags to their current names -maix64 and -maix32.
3108
3109 2000-05-14 Bruce Korb <bkorb@gnu.org>
3110
3111 * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
3112 and/or after current text of file
3113 * fixinc/fixlib.c(must_malloc):
3114 * fixinc/fixlib.h(must_malloc): + reformatting
3115 * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
3116 with usages of ``c_fix = wrap;''
3117 Add several tests and use the ``c_fix = format'' fixer more.
3118 * fixinc/fixincl.x: regen
3119 * fixinc/check.diff: regen
3120 * fixinc/check.tpl: emit the associated header with the missing
3121 test message
3122
3123 Sun May 14 17:58:59 2000 Hans-Peter Nilsson <hp@axis.com>
3124
3125 * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
3126 variables $src and $dst.
3127
3128 2000-05-13 Gabriel Dos Reis <gdr@codesourcery.com>
3129
3130 * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
3131 (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
3132 (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
3133 (struct output_buffer: emitted_prefix_p, prefixing_rule): New
3134 fields.
3135 (set_message_prefixing_rule): Declare.
3136
3137 * diagnostic.c: (current_prefixing_rule): New variable.
3138 (set_message_prefixing_rule): Define.
3139 (output_set_prefix): Adjust buffer->emitted_prefix_p.
3140 (init_output_buffer): Adjust Initialization.
3141 (output_emit_prefix): Rewrite. Take prefixing rules into account.
3142
3143 Sat May 13 11:05:47 2000 Philippe De Muyter <phdm@macqel.be>
3144
3145 * ifcvt.c (if_convert): Do not free NULL.
3146
3147 2000-05-12 Nick Clifton <nickc@cygnus.com>
3148
3149 * config/fr30/fr30.c (fr30_move_double): New function: Emit code
3150 to move a double word value.
3151 (di_operand): New function: Return true if the operand is suitbale
3152 for a double word move operation.
3153 (nonimmediate_di_operand): New function: Return true if the
3154 operand is a DImode register or MEM.
3155
3156 * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
3157 nonimmediate_di_operand.
3158
3159 * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
3160 nonimmediate_di_operand.
3161
3162 * config/fr30/fr30.md (movdi): New pattern. Required because
3163 other patterns generate DImode results.
3164 (movdi_insn): New pattern.
3165
3166 2000-05-12 Richard Henderson <rth@cygnus.com>
3167
3168 * config/alpha/alpha.c (struct shadow_summary): Define
3169 bitfields as type unsigned int.
3170
3171 Sat May 13 00:09:59 2000 Denis Chertykov <denisc@overta.ru>
3172
3173 * config/avr/t-avr: Added definition of FLOAT while generates
3174 fp-bit.c
3175
3176 * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
3177 peepholes for tst+jump = sbrs/sbrc optimization.
3178
3179 Fry May 12 20:03:00 CEST 2000 Jan Hubicka <jh@suse.cz>
3180
3181 * expr.c (emit_push_insn): Do not adjust stack pointer when
3182 preallocating.
3183
3184 Fri May 12 19:03:58 2000 Philippe De Muyter <phdm@macqel.be>
3185
3186 * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
3187 * system.h (offsetof): ... to here.
3188
3189 2000-05-12 Richard Henderson <rth@cygnus.com>
3190
3191 * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
3192 * final.c (final_end_function): Use app_disable. Rearrange note
3193 handling into a switch. Emit deleted labels.
3194 (output_asm_label): Generate label strings for deleted labels.
3195 * flow.c (tail_recursion_label_list): New.
3196 (find_basic_blocks_1): Set label_value_list directly. Collect list
3197 of tail recursion labels from call_placeholders. Don't add deleted
3198 labels to the label value list.
3199 (cleanup_cfg): Use free_EXPR_LIST_list.
3200 (flow_delete_insn_chain): Turn non-removable labels into notes.
3201 (flow_delete_block): Don't disable deleting the block because of
3202 a non-removable label.
3203 (tail_recursion_label_p): New.
3204 (merge_blocks_move_predecessor_nojumps): Don't disable the merge
3205 because of a label.
3206 (merge_blocks_move_successor_nojumps): Likewise. Also move a
3207 jump table.
3208 (merge_blocks): Disable a merge because of tail recursion labels.
3209 * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
3210 Use a more accurate measure of not merging the join block.
3211 (find_if_block): Don't disable conversion because of a label.
3212 (find_if_case_1, find_if_case_2): Likewise.
3213 * jump.c (duplicate_loop_exit_test): Preserve the kind of list
3214 element when copying.
3215 (squeeze_notes): Also leave EH notes.
3216 (mark_jump_label): Ignore deleted labels. Use an INSN_LIST for
3217 REG_LABEL notes.
3218 (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
3219 deleting a label.
3220 * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
3221 NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref
3222 referring to a deleted label. Convert tail handling to a switch.
3223 * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
3224 for NOTE_INSN_DELETED_LABEL.
3225 (NOTE): Fix commentary.
3226 * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
3227 (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
3228 (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
3229 (LABEL_NUSES, LABEL_REFS): Likewise.
3230 * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
3231
3232 2000-05-12 Bruce Korb <bkorb@gnu.org>
3233
3234 * fixinc/fixfixes.c(format_write): buglet & relaxed rules
3235 * fixinc/check.diff: updated
3236 * fixinc/inclhack.def: corrected & added some test_text-s
3237 * fixinc/genfixes: removed unneeded options to autogen invocation
3238 * fixinc/fixincl.tpl: Specified the output file
3239 * fixinc/fixfixes.c: visual appearance
3240 * fixinc/fixincl.x: regenerate
3241
3242 2000-05-12 Zack Weinberg <zack@wolery.cumb.org>
3243
3244 * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
3245 CTRL_defn_fix): Delete.
3246 (fix_char_macro_defines, fix_char_macro_uses): Rename to
3247 char_macro_def_fix and char_macro_use_fix, respectively. Put
3248 them into the FIXUP_TABLE. Get the string to search for from
3249 a c_fix_arg.
3250
3251 (format_write): New function.
3252 (format_fix): Use it.
3253
3254 (FIX_PROC_HEAD): Constify text parameter.
3255 (machine_name_fix): Constify all char *s.
3256 * fixtests.c (skip_quote): Remove double static.
3257
3258 * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
3259 ctrl_use_quotes): Update for new scheme.
3260 * fixincl.x: Regenerate.
3261
3262 2000-05-12 Alexandre Oliva <aoliva@cygnus.com>
3263
3264 * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
3265 DWARF2_DEBUG.
3266 (DWARF2_ASM_LINE_DEBUG_INFO): Define.
3267 (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
3268
3269 2000-05-11 Robert Lipe <robertlipe@usa.net>
3270
3271 * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
3272 * fixincl.x: Regenerate.
3273
3274 2000-05-11 Richard Henderson <rth@cygnus.com>
3275
3276 * calls.c: Revert both 05-09 patches.
3277
3278 2000-05-11 Alexandre Oliva <aoliva@cygnus.com>
3279
3280 * config/mn10300/mn10300.c (print_operand): Print FP constants in
3281 hexadecimal.
3282 * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
3283 for FP values.
3284
3285 * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
3286 and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
3287
3288 2000-05-11 Jason Merrill <jason@casey.cygnus.com>
3289
3290 * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
3291
3292 2000-05-11 Zack Weinberg <zack@wolery.cumb.org>
3293
3294 * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
3295
3296 Thu May 11 22:28:05 2000 Denis Chertykov <denisc@overta.ru>
3297
3298 * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
3299 * config/avr/avr.c (jump_over_one_insn_p): New function.
3300 * config/avr/avr.md: New peepholes added. Output test and
3301 conditional jump to "sbrc" or "sbrs" command.
3302
3303 2000-05-11 Mark Elbrecht <snowball3@bigfoot.com>
3304
3305 * cppmain.c (main): Use IS_DIR_SEPARATOR.
3306
3307 2000-05-11 Jakub Jelinek <jakub@redhat.com>
3308
3309 * except.c (find_exception_handler_labels_1): New function.
3310 (find_exception_handler_labels): Split into two functions, dive
3311 into CALL_PLACEHOLDERs when looking for exception handler labels.
3312
3313 2000-05-11 Stan Cox <scox@cygnus.com>
3314
3315 * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
3316 * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
3317 * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
3318
3319 2000-05-11 Bruce Korb <bkorb@gnu.org>
3320
3321 * fixinc/fixfixes.c (double_slash_fix): obsolete
3322 (else_endif_label_fix): obsolete
3323 (format_fix): new, unused as yet
3324 (main): obsolete
3325 * fixinc/fixlib.h: added fix description struct for use by format_fix
3326 * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
3327 * fixinc/Makefile.in: compile fixfixes.c and fixtests.c as separate
3328 modules. Removed the vestiges of the script version.
3329 Added support for "make check".
3330 * fixinc/check.diff: base diff file (needs work!!)
3331 * fixinc/check.tpl: quiet the fixup output
3332 * fixinc/fixtests.c (main): obsolete
3333 * fixinc/fixincl.sh: don't bother copying fixincl to ..
3334 * fixinc/fixincl.tpl: provide for arguments to c_fix routines
3335
3336 Thu May 11 11:57:02 MET DST 2000 Jan Hubicka <jh@suse.cz>
3337
3338 * toplev.c (rest_of_compilation): Remove dead code after
3339 combine.
3340
3341 2000-05-11 Zack Weinberg <zack@wolery.cumb.org>
3342
3343 * cpphash.c (collect_funlike_expansion): Make "# is not
3344 followed by a macro argument name" a pedwarn, not an error.
3345 Preserve the # in the output. Suppress the warning if lang_asm.
3346
3347 Thu May 11 01:19:31 2000 Jeffrey A Law (law@cygnus.com)
3348
3349 * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
3350 * configure: Rebuilt.
3351
3352 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
3353
3354 * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
3355
3356 2000-05-10 Kazu Hirata <kazu@hxi.com>
3357
3358 * combine.c (try_combine): Fix a typo.
3359
3360 Wed May 10 21:31:44 2000 Jim Wilson <wilson@cygnus.com>
3361
3362 * config/ia64/ia64.md (insv): Add comment.
3363
3364 2000-05-10 Richard Henderson <rth@cygnus.com>
3365
3366 * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
3367 * mklibgcc.in: Rewrite to not use functions. Don't shortcut
3368 dependancies on FPBIT and DPBIT.
3369
3370 2000-05-10 Nick Clifton <nickc@redhat.com>
3371
3372 * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
3373 when optimising for size.
3374 (mark_used_regs:) Ditto.
3375 (try_pre_increment_1): Ditto.
3376
3377 2000-05-10 Zack Weinberg <zack@wolery.cumb.org>
3378
3379 * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
3380 Make error message friendlier.
3381
3382 * cpphash.h (struct hashnode): Use struct hack for name
3383 member.
3384 * cpphash.c (struct hashdummy): New.
3385 (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
3386 (make_HASHNODE): No need to set ->name pointer. Correct
3387 setting of p.
3388 (cpp_lookup): Make 'dummy' a struct hashdummy. Tidy up a bit.
3389
3390 2000-05-10 Richard Henderson <rth@cygnus.com>
3391
3392 * flow.c (find_basic_blocks_1): Remove any spare bb_note
3393 after completion.
3394
3395 2000-05-10 Bruce Korb <bkorb@gnu.org>
3396
3397 * fixinc/gnu-regex.c: reg_syntax_t re_syntax_options must be static
3398
3399 2000-05-10 Eric Schweitz <schweitz@nortelnetworks.com>
3400
3401 * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
3402 after we enter .debug.
3403
3404 2000-05-10 Jason Merrill <jason@casey.cygnus.com>
3405
3406 * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
3407 abstract instance of a nested inline function.
3408
3409 * stor-layout.c (finish_record_layout): finalize_type_size
3410 before laying out the pending_statics.
3411
3412 Wed 10 May 09:36:47 2000 Neil Booth <NeilB@earthling.net>
3413
3414 * cpplex.c (spell_token): New function.
3415 (spell_string, spell_comment, spell_name): fold into
3416 spell_token.
3417 (I, S): Add macros.
3418 (E, H): Remove macros.
3419 (save_comment): Save comment opening characters too.
3420 (_cpp_lex_file): Update to use spell_token. Tidy up comment
3421 handling.
3422 * cpplib.h (I, S): Add macros.
3423 (E, H): Remove macros.
3424 (TTYPE_TABLE): Update entries for new speller.
3425 (SYNTAX_ASSERT): Remove.
3426
3427 Wed 10 May 09:08:30 2000 Neil Booth <NeilB@earthling.net>
3428
3429 * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
3430 when removing escaped newlines. Reverse sense of test for
3431 escaped newline.
3432
3433 2000-05-09 Richard Henderson <rth@cygnus.com>
3434
3435 * flow.c (find_basic_blocks_1): Do not delete the first
3436 bb_note we run across.
3437 (create_basic_block): Use reorder_insns to move an existing
3438 bb_note to the correct place.
3439
3440 2000-05-09 Richard Henderson <rth@cygnus.com>
3441
3442 * calls.c (expand_call): Increment currently_expanding_call
3443 before calling optimize_tail_recursion.
3444
3445 Tue May 9 18:54:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3446
3447 * reload1.c (reload_combine): Fix errors in last change.
3448
3449 2000-05-09 Zack Weinberg <zack@wolery.cumb.org>
3450
3451 * gcc.c (used_arg): Skip over a semicolon at the end of the
3452 split-up loop; don't break out of it.
3453
3454 * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
3455 (tree.o): Depend on output.h.
3456
3457 * c-decl.c (pending_invalid_xref_file,
3458 current_function_prototype_file): Constify.
3459 (pushdecl): Constify a local char *.
3460 (define_label): Constify filename parameter.
3461 * c-lex.c (init_parse): Constify parameter and return value.
3462 * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
3463 * c-tree.h: Update prototypes.
3464 * c-parse.in: Constify filename member of %union, and if_stmt_file.
3465 * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
3466 objc/objc-parse.c: Regenerate.
3467
3468 * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
3469 * dwarfout.h: Update prototypes.
3470 * expr.c (expand_expr): Constify a local char *.
3471 * flags.h: Constify main_input_filename.
3472 * function.c (expand_function_end): Constify filename parameter.
3473 * genrecog.c (make_insn_sequence): Use a character array for
3474 c_test_pos.
3475 (main): Remove unused variables.
3476 * input.h: Constify input_filename, main_input_filename, and
3477 file_stack.name. Update prototypes.
3478 * output.h: Declare first_global_object_name and
3479 weak_global_object_name here, as const char *.
3480 * stmt.c (expand_asm_operands): Constify filename parameter.
3481 * toplev.c (compile_file, push_srcloc, debug_start_source_file):
3482 Constify filename parameter.
3483 (input_filename, main_input_filename): Constify.
3484 * toplev.h: Update prototypes.
3485 * tree.c: Include output.h. Don't declare
3486 first_global_object_name or weak_global_object_name. Clean up string
3487 bashing in get_file_function_name_long.
3488 * tree.h (struct tree_decl): Constify filename member.
3489 (input_filename): Constify.
3490 Update prototypes.
3491 * varasm.c (first_global_object_name, weak_global_object_name):
3492 Constify.
3493 (assemble_start_function, assemble_variable): Clean up string bashing.
3494
3495 * gcc.c: Constify all spec-related strings initialized,
3496 transitively, from string constants. Constify all strings
3497 and string variables related to multilibs.
3498 (set_spec, read_specs): Cast argument to free to PTR.
3499 (used_arg): Do not modify multilib_matches. Use strncmp plus
3500 length comparison to compare multilib switches.
3501 * genmultilib: Constify everything declared in multilib.h.
3502
3503 Tue May 9 22:28:03 2000 Denis Chertykov <denisc@overta.ru>
3504
3505 * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
3506 as deleted.
3507
3508 Tue May 9 20:52:43 2000 Denis Chertykov <denisc@overta.ru>
3509
3510 * config/avr/avr-protos.h (extra_constraint): change a type of
3511 second argument from char to int to avoid warnings.
3512 (asm_output_byte): Likewise.
3513
3514 * config/avr/avr.c (MAX_LD_OFFSET) New macro.
3515 (initial_elimination_offset): Handle elimination from
3516 FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
3517 (legitimate_address_p): Use MAX_LD_OFFSET.
3518 (legitimize_address): Likewise.
3519 (out_movqi_r_mr): Likewise.
3520 (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
3521 (out_movsi_r_mr): Use MAX_LD_OFFSET.
3522 (out_movsi_mr_r): Likewise.
3523 (out_movqi_mr_r): Likewise.
3524 (out_movhi_mr_r): Likewise.
3525 (notice_update_cc): Correct CC for the ashrqi3 with the shift
3526 count as CONST_INT != 6.
3527 (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
3528 shift count is a CONSTANT_P, but not a CONST_INT.
3529 (ashlhi3_out): Coding style modifications.
3530 (ashlsi3_out): Likewise.
3531 (ashrhi3_out): Likewise.
3532 (ashrsi3_out): Likewise.
3533 (lshrhi3_out): Likewise.
3534 (lshrsi3_out): Likewise.
3535 (ashrqi3_out): Generate shift for any known constant count without
3536 scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
3537 but not a CONST_INT.
3538 (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
3539 shift count is a CONSTANT_P, but not a CONST_INT.
3540 (extra_constraint): change a type of
3541 second argument from char to int to avoid warnings.
3542 (asm_output_byte): Likewise.
3543 (asm_file_end): Output size generated commands count as a hex
3544 number too.
3545
3546 * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
3547
3548 * config/avr/avr.md (addhi3): Fragment commented by &&0 is
3549 removed.
3550 (ashlqi3): Values of "length" attribute changed. Shift count
3551 uses constraints 'n' instead of 'i'.
3552 (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
3553 shifts without clobber register.
3554 (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
3555 (call_insn): Correct test for which_alternative == 1 (was 0).
3556 (call_value_insn): Likewise.
3557
3558 * config/avr/t-avr: Remove definition of FLOAT while generates
3559 fp-bit.c
3560
3561 2000-05-09 Bruce Korb <bkorb@gnu.org>
3562
3563 * fixinc/check.tpl: Template for checking fixes
3564 * fixinc/inclhack.def: Added 'test_text' for many fixes
3565 disable hpux8_bogus_inlines on SCO
3566 * fixinc/fixinc.sco: Oh, yes, we don't need this any more.
3567
3568 Tue May 9 16:30:27 MET DST 2000 Jan Hubicka <jh@suse.cz>
3569
3570 * calls.c (expand_call): Reorganize somewhat in order
3571 to avoid unnecesary recalculation inside loop and make
3572 tail call failure code cleaner.
3573
3574 Tue May 9 06:30:20 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3575
3576 * alias.c (nonlocal_reference_p): Minor reformatting.
3577 * reload.c (find_equiv_reg): Simplify logic for
3578 CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
3579 some some reformatting.
3580 * reload1.c (reload_combine): Don't assume everything in
3581 CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
3582
3583 2000-05-08 Richard Henderson <rth@cygnus.com>
3584
3585 * final.c (current_insn_predicate): New.
3586 (final_scan_insn): Set it.
3587 * output.h (current_insn_predicate): Declare.
3588
3589 * ifcvt.c (cond_exec_process_insns): New argument prob_val.
3590 Attach it to call insns.
3591 (cond_exec_process_if_block): Track probability for true and
3592 false branches.
3593 (dead_or_predicable): Likewise.
3594
3595 * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
3596 (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
3597 (PROB_VERY_LIKELY, PROB_ALWAYS): New.
3598 (estimate_probability, expected_value_to_br_prob): Use them.
3599
3600 * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
3601 * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
3602 (ia64_expand_prediction): New.
3603 (emit_insn_group_barriers): Don't look at notes. Emit barriers
3604 as needed after calls.
3605 (ia64_epilogue_uses): Mark b0 used.
3606 * config/ia64/ia64.md (beq_true, beq_false): Remove.
3607 (bne_true, bne_false): Remove.
3608 (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
3609 (br_true, br_false): New. Use predicate_operator and
3610 ia64_expand_prediction.
3611 (return_true, return_false): Likewise.
3612 (call_internal): Use ia64_expand_prediction. Don't emit stop bit.
3613 (call_internal1, call_value_internal): Likewise.
3614 (call_value_internal1, call_multiple_values_internal1): Likewise.
3615
3616 * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
3617
3618 * config/ia64/ia64.md (extendsfdf2): Split only after reload.
3619
3620 2000-05-08 Richard Henderson <rth@cygnus.com>
3621
3622 * rtlanal.c (may_trap_p): Consider old-style and volatile
3623 asms to trap.
3624
3625 Mon May 8 17:16:48 2000 Jim Wilson <wilson@cygnus.com>
3626
3627 * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
3628
3629 2000-05-08 Richard Henderson <rth@cygnus.com>
3630
3631 * config/ia64/ia64.h (predicate_operator): Declare.
3632
3633 * config/ia64/ia64.md (extendsfdf2): Split the nop case out
3634 of existance.
3635
3636 * gensupport.c (process_rtx): Copy and post-process each member
3637 of the define_insn rtvec individually.
3638
3639 Mon 8 May 22:17:35 2000 Neil Booth <NeilB@earthling.net>
3640
3641 * cpplex.c (spell_token): New function.
3642 (TOKEN_LEN): Add 1 for whitespace.
3643 (_cpp_lex_file): Update to use spell_token.
3644 * cpplib.h (E): Remove.
3645 (TTYPE_TABLE): Update CPP_VSPACE entry.
3646
3647 2000-05-08 Richard Henderson <rth@cygnus.com>
3648
3649 * flow.c (init_propagate_block_info): Watch out for conditional
3650 branch to next instruction, and thus one outgoing edge.
3651
3652 * config/ia64/ia64.c (ia64_encode_section_info): Exit early
3653 for global register variables; don't special case __[CD]TOR_LIST__;
3654 mind ggc_p for string allocation.
3655
3656 2000-05-08 Nick Clifton <nickc@cygnus.com>
3657
3658 * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
3659
3660 2000-05-08 Bruce Korb <bkorb@gnu.org>
3661
3662 * fixinc/mkfixinc.sh: fixinc.sco is no longer used
3663 i?86-*-msdosdjgpp* no longer uses fixincludes
3664 * fixinc/genfixes: inclhack.sh and fixincl.sh are no longer generated
3665 * fixinc/inclhack.sh: deleted
3666 * fixinc/hackshell.tpl: deleted
3667 * fixinc/inclhack.tpl: deleted
3668 * fixinc/Makefile.in: Remove dependencies on above
3669 * fixinc/fixincl.sh: "DO NOT EDIT" text modified
3670
3671 2000-05-08 Andreas Jaeger <aj@suse.de>
3672
3673 * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
3674 support.
3675
3676 2000-05-07 Zack Weinberg <zack@wolery.cumb.org>
3677
3678 * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
3679 substitutions.
3680
3681 Sun 7 May 08:43:53 2000 Neil Booth <NeilB@earthling.net>
3682
3683 * cpplex.c: Move new lexer definitions and prototypes
3684 to top. Conditional include these and the code if
3685 NEW_LEXER is defined. Rename functions whose names
3686 clash if this code included.
3687
3688 Sun May 7 00:54:57 EDT 2000 John Wehle (john@feith.com)
3689
3690 * rtl.def (COND_EXEC): Clarify.
3691
3692 * i386.md (extendsidi2): Clobber (reg:CC 17) in the
3693 same fashion as zero_extendsidi2.
3694
3695 2000-05-06 Richard Henderson <rth@cygnus.com>
3696
3697 * config/ia64/ia64.c (predicate_operator): New.
3698 (ia64_print_operand): Handle 'J'.
3699 (rtx_needs_barrier): Handle COND_EXEC.
3700 * config/ia64/ia64.h (BRANCH_COST): Define.
3701 (PREDICATE_CODES): Update.
3702 * config/ia64/ia64.md: Docuement used unspec values.
3703 (attr predicable): New.
3704 (movxf, movxf_internal): New.
3705 (extendsfdf2): Don't comment out nop.
3706 (floatdidf2): Remove.
3707 (truncxfsf2, truncxfdf2, floatdixf2): New.
3708 (abssi2, absdi2): Put the neg in the "true" slot.
3709 (conditional branch instructions): Mark not predicable.
3710 (cmov*_internal): Use predicate_operator. Split to cond_exec.
3711 (abs*_internal): Likewise.
3712 (alloc, set_bsp): Mark not predicable.
3713 (barrier, insn_group_barrier, flush_cache): Likewise.
3714 (define_cond_exec): New.
3715
3716 2000-05-06 Richard Henderson <rth@cygnus.com>
3717
3718 * c-decl.c: Include "tm_p.h".
3719
3720 * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
3721 (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
3722 (ia64_expand_op_and_fetch): Declare.
3723 * config/ia64/ia64.c: Include "toplev.h". Kill trailing whitespace.
3724 (setjmp_operand): Constify variables for XSTR.
3725 (ia64_encode_section_info): Likewise.
3726 (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
3727 values to int.
3728 (ia64_asm_output_external): Constify name.
3729 (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
3730 (process_for_unwind_directive): Provide switch default.
3731 (ia64_expand_compare_and_swap): Remove unused variables.
3732 (ia64_expand_builtin): Likewise.
3733 * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
3734 for printing.
3735
3736 * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
3737 (symbolic_operand, function_operand, setjmp_operand): Likewise.
3738 (shift_count_operand, shift_32bit_count_operand): Likewise.
3739 (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
3740 (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
3741 (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
3742 (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
3743 (ia64_expand_builtin): Likewise.
3744 (call_multiple_values_operation): Make dest_regno unsigned.
3745
3746 2000-05-06 Richard Henderson <rth@cygnus.com>
3747
3748 * rtl.def (DEFINE_COND_EXEC): New.
3749 * md.texi: Document it.
3750
3751 * gensupport.c (input_file): Remove.
3752 (struct queue_elem): Add lineno.
3753 (rtx_ready_queue): Remove.
3754 (errors): New.
3755 (predicable_default): New.
3756 (predicable_true, predicable_false): New.
3757 (define_attr_queue, define_attr_tail): New.
3758 (define_insn_queue, define_insn_tail): New.
3759 (define_cond_exec_queue, define_cond_exec_tail): New.
3760 (other_queue, other_tail): New.
3761 (queue_pattern): New.
3762 (process_rtx): Add patterns to the appropriate queues.
3763 (is_predicable, identify_predicable_attribute): New.
3764 (n_alternatives, collect_insn_data): New.
3765 (alter_predicate_for_insn, alter_test_for_insn): New.
3766 (shift_output_template, alter_output_for_insn): New.
3767 (process_one_cond_exec, process_define_cond_exec): New.
3768 (init_md_reader): Read the entire file. Process define_cond_exec.
3769 (read_md_rtx): Return elements from the queues.
3770
3771 2000-05-06 Richard Henderson <rth@cygnus.com>
3772
3773 * flow.c (mark_set_1): Don't update conditional life info
3774 if the register is not_dead.
3775
3776 2000-05-06 Zack Weinberg <zack@wolery.cumb.org>
3777
3778 * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
3779 (mostlyclean): Also delete fixincl, fixinc.sh, and
3780 specs.ready, and make clean in the fixinc subdir.
3781
3782 2000-05-06 Richard Henderson <rth@cygnus.com>
3783
3784 * Makefile.in (gensupport.o): Compile for the host.
3785 (host-prefix gensuuprt.o): Remove.
3786 (genflags.o): Depend on gensupport.h and OBSTACK_H.
3787 (genattrtab.o): Likewise.
3788 (gencodes.o): Depend on gensupport.h.
3789 (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
3790 (genpeep.o, genattr.o, genoutput.o): Likewise.
3791
3792 * gensupport.c (obstack, rtl_obstack): New.
3793 (init_md_reader): Initialize rtl_obstack.
3794 * gensupport.h (rtl_obstack): Declare.
3795 (message_with_line): Declare.
3796
3797 * genattr.c: Remove all traces of obstack manipulation.
3798 * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
3799 * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
3800
3801 * genattrtab.c (obstack, rtl_obstack): Remove.
3802 (main): Don't init rtl_obstack.
3803 * genflags.c: Likewise.
3804
3805 * genrecog.c (message_with_line): Move ...
3806 * gensupport.c: ... here.
3807
3808 2000-05-06 Richard Henderson <rth@cygnus.com>
3809
3810 * c-typeck.c (build_c_cast): Remove dead code.
3811
3812 2000-05-06 Richard Henderson <rth@cygnus.com>
3813
3814 * flow.c (split_edge): Don't allocate global_live_at_start for
3815 the new block unless the old blocks had them as well.
3816
3817 * flow.c (mark_set_1): Respect not_dead when updating reg_live.
3818
3819 * ifcvt.c (noce_process_if_block): Don't use an insn_b from
3820 test_bb if a or b uses x.
3821
3822 2000-05-06 Zack Weinberg <zack@wolery.cumb.org>
3823
3824 * cpphash.h: Remove conditional #define of __extension__.
3825 * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
3826 RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
3827 (ENABLE_RTL_CHECKING only).
3828 * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
3829 CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
3830 (ENABLE_TREE_CHECKING only).
3831 * varray.h: Add __extension__ to VARRAY_CHECK macro
3832 (ENABLE_CHECKING only).
3833
3834 2000-05-06 Richard Earnshaw (reanrsha@arm.com)
3835
3836 Use new tail-calling mechanism on ARM.
3837 * arm.md (sibcall, sibcall_value): New expands.
3838 (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
3839 (tailcalling peepholes): Delete.
3840 (push_multi): Simplify.
3841 * arm.c (lr_save_eliminated): Delete definition.
3842 (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
3843 (output_return_instruction): Remove checks on lr_save_eliminated.
3844 (output_arm_prologue): Remove old tail-calling code.
3845 (arm_output_epilogue): New parameter, really_return. All callers
3846 changed. Handle tail-calling epilogues.
3847 * arm.h (lr_save_eliminated): Delete declaration.
3848 (frame_pointer_needed): Delete declaration.
3849 * arm-protos.h (arm_output_epilogue): Adjust prototype.
3850
3851 * arm.md (is_thumb): Examine symbol thumb_code, not expression
3852 TARGET_ARM.
3853 * arm.c (thumb_code): Define it.
3854 (arm_override_options): Set it.
3855 * arm.h (thumb_code): Declare it.
3856
3857 2000-05-06 Richard Earnshaw (reanrsha@arm.com)
3858
3859 * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
3860
3861 2000-05-06 Richard Earnshaw (reanrsha@arm.com)
3862
3863 * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
3864 bogus clobber to insns.
3865 (load_multiple_operation, store_mulitple_operation): Don't check
3866 for it.
3867 * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
3868
3869 * arm.md (and_scc, ior_scc): Add missing mode.
3870
3871 * arm.md (call_value_symbol): Remove predicate from op2.
3872
3873 * arm.h (SPECIAL_MODE_PREDICATES): Define.
3874
3875 Sat May 6 06:25:56 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3876
3877 * expr.c (get_subtarget): New function.
3878 (force_operand, expand_expr, do_store_flag): Use it.
3879
3880 * toplev.c (compile_file): Don't take strlen of NAME if null.
3881
3882 2000-05-06 David Edelsohn <edelsohn@gnu.org>
3883
3884 * xcoffout.c (xcoff_current_include_file,
3885 xcoff_current_function_file, xcoff_lastfile): Constify char *.
3886 (xcoffout_source_file, xcoffout_source_line): Make filename 'const
3887 char *'.
3888 (xcoffout_declare_function): Make name 'const char *'.
3889 (xcoffout_end_epilogue): Make fname 'const char *'
3890 * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
3891 xcoffout_declare_function, xcoffout_source_line): Match above.
3892
3893 * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
3894 -maix64 is error.
3895 * rs6000.c (print_operand): Fix lossage typo.
3896 (output_cbranch): Remove "cr" decoration for now.
3897 * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'.
3898
3899 Sat May 6 06:55:32 2000 Denis Chertykov <denisc@overta.ru>
3900
3901 * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
3902 constant count.
3903
3904 2000-05-05 Bruce Korb <bkorb@gnu.org>
3905
3906 * fixinc/genfixes: Improve the matching for make target names
3907
3908 2000-05-05 Catherine Moore <clm@cygnus.com>
3909
3910 * c-common.c (decl_attributes): For TYPE_DECLs attach the
3911 attribute to the decl.
3912 * c-decl.c (pushdecl): Propagate the USED attribute to the
3913 type copy.
3914
3915 2000-05-05 Richard Henderson <rth@cygnus.com>
3916
3917 * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
3918 same way emit_group_load does.
3919
3920 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
3921
3922 * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
3923
3924 * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
3925 (main): Likewise.
3926
3927 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
3928
3929 * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
3930
3931 Fri May 5 10:29:21 2000 Marc Espie <espie@cvs.openbsd.org>
3932
3933 * config/openbsd.h (LINK_SPEC): pass correct flags to ld
3934 to support -shared, on platforms with dynamic libraries.
3935
3936 Fri May 5 10:27:06 2000 Philippe De Muyter <phdm@macqel.be>
3937
3938 * system.h (S_ISBLK): Provide fallback definition.
3939
3940 2000-05-05 Geoff Berry <geoffb@bops.com>
3941
3942 * extend.texi (Extended Asm): Document inability to give asm
3943 statements access to condition codes.
3944
3945 2000-05-05 Marek Michalkiewicz <marekm@linux.org.pl>
3946
3947 * varasm.c (asm_emit_uninitialised): Use 0, not NULL
3948 as arg 2 of UNIQUE_SECTION.
3949
3950 Fri May 5 10:11:41 2000 Jeffrey A Law (law@cygnus.com)
3951
3952 * predict.c: Remove May 4 change.
3953 * bb-reorder.c (make_reorder_chain): Do not perform block movement
3954 if we have predicted the branch at 50-50 probability.
3955
3956 2000-05-05 Richard Henderson <rth@cygnus.com>
3957
3958 * flow.c (init_propagate_block_info): Fix merge error
3959 in HAVE_conditional_execution code.
3960
3961 Fri May 5 07:43:50 2000 Denis Chertykov <denisc@overta.ru>
3962
3963 * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
3964 shift cycle for unknown shift count. Also generates dec + brpl.
3965 (ashlqi3_out): Don't generate dec + brpl which now generates by
3966 `out_shift_with_cnt'.
3967 (ashlhi3_out): Likewise.
3968 (ashlsi3_out): Likewise.
3969 (ashrqi3_out): Likewise.
3970 (ashrhi3_out): Likewise.
3971 (ashrsi3_out): Likewise.
3972 (lshrqi3_out): Likewise.
3973 (lshrhi3_out): Likewise.
3974 (lshrsi3_out): Likewise.
3975
3976 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
3977
3978 * gcc.c (free_split_directories): Correct typo in explanation
3979 of make_relative_prefix.
3980
3981 2000-05-04 Geoff Keating <geoffk@cygnus.com>
3982
3983 * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
3984 comparison codes to branch_comparison_operator.
3985
3986 2000-05-04 Richard Henderson <rth@cygnus.com>
3987
3988 * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
3989
3990 2000-05-04 Richard Henderson <rth@cygnus.com>
3991
3992 * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
3993 (DPBIT_FUNCS): Remove _sf_to_usi.
3994 (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
3995
3996 * ifcvt.c (noce_process_if_block): Fail if A or B modified
3997 between condition and jump.
3998
3999 * libgcc2.c (near eh_context_specific): Comment #endif string.
4000 * longlong.h: Don't use strings with embedded newlines.
4001
4002 2000-05-04 Geoff Keating <geoffk@cygnus.com>
4003
4004 * config/rs6000/rs6000-protos.h: Add output_cbranch.
4005 * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
4006 (print_operand): Delete %t and %T codes.
4007 (output_cbranch): New function. Support branch prediction.
4008 * config/rs6000/rs6000.md: Use output_cbranch for
4009 conditional branches and returns.
4010
4011 2000-05-04 Jason Merrill <jason@casey.cygnus.com>
4012
4013 * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
4014 * stor-layout.c (place_field): Likewise.
4015 * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
4016 * expr.c (store_expr): Make align unsigned.
4017 * explow.c (plus_constant_wide): Make low words unsigned.
4018 * expmed.c (choose_multiplier): Likewise.
4019 * fold-const.c (fold): Likewise.
4020 * tree.h (build_int_2): Likewise.
4021 * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
4022 * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
4023 (init_emit): Change cast to unsigned char*.
4024 * varasm.c (compare_constant_1): Add cast to char*.
4025 * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
4026 * reload1.c (reload): Likewise.
4027
4028 * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
4029
4030 Thu May 4 14:37:23 2000 Jeffrey A Law (law@cygnus.com)
4031
4032 * predict.c (estimate_probability): If no prediction was found, then
4033 predict the successor that is the next physical block (if such a
4034 successor exists).
4035
4036 2000-05-04 Richard Henderson <rth@cygnus.com>
4037
4038 * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
4039
4040 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4041
4042 * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
4043
4044 2000-05-04 Mumit Khan <khan@xraylith.wisc.edu>
4045
4046 * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move
4047 attribute macros from here ...
4048 (CPP_SPEC): to here.
4049 * i386/mingw32.h (CPP_PREDEFINES): Likewise.
4050 (CPP_SPEC): Likewise.
4051 * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros.
4052
4053 * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
4054 (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
4055
4056 2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4057
4058 * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
4059
4060 * diagnostic (vbuild_message_string, build_message_string,
4061 build_location_prefix, output_get_prefix, init_output_buffer,
4062 output_notice, vline_wrapper_message_with_location,
4063 v_message_with_decl, default_print_error_function): De-constify.
4064 (set_real_maximum_length): Prototype.
4065
4066 * diagnostic.h (struct output_buffer, init_output_buffer,
4067 output_get_prefix, output_set_prefix): De-constify.
4068
4069 * function.c (init_function_start): Constify.
4070
4071 * gensupport.c (remove_constraints, process_rtx): Prototype.
4072
4073 * gthr-posix.h: Indent uses of #pragma.
4074
4075 * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
4076 Prototype.
4077
4078 * predict.c (find_expected_value): Delete prototype.
4079 (expected_value_to_br_prob): Initialize variable `ev_reg'.
4080
4081 * sbitmap.h (debug_sbitmap): Prototype.
4082
4083 * ssa.c (compute_coalesced_reg_partition): Prototype.
4084
4085 * stor-layout.c (debug_rli): Prototype.
4086
4087 * tree.h (round_down): Prototype.
4088 (init_function_start): Constify.
4089
4090 2000-05-04 Zack Weinberg <zack@wolery.cumb.org>
4091
4092 * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
4093 (overly conservative). Change extern inline wrappers to
4094 static inline, define them always, use PARAMS properly.
4095 * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
4096 whitespace warnings for \f and \v at the beginning of a line.
4097
4098 Thu May 4 10:03:50 2000 Jeffrey A Law (law@cygnus.com)
4099
4100 * haifa-sched.c (schedule_insns): Free the flow edge list when it
4101 is no longer needed
4102
4103 2000-05-04 Bruce Korb <bkorb@gnu.org>
4104
4105 * fixincl/inclhack.def: added broken_cabs -
4106 Remove `extern double cabs' declarations from math.h
4107 * fixincl/inclhack.sh: regen
4108 * fixincl/fixincl.x: regen
4109 * fixincl/fixincl.c: Remove BOGOSITY code
4110 * fixincl/mkfixinc.sh: Remove code for installing "shell" version
4111
4112 Thu May 4 09:45:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4113
4114 * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
4115 MEM_ALIAS_SET.
4116 * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
4117 when calling MEM_COPY_ATTRIBUTES.
4118 * emit-rtl.c (operand_subword, change_address): Likewise.
4119 * explow.c (stabilize): Likewise.
4120 * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
4121 * integrate.c (copy_rtx_and_substitute): Likewise.
4122 * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
4123 when calling MEM_COPY_ATTRIBUTES.
4124 (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
4125 Likewise.
4126 * cse.c (gen_lowpart_if_possible): Likewise.
4127 * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
4128 * optabs.c (gen_move_insn): Likewise.
4129 * recog.c (validate_replace_rtx_1): Likewise.
4130 * simplify-rtx.c (add_mem_for_addr): Likewise.
4131 * stmt.c (expand_anon_union_decl): Likewise.
4132 * config/arm/arm.md: Likewise.
4133 * config/h8300/h7300.c (fix_bit_operand): Likewise.
4134 * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
4135 (block_move_no_loop, block_move_sequence): Likewise.
4136 * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
4137 * config/alpha/alpha.c (get_aligned_mem): Likewise.
4138 Clear MEM_ALIAS_SET.
4139 * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
4140 MEM_COPY_ATTRIBUTES.
4141
4142 2000-05-03 Robert Lipe <robertlipe@usa.net>
4143
4144 * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
4145 to suppress libgcc1.
4146 (i[34567]86-*-sco3.2v5*) Likewise.
4147 (i[34567]86-*-sco3.2v4*) Likewise.
4148 (i[34567]86-*-sco) Likewise.
4149 (i[34567]86-*-solaris2) Likewise.
4150 (i[34567]86-*-sysv5*) Likewise.
4151 (i[34567]86-*-sysv4*) Likewise.
4152 (i[34567]86-*-udk*) Likewise.
4153 (i[34567]86-*-sysv*) Likewise.
4154
4155 2000-05-03 Zack Weinberg <zack@wolery.cumb.org>
4156
4157 * cpphash.h (U): New define, to correct type of string constants.
4158 (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
4159 routines, to do casts when passing unsigned strings to libc.
4160 * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
4161
4162 * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
4163 * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
4164 * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
4165 * cpplex.c (parse_ifdef, parse_include, validate_else): Make
4166 second argument an U_CHAR *.
4167
4168 * cppinit.c (builtin_array): Make name and value U_CHAR *, add
4169 length field, clean up initializer.
4170 (ISTABLE): Add __extension__ to designated-
4171 initializers version.
4172 * cpplex.c (CHARTAB): Likewise.
4173
4174 * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
4175 case so the file won't be empty.
4176
4177 Wed May 3 21:01:46 2000 Jason Eckhardt <jle@cygnus.com>
4178
4179 * bb-reorder.c (struct reorder_block_def): Member succ removed.
4180 (REORDER_BLOCK_SUCC): Removed.
4181 (enum reorder_skip_type): Removed.
4182 (skip_insns_between_block): Renamed to skip_insns_after_block.
4183 Removed second argument. Removed dead code and cleaned up.
4184 (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
4185 (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
4186 second parameter to skip_insns_after_block.
4187
4188 Wed May 3 13:29:54 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4189
4190 * tree.c (staticp, case LABEL_DECL): New case.
4191
4192 2000-05-03 Richard Henderson <rth@cygnus.com>
4193
4194 * Makefile.in (start.encap): Do not depend on LIBGCC1.
4195
4196 * mklibgcc1.in: Fix typo last change.
4197
4198 2000-05-03 Jason Merrill <jason@casey.cygnus.com>
4199
4200 * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
4201 (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
4202 (GCC_CFLAGS): Use it.
4203 (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
4204 * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
4205 objc/Make-lang.in: Use it.
4206
4207 2000-05-03 Jason R Thorpe <thorpej@zembu.com>
4208
4209 * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
4210
4211 2000-05-03 Richard Henderson <rth@cygnus.com>
4212
4213 * mklibgcc.in: Restrict OLDCC=GCC test to native. Equate
4214 LIBGCC1 empty with libgcc1.null.
4215
4216 Wed May 3 12:55:46 2000 Jim Wilson <wilson@cygnus.com>
4217
4218 * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
4219 change.
4220
4221 2000-05-03 Greg McGary <gkm@gnu.org>
4222
4223 * tree.h (tree_common): Add bounded_flag member. Remove
4224 inaccurate comment about number of remaining bits.
4225 (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
4226 BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
4227 MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
4228 TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
4229 TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
4230 (TYPE_QUAL_BOUNDED): New constant.
4231 (TYPE_QUALS): Handle bounded qualifier.
4232 (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
4233 (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
4234 TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
4235 TYPE_AMBIENT_BOUNDEDNESS): New macros.
4236 (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
4237 (tree_type): Add pointer_depth member. Remove
4238 inaccurate comment about number of remaining bits.
4239 (DECL_POINTER_DEPTH): Add macro.
4240 (tree_decl): Add pointer_depth member.
4241
4242 Wed May 3 22:52:53 2000 Denis Chertykov <denisc@overta.ru>
4243
4244 * config/avr/avr-protos.h (test_hard_reg_class): Declared.
4245 * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
4246 (lshrhi3_out): Likewise.
4247 (ashrsi3_out): bugfix in shift by 8.
4248 (test_hard_reg_class): New function.
4249 * config/avr/avr.md: Bugfix inside conditions in peepholes.
4250 (ashlhi3): removed define_expand of this pattern.
4251 (*ashlhi3_insn): renamed to ashlhi3.
4252 (ashlsi3): removed define_expand of this pattern.
4253 (*ashlsi3_insn): renamed to ashlsi3.
4254 (ashrqi3): removed define_expand of this pattern.
4255 (*ashrqi3_insn): renamed to ashrqi3.
4256 (ashrhi3): removed define_expand of this pattern.
4257 (*ashrhi3_insn): renamed to ashrhi3.
4258 (ashrsi3): removed define_expand of this pattern.
4259 (*ashrsi3_insn): renamed to ashrsi3.
4260 (lshrhi3): removed define_expand of this pattern.
4261 (*lshrhi3_insn): renamed to lshrhi3.
4262 (lshrsi3): removed define_expand of this pattern.
4263 (*lshrsi3_insn): renamed to lshrsi3.
4264
4265 2000-05-03 Rodney Brown <RodneyBrown@pmsc.com>
4266
4267 * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
4268 inclusion of "system.h".
4269
4270 Wed May 3 11:43:53 2000 Jim Wilson <wilson@cygnus.com>
4271
4272 * config/ia64/ia64.c (ia64_encode_section_info): Add check for
4273 TREE_ASM_WRITTEN.
4274
4275 2000-05-03 David Mosberger <davidm@hpl.hp.com>
4276
4277 * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
4278 if -mauto-pic is on.
4279 (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
4280 -mconstant-gp is in effect and function-descriptors are being used
4281 to make indirect calls.
4282 * config/ia64/ia64.h (MASK_CONST_GP): New macro.
4283 (MASK_AUTO_PIC): Ditto.
4284 (TARGET_CONST_GP): Ditto.
4285 (TARGET_AUTO_PIC): Ditto.
4286 (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
4287 (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
4288 -mno-pic is in effect.
4289 (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
4290 * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
4291 -mauto-pic is in effect.
4292 (gprel64_offset): New pattern.
4293 (load_gprel64): Ditto.
4294 (call): Handle -mauto-pic like -mno-pic (don't use fptr). If
4295 -mconstant-gp is in effect, no need to preserve gp around direct
4296 calls.
4297 (call_value): Ditto.
4298 * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
4299 (FUNCTION_PROFILER): Define.
4300 * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
4301 @fptr() directive when -mno-pic or -mauto-pic is in effect.
4302 (ASM_OUTPUT_DESTRUCTOR): Ditto.
4303
4304 2000-05-03 Richard Henderson <rth@cygnus.com>
4305
4306 * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
4307 (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
4308 (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
4309 (mklibgcc, libgcc.mk): New targets.
4310 (libgcc.a): Use libgcc.mk.
4311 (stmp-multilib): Likewise.
4312 (stmp-multilib-sub): Remove.
4313 (mostlyclean): Don't delete libgcc2 temp files.
4314 * configure.in (AC_PROG_CC_C_O): Add.
4315 (NO_MINUS_C_MINUS_O): Substitute it.
4316 (all_outputs): Add mklibgcc.
4317 * mklibgcc.in: New file.
4318
4319 2000-05-03 Jason Merrill <jason@casey.cygnus.com>
4320
4321 * cppexp.c (op_t): Make an int.
4322
4323 * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
4324
4325 * varasm.c (initializer_constant_valid_p): Fix parenthesis.
4326
4327 * gensupport.c (process_rtx): Fix macros used.
4328
4329 2000-05-03 Richard Henderson <rth@cygnus.com>
4330
4331 * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
4332 call-clobbered registers of a call.
4333
4334 Wed May 3 12:40:53 2000 Clinton Popetz <cpopetz@cygnus.com>
4335
4336 * gensupport.c: New file.
4337 * gensupport.h: New file.
4338 * Makefile.in (HOST_RTL): Depend on gensupport.
4339 (gensupport.o) New rule.
4340 * genattr.c: Use gensupport for reading .md files.
4341 * genattrtab.c: Ditto.
4342 * gencodes.c: Ditto.
4343 * genconfig.c: Ditto.
4344 * genemit.c: Ditto.
4345 * genextract.c: Ditto.
4346 * genflags.c: Ditto.
4347 * genopinit.c: Ditto.
4348 * genoutput.c: Ditto.
4349 * genpeep.c: Ditto.
4350 * genrecog.c: Ditto.
4351 * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
4352 * md.texi (Insn Splitting): Document define_insn_and_split.
4353
4354 Tue May 2 00:20:30 2000 Jason Eckhardt <jle@cygnus.com>
4355
4356 * flow.c (verify_flow_info): Added two more sanity checks. The
4357 first checks that the blocks are numbered consecutively. The second
4358 checks that n_basic_blocks is actually equal to the number of
4359 basic blocks in the insn chain.
4360
4361 2000-05-03 Zack Weinberg <zack@wolery.cumb.org>
4362
4363 * cpplib.h: Add accessor macros for token lists.
4364 * cpplib.c, cpphash.c, cpplex.c: Use them.
4365
4366 Wed May 3 09:29:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4367
4368 * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
4369 memory usage if not in a function.
4370 * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
4371 return address if static.
4372
4373 Wed May 3 13:14:49 MET DST 2000 Jan Hubicka <jh@suse.cz>
4374
4375 * ifcvt.c (noce_try_cmove_arith): Use may_trap_p to thest
4376 whether address may trap.
4377
4378 Tue May 2 23:38:37 2000 Jason Eckhardt <jle@cygnus.com>
4379
4380 * bb-reorder (chain_reorder_blocks): Changed code to test for
4381 EDGE_FALLTHRU rather than making erroneous assumption that the
4382 first outgoing edge is the fall-through edge.
4383
4384 Tue May 2 18:20:31 2000 Donald Lindsay <dlindsay@hound.cygnus.com>
4385
4386 * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new
4387 ABI for varargs, across all MIPS. This is incompatible because the
4388 va_list (__builtin_va_list) structure is different, so a compilation
4389 unit passing a va_list and a compilation unit being passed one, should
4390 both be compiled with the same ABI. (The old structure had two
4391 pointers, now it has three.)
4392
4393 Tue May 2 19:18:43 2000 Jason Eckhardt <jle@cygnus.com>
4394
4395 * bb-reorder.c (struct reorder_block_def): Remove members end,
4396 block_begin, and block_end.
4397 (REORDER_BLOCK_OLD_END): Delete.
4398 (REORDER_BLOCK_BEGIN): Delete.
4399 (REORDER_BLOCK_END): Delete.
4400 (chain_reorder_blocks): Remove dead code.
4401
4402 Tue May 2 17:06:53 2000 Jason Eckhardt <jle@cygnus.com>
4403
4404 * bb-reorder.c (remove_scope_notes): Check for both types of scope
4405 notes as the end of a basic block before deleting.
4406
4407 2000-05-02 Mumit Khan <khan@xraylith.wisc.edu>
4408
4409 * final.c (final_start_function): Fix spelling of "necessary".
4410
4411 2000-05-02 Jason Merrill <jason@casey.cygnus.com>
4412
4413 * toplev.c (debug_ignore_block): Return int.
4414 * dwarf2out.c (dwarf2out_ignore_block): Likewise.
4415 * toplev.h, dwarf2out.h: Adjust.
4416 * emit-rtl.c (remove_unnecessary_notes): Test return value.
4417
4418 * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
4419 * toplev.c, final.c, rtl.h: Adjust.
4420
4421 2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
4422
4423 * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
4424 * configure.in: Look for makeinfo in the unified tree, then
4425 for a system makeinfo which is sufficiently new.
4426 * Makefile.in: If configure says makeinfo is too old, don't
4427 build or install Info documentation.
4428
4429 2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
4430
4431 * cpphash.c (collect_params): Fix off-by-one error.
4432 (dump_hash_helper): Dump all four macro nodetypes.
4433
4434 2000-05-02 Jakub Jelinek <jakub@redhat.com>
4435
4436 * cpphash.c (trad_stringify): Adjust p after stringification as
4437 well.
4438
4439 2000-05-02 Zack Weinberg <zack@wolery.cumb.org>
4440
4441 * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
4442 (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
4443
4444 * cppfiles.c (file_cleanup): Delete.
4445 * cpphash.c (macro_cleanup): Delete.
4446 (collect_objlike_expansion, collect_funlike_expansion,
4447 macarg, scan_arguments): Remove CPP_POP case.
4448
4449 * cpplex.c (null_cleanup): Delete.
4450 (cpp_pop_buffer): Do the work that was done in the cleanups
4451 here. Call _cpp_unwind_if_stack from here.
4452 (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
4453 cpp_scan_buffer): Run until we see CPP_EOF and the top of
4454 stack is the buffer _below_ the one we stacked.
4455 (cpp_get_token): Always pop an exhausted buffer. Return
4456 CPP_EOF unless it's a macro buffer. Don't call _cpp_handle_eof.
4457 * cpplib.c (skip_if_group): Don't call cpp_get_token to
4458 increment the line number.
4459 (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
4460
4461 * fix-header.c (read_scan_file) [parsing getchar()]: Run until
4462 we see CPP_EOF and the top of stack is the buffer _below_ the
4463 one we stacked.
4464 * scan-decls.c: Likewise.
4465
4466 2000-05-02 Andrew Haley <aph@cygnus.com>
4467
4468 * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
4469 where this function is called for the second time on a decl that
4470 has had its section info changed in such a way as to move it out
4471 of small data/bss.
4472 * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
4473
4474 2000-05-01 Richard Henderson <rth@cygnus.com>
4475
4476 * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
4477 the sequence we're moving, not to merge_bb->head.
4478
4479 2000-05-01 Richard Henderson <rth@cygnus.com>
4480
4481 * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
4482 reference to alpha/t-linux.
4483 (alpha*-*-linux-gnu*): Likewise.
4484 * configure: Rebuild.
4485
4486 * calls.c (expand_call): Don't emit reg notes for a sibcall.
4487
4488 * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
4489 if not in SSA form.
4490
4491 * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
4492
4493 2000-05-01 Jason Merrill <jason@casey.cygnus.com>
4494
4495 * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
4496 TREE_THIS_VOLATILE.
4497
4498 2000-05-01 Richard Henderson <rth@cygnus.com>
4499
4500 * ifcvt.c (noce_emit_cmove): Conditionally compile call to
4501 emit_conditional_move.
4502
4503 2000-05-01 Jakub Jelinek <jakub@redhat.com>
4504
4505 * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
4506 as the dynamic linker.
4507
4508 2000-05-01 Zack Weinberg <zack@wolery.cumb.org>
4509
4510 * cppfiles.c (open_include_file): Open file in blocking mode.
4511 (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
4512 Only exclude block devices and directories.
4513
4514 * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
4515 static. Allocate the hashnode and its string in the same
4516 block of memory.
4517 (del_HASHNODE): Don't free h->name.
4518 (_cpp_lookup): If there is no entry for this string, create
4519 one, of type T_VOID.
4520 (_cpp_lookup_slot): Delete.
4521 * cpphash.h: Update prototypes.
4522
4523 * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
4524 not hp == NULL.
4525 * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
4526 do_unassert, cpp_defined): Use _cpp_lookup. Don't create a
4527 node here, just fill in the value field properly. "Delete"
4528 entries by setting the value field to T_VOID. Check for
4529 hp->type == T_VOID, not hp == NULL.
4530
4531 * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
4532 * cpperror.c, cppexp.c, cpplex.c, cpplib.c: Don't include
4533 hashtab.h.
4534
4535 2000-05-01 Alexandre Oliva <aoliva@cygnus.com>
4536
4537 * config/mn10300/mn10300.c (print_operand_address): Do not add
4538 zero to SP.
4539
4540 * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
4541 adjusted by less than 256 bytes, use ret regardless of having any
4542 callee-saved register to restore.
4543
4544 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
4545
4546 * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
4547
4548 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
4549
4550 * config/i386/djgpp.h (INT_ASM_OP): Define.
4551 (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
4552 (ASM_WEAKEN_LABEL): Define.
4553 (MASK_BNU210): Define.
4554 (SUBTARGET_SWITCHES): Define.
4555 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
4556 (MAKE_DECL_ONE_ONLY): Define.
4557 (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
4558
4559 2000-05-01 Mumit Khan <khan@xraylith.wisc.edu>
4560
4561 * i386/cygwin.h (INT_ASM_OP): Define.
4562
4563 Mon May 1 18:20:06 2000 Denis Chertykov <denisc@overta.ru>
4564
4565 * config/avr/avr.c (address_cost): renamed to avr_address_cost.
4566 * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
4567
4568 Mon May 1 17:50:44 2000 Denis Chertykov <denisc@overta.ru>
4569
4570 * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
4571 __tmp_reg__ and __zero_reg__ initialization.
4572
4573 2000-04-30 Richard Henderson <rth@cygnus.com>
4574
4575 * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
4576
4577 * ifcvt.c (noce_process_if_block): Fail the conversion if X is
4578 referenced bewteen the condition and the jump. Don't delete
4579 anything but the jump.
4580
4581 Sun Apr 30 22:48:24 2000 Jason Eckhardt <jle@cygnus.com>
4582
4583 * bb-reorder.c (scope_def): New struct.
4584 (scope_forest_info): New struct.
4585 (struct reorder_block_def): New member "scope".
4586 (REORDER_BLOCK_SCOPE): New macro.
4587 (relate_bbs_with_scopes): New function and prototype.
4588 (make_new_scope): Likewise.
4589 (build_scope_forest): Likewise.
4590 (remove_scope_notes): Likewise.
4591 (insert_intra_1): Likewise.
4592 (insert_intra_bb_scope_notes): Likewise.
4593 (insert_inter_bb_scope_notes): Likewise.
4594 (rebuild_scope_notes): Likewise.
4595 (free_scope_forest_1): Likewise.
4596 (free_scope_forest): Likewise.
4597 (dump_scope_forest): Likewise.
4598 (dump_scope_forest_1): Likewise.
4599 (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
4600 Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
4601 block.
4602 (reorder_basic_blocks): Added calls to build_scope_scope_forest
4603 and remove_scope_notes before reordering is done. Added calls to
4604 rebuild_scope_notes, free_scope_forest, and reorder_blocks after
4605 after reordering is done.
4606
4607 2000-40-30 Bruce Korb <bkorb@gnu.org>
4608
4609 * fixinc/inclhack.def: Added definitions needed by OSR5,
4610 removed two stale entries (defined away with OLD_CPP).
4611 * fixinc/inclhack.sh: regen
4612 * fixinc/fixincl.x: regen
4613
4614 2000-04-30 Richard Henderson <rth@cygnus.com>
4615
4616 * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
4617 from the last insn in the sequence.
4618
4619 2000-04-30 Zack Weinberg <zack@wolery.cumb.org>
4620
4621 * cpplex.c (cpp_idcmp): New function.
4622 * cpplib.h: Prototype it.
4623 * scan_decls.c (scan_decls): Use it to inspect token names.
4624 * fix-header.c (read_scan_file): Likewise. Set system_header_p on
4625 the file being run through the preprocessor.
4626 (check_macro_names): Provide length of token to cpp_defined.
4627
4628 * Makefile.in: Remove stale warning message.
4629
4630 * cppfiles.c (redundant_include_p): Provide length of token to
4631 cpp_defined.
4632 * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
4633 values are unsigned int.
4634 (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
4635 (_cpp_lookup_slot): Do not calculate the hash, either.
4636 * cpphash.h: Update prototypes.
4637 * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
4638 Hashes are unsigned int. Calculate hash here, pass by value
4639 to _cpp_lookup_slot.
4640
4641 2000-04-30 Bernd Schmidt <bernds@cygnus.co.uk>
4642
4643 * simplify-rtx.c (check_value_useless): Delete function.
4644 (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
4645 by hand.
4646 (cselib_invalidate_regno): Likewise.
4647 (cselib_invalidate_mem_1): Likewise.
4648 (references_value_p): Recognize useless values by the fact that they
4649 have no locations.
4650 (discard_useless_values): Likewise.
4651 (cselib_record_set): This may turn a useless value
4652 into a useful one.
4653
4654 2000-04-30 Richard Henderson <rth@cygnus.com>
4655
4656 * config/d30v: New port.
4657
4658 * configure.in (d30v-*): Set fp format.
4659 * configure: Rebuild.
4660
4661 2000-04-30 Richard Henderson <rth@cygnus.com>
4662
4663 * ifcvt.c: New file.
4664 * Makefile.in (OBJS): Add it.
4665 (ifcvt.o): New target.
4666 * jump.c (jump_optimize_1): Remove all code related to if-conversion,
4667 and conditional arithmetic.
4668 (find_insert_position): Remove.
4669 * timevar.def (TV_IFCVT, TV_IFCVT2): New.
4670 * toplev.c (DFI_ce, DFI_ce2): New.
4671 (dump_file): Add ce and ce2 dumps.
4672 (rest_of_compilation): Run if_convert a couple o times. Set
4673 cse_not_expected after cse2. Don't set no_new_pseudos until
4674 after sched1 or recompute_reg_usage.
4675
4676 2000-04-30 Richard Henderson <rth@cygnus.com>
4677
4678 * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
4679 (crtend.o, crtbeginS.o, crtendS.o): Likewise.
4680
4681 2000-04-30 Richard Henderson <rth@cygnus.com>
4682
4683 * flow.c (struct reg_cond_life_info): New.
4684 (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
4685 (init_propagate_block_info): Initialize them.
4686 (free_propagate_block_info): Destruct them.
4687 (mark_set_1): Consider conditional life before killing a register.
4688 (mark_regno_cond_dead): New.
4689 (free_reg_cond_life_info): New.
4690 (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
4691 (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
4692 (mark_used_reg): Record conditional life.
4693
4694 * haifa-sched.c (schedule_insns): Disable death counting
4695 sanity check for HAVE_conditional_execution.
4696
4697 2000-04-30 Richard Henderson <rth@cygnus.com>
4698
4699 * Makefile.in (TIMEVAR_H): New.
4700 (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
4701 (timevar.h): Remove rule.
4702
4703 2000-04-29 Richard Henderson <rth@cygnus.com>
4704
4705 * config/alpha/crtend.asm: Use C comments instead of #.
4706 * config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden.
4707
4708 * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
4709
4710 2000-04-29 Zack Weinberg <zack@wolery.cumb.org>
4711
4712 * cpphash.h (enum node_type: Take out T_MCONST.
4713 (union hashval): Move into struct hashnode.
4714 (struct hashnode): Pack tighter. Remove file, line, col
4715 members.
4716 * cpphash.c: Constify most of the macro-definition structures.
4717 (struct definition): Replace by struct object_defn
4718 and struct funct_defn. Put file, line, column information
4719 here. All users updated to match.
4720 (_cpp_create_definition, _cpp_macroexpand): Remove special
4721 case for #define WORD OTHERWORD.
4722 * cpplib.c (do_undef): Remove T_MCONST case.
4723
4724 * cpphash.h: Move struct reflist, struct definition, and the
4725 DEFINITION typedef to cpphash.c. Use 'struct definition *' in
4726 union hashval. _cpp_free_definition takes a HASHNODE pointer.
4727 * cpphash.c (_cpp_free_definition): Free data pointed to by
4728 MCONST, XCONST, MACRO, and FMACRO nodes properly.
4729 (_cpp_create_definition, del_HASHNODE): Just call
4730 _cpp_free_definition to clear out a hashnode.
4731 * cpplib.c (do_pragma_poison): Likewise.
4732
4733 Sat Apr 29 12:25:17 2000 Alexandre Oliva <aoliva@cygnus.com>
4734
4735 * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
4736 LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
4737 FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
4738 (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
4739 (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
4740 REGNO_AM33_P): Redefine in terms of the new macros.
4741 (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
4742 (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
4743 STRUCT_VALUE): Likewise.
4744 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
4745 ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise. Moved.
4746
4747 Sat Apr 29 01:18:45 MET DST 2000 Jan Hubicka <jh@suse.cz>
4748
4749 * regmove.c (struct record_stack_memrefs_data): New.
4750 (record_stack_memrefs): New function.
4751 (combine_stack_adjustments_for_block): Use it.
4752
4753 Sat Apr 29 01:15:27 MET DST 2000 Jan Hubicka <jh@suse.cz>
4754
4755 * calls.c (calls_function_1): Propertly handle TREE_LIST expressions;
4756 use special_function_p to detect alloca.
4757
4758 Fri Apr 28 16:30:33 2000 Marc Espie <espie@cvs.openbsd.org>
4759
4760 * gcc.texi: Fixes for makeinfo 4.0 --html.
4761
4762 2000-04-28 Zack Weinberg <zack@wolery.cumb.org>
4763
4764 * pcp.h: Delete file.
4765
4766 2000-04-28 Kazu Hirata <kazu@hxi.com>
4767
4768 * h8300.c (function_epilogue): Clean up flags when the last insn
4769 in a function is a barrier.
4770
4771 2000-04-28 Chris Demetriou <cgd@sibyte.com>
4772
4773 * configure.in (sparc-hal-solaris2*): protect [] glob from
4774 my expansion.
4775 (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
4776 rather than hard-coded constants in target_cpu_default2.
4777 * configure: Regenerate.
4778
4779 2000-04-28 Jason Merrill <jason@casey.cygnus.com>
4780
4781 * tree.c (get_callee_fndecl): Extract the initial value from
4782 a readonly decl.
4783
4784 2000-04-28 Richard Henderson <rth@cygnus.com>
4785
4786 * varasm.c (record_constant_1): Record the CODE_LABEL when
4787 taking the address of a LABEL_REF.
4788
4789 2000-04-28 Richard Henderson <rth@cygnus.com>
4790 Jan Hubicka <jh@suse.cz>
4791
4792 * calls.c (combine_pending_stack_adjustment_and_call): Return the
4793 adjustment; don't do the stack adjust.
4794 (expand_call): Call compute_argument_block_size right before
4795 allocating the block; update comment; don't do alignment sanity
4796 checking for sibling call; use args_size instead of
4797 unadjusted_args_size before args_size is adjusted. Use
4798 combine_pending_stack_adjustment_and_call to compute stack adjust
4799 for must_preallocate case.
4800
4801 * expr.c (push_block): Remove shadow `temp' in inner scope.
4802
4803 2000-04-28 Jason Merrill <jason@casey.cygnus.com>
4804
4805 * toplev.c (rest_of_compilation): Call
4806 note_deferral_of_defined_inline_function even if the function
4807 can't be inlined.
4808
4809 2000-04-28 Scott Bambrough <scottb@netwinder.org>
4810
4811 * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
4812
4813 2000-04-28 Richard Henderson <rth@cygnus.com>
4814
4815 * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
4816
4817 2000-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4818
4819 * timevar.c (init_timevar): DeANSIfy function definition.
4820
4821 2000-04-27 Alex Samuel <samuel@codesourcery.com>
4822
4823 * Makefile.in (timevar.o): Depend on flags.h.
4824 * timevar.c (unused_stack_instances): New variable.
4825 (timevar_push): Take a timevar_stack_def from
4826 unused_stack_instances if available.
4827 (timevar_pop): Push the popped timevar_stack_def onto
4828 unused_stack_instances.
4829 (TIMEVAR_ENABLE): New macro.
4830 (timevar_def): Make standalone a 1-bit field. Add field used.
4831 (get_time): Rename parameter to now. Return after clearing it if
4832 not TIMEVAR_ENABLE.
4833 (init_timevar): Do nothing if not TIMEVAR_ENABLE.
4834 (timevar_pop): Likewise.
4835 (timevar_stop): Likewise.
4836 (timevar_push): Likewise. Mark the timing variable as used.
4837 (timevar_start): Likewise.
4838 (timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print
4839 timevars that were never used.
4840
4841 2000-04-27 Mark Mitchell <mark@codesourcery.com>
4842
4843 * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
4844 always TREE_READONLY.
4845
4846 2000-04-27 Ulrich Drepper <drepper@cygnus.com>
4847
4848 * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
4849 for call instruction with mode QImode.
4850
4851 2000-04-27 Alex Samuel <samuel@codesourcery.com>
4852
4853 * Makefile.in (OBJS): Add timevar.o.
4854 (toplev.o): Depend on timevar.h.
4855 (ggc-simple.o): Likewise.
4856 (ggc-page.o): Likewise.
4857 (timevar.o): New rule.
4858 (timevar.h): New rule.
4859
4860 * timevar.h: New file.
4861 * timevar.c: Likewise.
4862 * timevar.def: Likewise.
4863
4864 * toplev.h (gc_time, parse_time, varconst_time): Remove.
4865 * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
4866 throughout.
4867 (TIMEVAR): Remove macro.
4868 (gc_time, parse_time, varconst_time, integration_time, jump_time,
4869 cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
4870 flow_time, combine_time, regmove_time, sched_time,
4871 local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
4872 sched2_time, dbr_sched_time, reorder_blocks_time,
4873 rename_registers_time, shorten_branch_time, stack_reg_time,
4874 to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
4875 all_time): Remove.
4876 (compile_file): Don't initialize time variables. Call
4877 init_timevar and start TV_TOTAL timer. Call timevar_print instead
4878 of many calls to print_time.
4879 (rest_of_compilation): Add timing for reload_cse_regs.
4880 (get_run_time): Removed to timevar.c.
4881 (print_time): Likewise.
4882 (get_run_time): Implement using TV_TOTAL time variable.
4883 (print_time): Get total run time from get_run_time.
4884 * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
4885 computing elapsed time explicitly.
4886 * ggc-simple.c (ggc_collect): Likewise.
4887 (gc_time): Remove declaration.
4888
4889 2000-04-27 Mark Mitchell <mark@codesourcery.com>
4890
4891 * calls.c (combine_pending_stack_adjustment_and_call): New function.
4892 (expand_call): Use it.
4893
4894 2000-04-27 Jan Hubicka <jh@suse.cz>
4895
4896 * flow.c (mark_set_1): Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
4897 fields.
4898
4899 Thu Apr 27 12:47:00 2000 Alexandre Oliva <aoliva@cygnus.com>
4900
4901 * config/mn10300/mn10300.md (movhi): Simplify. Prefer data
4902 registers.
4903
4904 Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka <jh@suse.cz>
4905
4906 * function.c (epilogue_done): Pass whole insn to record_insns.
4907
4908 Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka <jh@suse.cz>
4909
4910 * cse.c (CSE_ADDRESS_COST): Remove.
4911 (find_best_addr): Add new parameter "MODE", use address_cost instead
4912 of CSE_ADDRESS_COST
4913 (address_cost): New.
4914 (fold_rtx): Update call of find_best_addr.
4915 * rtl.h (address_cost): Declare.
4916 * loop.c (general_induction_var): Add new parameter "MODE", use
4917 address_cost instead of ADDRESS_COST
4918 (init_loop): Use address_cost instead of ADDRESS_COST.
4919 (check_insn_for_givs): Update call of general_induction_var.
4920 (find_mem_givs): Likewise.
4921 (consec_sets_giv): Likewise.
4922 * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
4923 * i386.c (ix86_address_cost): New.
4924 * i386-protos.h (ix86_address_cost): Declare.
4925
4926 Thu Apr 27 11:45:16 2000 Alexandre Oliva <aoliva@cygnus.com>
4927
4928 * config/mn10300/mn10300.md (movqi): Simplify. Prefer data
4929 registers.
4930
4931 Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka <jh@suse.cz>
4932
4933 * expr.c (store_expr): Use clear_storage instead of direct memset
4934 libcall.
4935
4936 Thu Apr 27 10:36:51 2000 Alexandre Oliva <aoliva@cygnus.com>
4937
4938 * config/mn10300/mn10300.c (mn10300_address_cost): Test
4939 ASHIFT, AND and LABEL_REF.
4940
4941 Thu Apr 27 15:08:46 MET DST 2000 Jan Hubicka <jh@suse.cz>
4942
4943 * invoke.texi (-foptimize-sibling-calls): Fix.
4944
4945 Thu Apr 27 14:54:22 MET DST 2000 Jan Hubicka <jh@suse.cz>
4946
4947 * loop.c (load_mems) Don't use hard registers for the hoisting.
4948
4949 * unroll.c (unroll_loop): Avoid overflow in the n_iterations
4950 calculation; rename const_equiv array in the preconditioning code
4951 from loop_unroll to loop_unroll_precondition
4952
4953 2000-04-27 Richard Henderson <rth@cygnus.com>
4954
4955 * flow.c (struct propagate_block_info): Remove new_dead, new_live;
4956 add new_set.
4957 (propagate_one_insn): Clear it. Don't update reg_live here.
4958 (init_propagate_block_info): Update for pbi member changes.
4959 (free_propagate_block_info): Likewise.
4960 (mark_set_1): Know that zero_extract, sign_extract, and
4961 strict_low_part don't kill their argument. Alter hard subregs.
4962 Update new_set for non-CLOBBER sets. Update reg_live.
4963 (find_auto_inc): Update reg_live, not new_dead.
4964 (mark_used_reg): Update reg_live, not new_live. Examine new_set
4965 to determine if the reg in question was set this insn. Only update
4966 reg info with PROP_REG_INFO.
4967
4968 2000-04-26 Richard Henderson <rth@cygnus.com>
4969
4970 * flow.c (allocate_reg_life_data): Set max_regno here ...
4971 (life_analysis): ... not here.
4972
4973 * flow.c (calculate_global_regs_live): Force stack pointer
4974 live at end.
4975
4976 2000-04-26 Richard Henderson <rth@cygnus.com>
4977
4978 * jump.c (redirect_exp_1): Rework from old redirect_exp. Never
4979 commit change group changes.
4980 (invert_exp_1): Similarly.
4981 (redirect_exp, invert_exp): Use them.
4982 (redirect_jump_1): New.
4983 (invert_jump_1): New.
4984 (jump_optimize_1): Remove code subsumed by condexec.c.
4985 * rtl.h (invert_jump_1, redirect_jump_1): Declare.
4986
4987 2000-04-26 Richard Henderson <rth@cygnus.com>
4988
4989 * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
4990
4991 * genconfig.c (main): Set all HAVE_foo to 1.
4992
4993 * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
4994
4995 2000-04-26 Alex Samuel <samuel@codesourcery.com>
4996
4997 * invoke.texi: Document -fssa flag.
4998
4999 2000-04-26 Richard Henderson <rth@cygnus.com>
5000
5001 * flow.c (count_reg_sets_1): Remove.
5002 (count_reg_sets, count_reg_references): Remove.
5003 (recompute_reg_usage): Implement with update_life_info.
5004 Reallocate life data.
5005
5006 2000-04-26 Richard Henderson <rth@cygnus.com>
5007
5008 * flow.c (update_life_info): Consider blocks null to mean the
5009 universal set.
5010 (calculate_global_regs_live): Likewise.
5011 (life_analysis): Do that instead of collecting all_blocks.
5012
5013 2000-04-26 Richard Henderson <rth@cygnus.com>
5014
5015 * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
5016 a still-valid conditional jump.
5017
5018 2000-04-26 Richard Henderson <rth@cygnus.com>
5019
5020 * jump.c (invert_jump): Always invert REG_BR_PROB. Do it correctly.
5021
5022 * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
5023 * flow.c (calculate_loop_depth): Remove.
5024 * output.h (calculate_loop_depth): Don't declare.
5025 * toplev.c (rest_of_compilation): Expand calculate_loop_depth
5026 inline; run estimate_probability at the same time.
5027
5028 2000-04-26 Neil Booth <NeilB@earthling.net>
5029
5030 * cpplib.h: "~=" is not a single pp-token.
5031 * cpplex.c: Correct commentary.
5032
5033 2000-04-26 Richard Henderson <rth@cygnus.com>
5034
5035 * flow.c (mark_set_1): New arguments code and flags; update all
5036 callers. Track regno_first and regno_last; do HARD_REGNO_NREGS
5037 test in one place. Tidy flags tests. Don't bias REG_N_REFS by
5038 loop_depth when optimizing for size. Do new_dead update after
5039 emitting REG_UNUSED notes. Merge mark_set_reg code.
5040 (mark_set_reg): Remove.
5041 (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
5042 arrange to not emit REG_UNUSED notes.
5043
5044 2000-04-26 Richard Henderson <rth@cygnus.com>
5045
5046 * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
5047 * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
5048
5049 2000-04-26 Richard Henderson <rth@cygnus.com>
5050
5051 * flow.c (propagate_one_insn): Break out from propagate_block.
5052 (init_propagate_block_info): Likewise.
5053 (free_propagate_block_info): Likewise.
5054 (propagate_block): Use them. Export.
5055 * basic-block.h: Declare them all.
5056
5057 2000-04-26 Richard Henderson <rth@cygnus.com>
5058
5059 * basic-block.h (life_analysis): Declare here ...
5060 * output.h: ... not here.
5061 * flow.c (life_analysis): Remove nregs parameter; replace
5062 remove_dead_code with flags. Remove ssa dead code check.
5063 Only init alias analysis if we'll use it.
5064 * reg-stack.c (reg_to_stack): Update life_analysis arguments.
5065 * ssa.c (convert_to_ssa): Likewise.
5066 (convert_from_ssa): Likewise.
5067 * toplev.c (rest_of_compilation): Likewise.
5068
5069 2000-04-26 Richard Henderson <rth@cygnus.com>
5070
5071 * flow.c (flow_delete_block): Rename from delete_block. Export.
5072 * basic-block.h (flow_delete_block): Declare.
5073
5074 2000-04-26 David S. Miller <davem@redhat.com>
5075
5076 * optabs.c (emit_libcall_block): Verify insns with INSN_P before
5077 taking a PATTERN of it.
5078
5079 2000-04-26 <NeilB@earthling.net>
5080
5081 * cpplex.c (spell_other, spell_char): Remove.
5082 (SPELL_CHAR): New.
5083 (token_spelling, trigraph_map): Use unsigned chars.
5084 (_cpp_lex_line): Tidy up the switch statement.
5085 * cpplib.h: Implement spell_char with spell_string.
5086 (C): New.
5087
5088 2000-04-26 <RodneyBrown@pmsc.com>
5089
5090 * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
5091 * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
5092
5093 2000-04-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5094
5095 * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
5096 reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
5097 dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
5098 dwarf2out_return_save, dwarf2out_return_reg,
5099 dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
5100 add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
5101 gen_compile_unit_die, dwarf2out_init): Constify a char*.
5102
5103 * dwarf2out.h (dwarf2out_init): Likewise.
5104
5105 * dwarfout.c (filename_entry, primary_filename, last_filename,
5106 type_tag, output_compile_unit_die, dwarfout_init): Likewise.
5107
5108 * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
5109 dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
5110 dwarf2out_return_reg): Likewise.
5111
5112 2000-04-26 Andreas Jaeger <aj@suse.de>
5113
5114 * extend.texi (Function Attributes): Fix description of pure
5115 attribute.
5116
5117 2000-04-26 Jason Merrill <jason@casey.cygnus.com>
5118
5119 * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
5120 before calling rest_of_compilation.
5121
5122 2000-04-26 Andreas Jaeger <aj@suse.de>
5123
5124 * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
5125 last patch.
5126
5127 2000-04-25 Richard Henderson <rth@cygnus.com>
5128
5129 * cse.c (cse_insn): Emit barrier after unconditional jump.
5130
5131 * calls.c (expand_call): Disable tail call generation once
5132 rtx_equal_function_value_matters is false.
5133
5134 * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
5135 like EDGE_EH edges.
5136
5137 2000-04-25 Jason Merrill <jason@casey.cygnus.com>
5138
5139 * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
5140
5141 * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
5142
5143 * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
5144 is the primary DIE for a member function.
5145 (gen_decl_die): Call set_decl_origin_self here.
5146 * dwarfout.c (output_decl): And here.
5147 * integrate.c (output_inline_function): Not here.
5148 Don't clear DECL_INLINE until after calling rest_of_compilation.
5149 (set_decl_origin_self): No longer static.
5150 * tree.h: Add prototype.
5151 * toplev.c (note_deferral_of_defined_inline_function): Only write
5152 out abstract instance for actual inlines.
5153
5154 2000-04-25 Alexandre Oliva <aoliva@cygnus.com>
5155
5156 * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
5157 EXTENDED_REGS only if TARGET_AM33.
5158 * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
5159 SP_REGS to register allocation and reloading unless absolutely
5160 necessary.
5161 (movsi3): Remove special-case of adding non-constants to SP.
5162
5163 2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5164
5165 * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
5166 INCLUDES to search and does not provide any of its own. Also it
5167 now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
5168 parameters. Also it does not call AC_DEFINE.
5169 (gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls
5170 AC_DEFINE and provides for automatic entries for autoheader.
5171 (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
5172
5173 * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
5174 so we can pass -I flags and include gansidecl.h/system.h in this
5175 test.
5176
5177 * acconfig.h: Delete all NEED_DECLARATION_* entries.
5178
5179 2000-04-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5180
5181 * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
5182 ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
5183 ENABLE_GC_ALWAYS_COLLECT): Delete entries.
5184
5185 * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
5186 ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
5187 ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
5188 for these macros. Clean up spacing and linewraps.
5189
5190 2000-04-26 Jason Merrill <jason@casey.cygnus.com>
5191
5192 * calls.c (expand_call): Use get_callee_fndecl.
5193
5194 * print-tree.c (print_node): Print the chain of an _EXPR.
5195
5196 Tue Apr 25 16:16:04 2000 Andrew MacLeod <amacleod@cygnus.com>
5197 Jim Wilson <wilson@cygnus.com>
5198 Andrew Haley <aph@cygnus.com>
5199
5200 * config/ia64/crtbegin.asm: Add IA-64 unwind support. Correct alloc
5201 and gp save/restore problems.
5202 * config/ia64/crtend.asm: Add IA-64 unwind support.
5203 * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
5204 in fr_pad_size calculation.
5205 (save_restore_insns): Move PR save area. Correct uses of
5206 RTX_FRAME_RELATED_P.
5207 (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
5208 (ia64_expand_epilogue): Add eh_epilogue support.
5209 (ia64_function_prologue): Emit .prologue directive.
5210 (ia64_init_machine_status, ia64_mark_machine_status): New functions.
5211 (ia64_override_options): Set init_machine_status and
5212 mark_machine_status.
5213 (rtx_needs_barrier): Handle bsp reads and writes.
5214 (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
5215 New static variables.
5216 (process_set, process_for_unwind_directive): New functions.
5217 * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
5218 ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
5219 ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
5220 macros.
5221 (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
5222 (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
5223 (struct machine_function): Define.
5224 * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
5225
5226 2000-04-25 Bruce Korb <bkorb@gnu.org>
5227
5228 * fixinc/Makefile.in: make the removal of old programs more
5229 robust
5230 * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
5231 install-bin and install-sh
5232
5233 2000-04-25 Nick Clifton <nickc@cygnus.com>
5234
5235 * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
5236 defined, define to return zero.
5237 (function_cannot_inline_p): If a function has any target
5238 specific attributes, then use the macro
5239 FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
5240 whether it can be inlined. If it cannot, issue a suitable
5241 explanation.
5242
5243 * tm.texi: Add a new node 'Inlining' to document the new macro
5244 FUNCTION_ATTRIBUTE_INLINABLE_P.
5245
5246 2000-04-25 Zack Weinberg <zack@wolery.cumb.org>
5247
5248 * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
5249 commentary.
5250
5251 2000-04-25 Neil Booth <NeilB@earthling.net>
5252
5253 Restore previous patch, plus the following fixes:
5254
5255 * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
5256 flags, not CPP_OPEN_PAREN.
5257 * cpplex.c (expand_token_space, init_token_list,
5258 cpp_free_token_list): Put the dummy token at list->tokens[-1].
5259 (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
5260
5261 Tue Apr 25 14:06:40 2000 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
5262
5263 * config/i386/freebsd.h (INT_ASM_OP): Define.
5264
5265 Tue Apr 25 14:51:07 MET DST 2000 Jan Hubicka <jh@suse.cz>
5266
5267 * loop.c (strength_reduce): Fix typo in the last checkin.
5268
5269 Tue Apr 25 07:33:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5270
5271 * stor-layout.c (finalize_record_size): Simplify to use existing
5272 functions.
5273 (compute_record_mode): No longer static.
5274 * tree.h (compute_record_mode): New declaration.
5275
5276 2000-04-25 Neil Booth <NeilB@earthling.net>
5277
5278 * Revert my patch below until cause of build failures
5279 determined.
5280
5281 2000-04-25 Richard Henderson <rth@cygnus.com>
5282
5283 * combine.c (combine_instructions): Add missing argument
5284 to try_combine.
5285
5286 * toplev.c (rest_of_compilation): Delay sibcall optimization
5287 until after emit_eh_context.
5288
5289 2000-04-24 Nick Clifton <nickc@redhat.com>
5290
5291 * combine.c (combine_instructions): Do not try to combine a
5292 sequence of insns when the second insn has been replaced by a
5293 note.
5294
5295 Mon Apr 24 17:34:18 2000 Mumit Khan <khan@xraylith.wisc.edu>
5296
5297 * gcc.c (load_specs): New static function.
5298 (read_specs): Use it.
5299
5300 * gcc.c (lookup_compiler): Make multiple passes for case
5301 insensitive filesystems.
5302
5303 2000-04-24 Neil Booth <NeilB@earthling.net>
5304
5305 * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
5306 * cpphash.h (_cpp_check_directive): new.
5307 * cpplex.c (handle_newline, cpp_free_token_list,
5308 init_trigraph_map, trigraph_ok, trigraph_replace,
5309 backslash_start, skip_block_comment, skip_line_comment,
5310 skip_whitespace, parse_name, parse_number, parse_string,
5311 copy_comment, _cpp_lex_line, spell_char, spell_string,
5312 spell_comment, spell_name, spell_other, _cpp_lex_file,
5313 _cpp_output_list): new.
5314 (expand_name_space): take length argument.
5315 (init_token_list): add comment list initialisation.
5316 (cpp_scan_line): use auto_expand_name_space. PREV_WHITESPACE
5317 instead of HSPACE_BEFORE.
5318
5319 * cpplib.c (_cpp_check_directive): new
5320 * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
5321 DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
5322 (HSPACE_BEFORE): delete.
5323 (TTYPE_TABLE): rearrange.
5324 (struct cpp_toklist): update.
5325
5326 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5327
5328 * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
5329 gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
5330 argument form of AC_DEFINE.
5331
5332 * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
5333 HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
5334 WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
5335 HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
5336 HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
5337
5338 * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
5339
5340 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5341
5342 * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
5343 deduced.h): Use -isystem, not -I, for including system headers.
5344
5345 2000-04-24 Nick Clifton <nickc@cygnus.com>
5346
5347 * config/fr30/fr30.md (addsi3): Do not use small add instruction if
5348 the source register is the frame pointer or arg pointer.
5349 (addsi3_small_int): Disallow if source register is the frame
5350 pointer or arg pointer.
5351
5352 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5353
5354 * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
5355 call to AC_MSG_RESULT.
5356
5357 2000-04-24 Martin v. Löwis <loewis@informatik.hu-berlin.de>
5358
5359 * invoke.texi: Correct grammatical errors, document
5360 -fno-gnu-keywords as identical to -fno-asm for C++.
5361
5362 2000-04-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5363
5364 * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
5365 GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
5366 GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
5367 AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
5368 EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
5369
5370 * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
5371 GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
5372 GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
5373 GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
5374 new macros names.
5375
5376 2000-04-24 Mumit Khan <khan@xraylith.wisc.edu>
5377
5378 * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
5379 (pop_alignment): Likewise.
5380 (handle_pragma_token): Likewise.
5381
5382 2000-04-24 Robert Lipe <robertlipe@usa.net>
5383
5384 * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
5385
5386 2000-04-24 Hiroyuki Machida <machida@sm.sony.co.jp>
5387
5388 * combine.c (try_combine): Update reg_nonzero_bits of
5389 newi2pat before newpat.
5390
5391 Mon Apr 24 10:19:48 MET DST 2000 Jan Hubicka <jh@suse.cz>
5392
5393 * loop.c (strength_reduce): Simplify test to INSN_P.
5394 (record_giv): Attempt to simplify the add value, use CONSTANT_P
5395 expressions instead of CONST_INT.
5396 (express_from_1): Likewise.
5397
5398 2000-04-24 Mark Mitchell <mark@codesourcery.com>
5399
5400 * regs.h (reg_n_max): Don't declare.
5401 * flow.c (reg_n_max): Don't define.
5402 * regclass.c (renumber): Don't initialize to zero.
5403 (regno_allocated): Likewise.
5404 (reg_n_max): Define.
5405 (allocate_reg_info): Don't initialize unnecessarily.
5406
5407 Mon Apr 24 00:21:36 2000 Jeffrey A Law (law@cygnus.com)
5408
5409 * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
5410 and blockage_p in the newly allocated attribute.
5411
5412 Sun Apr 23 20:16:49 2000 Alexandre Oliva <aoliva@cygnus.com>
5413
5414 * config/mn10300/mn10300.md (addsi): `inc4' on address
5415 registers does not modify cc, but `inc' on an extended
5416 register does.
5417
5418 Sun Apr 23 16:24:35 2000 Denis Chertykov <denisc@overta.ru>
5419
5420 * reload.c (find_equiv_reg): Checks all valueno regs
5421 as a reload_reg_p regs.
5422
5423 2000-04-23 Zack Weinberg <zack@wolery.cumb.org>
5424
5425 * cpphash.c (collect_objlike_expansion): Add sanity check.
5426 (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If
5427 the buffer is the empty string, return. Mark __DATE__ and
5428 __TIME__ as XCONST nodes, not MCONST.
5429 (_cpp_macroexpand): Avoid pushing an empty buffer.
5430 (funlike_macroexpand): Don't pop token_buffer here.
5431
5432 Sun Apr 23 18:37:53 2000 Alexandre Oliva <aoliva@cygnus.com>
5433
5434 * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
5435 (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
5436 (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
5437 (REGNO_OK_FOR_BASE_P): Define in terms of them.
5438 (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
5439 (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
5440 (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
5441
5442 Sun Apr 23 22:23:08 MET DST 2000 Jan Hubicka <jh@suse.cz>
5443
5444 * loop.c (simplify_giv_expr): Be more agressive on simplifying
5445 constant MULT givs.
5446
5447 2000-04-23 Zack Weinberg <zack@wolery.cumb.org>
5448
5449 * cpphash.h (struct definition): Move file, line, col members...
5450 (struct hashnode): ... here. Also add 'disabled' flag.
5451 (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
5452 T_IDENTITY. Remove T_DISABLED.
5453 Update prototypes.
5454
5455 * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
5456 (collect_expansion): Split into collect_objlike_expansion and
5457 collect_funlike_expansion.
5458 (_cpp_macroexpand): Split out scan_arguments, stringify, and
5459 funlike_macroexpand.
5460 (_cpp_compare_defs): Rename compare_defs, make static.
5461 (_cpp_make_hashnode): Initialize hp->disabled.
5462 (macro_cleanup): Adjust for new token types. Clear
5463 m->disabled.
5464 (_cpp_create_definition): Move code here to determine what
5465 sort of macro it is, and code to check for redefinitions, from
5466 do_define. Implement a few simple cases without creating a
5467 full DEFINITION.
5468 (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
5469 Handle the simple cases.
5470 (push_macro_expansion): Set buf->has_escapes and hp->disabled
5471 here.
5472
5473 * cppinit.c (builtin_array): Change MCONST to XCONST
5474 everywhere.
5475 * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
5476 fix check for disabled and function-like macros.
5477 * cpplib.c (do_define): Move most logic to
5478 _cpp_create_definition.
5479 (do_undef): Handle new special token types.
5480
5481 Sun Apr 23 14:27:44 MET DST 2000 Jan Hubicka <jh@suse.cz>
5482
5483 * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
5484 of CONSTANT_P for mult_val; always use validate_change to update insn.
5485
5486 2000-04-22 Zack Weinberg <zack@wolery.cumb.org>
5487
5488 * cpphash.c (trad_stringify, add_pat): New functions.
5489 (collect_expansion): Restore support for -traditional syntax.
5490 Use trad_stringify and add_pat.
5491 (_cpp_macroexpand): Restore support for -traditional semantics.
5492 * cpplex.c (_cpp_scan_line): Don't change space_before if we
5493 get a COMMENT token.
5494 (_cpp_lex_token): Provide COMMENT tokens to caller if
5495 traditional and parsing_define_directive.
5496 (skip_comment): Warn about // comments if -Wtraditional.
5497 * cpplib.c (do_define): Fix typo. Create EMPTY nodes with
5498 proper node type.
5499 (do_undef): Don't warn about undefining EMPTY nodes.
5500
5501 Sat Apr 22 22:35:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
5502
5503 * loop.c (strength_reduce): Fix biv removal code.
5504
5505 2000-04-22 Richard Henderson <rth@cygnus.com>
5506
5507 * predict.c (estimate_probability): Examine both sides of
5508 a branch for no exits. Use 90% not 50% for predict taken.
5509 Reorg for one copy of note generation code.
5510
5511 2000-04-22 Richard Henderson <rth@cygnus.com>
5512
5513 * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
5514
5515 2000-04-22 Richard Henderson <rth@cygnus.com>
5516
5517 * diagnostic.c (init_output_buffer): Don't initialize format_args.
5518 (output_clear): Likewise.
5519 (output_printf): Use va_copy.
5520 (vline_wrapper_message_with_location): Likewise.
5521 (v_message_with_decl): Likewise.
5522 (line_wrapper_printf): VA_START infor buffer.format_args directly.
5523 * system.h (va_copy): Provide default implementation.
5524
5525 2000-04-22 Richard Henderson <rth@cygnus.com>
5526
5527 * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
5528 the collected condition is not a constant.
5529
5530 2000-04-22 Gabriel Dos Reis <gdr@codesourcery.com>
5531
5532 * diagnostic.h: New file.
5533
5534 * Makefile.in (diagnostic.o): Depends on diagnostic.h
5535
5536 * diagnostic.c: Tweak. Rationalize the output logic. Adjust
5537 various function prototypes.
5538 (diagnostic.h): #include.
5539 (struct output_buffer): Move into diagnostic.h.
5540 (get_output_prefix): Rename to output_get_prefix. Export.
5541 (init_output_buffer): Export. Break out. Ajust intialization.
5542 (output_space_left, output_append): Export.
5543 (output_newline): Rename to output_add_newline. Export.
5544 (output_clear): Nullify additional output_buffer fields.
5545 (output_puts): Rename to output_add_string. Export.
5546 (dump_output): Rename to output_flush_on. Export.
5547 (build_location_prefix): Constify return-type.
5548 (emit_output_prefix): Rename to output_emit_prefix. Export.
5549 (set_real_maximum_length): New function.
5550 (output_set_maximum_length): Ditto
5551 (output_clear): Ditto.
5552 (output_add_character): Ditto.
5553 (output_add_integer): Ditto.
5554 (output_add_space): Ditto.
5555 (output_format): Ditto.
5556 (output_printf): Adjust buffer initialization.
5557 (vline_wrapper_message_with_location): Ditto.
5558 (v_message_with_decl): Ditto. Adjust call to output_puts
5559 and get_output_prefix.
5560 (default_print_error_function): Adjust buffer intialization.
5561
5562 Sat Apr 22 06:45:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5563
5564 * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
5565 of VOID_TYPE.
5566
5567 Fri Apr 21 18:33:09 2000 Alexandre Oliva <aoliva@cygnus.com>
5568
5569 * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
5570 of explicit 0.
5571
5572 Fri Apr 21 18:30:00 2000 Alexandre Oliva <aoliva@cygnus.com>
5573
5574 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
5575 accurate data about SP moves.
5576
5577 Fri Apr 21 18:28:28 2000 Alexandre Oliva <aoliva@cygnus.com>
5578
5579 * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
5580 aliases to AM33 registers.
5581
5582 Fri Apr 21 18:26:17 2000 Alexandre Oliva <aoliva@cygnus.com>
5583
5584 * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
5585 to all EXTENDED bitmaps.
5586
5587 Fri Apr 21 18:17:12 2000 Alexandre Oliva <aoliva@cygnus.com>
5588
5589 * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
5590 * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
5591 * config/mn10300/mn10300.c (mn10300_address_cost): New function.
5592
5593 Fri Apr 21 18:11:56 2000 Alexandre Oliva <aoliva@cygnus.com>
5594
5595 * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
5596 the operand is not constant.
5597
5598 Fri Apr 21 14:58:29 2000 Denis Chertykov <denisc@overta.ru>
5599
5600 * reload.c (find_equiv_reg): Checks all valueno and regno regs
5601 as a call-clobbered regs.
5602
5603 Fri Apr 21 13:30:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5604
5605 * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
5606 * rtl.h: Likewise.
5607 * rtl.def: Update comment.
5608 * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
5609 * integrate.c (expand_inline_function): Likewise.
5610 * profile.c (branch_prob): Likewise.
5611 * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
5612 * print-rtl.c (print_rtx): Likewise.
5613 * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
5614 (reemit_notes): Likewise; also use enum insn_note.
5615
5616 * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
5617 (place_field): Properly compute know and actual alignment.
5618
5619 * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
5620 in proper format.
5621
5622 * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
5623 note for REG1.
5624
5625 2000-04-21 Zack Weinberg <zack@wolery.cumb.org>
5626
5627 * cpphash.c (struct arg, struct arglist): Const-ify strings.
5628 (warn_trad_stringify, duplicate_arg_p): New helper functions.
5629 (collect_expansion): Rewrite to scan over a token list.
5630 Remove -traditional support.
5631 (collect_formal_parameters): Rename to collect_params; rewrite
5632 to scan over a token list.
5633 (_cpp_create_definition): Adjust to scan a token list.
5634 (_cpp_macroexpand): Remove -traditional support.
5635 (_cpp_compare_defs): Whitespace is now canonicalized.
5636 (comp_def_part): Delete function.
5637
5638 * cpphash.h: Update prototypes.
5639 * cpplex.c (init_token_list): Don't set lineno if there is no
5640 buffer.
5641 (pedantic_whitespace): New function.
5642 (_cpp_scan_line): Mark tokens that had hspace before. Don't
5643 consume a newline. Use pedantic_whitespace.
5644 (_cpp_lex_token): Remove support for -traditional macros.
5645 (_cpp_get_define_token): Delete.
5646 (_cpp_get_directive_token): Do the real work here. Use
5647 pedantic_whitespace.
5648 (_cpp_init_input_buffer): Initialize pfile->directbuf.
5649
5650 * cpplib.c (get_macro_name): Delete.
5651 (do_define): Read the entire line into pfile->directbuf, then
5652 feed the token list to _cpp_create_definition.
5653 * cpplib.h (HSPACE_BEFORE): new define.
5654 (struct cpp_reader): Add a toklist member, "directbuf".
5655
5656 * predict.c (estimate_probability): New heuristic: if a jump
5657 branches around a block with no successors, predict it taken.
5658 Disentangle control flow.
5659
5660 2000-04-20 Richard Henderson <rth@cygnus.com>
5661
5662 * loop.c (emit_iv_add_mult): Revert last change.
5663
5664 2000-04-20 Zack Weinberg <zack@wolery.cumb.org>
5665
5666 * cpplib.h (enum cpp_ttype): Add token types for all
5667 punctuators. Distinguish pp-numbers from valid C numbers.
5668 Give some tokens better names. Initialize from macro.
5669 (struct cpp_name, cpp_token, cpp_toklist): New data
5670 structures.
5671 Update prototypes.
5672 * cpplex.c (bump_column, expand_name_space,
5673 expand_token_space, init_token_list, cpp_output_list,
5674 _cpp_scan_line): New functions.
5675 (output_line_command): Add third argument, new line number.
5676 * cpphash.h: Update prototypes.
5677 * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
5678 token names.
5679
5680 2000-04-20 Richard Henderson <rth@cygnus.com>
5681
5682 * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
5683
5684 2000-04-20 Zack Weinberg <zack@wolery.cumb.org>
5685
5686 * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
5687 object pointed to.
5688
5689 Thu Apr 20 14:19:18 MET DST 2000 Jan Hubicka <jh@suse.cz>
5690
5691 * loop.c (emit_iv_add_mult): Simplify it's input and emit
5692 REG_EQUAL note explaining the calculated value.
5693
5694 * calls.c (expand_call): Avoid unnecesary precalculation
5695 and outgoing parameters space guarding for sibling calls.
5696 (store_one_arg): Likewise.
5697
5698 Thu Apr 20 08:01:07 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5699
5700 * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
5701 (rest_of_compilation): Write sibling dump file and account
5702 for time as jump time.
5703 * invoke.texi: Update documentation on dump flags.
5704
5705 2000-04-19 Marek Michalkiewicz <marekm@linux.org.pl>
5706
5707 * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
5708
5709 2000-04-19 Zack Weinberg <zack@wolery.cumb.org>
5710
5711 * cpphash.c (special_symbol): Represent an empty macro with
5712 "\r \r " not just "\r ".
5713 (_cpp_macroexpand): Correct condition for the foo ( ) special
5714 case.
5715 (unsafe_chars): Handle EOF as second argument.
5716 (push_macro_expansion): Simplify test for removing escape at
5717 end. Do not trim both escapes if there is no text in between.
5718
5719 2000-04-19 Jim Blandy <jimb@redhat.com>
5720
5721 * dwarf2out.c (DWARF2_ADDR_SIZE): New macro. Use it instead
5722 of PTR_SIZE, when appropriate.
5723
5724 2000-04-19 Mark Mitchell <mark@codesourcery.com>
5725
5726 * system.h (ONLY_INT_FIELDS): Make sure it is defined.
5727 (USE_ENUM_BITFIELDS): Fix typo.
5728
5729 Wed Apr 19 12:14:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5730
5731 * stor-layout.c (place_field): Set rli->offset_align properly.
5732
5733 2000-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5734
5735 * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
5736 INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
5737 PARM_BOUNDARY): Remove unnecessary casts.
5738
5739 Wed Apr 19 12:02:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
5740
5741 * calls.c (precompute_arguments): Remove must_preallocate and
5742 args_size calls.
5743 (expand_call): Update call of precompute_arguments.
5744
5745 * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
5746 check_insn_for_givs): Break out from ...
5747 (strength_reduce) ... here; use for_every_insn_in_loop to call
5748 check_insn_for_givs.
5749 * loop.h (for_every_insn_in_loop): Declare.
5750 (loop_insn_callback): New type.
5751
5752 2000-04-18 Zack Weinberg <zack@wolery.cumb.org>
5753
5754 * cpplib.c (do_pragma_poison): Strings in the token buffer are
5755 not nul-terminated.
5756
5757 Tue Apr 18 16:04:12 2000 Jim Wilson <wilson@cygnus.com>
5758
5759 * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
5760 flag_pic and RELOC.
5761
5762 2000-04-18 Zack Weinberg <zack@wolery.cumb.org>
5763
5764 * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
5765
5766 * configure.in: Delete --disable-cpplib option and all
5767 references to cpp_main.
5768 * configure: Regenerate.
5769 * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
5770 @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
5771 cccp.o, cccp, or cppmain. Link cppmain.o straight to
5772 cpp$(exeext). Add --no-headers to makeinfo command line when
5773 generating INSTALL. Install and uninstall cpp.1 manpage, not
5774 cccp.1.
5775 * install.texi: Delete all references to cexp.y/cexp.c.
5776 Delete ancient instructions for compiling GCC on 3b1.
5777 * INSTALL: Regenerate.
5778
5779 * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
5780 mips/t-elf, mips/t-r3900: Remove references to cccp.c.
5781 * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
5782 cexp.c/cexp.y.
5783 * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
5784 which is no longer tested anywhere.
5785
5786 * cppinit.c (handle_option): Don't run error message through
5787 gettext twice.
5788
5789 Tue Apr 18 14:16:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5790
5791 * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
5792 * cpperror.c (hashtab.h): Now include.
5793 * cppexp.c (hashtab.h): Likewise.
5794 * cpplex.c (hashtab.h): Likewise.
5795 * cppfiles.c (hashtab.h): Likewise.
5796 (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
5797 to htab_find_slot_with_hash.
5798 * cpphash.c (hashtab.h): Now include.
5799 (_cpp_lookup_slot): INSERT is now enum insert_option.
5800 * cpphash.h (_cpp_lookup_slot): Likewise.
5801 * cppinit.c (hashtab.h): Include earlier.
5802 (initialize_builtins): Pass enum to htab_find_slot.
5803 * cpplib.c (hashtab.h): Now include.
5804 (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
5805 (do_pragma_poison, do_assert): Likewise.
5806 * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
5807 htab_find_slot_with_hash.
5808 * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
5809 * tree.c (type_hash_add): Likewise.
5810 (build1): Minor cleanup.
5811
5812 * ggc-common.c: Add missing blanks.
5813 * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
5814 * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
5815
5816 * stmt.c (mark_case_node): New function.
5817 (mark_case_nesting): Call it.
5818
5819 * expmed.c (emit_store_flag): If comparing two-word integer
5820 with zero, can optimize NE, EQ, GE, and LT.
5821
5822 * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
5823 * conflict.c: Minor cleanups.
5824 * optabs.c: Add blank line
5825 * simplify-rtx.c: Minor cleanups.
5826
5827 2000-04-18 Stan Cox <scox@cygnus.com>
5828
5829 * gengenrtl.c (genlegend): Fix misspelling.
5830
5831 2000-04-18 Robert Lipe <robertlipe@usa.net>
5832
5833 * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added. Check that
5834 bitfields of the host compiler are not signed quantities.
5835 * config.in: Regenerate.
5836 * configure: Regenerate.
5837 * system.h (USE_ENUM_BITFIELDS): Added.
5838 (ENUM_BITFIELDS): Added.
5839 * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
5840 (SHORT_ENUM_BUG): Deleted.
5841 * tree.h (tree_common): Members `code', `mode', `built_in_class',
5842 now ENUM_BITFIELD.
5843 * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
5844 (CODE_FIELD_BUG): Likewise.
5845 * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
5846 (OLD_CC): Likewise.
5847 * config/m68k/x-ccur (X_CFLAGS): Likewise.
5848
5849 2000-04-18 Mark Mitchell <mark@codesourcery.com>
5850
5851 * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
5852 mark is active.
5853
5854 2000-04-17 Zack Weinberg <zack@wolery.cumb.org>
5855
5856 * cppexp.c (lex): Don't assume tokens are NUL terminated.
5857 * cpplib.c (do_include, do_import, do_include_next,
5858 read_line_number, detect_if_not_defined): Likewise.
5859 * cpphash.c (collect_expansion): Likewise.
5860 (special_symbol, _cpp_macroexpand): Check return from
5861 cpp_file_buffer.
5862 * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
5863 macros. Delete all uses.
5864
5865 * gcc.dg/cpp-mi.c: Add two more test cases.
5866 * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
5867
5868 2000-04-17 Richard Henderson <rth@cygnus.com>
5869
5870 * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
5871 (reorder_basic_blocks): If no epilogue in rtl, force last block last.
5872
5873 2000-04-17 Mark Mitchell <mark@codesourcery.com>
5874
5875 * function.c (expand_function_start): Use hard_function_value to
5876 compute the RTL to use for DECL_RESULT.
5877
5878 Mon Apr 17 23:35:29 MET DST 2000 Jan Hubicka <jh@suse.cz>
5879
5880 * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
5881 (x86_integer_DFmode_moves, x86_partial_reg_dependency,
5882 x86_memory_mismatch_stall): New global variables.
5883 (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
5884 alloved; fix load penalties for Athlon.
5885 * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
5886 x86_memory_mismatch_stall): Declare.
5887 (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
5888 TARGET_MEMORY_MISMATCH_STALL): New.
5889 * i386.md (athlon scheduling parameters): Fix latencies according to
5890 Athlon Optimization Manual.
5891 (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
5892 vector.
5893 (fsqrt instruction patterns): Set athlon_decode to direct.
5894 (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
5895 PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
5896 (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
5897 and TARGET_PARTIAL_REGISTER_STALL machines.
5898 (pushdf_nointeger): New pattern.
5899 (pushdf_integer): Rename from pushdf.
5900 (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
5901 (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
5902
5903 2000-04-17 Richard Henderson <rth@cygnus.com>
5904
5905 * loop.c (canonicalize_condition): Add WANT_REG argument.
5906 Stop the search if we match it.
5907 * expr.h (canonicalize_condition): Update decl.
5908 * predict.c (expected_value_to_br_prob): Use it. Track last
5909 expected value note.
5910 (find_expected_value): Remove.
5911
5912 * reorg.c (mostly_true_jump): Always use BR_PROB if present.
5913
5914 2000-04-17 Zack Weinberg <zack@wolery.cumb.org>
5915
5916 * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
5917 (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
5918 a plain file.
5919 * configure.in: Call AC_FUNC_MMAP_FILE.
5920 * configure: Regenerate.
5921 * config.in: Regenerate.
5922
5923 * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
5924 * fixinc/fixincl.c: Likewise.
5925
5926 2000-04-17 Richard Henderson <rth@cygnus.com>
5927
5928 * builtins.c (expand_builtin_expect): New.
5929 (expand_builtin): Call it.
5930 * builtins.def (BUILT_IN_EXPECT): New.
5931 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
5932 * extend.texi: Document it.
5933
5934 * predict.c (expected_value_to_br_prob): New.
5935 (find_expected_value): New.
5936 * basic-block.h (expected_value_to_br_prob): Declare.
5937 * toplev.c (rest_of_compilation): Invoke it.
5938
5939 * rtl.h (NOTE_EXPECTED_VALUE): New.
5940 (NOTE_INSN_EXPECTED_VALUE): New.
5941 * rtl.c (note_insn_name): Update.
5942 * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
5943 cases; handle NOTE_INSN_EXPECTED_VALUE.
5944
5945 2000-04-17 Jakub Jelinek <jakub@redhat.com>
5946
5947 * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
5948 leaf sibcall delay slot if flag_pic.
5949 (output_sibcall): Always emit call for leaf sibcall if flag_pic.
5950
5951 2000-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5952
5953 * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
5954
5955 * fixproto: If fix-header fails, exit with an error.
5956
5957 Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
5958
5959 * cse.c (struct check_depdendence_data): New.
5960 (check_dependence): New function.
5961 (invalidate): Use check_depdenence.
5962
5963 2000-04-16 Mark Mitchell <mark@codesourcery.com>
5964
5965 * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
5966 UNITS_PER_WORD is unsigned.
5967
5968 * tree.h (struct tree_common): Remove misleading comment.
5969
5970 2000-04-16 Dave Pitts <dpitts@cozx.com>
5971
5972 * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
5973 message in quotes. Otherwise, IBM's make program treats the '#' as the
5974 start of a comment and ignores the remainder of the line.
5975
5976 * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
5977 upper case.
5978 * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
5979 * cexp.y (initialize_random_junk): Likewise.
5980 * cppfiles.c (find_include_file): Cast alloca return value.
5981 * cppinit.c (initialize_standard_includes): Likewise.
5982 * cpplib.c (cpp_define, cpp_undef): Likewise.
5983 * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
5984 * final.c (output_asm_insn): Allow for holes in EBCDIC.
5985 * fold-const.c (CHARMASK): New.
5986 (real_hex_to_f): Use it.
5987 * real.c (CHARMASK): New.
5988 (etoasc, asctoeg): Use it.
5989 (asctoeg): EBCDIC lower case characters preceed upper case.
5990
5991 * i370.c (mvs_add_label): Change spacing for coding conventions.
5992 * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
5993 outputing case vectors.
5994 (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
5995 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
5996 since vector in in the data CSECT.
5997 (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
5998 * i370.md (Many patterns): Put the length in the XL directives.
5999 (movdi): Put back STM and MVC in definition.
6000 (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
6001 pattern using the TCA.
6002 * oe.h (CPP_SPEC): Added to allow trigraphs.
6003 * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
6004 not support the "long long" type.
6005
6006 2000-04-16 Mark Mitchell <mark@codesourcery.com>
6007
6008 * config/mips/mips-protos.h (mips_legitimate_address_p): New
6009 function.
6010 (mips_reg_mode_ok_for_base_p): Likewise.
6011 * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
6012 (REG_OK_FOR_INDEX_P): Define unconditionally.
6013 (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
6014 (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
6015 * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
6016 that GET_MODE_SIZE is unsigned.
6017 (mips_reg_mode_ok_for_base_p): Define.
6018 (mips_legitimate_address_p): Likewise. Adjust now
6019 that GET_MODE_SIZE is unsigned.
6020 (block_move_loop): Make the number of bytes unsigned.
6021 (expand_block_move): Likewise.
6022 (function_arg): Make the loop counter unsigned to match the
6023 boundary condition.
6024
6025 2000-04-16 Richard Henderson <rth@cygnus.com>
6026
6027 * rtl.h (enum insn_note): New enumeration. Subsume
6028 NOTE_INSN_DELETED and friends.
6029 (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
6030 * rtl.c (note_insn_name): Tweak string order.
6031
6032 2000-04-15 Zack Weinberg <zack@wolery.cumb.org>
6033
6034 * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
6035 to offset * 2.
6036
6037 * cpplex.c (output_line_command): Remove debugging prints.
6038 (cpp_output_tokens): Don't write out a zero-length buffer or
6039 try to see if it has a newline in it.
6040 (_cpp_expand_to_buffer): Copy the source buffer before pushing.
6041 (_cpp_read_and_prescan): Move shift-down of pushback bytes to
6042 the end of the loop. Use memmove. Don't read past the end of
6043 the buffer. Remove trailing newlines from error messages.
6044
6045 2004-04-16 Neil Booth <NeilB@earthling.net>
6046
6047 * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
6048 * cpplib.c: Add new syntax flags to directive table, and
6049 supporting macros.
6050
6051 2000-04-15 Ulrich Drepper <drepper@redhat.com>
6052
6053 * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
6054 using ret $N.
6055
6056 2000-04-15 David Edelsohn <edelsohn@gnu.org>
6057
6058 * toplev.c (display_help): Prefix "f" to "sched-verbose=".
6059 * haifa-sched.c: Update -fsched-verbose comments to use "=".
6060
6061 Sat Apr 15 10:59:19 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6062
6063 * Makefile.in (ggc-page.o): Now includes toplev.h.
6064 * ggc-page.c (toplev.h): Now included.
6065 (gc_time): Remove declaration.
6066 (ggc_collect): TIME now long.
6067 * toplev.c (parse_time, varasm_time, gc_time): Still global; all
6068 others static.
6069 * toplev.h (gc_time, parse_time, gc_time): New declarations.
6070
6071 * toplev.c: Make *_time variable long to reduce chance of overflow.
6072 (TIMEVAR): Likewise for `otime'.
6073 (print_time): Arg is now long; compute percentage in FP and round.
6074 * toplev.h (print_time): Arg is long.
6075
6076 * tree.c: Minor whitespace changes.
6077
6078 * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
6079 * configure: Rebuilt.
6080 * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
6081 (__fixunsxfDI): Renamed from __fixunsxfdi.
6082 (__fixunsdfDI): Renamed from __fixunsdfdi.
6083 (__fixunssfDI): Renamed from __fixunssfdi.
6084 (__floatdisf): Use proper type in REP_BIT macro.
6085 (__fixunsxfSI): Renamed from __fixunsxfsi.
6086 (__fixunsdfSI): Renamed from __fixunsdfsi.
6087 (__fixunssfSI): Renamed from __fixunssfsi.
6088 * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
6089 Change location of macros and upper-case some names as above.
6090 * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
6091 * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
6092
6093 * varasm.c (assemble_variable): Add cast to remove warning.
6094 (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
6095
6096 * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
6097 * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
6098 region number to -1.
6099
6100 2000-04-15 Richard Earnshaw (rearnsah@arm.com)
6101
6102 * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
6103 call unshare_all_rtl.
6104
6105 * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
6106
6107 Fri Apr 14 16:58:45 2000 Jim Wilson <wilson@cygnus.com>
6108
6109 * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
6110 Use .s1 not .s0 for all FP instructions.
6111
6112 2000-04-14 Zack Weinberg <zack@wolery.cumb.org>
6113
6114 * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
6115 interfaces.
6116 (safe_fwrite, output_line_command): New static functions.
6117 (cpp_expand_to_buffer): Now private to cpplib.
6118 (cpp_scan_buffer): Take a printer.
6119
6120 * cpphash.h: Update prototypes.
6121 * cpplib.h: Update prototypes.
6122 (cpp_printer): New.
6123 (cpp_buffer): Remove last_nominal_fname.
6124 (cpp_reader): Remove lineno.
6125
6126 * cppmain.c: Use a cpp_printer.
6127 * fix-header.c: No need to inhibit line commands. Call
6128 cpp_start_read with no printer.
6129
6130 * cpperror.c (cpp_notice_from_errno): Provide default name.
6131 * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
6132 (find_include_file, cpp_read_file): Use make_IHASH.
6133 (file_cleanup): Set control_macro and clear
6134 input_stack_listing_current here.
6135 (_cpp_execute_include): Don't output entering-file marker.
6136 * cpphash.c (special_symbol): Look for the line number in the
6137 buffer, not the reader.
6138 (_cpp_macroexpand): No need to disable line commands.
6139 (_cpp_dump_definition): No need to generate line commands.
6140 (dump_hash_helper): Remove excess newline from output.
6141 * cppinit.c (dump_special_to_buffer): No need to generate line
6142 commands.
6143 (cpp_printer_init): New.
6144 (cpp_start_read): Take a printer, and start it up if it's not
6145 NULL. No need to generate line commands.
6146 (cpp_finish): Expect no buffers stacked at all. Take a
6147 printer argument, and flush the output buffer if it's not
6148 NULL.
6149 * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
6150 Don't put two hashes at the beginning of an assertion.
6151 (cpp_get_token): Don't increment pfile->lineno or emit line
6152 commands here. Return EOF if there's no buffer when we get
6153 EOF.
6154 * cpplib.c (do_define, skip_if_group):
6155 No need to disable line commands.
6156 (_cpp_output_line_command): Delete function.
6157 (do_line): Don't emit line commands here, but set things up so
6158 they will be emitted if necessary. Use _cpp_fake_ihash to
6159 make unique nominal_fnames if necessary.
6160 (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
6161 with 0 for column, not -1.
6162 (_cpp_handle_eof): Don't set the control macro here. Don't
6163 clear input_stack_listing_current here. Don't emit line
6164 commands.
6165
6166 2000-04-14 Geoff Keating <geoffk@cygnus.com>
6167
6168 * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
6169 always, use the default SVR4 start address.
6170
6171 * config/rs6000/linux.h (LINK_SPEC): Don't define.
6172 (LINK_SHLIB_SPEC): Define.
6173 (LINK_START_DEFAULT_SPEC): Define.
6174 (LINK_OS_DEFAULT_SPEC): Define.
6175
6176 * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
6177
6178 * config/rs6000/eabi.asm (__eabi): Call __init rather than
6179 __do_global_ctors to handle constructors.
6180 * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
6181 (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
6182 (STARTFILE_MVME_SPEC): Likewise.
6183 (STARTFILE_SIM_SPEC): Likewise.
6184 (ENDFILE_ADS_SPEC): Use crtend.
6185 (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
6186 (ENDFILE_MVME_SPEC): Likewise.
6187 (ENDFILE_SIM_SPEC): Likewise.
6188 (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
6189 (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
6190 (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
6191 (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
6192 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
6193 (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
6194 (CRTSTUFF_T_CFLAGS_S): Define.
6195 * config/rs6000/eabi-ctors.c: Delete.
6196
6197 * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
6198 boundary.
6199 (__fini): Likewise.
6200 * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
6201 boundary.
6202 (__fini): Likewise.
6203
6204 Fri Apr 14 16:09:02 2000 Jim Wilson <wilson@cygnus.com>
6205
6206 * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
6207 plus mask size is smaller or equal to the mode size.
6208
6209 Fri Apr 14 18:07:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6210
6211 * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
6212 not yet set.
6213
6214 * expr.c (reload.h): Now included.
6215 (emit_block_move): Set volatile_ok when checking for movstr.
6216 (emit_move_1): Check for replacements in addresses in multi-word case.
6217 * Makefile.in (expr.o): Now includes reload.h.
6218
6219 * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
6220 Never have a LIBCALL end a basic block.
6221 (find_basic_blocks_1): Likewise.
6222 Reorganize CALL_INSN cases.
6223
6224 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
6225
6226 Fri Apr 14 10:54:22 2000 Jim Wilson <wilson@cygnus.com>
6227
6228 * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
6229 completers from mov.ret instruction.
6230
6231 2000-04-14 Richard Henderson <rth@cygnus.com>
6232
6233 * fold-const.c (extract_muldiv): Don't distribute and widen
6234 multiply across plus for non-sizetype unsigned types.
6235
6236 2000-04-14 Richard Henderson <rth@cygnus.com>
6237
6238 * flow.c (find_auto_inc): Don't autoinc eliminable registers.
6239 If the original source is dead in the incr insn, it's dead now.
6240
6241 Fri Apr 14 07:40:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6242
6243 * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
6244 see if DECL_BIT_FIELD needs to still be set.
6245
6246 * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
6247
6248 * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
6249 print_int_cst_octal with something that's not an INTEGER_CST.
6250
6251 * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
6252 and not a SUBREG to a FLOAT rtl.
6253
6254 Thu Apr 13 19:39:56 2000 Clinton Popetz <cpopetz@cygnus.com>
6255
6256 * emit-rtl.c (try_split): Avoid infinite loop if the split
6257 results in a sequence that contains the original insn.
6258
6259 2000-04-13 Andreas Jaeger <aj@suse.de>
6260
6261 * config/mips/mips.c (expand_block_move): Pass alignment
6262 argument to move_by_pieces in bits, not bytes.
6263
6264 * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
6265 __pic__ for little endian.
6266
6267 2000-04-13 Andreas Jaeger <aj@suse.de>
6268
6269 * config/i386/i386-protos.h: Add prototype for
6270 uno_comparison_operator.
6271
6272 Thu Apr 13 15:55:08 MET DST 2000 Jan Hubicka <jh@suse.cz>
6273
6274 * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
6275 * calls.c (ECF_PURE): New flag.
6276 (emit_call_1): Handle ECF_PURE calls.
6277 (initialize_argument_information): Unset ECF_PURE flag too.
6278 (precompute_arguments): Precompute for ECF_PURE too.
6279 (expand_call): Handle ECF_PURE calls too.
6280 (emit_library_call_value_1): Rename no_queue argument to fn_type,
6281 accept value of 2 as pure function.
6282 (emit_library_call_value, emit_library_call): Rename no_queue argument
6283 to fn_type.
6284 * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
6285
6286 * tree.h (DECL_IS_PURE): New macro.
6287 (struct tree_decl): Add pure_flag.
6288 * c-common.c (enum attrs): Add attribute "pure".
6289 (init_attributes): Initialize attribute "pure"
6290 (decl_attributes): Handle attribute "pure".
6291 * extend.texi (Attribute "pure"): Document.
6292 * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
6293 in pure function.
6294 (flags_from_decl_or_type): Support attribute "pure".
6295
6296 2000-04-13 Jason Merrill <jason@casey.cygnus.com>
6297
6298 * cpplex.c (_cpp_lex_token): Handle digraphs. Don't null-terminate
6299 the token except for numbers and identifiers.
6300
6301 Thu Apr 13 00:09:16 EDT 2000 John Wehle (john@feith.com)
6302
6303 * i386.c (ix86_expand_binary_operator,
6304 ix86_expand_unary_operator): Check no_new_pseudos
6305 instead of reload_in_progress and reload_completed.
6306 (ix86_split_ashldi, ix86_split_ashrdi,
6307 ix86_split_lshrdi): Check no_new_pseudos instead
6308 of reload_completed.
6309
6310 2000-04-12 Jeffrey A Law (law@cygnus.com)
6311
6312 * function.c (purge_addressof): Unshare any shared rtl created by
6313 purge_addressof and its children.
6314
6315 2000-04-12 Mark Mitchell <mark@codesourcery.com>
6316
6317 * function.c (aggregate_value_p): VOID_TYPE nodes are never
6318 aggregates.
6319
6320 2000-04-05 Andreas Jaeger <aj@suse.de>
6321
6322 * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
6323 not compiling PIC code, add flags for mabi=64.
6324 (SUBTARGET_CPP_SIZE_SPEC): New.
6325 (SUBTARGET_CPP_SPEC): New.
6326 (CPP_PREDEFINES): Define __PIC__ and __pic__. PIC code is default
6327 for MIPS/Linux and lots of code needs these defines.
6328
6329 Wed Apr 12 22:44:11 2000 Hans-Peter Nilsson <hp@axis.com>
6330
6331 * reorg.c (fill_slots_from_thread): Check side_effects_p when
6332 trying the "opposite arithmetic" approach.
6333
6334 Wed Apr 12 20:51:20 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
6335
6336 * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
6337 (struct sh_args): Add new field force_mem.
6338 (INIT_CUMULATIVE_ARGS): Initialize it.
6339 (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
6340
6341 Wed Apr 12 17:20:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
6342
6343 * calls.c (expand_call): Do not reverse args in "equal from" field.
6344 (emit_library_call_value_1): Emit_libcall_block for const and pure
6345 function.
6346
6347 Wed Apr 12 16:00:25 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
6348
6349 * reload1.c (reload_combine): Don't enable optimization for fixed
6350 registers when encountering a BARRIER.
6351
6352 Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka <jh@suse.cz>
6353
6354 * builtins.c (expand_builtin_memcmp): Do expansion even with
6355 !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
6356
6357 * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
6358 stack is propertly aligned; add sanity checking for aligned
6359 stack pointer.
6360 (expand_library_call_value_1): Add sanity checking for aligned
6361 stack pointer.
6362
6363 Wed Apr 12 07:51:54 2000 Catherine Moore <clm@cygnus.com>
6364
6365 * calls.c (emit_library_call_value_1): Change 3rd arg to
6366 locate_and_pad_parm to disregard the setting of partial.
6367
6368 Wed Apr 12 08:47:38 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6369
6370 * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
6371
6372 * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
6373 CALL_INSN from the normal case.
6374
6375 Fri Apr 7 12:23:04 MET DST 2000 Jan Hubicka <jh@suse.cz>
6376
6377 * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
6378 New global variables.
6379 (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
6380 adjustment.
6381 * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
6382 Declare,
6383 (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
6384 TARGET_ADD_ESP_8): New macros.
6385 * i386.md: Add peep2s to convert esp adjustments to push and pop
6386 instructions.
6387 (pushsi_prologue, popsi_epilogue): New patterns.
6388
6389 2000-04-12 Jakub Jelinek <jakub@redhat.com>
6390
6391 * real.c (toe64): Remove stale #endif from the last change.
6392
6393 2000-04-12 Stephen L Moshier <moshier@mediaone.net>
6394
6395 * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
6396 * real.c (toe64): Revert previous change.
6397
6398 2000-04-12 Jakub Jelinek <jakub@redhat.com>
6399
6400 * objc/objc-act.c: Include ggc.h.
6401 (objc_tree_index, objc_global_trees): Convert most of the
6402 static tree variables into a static array with previous names
6403 as defines.
6404 (objc_ellipsis_node): New variable.
6405 (lang_init): Call objc_act_parse_init and c_parse_init.
6406 Create objc_ellipsis_node.
6407 (build_selector_translation_table): Use objc_ellipsis_node instead
6408 of (tree)1.
6409 (hack_method_prototype): Likewise.
6410 (get_arg_type_list): Likewise.
6411 (start_method_def): Likewise.
6412 (continue_method_def): Likewise.
6413 (gen_method_decl): Likewise.
6414 (ggc_mark_imp_list): New function.
6415 (ggc_mark_hash_table): New function.
6416 (objc_act_parse_init): New function.
6417 * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
6418 * c-parse.in (c_parse_init): For objc add roots of objc specific
6419 local tree variables.
6420 * objc/objc-parse.y: Rebuilt.
6421 * objc/objc-parse.c: Rebuilt.
6422 (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
6423
6424 Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com)
6425
6426 * cse.c (delete_trivially_dead_insns): Also delete insns
6427 that copy a register to itself where the destination is
6428 a strict_low_part.
6429
6430 2000-04-11 Richard Henderson <rth@cygnus.com>
6431
6432 * flow.c (struct propagate_block_info): Add new_dead, new_live.
6433 (propagate_block): Initialize them. Use them in parallel instead
6434 of one tmp variable, ie revert much of the 0408 and 0407 functional
6435 changes, but keep the structural changes.
6436 (mark_set_regs): Take new_dead from propagate_block_info instead.
6437 (mark_set_1, mark_set_reg): Likewise.
6438 (mark_used_regs): Likewise with new_live.
6439 (mark_used_reg): Likewise. Revert 0408 change.
6440
6441 2000-04-11 Nick Clifton <nickc@cygnus.com>
6442
6443 * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
6444 restriction.
6445 (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
6446
6447 2000-04-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6448
6449 * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
6450 const section to output a CONSTRUCTOR based on the same conditions
6451 used for VAR_DECLs.
6452
6453 Tue Apr 11 09:55:59 2000 Jeffrey A Law (law@cygnus.com)
6454
6455 * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
6456 * pa/pa-protos.h (output_call): Add additional argument indicating
6457 if the call is a sibling/tail call.
6458 (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
6459 (compute_64bit_ior, cmpib_comparison_operator): Likewise.
6460 (function_arg, function_arg_partial_nregs): Likewise
6461 * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
6462 (emit_move_sequence): Zero extend certain constants as needed
6463 for TARGET_64BIT.
6464 (compute_zdepdi_operands, output_64bit_and): New functions.
6465 (output_64bit_ior, function_arg): Likewise.
6466 (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
6467 (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
6468 (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
6469 (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
6470 (output_bvb): Likewise.
6471 (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
6472 (output_call): New argument 'sibcall'. Generate sibcall sequences
6473 as needed.
6474 (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT. For
6475 (ouput_arg_descriptor): Do not emit argument descriptors for
6476 TARGET_64BIT.
6477 * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
6478 defined.
6479 (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
6480 (FUNCTION_OK_FOR_SIBALL): Define.
6481 (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
6482 (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
6483 (CPP_SPEC): Use new spec infrastructure.
6484 (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
6485 (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
6486 (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
6487 (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
6488 (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
6489 (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
6490 (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
6491 (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
6492 (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
6493 (FUNCTION_ARG); Call out to C code.
6494 (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
6495 (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
6496 (MIN_UNITS_PER_WORD): Likewise.
6497 * pa/pa.md (cmpdi): New expander.
6498 (scc patterns, movstrsi): Not available for TARGET_64BIT.
6499 (64bit conditional arithmetic): New patterns.
6500 (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
6501 (movsicc): Not available if modes on all the operands to not match.
6502 (movdicc): New expander and associated patterns.
6503 (64bit branches): New patterns.
6504 (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
6505 (pre_ldd, post_std): New patterns.
6506 (64bit addil, load low part): New patterns.
6507 (special movsf constant): Not available for TARGET_64BIT.
6508 (movsf, movdf expanders): Force constants into memory.
6509 (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
6510 (64bit movdf/movdi patterns): New patterns.
6511 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
6512 for TARGET_64BIT.
6513 (extendqidi2, extendhidi2, extendsidi2): Similarly.
6514 (adddi3 expander): Allow "arith_operand" for second input.
6515 (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
6516 (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
6517 (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
6518 (muldi3): New expander for TARGET_64BIT.
6519 (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
6520 for TARGET_64BIT.
6521 (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
6522 patterns for TARGET_64BIT.
6523 (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
6524 patterns for TARGET_64BIT.
6525 (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
6526 (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
6527 (sibcall_epilogue): New expander.
6528 (casesi): Tweak for TARGET_64BIT.
6529 (call expanders): Set & use the outgoing argument pointer. Use the
6530 64bit call patterns as needed. Add additional arg to output_call.
6531 (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
6532 (sibcall, sibcall_internal_symref): New expanders.
6533 (sibcall_value, sibcall_value_internal_symref
6534 (interspace_jump): Turn into an expander + matching patterns.
6535 (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
6536 * pa/pa64-regs.h: Eliminate trigraph sequences.
6537 * pa/pa64-start.h (TARGET_PA_20): Fix typo.
6538
6539 2000-04-11 Zack Weinberg <zack@wolery.cumb.org>
6540
6541 * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
6542 cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
6543 cpp_token with cpp_ttype everywhere.
6544 * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
6545 Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
6546 CPP_BUF_COL. Line and column numbers are unsigned int, not
6547 long.
6548 * cpplex.c (cpp_buf_line_and_col): Delete.
6549 * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
6550 'long lineno' to 'unsigned int lineno'.
6551 (CPP_BUF_LINE, CPP_BUF_COL): New macros.
6552
6553 2000-04-11 Martin v. Löwis <loewis@informatik.hu-berlin.de>
6554
6555 * extend.texi: ISO C99 is not a draft anymore.
6556 * invoke.texi: ISO C++ is not a draft anymore.
6557 * cpp.texi: __cplusplus is required by the ISO standard.
6558
6559 * extend.texi (-fthis-is-variable): Undocument.
6560 * flags.h (warn_template_debugging): Remove declaration.
6561 * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
6562 -Wenum-clash, -Wtemplate-debugging): Undocument.
6563
6564 2000-04-10 Nick Clifton <nickc@cygnus.com>
6565
6566 * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
6567 integer.
6568 (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
6569 integer.
6570 (ARM_SIGN_EXTEND): Use HOST_UINT.
6571 (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
6572 (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
6573 (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
6574 (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
6575
6576 * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
6577 (arm_gen_constant): Use HOST_UINT.
6578 (arm_canonicalize_constant): Use HOST_UINT.
6579 (arm_reload_in_hi): Use HOST_UINT.
6580 (arm_reload_out_hi): Use HOST_UINT.
6581 (output_multi_immediate): Use HOST_UINT.
6582 (int_log2): Use HOST_UINT.
6583 (arm_poke_function_name): Use HOST_UINT.
6584 (arm_output_epilogue): Use arm_volatile_func().
6585 (output_thumb_prologue): Use arm_strip_name_encoding().
6586
6587 Mon Apr 10 15:40:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6588
6589 * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
6590 of sequence point problems.
6591
6592 2000-04-10 Nathan Sidwell <nathan@codesourcery.com>
6593
6594 * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
6595 Recomment.
6596 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
6597
6598 Mon Apr 10 07:21:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6599
6600 * sbitmap.h: Whitespace changes and use upper-case macro args.
6601 (struct simple_bitmap_def): All sizes now unsigned.
6602 (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
6603 * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
6604 (sbitmap_vector_alloc): Parms and local vars now unsigned.
6605 (sbitmap_zero): Cast bzero arg to PTR.
6606 (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
6607 (sbitmap_union_of_diffs): Change loop index to unsigned and rework
6608 loop to make structure clearer.
6609 (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
6610 (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
6611 (sbitmap_a_and_b_or_c): Likewise.
6612 (sbitmap_intersection_of_succs): Minor cleanups.
6613 (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
6614 (sbitmap_union_of_preds): Likewise.
6615 (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
6616 (debug_sbitmap): New function.
6617
6618 * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
6619 * c-typeck.c (convert_for_assignment): Likewise.
6620
6621 * expmed.c (init_expmed): Don't free objects we make.
6622 * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
6623
6624 * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
6625 (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
6626
6627 * gcse.c (expr_hash_table_size): Now unsigned.
6628 (compute_ae_gen): Local variable `i' now unsigned.
6629 (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
6630 (compute_transout, hoist_code): Likewise.
6631 (compute_local_properties): Likewise, also hash_table_size.
6632 (alloc_expr_hash_table): N_INSNS now unsigned.
6633 (delete_null_pointer_checks): Mark arg F as unused.
6634
6635 * regrename.c: Minor cleanups, including chang some variables
6636 to unsigned int.
6637
6638 2000-04-10 Neil Booth <NeilB@earthling.net>
6639
6640 * cpplex.c (skip_block_comment): Use pointer arithmetic rather
6641 than GETC ().
6642 * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
6643
6644 2000-04-10 Martin v. Löwis <loewis@informatik.hu-berlin.de>
6645
6646 * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
6647 __classof__, and __headof__ from the list of gnu keywords.
6648 (-ansi): Remove -foperator-names from list of implied options.
6649 Do not call it ANSI C++.
6650 (-foperator-names): Document as -fno-operator-names.
6651
6652 2000-04-09 Zack Weinberg <zack@wolery.cumb.org>
6653
6654 * cpphash.c (timestamp): Delete.
6655 (del_HASHNODE): If type is T_MCONST, free value.cpval.
6656 (special_symbol): Remove unnecessary braces. Remove
6657 T_VERSION. Treat T_STDC like T_CONST unless
6658 STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__
6659 when one is encountered, then convert them into T_MCONST
6660 nodes.
6661 * cppinit.c (builtin_array): version_string is T_MCONST.
6662 __STDC__ has a "1" in its cpval. Don't have a terminator
6663 entry. Clean up which entries are dumped.
6664 (initialize_builtins): Only __STDC__ gets the special
6665 -traditional treatment. Count the length of builtin_array.
6666 Render version_string here.
6667 * cpphash.h: Remove T_VERSION. Add T_MCONST.
6668 * cpplib.h (struct cpp_reader): Remove timebuf.
6669
6670 2000-04-09 Richard Henderson <rth@cygnus.com>
6671
6672 * genrecog.c (pred): Update comparison_operator for the unordered
6673 operators.
6674
6675 * config/i386/i386.c (no_comparison_operator): Disallow unordered
6676 operators.
6677 (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
6678 (uno_comparison_operator): New.
6679 (put_condition_code): Handle UNORDERED/ORDERED.
6680 (unsigned_comparison): Likewise.
6681 (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
6682 (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
6683 (ix86_expand_fp_compare): Use them. Take scratch as argument,
6684 update all callers. Handle all 8 unordered operators.
6685 (ix86_expand_setcc): Lose the unordered argument, update all callers.
6686 (ix86_expand_branch): Likewise. Don't fully expand fp branches.
6687 * config/i386/i386.h (PREDICATE_CODES): Update.
6688 * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
6689 (ix86_expand_branch, ix86_expand_setcc): Update.
6690 * config/i386/i386.md (sunordered, sordered): New.
6691 (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
6692 (bunordered, bordered): New.
6693 (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
6694 (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
6695 (*fp_jcc_5, *fp_jcc_6, and splitters): New.
6696
6697 2000-04-09 Philip Blundell <philb@gnu.org>
6698
6699 * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
6700
6701 Sun Apr 9 15:16:14 EDT 2000 John Wehle (john@feith.com)
6702
6703 * i386.md (fix_truncsfhi2, fix_truncdfhi2,
6704 fix_truncxfhi2): New patterns.
6705 * i386.c (output_fix_trunc): Handle converting to HImode.
6706
6707 2000-04-08 Alex Samuel <samuel@codesourcery.com>
6708
6709 * ssa.c (convert_to_ssa): Eliminate dead code when calling
6710 life_analysis.
6711 (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
6712 (for_each_successor_phi): Change parameter to basic_block.
6713 (coalesce_regs_in_successor_phi_nodes): Likewise.
6714 (coalesce_regs_in_copies): Likewise.
6715 (compute_coalesced_reg_partition): Use basic_block instead of index.
6716 * rtl.h (convert_to_ssa): Delete.
6717 (convert_from_ssa): Likewise.
6718 (successor_phi_fn): Likewise.
6719 (for_each_successor_phi): Likewise.
6720 (in_ssa_form): Likewise.
6721 * basic-block.h (convert_to_ssa): Moved from rtl.h.
6722 (convert_from_ssa): Likewise.
6723 (successor_phi_fn): Likewise.
6724 (in_ssa_form): Likewise.
6725 (for_each_successor_phi): Likewise. Change parameter to basic_block.
6726 * flow.c (calculate_global_regs_live): Pass a basic_block to
6727 for_each_successor_phi.
6728
6729 2000-04-08 Richard Henderson <rth@cygnus.com>
6730
6731 * flow.c (mark_used_reg): Use reg_set_p to determine if a register
6732 was modified in the current insn.
6733
6734 2000-04-08 Richard Earnshaw (rearnsha@arm.com)
6735
6736 * arm/thumb.md: Delete.
6737 * arm/thumb-protos.h: Delete.
6738
6739 2000-04-08 Richard Earnshaw (rearnsha@arm.com)
6740
6741 Merge changes from merged-arm-thumb-backend-branch onto trunk.
6742
6743 2000-04-08 Richard Earnshaw (rearnsha@arm.com)
6744
6745 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
6746 into branch.
6747
6748 * arm.md (nop): Use the standard RTL expression. Don't code as a
6749 define_expand.
6750 (*arm_nop, *thumb_nop): Delete.
6751
6752 * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
6753 constants. Use casts instead.
6754 (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
6755 output_multi_immediate, arm_poke_function_name): Likewise.
6756 * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
6757 MASK_RETURN_ADDDR): Likewise.
6758
6759 2000-03-31 Richard Earnshaw (rearnsha@arm.com)
6760
6761 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
6762 into branch.
6763
6764 * arm.md (eh_epilogue): New function.
6765 * arm.h (struct machine_function): Move to here ...
6766 * arm.c: ... from here.
6767 (arm_output_epilogue): Support epilogues for __builtin_eh_return.
6768 (thumb_exit): Extra parameter eh_ofs. All callers changed.
6769 Handle epilogues for __builtin_eh_return. Make bit-fields unsigned.
6770
6771 2000-03-30 Nick Clifton <nickc@cygnus.com>
6772
6773 * config/arm/semi.h (ASM_SPEC): Restore definition.
6774 (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
6775
6776 * config/arm/elf.h (ASM_SPEC): Restore definition.
6777 (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
6778
6779 * config/arm/arm.h (ASM_SPEC): Remove definition.
6780 (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
6781
6782 2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk>
6783
6784 * config/arm/arm.c: Disable -fschedule-insns for Thumb.
6785
6786 2000-03-24 Nick Clifton <nickc@cygnus.com>
6787
6788 Various formating tidyups, elimination of compile time
6789 warnings and synchronisation with internal sources:
6790
6791 * config/arm/arm-protos.h (assemble_align): Add prototype.
6792 (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
6793 (gen_comapre_reg): Rename to arm_gen_compare_reg.
6794 (arm_return_addr_rtx): Rename to arm_return_addr.
6795
6796 * config/arm/arm.c: Include except.h.
6797 Define shorter typenames for strict minipool_node and struct
6798 minipool_fix.
6799 (arm_return_in_memory): For WinCE return all structures <= 32 bits
6800 in memory.
6801 (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
6802 (gen_comapre_reg): Rename to arm_gen_compare_reg.
6803
6804 * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
6805 already defined.
6806 (ASM_SPEC): Define if not already defined.
6807 (ASM_OUTPUT_DEF_FROM_DECLS): Define.
6808
6809 * config/arm/arm.md: Rename references to gen_rotated_half_load to
6810 arm_gen_rotated_half_load, and references to gen_comapre_reg to
6811 arm_gen_compare_reg.
6812 (indirect_jump): Only accept register operands.
6813 (load_indirect_jump): Keep this pattern since combine can generate
6814 it.
6815
6816 * config/arm/coff.h: Include aout.h.
6817 (MULTILIB_DEFAULTS): Only define if not already defined.
6818
6819 * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
6820 into arm.h (so that COFF ports can support thumb based aliases).
6821 (ASM_SPEC): Move definition into arm.h
6822
6823 * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
6824 redundant apcs spec.
6825 (ASM_SPEC): Move definition to arm.h
6826
6827 * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
6828
6829 * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
6830 for entries in the .bss section
6831
6832 2000-03-23 Nick Clifton <nickc@cygnus.com>
6833
6834 * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
6835 to thumb_far_jump_used_p.
6836
6837 * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
6838 single integer parameter.
6839
6840 * config/arm/arm.c (struct machine_function): Add two new
6841 fields, 'far_jump_used' and 'arg_pointer_live'.
6842 (thumb_far_jump_used_p): Once the decision has been made that
6843 far jumps might be used, always return true.
6844 If being called from the initial elimination offset macro then
6845 do not bother to perform the test if the arg pointer is not
6846 being used.
6847 (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
6848 (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
6849
6850 2000-03-23 Richard Earnshaw (rearnsha@arm.com)
6851
6852 * arm.c (output_return_instruction): Handle more cases where we can
6853 return from a function with an ldr instruction.
6854 (arm_output_epilogue): Likewise.
6855
6856 * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
6857 if we need to push a large stack frame and there are no callee-saved
6858 registers.
6859
6860 * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
6861 in ARM code if the frame pointer has been eliminated.
6862
6863 * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
6864 unspec_volatile arguments to avoid duplicates.
6865 (consttable_1, consttable_2): Fixes for big-endian mode.
6866
6867 * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
6868 as appropriate.
6869
6870 Re-write constant pool code.
6871 * arm.c (minipool_node, minipool_fix): New types.
6872 (minifix): Delete type.
6873 (arm_add_minipool_constant): Delete.
6874 (arm_compute_minipool_offsets, arm_find_barrier,
6875 arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
6876 (get_jump_table_size): Now returns HOST_WIDE_INT.
6877 (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
6878 functions.
6879 (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
6880 (assign_minipool_offsets, arm_print_value): Likewise.
6881 (dump_minipool): Rewrite.
6882 (arm_barrier_cost): New function.
6883 (create_fix_barrier): New function.
6884 (push_minipool_barrier): New function.
6885 (push_minipool_fix): Record additional information about the fixup
6886 required.
6887 (note_invalid_constants): Remove push for (UNSPEC 3). Don't
6888 check the mode of what needs fixing.
6889 (arm_reorg): Rewrite.
6890
6891 2000-03-08 Nick Clifton <nickc@cygnus.com>
6892
6893 * config/arm/arm.md (indirect_jump): Force constant addresses into
6894 a register.
6895
6896 2000-03-01 Bernd Schmidt <bernds@cygnus.co.uk>
6897
6898 * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
6899
6900 2000-02-24 Nick Clifton <nickc@cygnus.com>
6901
6902 * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
6903 adjust is word aligned.
6904 (thumb_expand_epilogue): Make sure that stack adjust is word
6905 aligned.
6906
6907 * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
6908
6909 2000-02-24 Bernd Schmidt <bernds@cygnus.com>
6910
6911 * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
6912 pointer relative addresses.
6913
6914 2000-02-10 Richard Earnshaw <rearnsha@arm.com>
6915
6916 * arm.c (find_barrier): Find the last barrier within the allowed
6917 range.
6918
6919 2000-02-09 Nick Clifton <nickc@cygnus.com>
6920
6921 * config/arm/arm-protos.h: Replace PROTO with PARAMS.
6922
6923 2000-02-09 Nick Clifton <nickc@cygnus.com>
6924
6925 * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
6926 ARM_FUNCTION_PROFILER.
6927
6928 * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
6929 ARM_FUNCTION_PROFILER.
6930
6931 * config/arm/linux-oldld.h: Imported from mainline sources.
6932
6933 2000-02-07 Nick Clifton <nickc@cygnus.com>
6934
6935 * config/arm/lib1funcs.asm: Merge in thumb functions from
6936 lib1thumb.asm.
6937
6938 * config/arm/lib1thumb.asm: Delete.
6939
6940 2000-02-04 Nick Clifton <nickc@cygnus.com>
6941
6942 * config/arm/arm.c: Sychronised with current Red hat local
6943 sources.
6944 * config/arm/arm.h: Ditto.
6945 * config/arm/arm-protos.h: Ditto.
6946
6947 2000-02-02 Bernd Schmidt <bernds@cygnus.co.uk>
6948
6949 * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
6950
6951 * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
6952 byte stores.
6953
6954 2000-02-02 Nick Clifton <nickc@cygnus.com>
6955
6956 * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
6957
6958 * config/arm/arm.md (epilogue): Fix rtl checking abort because
6959 (return) was emited using an emit_insn() call.
6960
6961 2000-01-31 Nick Clifton <nickc@cygnus.com>
6962
6963 * config/arm/arm.c (output_thumb_prologue): Fix bug generating
6964 thumb stack frame.
6965 (thumb_exit): Move frame pointer back into hard frame pointer
6966 register if backtracing is being used.
6967
6968 2000-01-13 Richard Earnshaw (rearnsha@arm.com)
6969
6970 * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
6971 into branch.
6972
6973 1999-12-15 Bernd Schmidt <bernds@cygnus.co.uk>
6974
6975 * config/arm/arm.md (neg_pool_offset): Provide default for new
6976 attribute.
6977 (arm_movsi_insn): Add neg_pool_offset attribute.
6978 * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
6979 rtx for the insn that starts the scan and an unsigned long for its
6980 address. Add MIN_OFFSET and PINSERTED args. All callers changed.
6981 Change scan to ignore insns before MIN_OFFSET. Store size of inserted
6982 instructions in *PINSERTED.
6983 (struct minipool_fixup): Add MIN_ADDRESS elt.
6984 (sort_fixups): Compute it.
6985 (arm_reorg): Changes to support inserting pools before the insn to be
6986 fixed up.
6987
6988 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
6989
6990 * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
6991 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
6992 * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
6993
6994 Wed Nov 3 10:04:07 1999 Nick Clifton <nickc@cygnus.com>
6995
6996 * config/arm/semi.h (TARGET_VERSION): Do not define if already
6997 defined.
6998 (TARGET_DEFAULT): Do not define if already defined.
6999
7000 Tue Nov 2 10:37:25 1999 Nick Clifton <nickc@cygnus.com>
7001
7002 * config/arm/arm.md (anddi3): Allow disjoint source operands.
7003 (iordi3): Allow disjoint source operands.
7004 (xordi3): Allow disjoint source operands.
7005 (negdi2): Permit construction for ARM and Thumb.
7006 (arm_negdi2): Renamed version of old negdi2 pattern.
7007 (thumb_negdi2): New pattern: Only permit non-overlapping
7008 source and destination.
7009
7010 Fri Oct 29 18:52:38 1999 Nick Clifton <nickc@cygnus.com>
7011
7012 * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
7013 scratch low register so that it will not be deleted.
7014
7015 Fri Oct 29 15:23:48 1999 Nick Clifton <nickc@cygnus.com>
7016
7017 * config/arm/pe.h (ARM_PE): Define.
7018
7019 * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
7020 interfacearm attribute if this is a PE toolchain.
7021 (output_return_instruction): Do not emit anything if the function
7022 has the naked attribute set.
7023 (is_called_in_ARM_mode): If the function has the interfacearm
7024 attribute then return true.
7025 (thumb_expand_prologue): Do not generate a prologue for naked
7026 functions.
7027 (thumb_expand_epilogue): Do not generate an epilogie for a naked
7028 function.
7029 (output_thumb_prologue): Do not bother if the function is naked.
7030 Strip PE encoding from function name before emitting.
7031
7032 Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com>
7033
7034 * arm.md (pic_load_addr): Fix constraints.
7035
7036 * arm.md (casesi_insn): Fix mis-applied patch.
7037
7038 * arm.md ("core" function unit): Add rules for single- and
7039 multi-cycle insns.
7040 (All TARGET_THUMB patterns): Add "type" attribute information
7041 where needed.
7042 * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
7043 the following insn is a CALL.
7044
7045 * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
7046 pointer.
7047 * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
7048 ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
7049 (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
7050
7051 Wed Oct 27 14:40:48 1999 Nick Clifton <nickc@cygnus.com>
7052
7053 * config/arm/linux-gas.h: oops - this file was missed out when the
7054 branch was created...
7055
7056 Tue Oct 26 17:07:38 1999 Richard Earnshaw <rearnsha@arm.com>
7057
7058 * thumb.c: Deleted. Move contents to ...
7059 * arm.c: ... here.
7060 * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
7061 rule for thumb.o
7062 * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
7063 * configure: Regen.
7064
7065 * arm-protos.h: Use RTX_CODE and tidy up long lines. Don't
7066 declare a prototype for asm_output_align();
7067
7068 * arm.c (thumb_condition_code): Delete.
7069 (arm_print_operand): Always use arm_condition_code array.
7070
7071 * arm.c (thumb_return_addr_rtx): Delete.
7072 (arm_save_machine_status, arm_restore_machine_status): Delete.
7073 (arm_init_machine_status, arm_mark_machine_status): New functions.
7074 (arm_init_expanders): Update accordingly.
7075 (arm_return_addr): Renamed from arm_return_addr_rtx. Rewrite.
7076 (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
7077 * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
7078
7079 Tue Oct 26 13:24:16 1999 Nick Clifton <nickc@cygnus.com>
7080
7081 * configure.in : Fix arm-*-aout target to use new t-arm-aout
7082 script.
7083 * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
7084 targets.
7085
7086 Tue Oct 26 11:27:12 1999 Nick Clifton <nickc@cygnus.com>
7087
7088 * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
7089 stack backtrace structure.
7090
7091 * config/arm/arm-protos.h: Add prototypes for functions defined in
7092 arm/pe.h.
7093
7094 * config/arm/arm.c (arm_override_options): Fix selection of
7095 attributes of default processor.
7096
7097 * config/arm/coff.h: Delete needless #include.
7098
7099 * config/arm/pe.c: Delete unused code.
7100
7101 * config/arm/pe.h (CPP_DEFINES): Delete
7102 (SUBTARGET_CPP_SPEC): Define.
7103 (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
7104
7105 * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
7106
7107 Mon Oct 25 15:42:09 1999 Richard Earnshaw (rearnsha@arm.com)
7108
7109 * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
7110 updated.
7111 (CAN_DEBUG_WITHOUT_FP): Define.
7112 (FIXED_REGISTERS): Make r11 call-saved.
7113 (CALL_USED_REGISTERS): Likewise.
7114 (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
7115 (FRAME_POINTER_REQUIRED): Correct logic for determining when a
7116 frame-pointer is required.
7117 (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
7118 * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
7119 if the target normally needs a stack frame in non-leaf functions.
7120 (use_return_insn): Correct logic for determining when a return
7121 instruction can be used.
7122 (output_return_instruction): Handle the frame-pointer register as
7123 a normal register when not TARGET_APCS_FRAME.
7124 (arm_output_prologue): Likewise.
7125 (arm_output_epilogue): Likewise.
7126 (output_func_epilogue): Likewise.
7127 (arm_expand_prologue): Likewise.
7128 * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
7129
7130 * arm.c (use_return_insn): No need to check floating point regs if
7131 TARGET_SOFT_FLOAT.
7132 (arm_find_minipool_constant): Correct typo; use GET_CODE to get
7133 the code of value stored in the minipool array.
7134 (arm_add_minipool_constant): Likewise.
7135
7136 2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7137
7138 * basic-block.h (conflict_graph_enum_fn): K&R fix.
7139
7140 2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7141
7142 * tree.c (tree_expr_nonnegative_p): New function.
7143
7144 * tree.h (tree_expr_nonnegative_p): Declare.
7145
7146 * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
7147 elide some sign_compare warnings.
7148 (build_conditional_expr): Likewise.
7149
7150 Sat Apr 8 00:21:51 EDT 2000 John Wehle (john@feith.com)
7151
7152 * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
7153
7154 * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
7155 * i386.c (print_operand): Use the proper suffix for a 387 HImode
7156 operand. Abort if a 387 operand has an unsupported size.
7157
7158 2000-04-08 Neil Booth <NeilB@earthling.net>
7159
7160 * cppexp.c (parse_charconst): Null does not end character
7161 constants.
7162 * cppinit.c (ISTABLE): Null character handled as whitespace.
7163 * cpplex.c (null_warning): new function.
7164 (skip_string): Emit warning if nulls encountered.
7165 (_cpp_skip_hspace): Emit warning if nulls encountered.
7166 (_cpp_lex_token): Emit warning if nulls encountered. Drop
7167 them.
7168 * cpp.texi: Update.
7169
7170 2000-04-07 Richard Henderson <rth@cygnus.com>
7171
7172 * flow.c (loop_depth): Remove.
7173 (reg_next_use, cc0_live, mem_set_list): Replace with ...
7174 (struct propagate_block_info): New.
7175 (life_analysis): Don't allocate reg_next_use.
7176 (propagate_block_delete_insn): Break out of propagate_block.
7177 Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
7178 (propagate_block_delete_libcall): Likewise.
7179 (propagate_block): Create a propagate_block_info struct to pass
7180 to subroutines. Allocate one not two temporary regsets. Don't
7181 clobber memory for const calls. Look for clobbers in
7182 CALL_INSN_FUNCTION_USAGE.
7183 (mark_set_regs): Recognize COND_EXEC.
7184 (mark_set_reg): Break out of mark_set_1.
7185 (mark_used_reg): Break out of mark_used_regs.
7186 (mark_used_regs): Recognize COND_EXEC.
7187 (insn_dead_p): Use propagate_block_info struct.
7188 (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
7189 (find_auto_inc, try_pre_increment_1): Likewise.
7190 (print_rtl_with_bb): Dump regs live at end too.
7191 (count_reg_sets_1): Pass in loop_depth.
7192 (count_reg_sets, count_reg_references): Likewise.
7193 (recompute_reg_usage): Provide it.
7194
7195 2000-04-07 Richard Henderson <rth@cygnus.com>
7196
7197 * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
7198 not the raw files.
7199
7200 2000-04-07 Zack Weinberg <zack@wolery.cumb.org>
7201
7202 * cpplib.c (do_elif): Skip the rest of the line if we're
7203 not going to bother evaluating it.
7204 (skip_if_group): Clear pfile->only_seen_white. Reorder loop
7205 to avoid pointless calls to the lexer.
7206
7207 Fri Apr 7 11:50:54 2000 Jim Wilson <wilson@cygnus.com>
7208
7209 * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
7210
7211 2000-04-07 Jason Merrill <jason@casey.cygnus.com>
7212
7213 * calls.c (expand_call): emit_queue if we're trying a sibcall.
7214
7215 2000-04-07 Jakub Jelinek <jakub@redhat.com>
7216
7217 * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
7218
7219 2000-04-06 Geoff Keating <geoffk@cygnus.com>
7220
7221 * Makefile.in: Build crtbeginS and crtendS like crtbegin and
7222 crtend so they can be multilibbed.
7223 (STAGESTUFF): Remove s-crt and s-crtS.
7224
7225 2000-04-07 Richard Henderson <rth@cygnus.com>
7226
7227 * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
7228 if we discover we need a pseudo and no_new_pseudos is true.
7229 * config/alpha/alpha.md (ne:DI insn): New.
7230 (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
7231
7232 2000-04-07 Richard Henderson <rth@cygnus.com>
7233
7234 * rtl.def (COND_EXEC): New.
7235 * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
7236 * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
7237
7238 * genconfig.c (have_cond_arith_flag): Remove.
7239 (have_cond_exec_flag): New.
7240 (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
7241 (main): Print HAVE_conditional_execution.
7242
7243 * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
7244 (sched_analyze_insn, print_pattern): Likewise.
7245 * reload.c (find_equiv_reg): Likewise.
7246 * rtlanal.c (reg_referenced_p): Likewise.
7247 (note_stores, dead_or_set_regno_p): Likewise.
7248 (reg_overlap_mentioned_p): Rewrite to use a switch.
7249
7250 * ggc.h (struct rtx_def): Forward declare.
7251
7252 * print-rtl.c (debug_rtx_range): New.
7253 * rtl.h (debug_rtx_range): Declare.
7254
7255 * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
7256
7257 * gcse.c (gcse_main): Don't rebuild the CFG here.
7258 (delete_null_pointer_checks): Likewise.
7259 * ssa.c (convert_to_ssa): Likewise.
7260 * toplev.c (rest_of_compilation): Do it here instead. Combine
7261 sequential calls to TIMEVAR. Consistently use `insns' instead of
7262 `get_insns()'. Always split insns after reload when optimizing.
7263
7264 * basic-block.h (merge_blocks_nomove): Declare.
7265 (tidy_fallthru_edge): Declare.
7266 * flow.c (merge_blocks_nomove): Document as merging into previous
7267 blocks. Remove cruft from between blocks; remove all edges out of A.
7268 (tidy_fallthru_edge): Export.
7269
7270 2000-04-06 Alex Samuel <samuel@codesourcery.com>
7271
7272 * ssa.c (compute_conservative_reg_partition): Declare with
7273 void arguments.
7274 * toplev.c (clean_dump_file): Remove previously-deleted function
7275 inadvertantly merged back in.
7276 * conflict.c (conflict_graph_add): Use a single call to
7277 htab_find_slot to look up and insert.
7278
7279 2000-04-06 Richard Henderson <rth@cygnus.com>
7280
7281 * genrecog.c (*): Rename _last_insn to last_insn.
7282 (make_insn_sequence): Set the position of the peephole2 C test
7283 to be at the last insn.
7284
7285 2000-04-06 Richard Henderson <rth@cygnus.com>
7286
7287 * flow.c (compute_flow_dominators): Free worklist.
7288
7289 2000-04-06 Michael Matz <matzmich@cs.tu-berlin.de>
7290
7291 * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
7292
7293 2000-04-06 Alex Samuel <samuel@codesourcery.com>
7294
7295 * rtl.h (INSN_P): New macro.
7296 (successor_phi_fn): New typedef.
7297 (for_each_successor_phi): New prototype.
7298 (in_ssa_form): New variable.
7299 (PHI_NODE_P): Likewise.
7300 * flow.c (calculate_global_regs_live): Add to new_live_at_end from
7301 phi nodes in successors.
7302 (mark_used_regs): Add PHI case.
7303 (set_phi_alternative_reg): New function.
7304 (life_analysis): Assert that dead code elimination is not selected
7305 when in SSA form.
7306 * toplev.c (to_ssa_time): New variable.
7307 (from_ssa_time): Likewise.
7308 (compile_file): Zero to_ssa_time and from_ssa_time.
7309 Print time to convert to and from SSA.
7310 (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
7311 (print_time): Compute percent fraction as integer.
7312 * ssa.c (PHI_NODE_P): Moved to rtl.h.
7313 (convert_to_ssa): Check if we're already in SSA.
7314 Don't eliminate dead code in life_analysis.
7315 Rerun flow and life analysis at bottom.
7316 (eliminate_phi): Use canonical regnos when adding nodes.
7317 (mark_reg_in_phi): New function.
7318 (mark_phi_and_copy_regs): Likewise.
7319 (convert_from_ssa): Rerun life analysis at top.
7320 Use coalesced partition.
7321 Check for removing a phi node at the end of the block.
7322 (compute_coalesced_reg_partition): New function.
7323 (coalesce_regs_in_copies): Likewise.
7324 (coalesce_reg_in_phi): Likewise.
7325 (coalesce_regs_in_sucessor_phi_nodes): Likewise.
7326 (for_each_successor_phi): Likewise.
7327 (rename_context): New struct.
7328 (rename_block): Use a rename_context with rename_insn_1. When
7329 renaming sets of a subreg, emit a copy of the entire reg first.
7330 (rename_insn_1): Treat data as a rename_context *. Save current
7331 insn in set_data.
7332 (rename_set_data): Add field set_insn.
7333 * Makefile.in (HASHTAB_H): Move up in file.
7334 (OBSTACK_H): New macro.
7335 (collect2.o): Use OBSTACK_H in dependencies.
7336 (sdbout.o): Likewise.
7337 (emit-rtl.o): Likewise.
7338 (simplify-rtx.o): Likewise.
7339 (fix-header.o): Likewise.
7340 (OBJS): Add conflict.o.
7341 (conflict.o): New rule.
7342 * basic-block.h: Include partition.h.
7343 (conflict_graph): New typedef.
7344 (conflict_graph_enum_fn): Likewise.
7345 (conflict_graph_new): New prototype.
7346 (conflict_graph_delete): Likewise.
7347 (conflict_graph_add): Likewise.
7348 (conflict_graph_conflict_p): Likewise.
7349 (conflict_graph_enum): Likewise.
7350 (conflict_graph_merge_regs): Likewise.
7351 (conflict_graph_print): Likewise.
7352 (conflict_graph_compute): Likewise.
7353 * conflict.c: New file.
7354
7355 2000-04-06 Jason Merrill <jason@yorick.cygnus.com>
7356
7357 * tlink.c (read_repo_files): Don't look for .rpo info for
7358 linker flags.
7359
7360 Thu Apr 6 20:39:26 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
7361
7362 * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
7363
7364 Thu Apr 6 19:34:08 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
7365
7366 * config/sh/lib1funcs.asm (___udivsi3_i4):
7367 ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
7368 only depends on FMOVD_WORKS.
7369
7370 Thu Apr 6 19:11:47 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
7371
7372 * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
7373 make double constant 8-byte aligned.
7374
7375 2000-04-06 Jakub Jelinek <jakub@redhat.com>
7376
7377 * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
7378 movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
7379 movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
7380 (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
7381 Accept storing GENERAL_REGS into offsetable memory.
7382 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
7383 building a TFmode constant other than 0.0L into GENERAL_REGS.
7384
7385 2000-04-06 Clinton Popetz <cpopetz@cygnus.com>
7386
7387 * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
7388
7389 2000-04-06 Zack Weinberg <zack@wolery.cumb.org>
7390
7391 * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
7392 (macro_cleanup): No need to cast pbuf->macro.
7393 (collect_expansion): Use _cpp_get_define_token. Goto done if
7394 it returns VSPACE. Remove check for trailing space after
7395 CPP_COMMENT.
7396 (_cpp_create_definition): Don't diddle flags here. Return
7397 directly on error.
7398 (unsafe_chars): Handle c1 being EOF.
7399 (push_macro_expansion): Use unsafe_chars for both accidental-paste
7400 checks. Don't push the buffer till after we're done with
7401 them.
7402 * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
7403 (PEEKN, FORWARD, GETC, PEEKC): Use them.
7404 (cpp_push_buffer): Don't set new->alimit. Set new->mark
7405 appropriately.
7406 (_cpp_parse_assertion): Don't NUL terminate.
7407 (_cpp_lex_token): Fix -traditional macro handling. Don't skip
7408 hspace before calling _cpp_parse_assertion. Remove all sets
7409 of only_seen_white. Treat '\f' as hspace. Don't do anything
7410 special with '\n' here.
7411 (maybe_macroexpand): Handle T_EMPTY hash entries without
7412 pushing a buffer at all.
7413 (cpp_get_token): Handle clearing only_seen_white here. Handle
7414 incrementing the line number here. Clear
7415 potential_control_macro as well as only_seen_white, if
7416 appropriate.
7417 (cpp_get_non_space_token): Don't eat CPP_POP tokens.
7418 (_cpp_get_define_token): New function, basically like
7419 _cpp_get_directive_token was but doesn't eat horizontal space.
7420 Don't do anything with only_seen_white here.
7421 (_cpp_get_directive_token): Just call _cpp_get_define_token
7422 repeatedly till it returns non-hspace.
7423
7424 * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
7425 (conditional_skip, skip_if_group): Return int.
7426 (DIRECTIVE_TABLE): Change origin of all conditional directives
7427 to "COND".
7428 (TRAD_DIRECT_P): New macro.
7429 (_cpp_handle_directive): Use _cpp_get_directive_token. Issue
7430 an error for a bogus directive, unless -lang-asm. Use
7431 TRAD_DIRECT_P. Loop calling handler functions till one returns
7432 zero.
7433 (get_macro_name): Don't diddle flags here.
7434 (do_define): Diddle flags here. Use _cpp_get_directive_token.
7435 Create T_EMPTY nodes for #define macro /* nothing */.
7436 (do_undef): Don't copy the name. Use _cpp_get_directive_token.
7437 Use hp->name when calling pass_thru_directive.
7438 (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
7439 Return the result of conditional_skip and/or skip_if_group.
7440 Don't call _cpp_output_line_command.
7441 (consider_directive_while_skipping): Use _cpp_get_directive_token.
7442 Issue -Wtraditional warnings as appropriate. Don't complain
7443 about unrecognized directives. If we are to stop skipping,
7444 return the number of the directive that ended the skip.
7445 (skip_if_group): Use _cpp_get_directive_token. Turn off macro
7446 expansion and line commands while skipping. Return the result
7447 of consider_directive_while_skipping, if nonzero.
7448 (do_endif): Just set potential_control_macro here.
7449 (validate_else): Use _cpp_get_directive_token.
7450 (do_assert, do_unassert): Don't save pointers into the
7451 token_buffer across calls to the lexer. Use
7452 _cpp_get_directive_token.
7453
7454 * cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a
7455 pointer, not an offset. Replace 'data', which was a generic
7456 pointer, with 'macro', which points to a struct hashnode.
7457 (cpp_reader): Add 'potential_control_macro' pointer.
7458 * cpphash.h (T_UNUSED): Replace with T_EMPTY.
7459 (CPP_BUF_GET, CPP_FORWARD): Delete.
7460 (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
7461 (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
7462 ACTIVE_MARK_P): Update.
7463 (_cpp_get_define_token): New internal function.
7464 * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
7465
7466 2000-04-05 Benjamin Kosnik <bkoz@cygnus.com>
7467
7468 * configure.in: And here.
7469 * configure: Regenerate.
7470 * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
7471 --enable-libstdcxx-v3 is passed at configure time.
7472 * config.h.in: Regenerate.
7473
7474 2000-04-05 Mark Mitchell <mark@codesourcery.com>
7475
7476 * final.c (final): Use xcalloc to allocate line_note_exists.
7477 * function.c (free_after_compilation): Free the temp_slots.
7478 (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
7479 (combine_temp_slot): Free temp_slots when they get combined.
7480 (purge_addressof): Fix typo in comment.
7481 * stmt.c (mark_goto_fixup): Mark the fixup itself.
7482 (expand_fixup): Allocate the fixup with ggc_alloc_obj.
7483
7484 * ggc.h: Include varray.h.
7485 (ggc_pending_trees): Declare.
7486 (ggc_mark_tree_children): Remove declaration.
7487 (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
7488 * ggc-common.c (ggc_pending_trees): New variable.
7489 (ggc_mark_roots): Call ggc_mark_trees.
7490 (ggc_mark_tree_children): Rename to ggc_mark_trees. Process all
7491 the ggc_pending_trees.
7492 * Makefile.in (GGC_H): New variable. Use it throughout in place
7493 of ggc.h.
7494
7495 Thu Apr 6 00:30:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
7496
7497 * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
7498 GET_MODE_SIZE.
7499
7500 Wed Apr 5 23:17:10 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
7501
7502 * sh.c (sh_insn_length_adjustment): New function.
7503 * sh-protos.h (sh_insn_length_adjustment): Declare.
7504 * sh.h (ADJUST_INSN_LENGTH): Use it.
7505
7506 Wed Apr 5 12:35:18 2000 Hans-Peter Nilsson <hp@axis.com>
7507
7508 * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
7509 from the insn where REG_RETVAL is added.
7510 (emit_no_conflict_block): Ditto.
7511
7512 * md.texi (Standard Names): Clarify when movX is needed.
7513
7514 * combine.c (simplify_comparison) [MINUS]: Do not replace
7515 all (op (minus A B) 0) with (op A B).
7516
7517 Wed Apr 5 18:03:31 2000 Toshiyasu Morita (toshi.morita@sega.com)
7518 J"orn Rennecke <amylaar@cygnus.co.uk>
7519
7520 * sh.md (block_lump_real_i4): Add missing clobber of T_REG
7521 (block_lump_real): Likewise.
7522
7523 2000-04-05 Chris Demetriou <cgd@netbsd.org>
7524
7525 * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
7526 remaining non-zero debugging masks.
7527
7528 Wed Apr 5 09:44:07 2000 Jeffrey A Law (law@cygnus.com)
7529
7530 * basic-block.h (verify_flow_info): Declare.
7531 (flow_loop_outside_edge_p): Declare.
7532 * flow.c (verify_flow_info): Remove declaration.
7533 (clear_log_links, flow_loop_outside_edge_p): Likewise.
7534
7535 Wed Apr 5 09:34:26 2000 Philippe De Muyter <phdm@macqel.be>
7536
7537 * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
7538 not C++ comments.
7539
7540 2000-04-05 Jakub Jelinek <jakub@redhat.com>
7541
7542 * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
7543 snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
7544 seqdi_zero_trunc+1): Allow splits only if registers are
7545 different.
7546
7547 2000-04-04 Ulrich Drepper <drepper@cygnus.com>
7548
7549 * acconfig.h: Add HAVE_GAS_HIDDEN.
7550 * config.in: Regenerated.
7551 * configure.in: Add test for .hidden pseudo-op in gas.
7552 * configure: Regenerated.
7553 * crtstuff.c: Include auto-host.h.
7554 Emit additional .hidden pseudo-op for __dso_handle if the
7555 assembler knows about it.
7556
7557 2000-04-04 Philippe De Muyter <phdm@macqel.be>
7558
7559 * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
7560 before freeing argnames.
7561 * cpplib.c (do_ifndef): Cast return value of xstrdup.
7562
7563 2000-04-05 Michael Meissner <meissner@redhat.com>
7564
7565 * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
7566 Walton <jonboy@gordian.com> to make memory references with update
7567 work wtih -mregnames.
7568
7569 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7570
7571 * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
7572 (regrename_optimize): Rename variables `def_uses' and
7573 `ext_basic_blocks' to avoid conflicts with similarly named
7574 typedefs in traditional C.
7575
7576 * calls.c (initialize_argument_information): Fix typo in previous
7577 change.
7578
7579 2000-04-04 Richard Henderson <rth@cygnus.com>
7580
7581 * regrename.c (consider_available): Test fixed_regs not
7582 PIC_OFFSET_TABLE_REGNUM.
7583
7584 2000-04-04 Geoff Keating <geoffk@cygnus.com>
7585
7586 * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
7587 crtend.
7588 (CRTSTUFF_T_CFLAGS_S): Delete definition.
7589 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
7590 (ENDFILE_LINUX_SPEC): Always use crtend.
7591 * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
7592 (powerpc-*-linux-gnu): Likewise.
7593 * configure: Regenerate.
7594
7595 * config/rs6000/eabi.h: Don't include sysv4.h.
7596 (MULTILIB_DEFAULTS): Don't define.
7597 * config/rs6000/eabiaix.h: Don't include eabi.h.
7598 * config/rs6000/eabile.h: Delete.
7599 * config/rs6000/eabilesim.h: Delete.
7600 * config/rs6000/eabisim.h: Don't include eabi.h.
7601 * config/rs6000/linux.h: Don't include sysv4.h.
7602 (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
7603 (MULTILIB_DEFAULTS): Don't redefine.
7604 * config/rs6000/rtems.h: Don't include eabi.h.
7605 * config/rs6000/sol2.h: Don't include sysv4le.h.
7606 * config/rs6000/sysv4le.h: Don't include sysv4.h.
7607 * config/rs6000/t-ppc: Delete.
7608 * config/rs6000/t-ppcgas: Correct comment.
7609 * config/rs6000/t-ppcos: Correct comment. Don't build
7610 multilibs for -fPIC, rather use -fPIC -mstrict-align
7611 as default.
7612 * config/rs6000/t-ppc: Delete.
7613 * config/rs6000/vxppc.h: Don't include sysv4.h.
7614 * config/rs6000/vxppcle.h: Delete.
7615 * configure.in: Use multiple header files for p2pc ELF targets
7616 powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
7617 powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
7618 powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
7619 powerpc-vxworks, powerpcle-vxworks. Assume GAS functionality is
7620 always available for these platforms.
7621
7622 2000-04-04 Richard Henderson <rth@cygnus.com>
7623
7624 * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
7625
7626 2000-04-04 Stan Cox <scox@cygnus.com>
7627
7628 * Makefile.in: Add rules for regrename.o
7629 * regrename.c: New file.
7630 * rtl.h (regrename_optimize): Add prototype.
7631 * toplev.c (rename_registers_dump, flag_rename_registers): New variables
7632 (compile_file, decode_d_option): Add support for -frename-registers.
7633 (rest_of_compilation): Call regrename_optimize.
7634 * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
7635 New macros.
7636
7637 2000-04-04 Martin v. Löwis <loewis@informatik.hu-berlin.de>
7638
7639 * Makefile (gccbug): New target.
7640 (doc): Depend on it.
7641 * gcc.texi (Bugs): Link subnodes.
7642 (gccbug): New node.
7643 * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
7644 Document severities, priorities, and classes in bug form.
7645
7646 2000-04-04 Zack Weinberg <zack@wolery.cumb.org>
7647
7648 * cpplex.c (trigraph_map, speccase): Combine into single
7649 table, chartab.
7650 (NORMAL, NONTRI): New macros.
7651 (_cpp_read_and_prescan): Change to use unified table. Use
7652 is_hspace to test for whitespace.
7653
7654 * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
7655 definition that doesn't provoke the "empty body in an
7656 if-statement" warning.
7657
7658 2000-04-04 Clinton Popetz <cpopetz@cygnus.com>
7659
7660 * builtins.c (expand_builtin_strlen): Force the source to
7661 be a memory address.
7662
7663 2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7664
7665 * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
7666
7667 Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka <jh@suse.cz>
7668
7669 * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
7670 ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants.
7671 (ECF_IS_CONST): Rename to ECF_CONST.
7672 (special_function_p): Make static, change interface.
7673 (flags_from_decl_or_type, try_to_integrate): Break out from ...
7674 (expand_call) ... here; convert number of variables to flags.
7675 (emit_library_call_vlue_1): Likewise.
7676 (setjmp_call_p): New function.
7677 (initialize_argument_information): Accepts flags as argument;
7678 return flags.
7679 (precompute_arguments): Likewise.
7680 * tree.h (special_function_p): Remove.
7681 (setjmp_call_p): Add prototype.
7682
7683 2000-04-04 Jakub Jelinek <jakub@redhat.com>
7684
7685 * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
7686 so that addresses are offsetable by up to 16 bytes.
7687 (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
7688 non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
7689 offsetable.
7690
7691 * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
7692 (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
7693 (movsf): Don't force any constant to memory if target is integer
7694 hard register.
7695 Move fp_zero_operand check below the const0_rtx check.
7696 (movtf): Likewise. Also allow fp_zero_operand for stores into
7697 memory.
7698 (movdf): Likewise. Also allow fp_zero_operand for stores into
7699 memory and into integer hard registers.
7700 (clear_df, clear_dfp, movdf_const_intreg_sp32,
7701 movdf_const_intreg_sp64): Remove.
7702 (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
7703 conditions.
7704 (movdf_no_e_insn_v9_sp32): New pattern.
7705 (movdf_insn_v9only): Remove.
7706 (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
7707 (movdf_insn_sp64): Remove.
7708 (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
7709 (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
7710 (following splits): Rewrite conditions. Add two new splits
7711 for storing 0.0 into memory and registers.
7712 (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
7713 (movtf_insn_sp32): Redo constraints and conditions.
7714 (movtf_insn_vis_sp32): New pattern.
7715 (movtf_no_e_insn_sp32): Redo constraints and conditions.
7716 (movtf_insn_hq_sp64): Likewise.
7717 (movtf_insn_hq_vis_sp64): New pattern.
7718 (movtf_insn_sp64): Redo constraints and conditions.
7719 (movtf_insn_vis_sp64): New pattern.
7720 (movtf_no_e_insn_sp64): Redo constraints and conditions.
7721 (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
7722 or memory.
7723 * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
7724 -mvis or -m64 to take down the number of various reload patterns.
7725
7726 Tue Apr 4 00:41:53 2000 Jeffrey A Law (law@cygnus.com)
7727
7728 * pa/pa-64.h: New file.
7729 * pa/pa64-regs.h: New file.
7730 * pa/pa64-start.h: New file.
7731 * pa/t-pa64: New file.
7732 * pa/xm-pa64hpux.h: New file.
7733
7734 2000-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7735
7736 * sparc.c (output_restore_regs): Prototype.
7737 (sparc_emit_float_lib_cmp): Constification.
7738
7739 * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
7740
7741 * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
7742 Prototype.
7743
7744 * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
7745 (get_value_hash, hash_rtx): Likewise.
7746
7747 * ssa.c (compute_conservative_reg_partition): Prototype.
7748
7749 * tree.c (mark_hash_entry): Prototype.
7750
7751 2000-04-03 Zack Weinberg <zack@wolery.cumb.org>
7752
7753 * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
7754 * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
7755 * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
7756
7757 * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
7758 * objc/lang-specs.h: Likewise.
7759
7760 2000-04-03 Neil Booth <NeilB@earthling.net>
7761
7762 * cppexp.c: wrap long lines. New macros CPP_ICE, SYNTAX_ERROR
7763 and SYNTAX_ERROR2. Replace `' in messages with ''.
7764 (op_to_str): Make re-entrant.
7765 (_cpp_parse_expr): Implement new error macros. Use | rather
7766 than || to logically or 2 boolean integers. Simply expression
7767 checking we have a left operand iff needed.
7768
7769 2000-04-03 Nick Clifton <nickc@cygnus.com>
7770
7771 * Makefile.in (diagnostic.o): Depend upon diagnostic.c
7772
7773 2000-04-03 Philip Blundell <philb@gnu.org>
7774
7775 * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
7776
7777 2000-04-03 Felix Lee <flee@cygnus.com>
7778
7779 * fixinc/server.c (find_shell): New function. Avoid $SHELL.
7780 (run_shell): Use it.
7781
7782 2000-04-03 Jonathan Larmour <jlarmour@redhat.co.uk>
7783
7784 * Makefile.in (stmp-int-hdrs): Make include subdir here...
7785 (stmp-fixproto): ...rather than here.
7786
7787 Mon Apr 3 00:50:06 2000 Jason Eckhardt <jle@cygnus.com>
7788
7789 * pa.c (print_operand): Compute 'base' only inside the code paths
7790 that use it.
7791
7792 2000-04-03 Geoffrey Keating <geoffk@cygnus.com>
7793
7794 * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
7795 CEIL_DIV_EXPR.
7796
7797 2000-04-03 Philipp Thomas <pthomas@suse.de>
7798
7799 * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
7800
7801 Mon Apr 3 00:02:59 2000 Brad Lucier <lucier@math.purdue.edu>
7802
7803 * Makefile.in (alias.o): Depend on $(TREE_H).
7804
7805 2000-04-02 Zack Weinberg <zack@wolery.cumb.org>
7806
7807 * cppinit.c (cpp_start_read): Turn off -Wtraditional if
7808 processing C++.
7809 * cpplib.c (_cpp_handle_directive): Improve warnings for
7810 traditional C and indented directives.
7811
7812 * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
7813 fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
7814 fixinc/inclhack.def: Indent the # of #include_next one space.
7815 * cp/rtti.c: Un-indent #if and #endif.
7816
7817 * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
7818 syntax error, but an error has already been printed.
7819 * cpplex.c (_cpp_parse_assertion): Give a more specific error
7820 message when called with nothing remaining on the line.
7821 (_cpp_lex_token): If _cpp_parse_assertion fails, return an
7822 OTHER token, not an ASSERTION.
7823 * cpplib.c (do_assert): When we create a 'base' node, clear
7824 its aschain pointer.
7825
7826 2000-04-02 Neil Booth <NeilB@earthling.net>
7827
7828 * cppexp.c: New typedef op_t. struct operation and struct
7829 token updated to use it.
7830 (op_to_str): New function.
7831 (_cpp_parse_expr): Error messages modified to use op_to_str.
7832
7833 2000-04-02 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7834
7835 * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
7836 before checking MUST_PASS_IN_STACK.
7837
7838 2000-04-02 Neil Booth <NeilB@earthling.net>
7839
7840 * cppexp.c: New FINISHED dummy token. Combine operator initial
7841 flags and initial priority into a single constant. New
7842 EQUALITY macro. New operator flag SHORT_CIRCUIT.
7843 (_parse_cpp_expr): Implement new constants. Take left operand
7844 checks out of reduction loop. Handle SHORT_CIRCUIT. End of
7845 parse indicated by reducing FINISHED token. Remove new lines
7846 from cpp_error messages.
7847
7848 2000-04-01 Mark Mitchell <mark@codesourcery.com>
7849
7850 * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
7851 permanent obstack.
7852
7853 2000-04-01 Zack Weinberg <zack@wolery.cumb.org>
7854
7855 * cpplib.c: Include symcat.h. Add 'origin' field to struct
7856 directive. Add origin values to DIRECTIVE_TABLE. Generate
7857 the strings and function names on the fly. Take the #sccs
7858 entry out of the table if SCCS_DIRECTIVE is not defined.
7859 (_cpp_handle_directive): Decide if the # was at the beginning
7860 of the line here. Issue -pedantic warnings for extended
7861 directives here. Warn about K+R directives with the #
7862 indented, and C89/extended directives with the # not indented,
7863 here.
7864 (do_import, do_include_next, do_warning, do_ident, do_sccs,
7865 do_assert, do_unassert): Don't issue pedantic warning here.
7866
7867 * cpphash.h: Add CPP_WTRADITIONAL macro.
7868 * cpplib.h (struct cpp_options): Rename warn_stringify to
7869 warn_traditional; update comments.
7870 * cppinit.c (handle_option): Set warn_traditional not
7871 warn_stringify.
7872 * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
7873 CPP_WTRADITIONAL (pfile).
7874 * cpplex.c (_cpp_lex_token): Don't decide if directives should
7875 be ignored in -traditional mode here.
7876
7877 * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
7878 to initialize speccase[] and trigraph_map[]. Delete all
7879 references to pfile->input_speccase. Always treat '?' as a
7880 special character. Remove table-initialization code from
7881 _cpp_init_input_buffer.
7882
7883 * cpplib.h (struct cpp_reader): Remove input_speccase field.
7884 * cppinit.c (cpp_cleanup): Don't free input_speccase.
7885
7886 2000-04-01 Richard Henderson <rth@cygnus.com>
7887
7888 * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
7889 (mostlyclean): Likewise.
7890
7891 * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
7892 (struct dump_file_info, enum dump_file_index, dump_file): New.
7893 (open_dump_file): Take a dump_file_index not a suffix, and a decl
7894 not a string. Clean out file if we havn't yet done so. Do nothing
7895 if the dump isn't enabled.
7896 (close_dump_file): Do nothing if the dump isn't open. Dump
7897 graph data if requested.
7898 (dump_rtl, clean_dump_file): Remove.
7899 (compile_file): Don't clean the dump files. Only finalize .bp dump
7900 if flag_test_coverage or flag_branch_probabilities. Only finalize
7901 .combine dump if optimizing. Iterate over dump_file to finalize the
7902 graph dumps.
7903 (rest_of_compilation): Update for open_dump_file/close_dump_file.
7904 Convert all uses of dump_rtl.
7905 (decode_d_option): Iterate over dump_file to implement 'a' and to
7906 locate pass-specific dumps.
7907
7908 2000-04-01 Neil Booth <NeilB@earthling.net>
7909
7910 * cppexp.c: Redefine priority constants.
7911 (_cpp_parse_expr): Replace left and right priority scheme with
7912 single priority logic. Move LOGICAL to same place as COMPARE.
7913 Remove bogus check for multiple unary +/- operators.
7914
7915 2000-04-01 Neil Booth <NeilB@earthling.net>
7916
7917 * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
7918 within the switch statement. Binary operations break out of
7919 the switch naturally. '(' tokens handled by forcing
7920 immediate shift. ')' handled by forcing immediate reduce to
7921 the previous '('. New error messages.
7922
7923 2000-03-31 Geoff Keating <geoffk@cygnus.com>
7924
7925 * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
7926 part', it's already in use. Use %K instead. Add a return at the
7927 end of what is now %K.
7928 * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
7929
7930 Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka <jh@suse.cz>
7931
7932 * builtins.c (expand_builtin_apply): Pass proper parameters to
7933 allocate_dynamic_stack_space.
7934 * calls.c (emit_call_1): Do not adjust stack pointer for SIB,
7935 update stack_pointer_delta; do not update arg_size_so_far.
7936 (compute_argument_block_size): Use stack_delta instead of
7937 stack_pointer_pending and arg_size_so_far.
7938 (expand_call): Add sanity checking for stack_pointer_delta;
7939 save and restore stack_pointer_delta for SIB, use
7940 stack_pointer_delta for alignment; do not update arg_space_so_far.
7941 (emit_library_call_value): Use stack_pointer_delta for alignment.
7942 (store_one_arg): Do not update arg_space_so_far.
7943 * explow.c (adjust_stack, anti_adjust_stack): Update
7944 stack_pointer_delta.
7945 (allocate_dynamic_stack_space): Add sanity checking for
7946 stack_pointer_delta.
7947 * expr.c (init_expr, clear_pending_stack_adjust): Clear
7948 stack_pointer_delta.
7949 (emit_push_insn): Update stack_pointer_delta.
7950 * function.h (struct expr_status): Add x_stack_pointer_delta;
7951 remove x_arg_space_so_far.
7952 (arg_space_so_far): Remove.
7953 (stack_pointer_delta): New macro.
7954
7955 2000-03-31 Zack Weinberg <zack@wolery.cumb.org>
7956
7957 * cpplib.h: Merge struct cpp_options into struct cpp_reader.
7958 Reorder struct cpp_options and struct cpp_reader for better
7959 packing. Replace CPP_OPTIONS macro with CPP_OPTION which
7960 takes two args. Change all 'char' flags to 'unsigned char'.
7961 Move show_column flag into struct cpp_options. Don't
7962 prototype cpp_options_init.
7963 * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
7964 cppinit.c, cpplex.c, cpplib.c:
7965 Replace CPP_OPTIONS (pfile)->whatever with
7966 CPP_OPTION (pfile, whatever), and likewise for
7967 opts = CPP_OPTIONS (pfile); ... opts->whatever;
7968
7969 * cppinit.c (merge_include_chains): Take a cpp_reader *.
7970 Extract CPP_OPTION (pfile, pending) and work with that
7971 directly.
7972 (cpp_options_init): Delete.
7973 (cpp_reader_init): Turn on on-by-default options here.
7974 Allocate the pending structure here.
7975 (cl_options, enum opt_code): Define these from the same table,
7976 kept in a large macro. Add -fshow-column and -fno-show-column
7977 options.
7978
7979 * cpperror.c (v_message): If show_column is off, don't print
7980 the column number.
7981
7982 * cppmain.c: Update for new interface.
7983 * fix-header.c: Likewise.
7984
7985 2000-03-30 Geoff Keating <geoffk@cygnus.com>
7986
7987 * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
7988 definition.
7989 * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
7990 are passed to any invocation of AR_FOR_TARGET.
7991 (AR_CREATE_FOR_TARGET): New macro.
7992 (AR_EXTRACT_FOR_TARGET): New macro.
7993 (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
7994 AR_EXTRACT_FOR_TARGET.
7995 (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
7996 in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
7997 `$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and
7998 AR_EXTRACT_FOR_TARGET to sub-makes.
7999
8000 2000-03-31 Neil Booth <NeilB@earthling.net>
8001
8002 * cppexp.c: Delete SKIP_OPERAND. Correct priority
8003 PAREN_INNER_PRIO.
8004 (_cpp_parse_expr): Check for multiple unary +/- operators.
8005 Correct priorities of ':' and '?'. Treat ')' as having a
8006 value. Ensure conditional expression is not void.
8007
8008 2000-03-31 Mark Mitchell <mark@codesourcery.com>
8009
8010 * alias.c (canon_rtx): Make it global.
8011 (rtx_equal_for_memref_p): CONST_INT equality is now pointer
8012 equality.
8013 * cse.c (struct table_elt): Add canon_exp.
8014 (insert): Clear it.
8015 (invalidate): Canonicalize expressions only once.
8016 * rtl.h (canon_rtx): Declare.
8017
8018 2000-03-30 Mark Mitchell <mark@codesourcery.com>
8019
8020 * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
8021 * alias.c (reg_known_value): Add comments.
8022 (init_alias_analysis): Likewise.
8023 * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
8024 address.
8025 (cse_basic_block): Fix typo in comment.
8026 * emit-rtl.c: Include hashtab.h.
8027 (const_int_htab): New variable.
8028 (const_int_htab_hash): New function.
8029 (const_int_htab_eq): Likewise.
8030 (rtx_htab_mark_1): Likewise.
8031 (rtx_htab_mark): Likewise.
8032 (gen_rtx_CONST_INT): Cache all CONST_INTs.
8033 (unshare_all_rtx): Fix formatting.
8034 (init_emit_once): Initialize const_int_htab.
8035 * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
8036 address.
8037 * rtl.texi: Document the fact that all CONST_INTs with the same
8038 value are shared.
8039
8040 2000-03-30 Richard Henderson <rth@cygnus.com>
8041
8042 * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
8043
8044 2000-03-30 Zack Weinberg <zack@wolery.cumb.org>
8045
8046 * configure.in: Comment out --enable-c-cpplib stanza.
8047 * configure: Regenerate.
8048
8049 Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8050
8051 * expr.c (store_constructor): Properly compute displacement and
8052 alignment when offset is variable.
8053
8054 * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
8055 cases of alignment in bytes.
8056
8057 Thu Mar 30 13:30:40 2000 Jeffrey A Law (law@cygnus.com)
8058
8059 * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
8060 since it is used to generate c-parse.y.
8061 * objc-parse.c, objc-parse.y: Regenerated.
8062
8063 * function.c (expand_function_end): Pass alignment argument to
8064 emit_block_move in bits, not bytes.
8065
8066 Thu Mar 30 06:32:51 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8067
8068 * expr.c (move_by_pieces_ninsns): Fix one more missing align
8069 correction.
8070
8071 * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
8072
8073 * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
8074 * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
8075 * function.c (assign_parms): Likewise.
8076 * integrate.c (expand_inline_function): Likewise.
8077 * stmt.c (expand_decl): Likewise.
8078 (copy_rtx_and_substitute): Likewise.
8079 * expr.c (expand_expr, expand_expr_unaligned): Likewise.
8080 (clear_by_pieces): Fix error in last change.
8081 * emit-rtl.c (init_emit): Set known registers alignment in bits.
8082 * function.h (regno_pointer_align): Now unsigned.
8083 * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
8084 is in bits.
8085 * config/i386/i386.c (aligned_operand): Likewise.
8086 * config/sparc/sparc.c (mem_min_alignment): Likewise.
8087 * config/alpha/alpha.c (aligned_memory_operand): Likewise.
8088 (unaligned_memory_operand): Likewise.
8089 (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
8090 Also make alignments and sizes unsigned and some whitespace cleanup.
8091 (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
8092
8093 * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
8094 (expand_builtin_apply): Pass alignment to emit_block_move in bits.
8095 (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
8096 (expand_builtin_memset): Likewise, but to clear_storage.
8097 * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
8098 (restore_fixed_argument_area): Likewise.
8099 (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
8100 (load_register_parameters): Likewise, to emit_group_load.
8101 (expand_call): Likewise, to emit_group_store and emit_block_move.
8102 (emit_library_call_value_1): Likewise, to emit_block_move.
8103 (store_one_arg): Likewise, and to emit_push_insn.
8104 * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
8105 (extract_fixed_bit_field, extract_split_bit_field): Likewise.
8106 * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
8107 (emit_block_move, emit_group_load, emit_group_store): Likewise.
8108 (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
8109 (expand_assigment, store_expr, store_constructor_field): Likewise.
8110 (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
8111 (store_constructor, store_field, get_inner_reference): Likewise.
8112 Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
8113 (expand_expr, case COMPONENT_REF): Likewise.
8114 (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
8115 and positions; reindent code.
8116 * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
8117 * function.c (purge_addressof_1): Pass bit align to store_bit_field.
8118 (assign_parms): Likewise to emit_group_store.
8119 * optabs.c (prepare_cmp_insn): Alignment is in bits.
8120 (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
8121 * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
8122 (expand_return): Likewise to {extract,store}_bit_field.
8123 * stor-layout.c (get_mode_alignment): Minor cleanup.
8124 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
8125 * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
8126
8127 2000-03-29 Nick Clifton <nickc@cygnus.com>
8128
8129 * config/arm/arm.h: Undo effects of previous delta:
8130 (ASM_SPEC): Do not define.
8131 (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
8132
8133 * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
8134 typo.
8135
8136 2000-03-29 Zack Weinberg <zack@wolery.cumb.org>
8137
8138 * cppinit.c (cpp_start_read): Call initialize_dependency_output
8139 only after reading in the primary source file.
8140
8141 2000-03-29 Geoff Keating <geoffk@cygnus.com>
8142
8143 * c-common.c (c_common_nodes_and_builtins): The first parameter to
8144 __builtin_va_start and __builtin_va_copy is now either a 'va_list'
8145 or a reference to a va_list.
8146 * builtins.c (stabilize_va_list): Simplify now we don't have to
8147 work around C array address decay.
8148 * c-typeck.c (convert_for_assignment): Handle assignment to
8149 a reference parameter by taking the address of the RHS.
8150 * ginclude/stdarg.h (va_start): Don't take address of first parameter.
8151 (va_copy): Likewise.
8152 (__va_copy): Likewise.
8153 * ginclude/varargs.h (va_start): Likewise.
8154 (__va_copy): Likewise.
8155
8156 Wed Mar 29 15:44:53 2000 Jeffrey A Law (law@cygnus.com)
8157
8158 * i386/djgpp.h: Remove extraneous "+".
8159
8160 * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
8161
8162 * calls.c (expand_call): Fix typo in last change.
8163
8164 2000-03-29 Jason Merrill <jason@casey.cygnus.com>
8165
8166 * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
8167 been expanded.
8168
8169 Wed Mar 29 15:39:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8170
8171 * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
8172 (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
8173 (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
8174 * tree.c (bit_position, byte_position): Likewise.
8175 * tree.h: Declare new functions.
8176
8177 2000-03-29 Nick Clifton <nickc@cygnus.com>
8178
8179 * config/arm/arm.c: Minor formatting changes/
8180 * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
8181 already defined.
8182 (ASM_SPEC): Define if not already defined.
8183
8184 2000-03-29 Zack Weinberg <zack@wolery.cumb.org>
8185
8186 * cppfiles.c (cpp_read_file): Don't pass zero-length string to
8187 _cpp_calc_hash.
8188
8189 2000-03-29 Jakub Jelinek <jakub@redhat.com>
8190
8191 * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
8192 value, don't output it as unsigned.
8193
8194 Wed Mar 29 10:53:49 2000 Jeffrey A Law (law@cygnus.com)
8195
8196 * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
8197
8198 2000-03-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8199
8200 * c-common.c (c_common_nodes_and_builtins): Don't special case
8201 cplus_mode when declaring builtin bzero/bcmp, always avoid
8202 prototype arguments.
8203
8204 2000-03-29 Bruce Korb <bkorb@gnu.org>
8205
8206 * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
8207 to a non-file
8208
8209 Wed Mar 29 15:08:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
8210
8211 Convert ACCUMULATE_OUTGOING_ARGS to an expression.
8212 * calls.c (PUSH_ARGS_REVERSED) Change to expression.
8213 (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
8214 (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
8215 (save_fixed_argument_area, restore_fixed_argument_area):
8216 conditionize by #ifdef REG_PARM_STACK_SPACE only.
8217 (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
8218 to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
8219 (precompute_register_parameters): Avoid #ifdefs on
8220 ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
8221 (stire_one_args): Likewise.
8222 (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
8223 (emit_library_call_value_1): Likewise.
8224 (compute_argument_block_size): Align to STACK_BOUNDARY only for
8225 ACCUMULATE_OUTGOING_ARGS.
8226 * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
8227 value.
8228 (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
8229 (use_crosses_set_p): Likewise.
8230 * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
8231 #define ACCUMULATE_OUTGOING_ARGS 1.
8232 * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
8233 frames.
8234 * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
8235 constants.
8236 (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
8237 (TARGET_SWITCHES): Add push-args, no-push-args,
8238 accumulate-outgoing-args and no-accumulate-outgoing-args.
8239 (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
8240 * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
8241 (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
8242 and PUSH_ROUNDING.
8243 (emit_push_insn): Likewise.
8244 * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
8245 (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
8246 * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
8247 (STACK_DYNAMIC_OFFSET): Define correctly for both
8248 ACCUMULATE_OUTGOING_ARGS and normal mode.
8249 * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
8250 * tm.texi (PUSH_ARGS): Document.
8251 (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
8252
8253 Wed Mar 29 11:51:13 MET DST 2000 Jan Hubicka <jh@suse.cz>
8254
8255 * flags.h (flag_optimize_sibling_calls): Declare.
8256 * calls.c (expand_call): Fail sibcall when
8257 !flag_optimize_sibling_calls
8258 * invoke.texi (flag_optimize_sibling_calls): Document.
8259 * toplev.c (flag_optimize_sibling_calls): New global variable.
8260 (f_options): Add flag_optimize_sibling_calls.
8261 (rest_of_compilation): Conditionize
8262 optimize_sibling_and_tail_recursive_calls by
8263 flag_optimize_sibling_calls.
8264 (main): Set flag_optimize_sibling_calls for -O2.
8265 * stmt.c (expand_return): Conditionize tail recursion by
8266 flag_optimize_sibling_calls.
8267
8268 2000-03-29 Richard Henderson <rth@cygnus.com>
8269
8270 * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
8271 (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
8272
8273 2000-03-29 Nathan Sidwell <nathan@codesourcery.com>
8274
8275 * except.c (add_eh_table_entry): Mark type_info's as referenced.
8276
8277 2000-03-29 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
8278
8279 * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
8280 is given.
8281 * config/rs6000/aix43.h (CPP_SPEC): Likewise.
8282 * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
8283 * config/rs6000/aix.h: then modified likewise.
8284
8285 2000-03-28 Richard Henderson <rth@cygnus.com>
8286
8287 * rtl.h: Redistribute enum reg_note documentation.
8288 Kill trailing whitespace.
8289 * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
8290 Kill trailing whitespace.
8291
8292 2000-03-28 Zack Weinberg <zack@wolery.cumb.org>
8293
8294 * cppfiles.c (hash_IHASH): Just return i->hash.
8295 (cpp_included): Set dummy.hash using _cpp_calc_hash. Use
8296 htab_find_with_hash.
8297 (cpp_read_file): Likewise.
8298 (find_include_file): Likewise. Properly initialize
8299 ih->nshort. Share ih->name and ih->nshort if possible.
8300 * cpphash.c (_cpp_calc_hash): New function.
8301 (hash_HASHNODE): Just return h->hash.
8302 (_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use
8303 htab_find_with_hash.
8304 * cpphash.h: Prototype _cpp_calc_hash.
8305 * cppinit.c (initialize_builtins): Provide a valid hash
8306 to _cpp_make_hashnode, using _cpp_calc_hash.
8307
8308 * cpphash.c (collect_expansion): # is not a special character
8309 in object-like macros. In -traditional mode, /**/ is not
8310 token paste at the beginning or end of the line.
8311 * cpplib.c (do_include, do_import, do_include_next): If
8312 parse_include fails, return immediately.
8313
8314 2000-03-28 Jason Merrill <jason@casey.cygnus.com>
8315
8316 * config/arm/arm.md (return peepholes): Update to reflect the new
8317 call insn patterns.
8318 * config/arm/arm.c (arm_volatile_func): Also check
8319 current_function_nothrow.
8320 (output_return_instruction, output_func_prologue): Use it.
8321 (arm_output_epilogue, arm_expand_prologue): Likewise.
8322
8323 2000-03-27 Tom Tromey <tromey@cygnus.com>
8324
8325 * gcc.c (handle_braces): In {x*...} case, break out of loop if
8326 switch is found.
8327
8328 Tue Mar 28 11:55:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8329
8330 * expr.c (store_constructor): SIZE now signed.
8331 For EXPR_SIZE, don't evaluate size; just needed if constant.
8332 * fold-const.c (fold): Fix a number of cases when folded tree is
8333 wrong type.
8334 * function.c (flush_addressof): Reenable.
8335 * tree.h (flush_addressof): Likewise.
8336 * toplev.c (independent_decode_option): Look at strings_processed.
8337 * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
8338
8339 Tue Mar 28 08:29:46 2000 Jan Hubicka <jh@suse.cz>
8340
8341 * sibcall.c (indentify_call_return_value): Find last call in the chain;
8342 Allow stack adjustment after function call.
8343
8344 * regmove.c (struct csa_memlist): Make mem field rtx *.
8345 (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
8346 (try_apply_stack_adjustment): Replace whole MEM rtx.
8347 (combine_stack_adjustments_for_block): Update calls
8348 to record_one_stack_ref.
8349
8350 2000-03-28 Neil Booth <NeilB@earthling.net>
8351
8352 * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
8353 '\\' rather than a null character, so nulls are not special. Fix
8354 "\\\n" handling in end-of-buffer conditions. Use trigraph map to
8355 speed trigraph conversion.
8356 (_cpp_init_input_buffer): Initialize trigraph map.
8357
8358 2000-03-27 Alan Modra <alan@linuxcare.com.au>
8359
8360 * config/i386/i386.c (output_387_binary_op): Correct intel
8361 mode assembly output, and add spaces after commas in AT&T
8362 output. Correct Unixware assembler comment. Document input
8363 constraints. Comment fp operations. Reduce profligate buffer
8364 size. Remove extraneous abort. Localize temp var.
8365 (SYSV386_COMPAT): Define. Add !SYSV386_COMPAT code.
8366 (output_fix_trunc): Add spaces after commas in assembly output.
8367
8368 2000-03-27 Richard Henderson <rth@cygnus.com>
8369
8370 * i386-protos.h (ix86_match_ccmode): Declare.
8371 * i386.c (ix86_match_ccmode): New.
8372 (ix86_expand_fp_compare): Update for pattern renames.
8373 (ix86_expand_strlensi_unroll_1): Likewise.
8374 * i386.h (EXTRA_CC_MODES): Add CCZ.
8375 (SELECT_CC_MODE): Use it for EQ/NE zero.
8376 * i386.md (cmpsi_ccz_1): New.
8377 (cmpqi_ccz_1): New.
8378 (*testsi_ccz_1): New.
8379 (testqi_ccz_1): New.
8380 (cmpsi_ccno_1): Rename from cmpsi_0.
8381 (testsi_ccno_1): Rename from testsi_1.
8382 (testqi_ccno_1): Rename from testqi_1.
8383 (*testqi_ext_ccz_0): Rename from testqi_ext_0.
8384 (testqi_ext_ccno_0): Rename from *testqi_ext_1.
8385 (*cmphi_0): Use ix86_match_ccmode.
8386 (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
8387 (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
8388 (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
8389 (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
8390 (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
8391 (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
8392 (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
8393 (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
8394 (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
8395 (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
8396 (appropriate peepholes): Likewise.
8397 (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
8398 (*subsi_3, *subhi_3, *subqi_3): Remove.
8399 (*negdi2_1+1 splitter): Use CCZ for neg patterns.
8400 (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
8401 (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
8402 (*neghi2_cmpz, *negqi2_cmpz): Similarly.
8403 (x86_shift_adj_1): Use CCZ.
8404 (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
8405
8406 2000-03-27 Stan Cox <scox@cygnus.com>
8407
8408 * resource.h (mark_resource_type): New.
8409 * resource.c (find_dead_or_set_registers, mark_target_live_regs,
8410 find_free_register): Use mark_resource_type.
8411 (mark_set_resources): Change include_delayed_effects
8412 to mark_resource_type.
8413 * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
8414 redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
8415 Use mark_resource_type.
8416
8417 2000-03-27 Richard Henderson <rth@cygnus.com>
8418
8419 * i386.md (call_pop_0, call_value_pop_0): New.
8420 (call_pop_1): Remove constraint from unused arg. Support sibcalls.
8421 (call_value_pop_1): Likewise.
8422 (call_0, call_value_0): New.
8423 (call_1, call_value_1): Remove constraint from unused arg.
8424
8425 2000-03-27 Nick Clifton <nickc@cygnus.com>
8426
8427 * invoke.texi (Spec Files): Document new spec % command created by
8428 Tom Tromey's recent patch.
8429
8430 2000-03-27 Jakub Jelinek <jakub@redhat.com>
8431
8432 * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
8433 if not defined.
8434
8435 Mon Mar 27 06:04:22 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8436
8437 * expr.c (expand_assignment): Fix typo in last change.
8438
8439 * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
8440
8441 Sun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8442
8443 * c-convert.c (convert): Return if output or input type is ERROR_MARK.
8444 * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
8445 and DECL_INLINE if FUNCTION_DECL.
8446 (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
8447 (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
8448 Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
8449 (combine_parm_decls): Likewise.
8450 * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
8451 * print-tree.c (print_node): Likewise.
8452 Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
8453 DECL_TRANSPARENT_UNION on proper decl types.
8454 Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
8455 * stor-layout.c (layout_decl): Only check DECL_PACKED and
8456 DECL_BIT_FIELD of FIELD_DECL.
8457 * tree.h (DECL_RESULT_FLD): New macro.
8458
8459 * expr.c (expand_assignment): Add code to handle variable-sized
8460 BLKmode case.
8461
8462 2000-03-26 Richard Henderson <rth@cygnus.com>
8463
8464 * calls.c (expand_call): Pass parms not original exp to
8465 optimize_tail_recursion. Mind return value instead of looking
8466 for a barrier.
8467 * stmt.c (optimize_tail_recursion): Take parameter list, not entire
8468 call_expr. Move checks for call_expr and current_function_decl ...
8469 (expand_return): ... here.
8470
8471 2000-03-26 Tom Tromey <tromey@cygnus.com>
8472
8473 * gcc.c (handle_braces): Recognize `%{<S}' construct.
8474 (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
8475 defines.
8476 (process_command): Use them.
8477 (check_live_switch): Likewise.
8478 (give_switch): Skip ignored switches.
8479
8480 2000-03-26 Jan Hubicka <jh@suse.cz>
8481
8482 * jump.c (jump_optimize_1): Fix typo in elide optimizations
8483 for minimal jump pass test.
8484
8485 2000-03-26 Mark Mitchell <mark@codesourcery.com>
8486
8487 * integrate.c (function_cannot_inline_p): Do inline functions that
8488 return `void'.
8489
8490 Sun Mar 26 11:37:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8491
8492 * stor-layout.c (layout_type, set_sizetype): early_type_list is
8493 now a list of TREE_LIST entries, not types.
8494 * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
8495
8496 * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
8497 * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
8498 int_bit_position.
8499 * config/mips/mips.c (function_arg): Likewise; also remove cast
8500 and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
8501 (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
8502 * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
8503 * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
8504 (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
8505 (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
8506 (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
8507 (struct mips_arg): arg_number, arg_words, fp_arg_words, and
8508 num_adjusts now unsigned.
8509 (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
8510 * config/sparc/sparc.c (struct function_arg_record_value_parms):
8511 NREGS now unsigned.
8512 (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
8513 as is BITPOS variable; use host_integerp and int_bit_position.
8514 (function_arg_record_value_2): Likewise.
8515 (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
8516 Variable REGNO now unsigned.
8517 (function_arg_record_value): NREGS now unsigned.
8518
8519 2000-03-26 Bernd Schmidt <bernds@cygnus.co.uk>
8520
8521 * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
8522
8523 Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8524
8525 * Rework fields used to describe positions of bitfields and
8526 modify sizes to be unsigned and use HOST_WIDE_INT.
8527 * alias.c (reg_known_value_size): Now unsigned.
8528 * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
8529 (really_start_incremental_init): Use bitsize_zero_node.
8530 (push_init_level, pop_init_level, output_init_element): Likewise.
8531 Use bitsize_unit_node and bitsize_one_node.
8532 (output_pending_init_elements, process_init_element): Likewise.
8533 * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
8534 (make_extraction): Position and length HOST_WIDE_INT and unsigned
8535 HOST_WIDE_INT, respectively.
8536 (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
8537 (num_sign_bit_copies): Returns unsigned.
8538 BITWIDTH now unsigned; rework arithmetic.
8539 Remove recursive call from arg to MAX.
8540 (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
8541 (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
8542 REGNO now unsigned.
8543 (set_nonzero_bit_and_sign_copies): NUM now unsigned.
8544 (find_split_point, expand_compound_operation, make_extraction): LEN
8545 now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
8546 (make_field_assignment): Likewise.
8547 (combine_simplify_rtx): Add cast.
8548 (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
8549 (force_to_mode): WIDTH now unsigned; add cast.
8550 (if_then_else_cond): SIZE now unsigned.
8551 (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
8552 (extended_count): Now returns unsigned.
8553 (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
8554 Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
8555 (simplify_comparison): MODE_WIDTH now unsigned.
8556 (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
8557 (mark_used_regs_combine): Likewise; rework arithmetic.
8558 (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
8559 (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
8560 (record_promoted_value): REGNO now unsigned.
8561 (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
8562 (get_last_value): REGNO now unsigned.
8563 (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
8564 (reg_dead_regno, reg_dead_endregno): Now unsigned.
8565 (remove_death): Arg REGNO now unsigned.
8566 (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
8567 (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
8568 now unsigned.
8569 * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
8570 * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
8571 (struct cse_reg_info): REGNO now unsigned.
8572 (cached_regno): Now unsigned.
8573 (REGNO_QTY_VALID_P): Add cast.
8574 (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
8575 (remove_invalid_regs): Likewise.
8576 (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
8577 as are variables END and I.
8578 (get_cse_reg_info, insert): Likewise.
8579 (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
8580 (canon_hash): Likewise.
8581 (insert_regs, lookup_for_remove): REGNO now unsigned.
8582 (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
8583 New variable RN.
8584 * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
8585 * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
8586 * emit-rtl.c (subreg_realpart_p): Add cast.
8587 (operand_subword): Arg I is now unsigned as is var PARTWORDS.
8588 (operand_subword_force): Arg I is now unsigned.
8589 * except.c (eh_regs): Variable I is now unsigned.
8590 * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
8591 * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
8592 length is unsigned HOST_WIDE_INT; likewise for internal variables.
8593 (store_split_bit_field, extract_fixed_bit_field): Likewise.
8594 (extract_split_bit_field, store_bit_field, extract_bit_field):
8595 Likewise.
8596 * expr.c (store_constructor_fields, store_constructor, store_field):
8597 Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
8598 (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
8599 (do_jump): Likewise.
8600 (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
8601 MAX_SIZE is now unsigned.
8602 (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
8603 (emit_group_store): Likewise.
8604 (emit_move_insn): I now unsigned.
8605 (store_constructor): Use host_integerp, tree_low_cst, and
8606 bitsize_unit_node.
8607 (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
8608 Rework all calculations to use trees and new fields.
8609 * expr.h (promoted_input_arg): Regno now unsigned.
8610 (store_bit_field, extract_bit_field): Adjust types of pos and size.
8611 (mark_seen_cases): Arg is HOST_WIDE_INT.
8612 * flow.c (verify_wide_reg_1): REGNO now unsigned.
8613 * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
8614 precisions and alignments are unsigned.
8615 (optimize_bit_field_compare, fold_truthop): Likewise.
8616 (int_const_binop): Adjust threshold for size_int_type_wide call.
8617 (fold_convert): Likewise.
8618 (size_int_type_wide): Make table larger and fix thinko that only
8619 had half of table used.
8620 (all_ones_mask_p, fold): Precisions are unsigned.
8621 * function.c (put_reg_info_stack): REGNO is unsigned.
8622 (instantiate_decl): Size is HOST_WIDE_INT.
8623 (instantiate_virtual_regs): I is unsigned.
8624 (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
8625 (promoted_input_arg): REGNO is unsigned.
8626 * function.h (struct function): x_max_parm_reg is now unsigned.
8627 * gcse.c (max_gcse_regno): Now unsigned.
8628 (struct null_pointer_info): min_reg and max_reg now unsigned.
8629 (lookup_set, next_set): REGNO arg now unsigned.
8630 (compute_hash_table): REGNO and I now unsigned.
8631 (handle_avail_expr): regnum_for_replacing now unsigned.
8632 (cprop_insn): REGNO now unsigned.
8633 (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
8634 * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
8635 * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
8636 * hard-reg-set.h (reg_class_size): Now unsigned.
8637 * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
8638 * jump.c (mark_modified_reg): I now unsigned; add cast.
8639 (rtx_equal_for_thread_p): Add cast.
8640 * loop.c (max_reg_before_loop): Now unsigned.
8641 (struct_movable): REGNO now unsigned.
8642 (try_copy_prop): REGNO arg unsigned.
8643 (regs_match_p): XN and YN now unsigned.
8644 (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
8645 (strength_reduce): Likewise; NREGS also unsigned.
8646 (first_increment_giv, last_increment_giv unsigned): Now unsigned.
8647 * loop.h (struct iv_class): REGNO now unsigned.
8648 (max_reg_before_loop, first_increment_giv, last_increment_giv):
8649 Now unsigned.
8650 * machmode.h (mode_size, mode_unit_size): Now unsigned.
8651 (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
8652 * optabs.c (expand_binop): I and NWORDS now unsigned.
8653 (expand_unop): I now unsigned.
8654 * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
8655 print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
8656 * real.c (significand_size): Now returns unsigned.
8657 * real.h (significand_size): Likewise.
8658 * regclass.c (reg_class_size): Now unsigned.
8659 (choose_hard_reg_mode): Both operands now unsigned.
8660 (record_reg_classes): REGNO and NR now unsigned.
8661 (reg_scan): NREGS now unsigned.
8662 (reg_scan_update): old_max_regno now unsigned.
8663 (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
8664 * reload.c (find_valid_class): BEST_SIZE now unsigned.
8665 (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
8666 (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
8667 Likewise for variable R.
8668 (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
8669 as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
8670 (find_equiv_reg): Add casts.
8671 (regno_clobbered_p): Arg REGNO now unsigned.
8672 * reload.h (struct reload): NREGS now unsigned.
8673 (refers_to_regno_for_reload_p): Regno args are unsigned.
8674 (regno_clobbered_p): Likewise.
8675 * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
8676 (compute_use_by_pseudos): REGNO now unsigned.
8677 (find_reg): I and J now unsigned, new variable K, and change loop
8678 variables accordingly; THIS_NREGS now unsigned.
8679 (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
8680 (spill_hard_reg): REGNO arg now unsigned; add casts.
8681 (forget_old_reloads_1): REGNO, NR, and I now unsigned.
8682 (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
8683 (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
8684 END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
8685 (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
8686 (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
8687 (emit_reload_insns): REGNO now unsigned.
8688 (reload_cse_move2add): Add cast.
8689 (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
8690 and rework loop.
8691 * resource.c (mark_referenced_resources, mark_set_resources): New
8692 variable R; REGNO and LAST_REGNO now unsigned.
8693 (mark_target_live_regs): J and REGNO now unsigned.
8694 * rtl.c (mode_size, mode_unit_size): Now unsigned.
8695 * rtl.h (union rtunion_def): New field rtuint.
8696 (XCUINT): New macro.
8697 (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
8698 (operand_subword, operand_subword_force): Word number is unsigned.
8699 (choose_hard_reg_mode): Operands are unsigned.
8700 (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
8701 (find_regno_note, find_regno_fusage, replace_regs): Likewise.
8702 (regno_use_in, combine_instructions, remove_death): Likewise.
8703 (reg_scan, reg_scan_update): Likewise.
8704 (extended_count): Return is unsigned.
8705 * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
8706 INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
8707 (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
8708 (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
8709 (reg_reg_last_1): FIRS and LAST now unsigned.
8710 (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
8711 (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
8712 now unsigned.
8713 (find_regno_note, regno_use_in): Arg REGNO now unsigned.
8714 (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
8715 (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
8716 (replace_regs): Arg NREGS now unsigned.
8717 * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
8718 * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
8719 (simplify_binary_operation): Likewise.
8720 (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
8721 THIS_LAST now unsigned.
8722 (cselib_record_set): Add cast.
8723 * ssa.c (ssa_max_reg_num): Now unsigned.
8724 (rename_block): REGNO now unsigned.
8725 * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
8726 sizes now unsigned.
8727 (all_cases_count): Just return -1 not -2.
8728 COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
8729 Rework tests to use trees whenever possible.
8730 Use host_integerp and tree_low_cst.
8731 (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
8732 Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
8733 (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
8734 * stor-layout.c (mode_for_size): SIZE arg now unsigned.
8735 (smallest_mode_for_size): Likewise.
8736 (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
8737 KNOWN_ALIGN is now an alignment, so simplify code.
8738 Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
8739 (start_record_layout): Renamed from new_record_layout_info.
8740 Update to new fields.
8741 (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
8742 New functions.
8743 (place_union_field): Renamed from layout_union_field.
8744 Update to use new fields in rli.
8745 (place_field): Renamed from layout_field.
8746 Major rewrite to use new fields in rli; pass alignment to layout_decl.
8747 (finalize_record_size): Rework to use new fields in rli and handle
8748 union.
8749 (compute_record_mode): Rework to simplify and to use new DECL fields.
8750 (finalize_type_size): Make rounding more consistent.
8751 (finish_union_layout): Deleted.
8752 (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
8753 (layout_type, case RECORD_TYPE): Call new function names.
8754 (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
8755 (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
8756 (get_best_mode): UNIT is now unsigned; remove casts.
8757 * tree.c (bit_position): Compute from new fields.
8758 (byte_position, int_byte_position): New functions.
8759 (print_type_hash_statistics): Cast to remove warning.
8760 (build_range_type): Use host_integerp and tree_low_cst to try to hash.
8761 (build_index_type): Likewise; make subtype of sizetype.
8762 (build_index_2_type): Pass sizetype to build_range_type.
8763 (build_common_tree_nodes): Use size_int and bitsize_int to
8764 initialize nodes; add bitsize_{zero,one,unit}_node.
8765 * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
8766 (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
8767 (DECL_PACKED, DECL_BIT_FIELD): Likewise.
8768 (DECL_FIELD_BITPOS): Deleted.
8769 (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
8770 (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
8771 (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
8772 (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
8773 (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
8774 (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
8775 (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
8776 (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
8777 (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
8778 (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
8779 (DECL_ALIGN): Adjust to new field in union.
8780 (DECL_OFFSET_ALIGN): New field.
8781 (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
8782 (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
8783 (union tree_decl): Add struct for both aligns.
8784 (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
8785 (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
8786 (struct record_layout_info): Rework fields to have offset
8787 alignment and byte and bit position.
8788 (start_record_layout, place_field): Renamed from old names.
8789 (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
8790 (byte_position, int_byte_position): Likewise.
8791 (get_inner_reference): Change types of position and length.
8792 * unroll.c (unroll_loop): New variable R; use for some loops.
8793 MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
8794 (calculate_giv_inc): Arg REGNO now unsigned.
8795 (copy_loop_body): REGNO and SRC_REGNO now unsigned.
8796 * varasm.c (assemble_variable): Clean up handling of size using
8797 host_integerp and tree_low_cst.
8798 (decode_addr_const): Use byte, not bit, position.
8799 (output_constructor): bitpos and offsets are HOST_WIDE_INT;
8800 use tree_low_cst and int_bit_position.
8801 * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
8802
8803 Fri Mar 24 20:13:49 2000 Jason Eckhardt <jle@cygnus.com>
8804
8805 * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
8806 (reorder_block_def): New members eff_head and eff_end.
8807 (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
8808 (verify_insn_chain): New function.
8809 (skip_insns_between_block): Add code to skip deleted insns.
8810 Check for note before using.
8811 (chain_reorder_blocks): Replace calls to skip_insns_between_block
8812 with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
8813 Check for note before using.
8814 (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
8815 (fixup_reorder_chain): Restructure, clean up, defect removal.
8816 (reorder_basic_blocks): Remove last_insn and references to it.
8817 Moved insn chain verification code into a new function (see above).
8818 Delete defective code that sets last insn.
8819 Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
8820 all blocks.
8821
8822 2000-03-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8823
8824 * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
8825
8826 2000-03-24 Richard Henderson <rth@cygnus.com>
8827
8828 * tree.c (lang_safe_for_unsave): Remove.
8829 (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
8830 allowing for two levels of unsafeness. Remove lang hook.
8831 * tree.h: Update declarations.
8832 * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
8833 Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
8834 Always fail sibcalls when there are pending cleanups.
8835
8836 2000-03-24 Geoff Keating <geoffk@cygnus.com>
8837
8838 * flow.c (propagate_block): When we delete an ADDR_VEC,
8839 also delete the BARRIER following it if there is one.
8840
8841 2000-03-24 Richard Henderson <rth@cygnus.com>
8842
8843 * builtins.c (expand_builtin_bzero): Convert `length' argument
8844 to sizetype.
8845
8846 2000-03-24 Jakub Jelinek <jakub@redhat.com>
8847
8848 * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
8849 comparison if regno's are equal.
8850 * calls.c (initialize_argument_informat): Add ecf_flags argument.
8851 Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
8852 (expand_call): Update caller.
8853 Avoid making a sibling call if argument size of the callee is larger
8854 than argument size of the caller.
8855 Call hard_function_value with outgoing set if in sibcall pass.
8856 Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
8857
8858 * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
8859 Change LEAF_REGISTERS from an array initializer to actual array
8860 identifier. Move static global variable into the function.
8861 (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
8862 sequences for leaf functions.
8863 * global.c (global_alloc): Likewise.
8864 * tm.texi (LEAF_REGISTERS): Update documentation.
8865
8866 * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
8867 TARGET_FLAT leaf disabling hack.
8868 (LEAF_REGISTERS): Changed from an array initializer to actual array
8869 identifier to avoid duplication and remove the above hack.
8870 (FUNCTION_OK_FOR_SIBCALL): Define.
8871 * config/sparc/sparc.md (sibcall): New attr type. Use it almost
8872 always like call attribute.
8873 (eligible_for_sibcall_delay): New attribute.
8874 (sibcall): New delay type.
8875 (sibcall, sibcall_value, sibcall_epilogue): New expands.
8876 (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
8877 sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
8878 * config/sparc/sparc.c (sparc_leaf_regs): New array.
8879 (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
8880 New functions.
8881 (output_function_epilogue): Move part of the code into
8882 output_restore_regs.
8883 (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
8884 TYPE_SIBCALL.
8885 * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
8886 prototypes.
8887
8888 * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
8889 until infrastructure is finished.
8890
8891 Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com)
8892
8893 * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
8894 (save_parm_insns): Not here.
8895
8896 2000-03-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8897
8898 * builtins.c (expand_builtin_bzero): New function.
8899 (expand_builtin): Handle bzero.
8900
8901 * builtins.def: Add BUILT_IN_BZERO.
8902
8903 * c-common.c (c_common_nodes_and_builtins): Provide builtin
8904 prototype & function for bzero.
8905
8906 2000-03-23 Michael Meissner <meissner@redhat.com>
8907
8908 * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
8909 change adding TARGET_FP to the TF floating point insns, except for
8910 trunctfsf2, which generates direct calls to truncdfsf2.
8911
8912 2000-03-23 Geoff Keating <geoffk@cygnus.com>
8913
8914 * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
8915 try to protect against middle-end changes that break binary
8916 compatibility.
8917 (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
8918
8919 2000-03-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8920
8921 * config/c4x/c4x.md (load_immed_address): Add DP reg clobber.
8922
8923 Thu Mar 23 17:10:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8924
8925 * calls.c (expand_call): If TARGET is passed by reference and
8926 is readonly, write a CLOBBER.
8927
8928 2000-03-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8929
8930 * builtins.c (expand_builtin): Handle bcmp.
8931
8932 * builtins.def: Add BUILT_IN_BCMP.
8933
8934 * c-common.c (c_common_nodes_and_builtins): Provide builtin
8935 prototype & function for bcmp.
8936
8937 Thu Mar 23 11:34:39 2000 Jim Wilson <wilson@cygnus.com>
8938
8939 * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
8940 (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
8941 * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
8942
8943 Thu Mar 23 16:04:40 2000 Andrew Haley <aph@cygnus.com>
8944
8945 * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
8946 alternative when using -fp64 -gp32.
8947
8948 2000-03-22 Jason Merrill <jason@casey.cygnus.com>
8949
8950 * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
8951 * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
8952 * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
8953
8954 * frame.h (frame_state): Revert last change.
8955 * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
8956 * libgcc2.c (throw_helper): Revert last change.
8957
8958 2000-03-22 Richard Henderson <rth@cygnus.com>
8959
8960 * stmt.c (expand_asm_operands): Don't promote the temporary.
8961
8962 2000-03-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
8963
8964 * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
8965 * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
8966 c_get_alias_set): Likewise.
8967 * c-decl.c (duplicate_decls): Likewise.
8968 * c-typeck.c (default_conversion,build_unary_op): Likewise.
8969 * calls.c (initialize_argument_information): Likewise.
8970 * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
8971 Likewise.
8972 * dwarfout.c (decl_class_context,output_type): Likewise.
8973 * expr.c (get_inner_reference): Likewise.
8974 * fold-const.c (simple_operand_p,fold): Likewise.
8975 * function.c (aggregate_value_p): Likewise.
8976 * stmt.c (expand_asm_operands): Likewise.
8977 * varasm.c (named_section): Likewise.
8978
8979 2000-03-22 Jason Merrill <jason@casey.cygnus.com>
8980
8981 Implement dwarf2 exception handling for the ARM.
8982 * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
8983 (DWARF_FRAME_RETURN_COLUMN): Define.
8984 * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach
8985 REG_FRAME_RELATED_EXPR note.
8986 (emit_sfm): Likewise.
8987 (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
8988 * dwarf2out.c (reg_save): Handle saving a register to itself.
8989 (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
8990 * except.c (eh_regs): Don't use the static chain reg if it's
8991 callee-saved.
8992 * frame.h (frame_state): Add cfa_saved field.
8993 * frame.c (execute_cfa_insn): Set it.
8994 * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
8995 the epilogue.
8996 * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
8997 Now takes a parm.
8998 (instantiate_virtual_regs): Adjust.
8999 * tm.texi: Adjust.
9000 * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
9001 * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
9002 * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
9003
9004 * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
9005 (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
9006
9007 2000-03-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9008
9009 * builtins.def: New file.
9010
9011 * Makefile.in (TREE_H): Depend on builtins.def.
9012
9013 * builtins.c (built_in_names): Use builtins.def.
9014
9015 * tree.h (built_in_function): Likewise.
9016
9017 2000-03-22 Mark Mitchell <mark@codesourcery.com>
9018
9019 * tree.c (size_in_bytes): Return size_zero_node, not
9020 integer_zero_node.
9021
9022 2000-03-22 Geoff Keating <geoffk@cygnus.com>
9023
9024 * config/fp-bit.c (pack_d): Correct the case when a denormal
9025 is rounded up and stops being denormal.
9026
9027 2000-03-21 Richard Henderson <rth@cygnus.com>
9028
9029 * config/alpha/alpha.c (function_arg): Check for void_type_node
9030 before using MUST_PASS_IN_STACK.
9031
9032 2000-03-21 Stephane Carrez <stcarrez@worldnet.fr>
9033
9034 * regmove.c (combine_stack_adjustments_for_block): Check that
9035 the stack pointer is a valid memory address.
9036
9037 Wed Mar 22 11:44:50 MET 2000 Jan Hubicka <jh@suse.cz>
9038
9039 * calls.c: re-install Mar 16 emit_library_call merge.
9040
9041 2000-03-21 Jakub Jelinek <jakub@redhat.com>
9042
9043 * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
9044 we cannot be sure that if reload_completed base register will
9045 be properly aligned.
9046
9047 2000-03-21 Richard Henderson <rth@cygnus.com>
9048
9049 * flow.c (delete_block): Fix typo last change.
9050
9051 2000-03-21 Mark Mitchell <mark@codesourcery.com>
9052
9053 * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
9054 not COMPLETE_TYPE_P, to check the type of the expression.
9055
9056 2000-03-21 Michael Meissner <meissner@redhat.com>
9057
9058 * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
9059 all floating point insns that just tested the macro
9060 TARGET_HAS_XFLOATING_LIBS.
9061 (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
9062 used to only use the gprs.
9063
9064 2000-03-21 Nathan Sidwell <nathan@codesourcery.com>
9065
9066 * tree.h (COMPLETE_TYPE_P): New macro.
9067 (COMPLETE_OR_VOID_TYPE_P): New macro.
9068 (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
9069 * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
9070 * c-aux-info.c (gen_type): Use them.
9071 * c-common.c (c_expand_expr_stmt): Likewise.
9072 * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
9073 grokdeclarator, grokparms, finish_struct, start_function,
9074 store_parm_decls, combine_parm_decls): Likewise.
9075 * c-parse.y (cast_expr): Likewise.
9076 * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
9077 c_size_in_bytes, c_alignof, build_component_ref,
9078 build_indirect_ref, build_array_ref, convert_arguments,
9079 build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
9080 * calls.c (initialize_argument_information): Likewise.
9081 * convert.c (convert_to_integer): Likewise.
9082 * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
9083 * dwarfout.c (location_or_const_value_attribute,
9084 output_enumeration_type_die, output_structure_type_die,
9085 output_union_type_die, output_type): Likewise.
9086 * expr.c (safe_from_p, expand_expr): Likewise.
9087 * function.c (assign_parms): Likewise.
9088 * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
9089 * tree.c (build_array_type, build_function_type,
9090 build_method_type, build_offset_type, build_complex_type): Likewise.
9091 * c-parse.c, c-parse.h: Regenerated.
9092
9093 2000-03-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9094
9095 * config/c4x/rtems.h: Include config/rtems.h.
9096
9097 Tue Mar 21 09:24:00 2000 Denis Chertykov <denisc@overta.ru>
9098
9099 * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
9100 decl is a FUNCTION_DECL
9101
9102 Mon Mar 20 19:53:53 2000 Jim Wilson <wilson@cygnus.com>
9103
9104 * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
9105 function uses output registers. Don't save RP for leaf functions.
9106 Do save RP even if no epilogue.
9107 * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
9108 (CALL_USED_REGISTERS): Unmark in registers.
9109 (REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up,
9110 to near the middle.
9111
9112 2000-03-20 Geoff Keating <geoffk@cygnus.com>
9113
9114 * config/rs6000/rs6000.md (bunordered): New expander.
9115 (bordered): New expander.
9116 (buneq): New expander.
9117 (bunge): New expander.
9118 (bungt): New expander.
9119 (bunle): New expander.
9120 (bunlt): New expander.
9121 (bltgt): New expander.
9122
9123 * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
9124 (ccr_bit_negated_p): New function.
9125 (print_operand): For %C, generate appropriate cror for UNEQ,
9126 UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p.
9127
9128 2000-03-20 Andreas Jaeger <aj@suse.de>
9129
9130 * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
9131 warning.
9132
9133 * tree.h (safe_for_unsave): Prototype.
9134
9135 2000-03-20 Richard Henderson <rth@cygnus.com>
9136
9137 * regmove.c (stack_memref_p): Fix typo, reorg for readability.
9138 (combine_stack_adjustments_for_block): Don't allow sp references
9139 in the side of a set we're not fixing up.
9140 * toplev.c (rest_of_compilation): Run combine_stack_adjustments
9141 after life_analysis.
9142
9143 2000-03-20 Richard Henderson <rth@cygnus.com>
9144
9145 * calls.c (expand_call): Don't bother generating tail call
9146 sequences if there are pending cleanups. Use
9147 expand_start_target_temps/expand_end_target_temps to elide
9148 cleanups created during sibcall expansion.
9149
9150 2000-03-20 Geoff Keating <geoffk@cygnus.com>
9151
9152 * configure.in: Set $IFS to a value if it doesn't already have one
9153 in the --enable-checking handling.
9154 * configure: Regenerate.
9155
9156 2000-03-20 Martin v. Löwis <loewis@informatik.hu-berlin.de>
9157
9158 * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
9159 * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
9160 Regenerated.
9161
9162 Mon Mar 20 11:43:15 MET 2000 Jan Hubicka <jh@suse.cz>
9163
9164 * jump.c (delete_noop_moves): Remove code attempting to
9165 combine stack adjustments.
9166
9167 2000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de>
9168
9169 * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
9170 * except.c (emit_cleanup_handler): Use them.
9171 (expand_end_all_catch): Likewise.
9172 * function.c (fixup_var_refs): Likewise.
9173 (expand_function_end): Clear catch_clauses_last.
9174 * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
9175 * except.h (struct eh_status): New field x_catch_clauses_last.
9176 (catch_clauses_last): New define.
9177
9178 * Makefile.in (tree.o): Depend on HASHTAB_H.
9179 * tree.c: Include hashtab.h.
9180 (struct type_hash): Remove next field.
9181 (TYPE_HASH_SIZE): Remove.
9182 (TYPE_HASH_INITIAL_SIZE): New define.
9183 (type_hash_table): Change type to htab_t.
9184 (type_hash_eq, type_hash_hash, print_type_hash_statistics,
9185 mark_hash_entry): New functions.
9186 (init_obstacks): Allocate type hash.
9187 (type_hash_lookup): Use htab functions.
9188 (type_hash_add, mark_type_hash): Likewise.
9189 (dump_tree_statistics): Call print_type_hash_statistics.
9190
9191 2000-03-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9192
9193 * rs6000/t-aix41: New file.
9194
9195 * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
9196
9197 Sun Mar 19 13:27:30 2000 Hans-Peter Nilsson <hp@axis.com>
9198
9199 * tm.texi (Driver): Fix typos and tweak entry for
9200 INCLUDE_DEFAULTS.
9201 Move misplaced STRUCT_FORCE_BLK entry ...
9202 (Storage Layout): ... to here.
9203 (Run-time Target): Recommend having TARGET_MASK_... helper macros.
9204
9205 2000-03-19 Richard Henderson <rth@cygnus.com>
9206
9207 * flow.c (delete_block): Delete the addr_vec along with the block.
9208 (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
9209 reference labels.
9210
9211 * fold-const.c (extract_muldiv): Apply type check for defined
9212 overflow to multiply as well as divide.
9213
9214 * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
9215
9216 2000-03-18 Mark Mitchell <mark@codesourcery.com>
9217
9218 * emit-rtl.c (remove_unncessary_notes): Check that all
9219 NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
9220 associated NOTE_BLOCK.
9221 * function.h (identify_blocks): Update comments.
9222 (reorder_blocks): Declare.
9223 * function.c (identify_blocks): Don't take paramters.
9224 (reorder_blocks): Don't take parameters.
9225 * loop.h (find_loop_tree_blocks): Remove.
9226 (unroll_block_trees): Likewise.
9227 * loop.c (loop_optimize): Don't call find_loop_tree_blocks. Use
9228 reorder_blocks instead of unroll_block_trees.h
9229 * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
9230 * stmt.c (find_loop_tree_blocks): Remove.
9231 (unroll_block_trees): Likewise.
9232 * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
9233 in whole-function mode.
9234 * tree.h (reorder_blocks): Remove declaration.
9235
9236 * expr.c: Include intl.h.
9237 * Makefile.in (expr.o): Depend on intl.h.
9238
9239 2000-03-18 Richard Henderson <rth@cygnus.com>
9240
9241 * expr.c (emit_move_insn_1): Clarify cannot_inline message.
9242
9243 2000-03-18 Mark Mitchell <mark@codesourcery.com>
9244
9245 * tree.h (tree_index): Remove enumerals for integer types.
9246 (integer_type_kind): New type.
9247 (integer_types): New variable.
9248 (char_type_node): Adjust.
9249 (signed_char_type_node): Likewise.
9250 (unsigned_char_type_node): Likewise.
9251 (short_integer_type_node): Likewise.
9252 (short_unsigned_type_node): Likewise.
9253 (integer_type_node): Likewise.
9254 (unsigned_type_node): Likewise.
9255 (long_integer_type_node): Likewise.
9256 (long_unsigned_type_node): Likewise.
9257 (long_long_integer_type_node): Likewise.
9258 (long_long_unsigned_type_node): Likewise.
9259 * tree.c (integer_types): New variable.
9260 (init_obstacks): Register it as a root.
9261
9262 Sat Mar 18 14:38:00 2000 Jason Eckhardt <jle@cygnus.com>
9263
9264 * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
9265 NEXT_INSN. Update last insn in chain.
9266
9267 2000-03-17 Jason Merrill <jason@casey.cygnus.com>
9268
9269 * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
9270 with TYPE_DECL_SUPPRESS_DEBUG set.
9271
9272 2000-03-18 Richard Henderson <rth@cygnus.com>
9273
9274 * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
9275
9276 2000-03-18 Richard Henderson <rth@cygnus.com>
9277
9278 * i386.c (call_insn_operand): Always allow SYMBOL_REF,
9279 care for HALF_PIC_P.
9280 (expander_call_insn_operand): Remove.
9281 (ix86_expand_epilogue): New arg `emit_return' to control return insn.
9282 * i386.h (PREDICATE_CODES): Update.
9283 * i386.md (all call expanders): Remove predicates, remove special
9284 handling for half-pic.
9285 (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
9286 (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
9287 (sibcall_epilogue): New.
9288
9289 2000-03-17 Richard Henderson <rth@cygnus.com>
9290
9291 * rtlanal.c (single_set): Reject if the parallel has anything
9292 except SET or USE or CLOBBER.
9293
9294 2000-03-17 Jeff Law <law@cygnus.com>
9295 Richard Henderson <rth@cygnus.com>
9296
9297 * Makefile.in (OBJS): Add sibcall.o.
9298 (sibcall.o): New.
9299 * sibcall.c: New file.
9300 * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
9301 (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
9302 (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
9303 Emit sibcall patterns when requested. Update all callers.
9304 (expand_call): Generate CALL_PLACEHOLDER insns when tail call
9305 elimination seems feasable.
9306 * final.c (leaf_function_p): Sibling calls don't discount being
9307 a leaf function.
9308 * flow.c (HAVE_sibcall_epilogue): Provide default.
9309 (find_basic_blocks_1): Sibling calls don't throw.
9310 (make_edges): Make edge from sibling call to EXIT.
9311 (propagate_block): Don't remove sibcall_epilogue insns.
9312 * function.c (prologue, epilogue): Turn into varrays. Update all uses.
9313 (sibcall_epilogue): New.
9314 (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
9315 (identify_blocks_1): Likewise. Break out from ...
9316 (identify_blocks): ... here.
9317 (reorder_blocks_1): Scan CALL_PLACEHOLDER. Break out from ...
9318 (reorder_blocks): ... here.
9319 (init_function_for_compilation): Zap prologue/epilogue as varrays.
9320 (record_insns): Extend a varray instead of mallocing new memory.
9321 (contains): Read a varray not array of ints.
9322 (sibcall_epilogue_contains): New.
9323 (thread_prologue_and_epilogue_insns): Emit and record
9324 sibcall_epilogue patterns.
9325 (init_function_once): Allocate prologue/epilogue varrays.
9326 * genflags.c (gen_insn): Treat sibcall patterns as calls.
9327 * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
9328 Broken out from ...
9329 (save_for_inline_nocopy): ... here.
9330 (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
9331 Broken out from ...
9332 (expand_inline_function): ... here.
9333 (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
9334 (subst_constants): Handle 'n' formats.
9335 * jump.c (jump_optimize_minimal): New.
9336 (jump_optimize_1): New arg `minimal'; update callers. Elide most
9337 optimizations if it's set.
9338 * rtl.c (copy_rtx): Do copy jump & call for insns.
9339 * rtl.h (struct rtx_def): Document use of jump and call for insns.
9340 (SIBLING_CALL_P): New.
9341 (sibcall_use_t): New.
9342 * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
9343 Invoke optimize_sibling_and_tail_recursive_calls.
9344 * tree.c (lang_safe_for_unsave): New.
9345 (safe_for_unsave): New.
9346 * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
9347
9348 * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
9349 * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
9350 (*sibcall_osf_1, *sibcall_value_osf_1): New.
9351
9352 2000-03-17 Mark Mitchell <mark@codesourcery.com>
9353
9354 * objc/objc-act.c (encode_method_prototype): Pass types, not
9355 PARM_DECLs, to int_size_in_bytes.
9356
9357 Fri Mar 17 11:51:34 2000 Jim Wilson <wilson@cygnus.com>
9358
9359 * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
9360
9361 * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
9362 config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
9363
9364 Fri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9365
9366 * Clean up usages of TREE_INT_CST_LOW.
9367 * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
9368 * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
9369 Regenerated.
9370 * c-tree.h (min_precision): Move declaration to here.
9371 * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
9372 (build_unary_op, add_pending_init): Use bit_position.
9373 (pending_init_member, process_init_element): Likewise.
9374 (really_start_incremental_init, push_init_level, pop_init_level):
9375 Don't make copies of nodes or modify them in place, use consistent
9376 types when tracking positions, and use tree routines computations.
9377 (set_init_index, output_init_element): Likewise.
9378 (output_pending_init_elements, process_init_element): Likewise.
9379 * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
9380 tree_low_cst and int_bit_position; also minor cleanup.
9381 (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
9382 (print_cst_octal): Precision is unsigned.
9383 (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
9384 * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
9385 (simple_type_align_in_bits): Result is unsigned int.
9386 Use tree_int_low_cst and host_integerp.
9387 (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
9388 (field_byte_offset): Result is HOST_WIDE_INT.
9389 Change types of internal variables so alignments are unsigned int,
9390 offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
9391 Use host_integerp, tree_low_cst, and int_bit_position.
9392 (add_bit_offset_attribute): Likewise.
9393 (add_data_member_location_attribute): Use tree_cst_low.
9394 (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
9395 (add_bit_size_attribute): Use tree_low_cst.
9396 (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
9397 * dwarfout.c: Similar changes to dwarf2out.c.
9398 * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
9399 * genoutput.c (n_occurences): Return -1 for null string.
9400 (strip_whitespace): Accept null string and make into function.
9401 (scan_operands): Reflect above changes.
9402 * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
9403 (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
9404 * ssa.c (rename_registers): Add missing cast of arg to bzero.
9405 * tree.c (int_size_in_bytes): Check for too big to represent.
9406 (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
9407 * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
9408 New declarations.
9409 (min_precision): Delete from here.
9410 * varasm.c (decode_addr_const): Use host_integerp, bit_position,
9411 and int_bit_position.
9412 * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
9413 (encode_method_def): Likewise.
9414 (build_ivar_list_initializer): Use int_bit_position.
9415 (generate_shared_structures): Convert size.
9416 (encode_type, encode_complete_bitfield): Use integer_zerop.
9417 (encode_bitfield): Use tree_low_cst and int_bit_position.
9418
9419 2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9420
9421 * config/c4x/c4x.h (CPP_SPEC): Fix typo.
9422
9423 2000-03-17 Martin v. Löwis <loewis@informatik.hu-berlin.de>
9424
9425 * call.c (special_function_p): It is only malloc if it returns
9426 Pmode.
9427
9428 2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9429
9430 * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
9431 (C33_FLAG, TARGET_C3X): Add macros.
9432 (TARGET_SWITCHES): Add -m33 option.
9433 * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
9434
9435 2000-03-17 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9436
9437 * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
9438 (PARALLEL_PACK_FLAG): Delete.
9439 (TARGET_SWITCHES): Update.
9440 (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
9441
9442 Thu Mar 16 18:52:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9443
9444 * fold-const.c (fold): Fix a few cases when the returned result
9445 is not of the same type as the input.
9446
9447 2000-03-16 Nick Clifton <nickc@cygnus.com>
9448
9449 * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
9450 warning.
9451
9452 2000-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9453
9454 * libgcc2.h: Move prototypes above macros with the same name.
9455 Wrap some function prototypes in the conditional which indicates
9456 whether they are supported, i.e. "BITS_PER_UNIT == 8".
9457
9458 2000-03-16 Richard Henderson <rth@cygnus.com>
9459
9460 * calls.c: Revert last two changes.
9461
9462 2000-03-16 Bernd Schmidt <bernds@cygnus.co.uk>
9463
9464 * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
9465 has exponent 0 is a zero.
9466
9467 * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
9468 HASH may already be nonzero. Add code/mode into hash value
9469 immediately after repeat label.
9470 (cselib_lookup): Don't leave the hash table in an inconsistent
9471 state before a hash lookup operation.
9472
9473 Thu Mar 16 17:03:10 MET 2000 Jan Hubicka <jh@suse.cz>
9474
9475 * i386.md (all HI and QI mode non-move patterns): Conditionize
9476 by TARGET_[HQ]IMODE_MATH.
9477 * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
9478 x86_promote_qi_regs): Declare.
9479 (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
9480 TARGET_PROMOTE_QI_REGS): New macros.
9481 (PROMOTE_MODE): New macro.
9482 * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
9483 x86_promote_qi_regs): New global variables.
9484
9485 Thu Mar 16 16:50:44 MET 2000 Jan Hubicka <jh@suse.cz>
9486
9487 * calls.c (emit_library_call_value_1): Break out from ...; handle
9488 VOIDmode function calls too.
9489 (emit_library_call_value): ... here.
9490 (emit_library_call): Implement by calling emit_library_call_value_1.
9491
9492 Thu Mar 16 16:01:30 MET 2000 Jan Hubicka <jh@suse.cz>
9493
9494 * calls.c (expand_call): Do sanity checking on arg_space_so_far.
9495 Update arg_space_so_far on stack adjustments.
9496 (emit_library_call, emit_library_call_value): Likewise; take into
9497 account arg_space_so_far and pending_stack_adjust when calculcating
9498 the boundary.
9499
9500 Thu Mar 16 09:02:19 2000 Jason Eckhardt <jle@cygnus.com>
9501
9502 * flow.c: Move all basic block reordering code into its own file.
9503 (create_basic_block): Externalize.
9504 * bb-reorder.c: New file. Copy all basic block reordering code from
9505 flow.c to this file.
9506 (reorder_basic_blocks): Fix fencepost error in for-loop.
9507 (reorder_basic_blocks): Remove braces from single statement for-loops.
9508 * basic-block.h: Add declaration for create_basic_block.
9509 * Makefile.in: Add rules for bb-reorder.o.
9510
9511 2000-03-16 Neil Booth <NeilB@earthling.net>
9512
9513 * cppinit.c (handle_option): Implement #unassert directive
9514 as -A- command line option.
9515 (print_help): Update.
9516 * cpptexi.c: Update.
9517
9518 Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson <hp@bitrange.com>
9519
9520 * md.texi (Standard Names): Document `jump'.
9521
9522 2000-03-15 Jason Merrill <jason@casey.cygnus.com>
9523
9524 * calls.c (emit_call_1): Nothrow functions can still have nonlocal
9525 gotos.
9526
9527 2000-03-15 Geoff Keating <geoffk@cygnus.com>
9528
9529 Merge changes from newppc-branch onto trunk.
9530
9531 2000-03-15 Geoff Keating <geoffk@cygnus.com>
9532
9533 * rs6000.c (toc_hash_table): Update for new hash table functions.
9534 (toc_hash_function): Likewise.
9535 (toc_hash_eq): Likewise.
9536 (toc_hash_mark_entry): Likewise.
9537 (toc_hash_mark_table): Likewise.
9538 (output_toc): Likewise.
9539 (rs6000_add_gc_roots): Likewise.
9540
9541 2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
9542
9543 * t-aix43 (AR_FOR_TARGET): Deleted. Moved `-X32_64'...
9544 (AR_FLAGS_FOR_TARGET): here. New macro.
9545
9546 2000-03-05 Clinton Popetz <cpopetz@cygnus.com>
9547
9548 * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
9549 fpmem_operand) Delete.
9550 (xer_operand) New.
9551 (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
9552 (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
9553 (rs6000_save_machine_status, rs6000_restore_machine_status,
9554 rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
9555 references to above variables.
9556 (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
9557 * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
9558 DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
9559 (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
9560 (XER_REGNO_P, XER_REGNO): New.
9561 (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
9562 (PREDICATE_CODES): Change fpmem_operand to xer_operand.
9563 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
9564 XER_REGNO_P.
9565 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
9566 REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS, and remove FLOAT_OR_FPMEM_REGS.
9567 (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
9568
9569 2000-02-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
9570
9571 * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
9572 TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
9573 * rs6000.h: from here.
9574
9575 * rs6000-protos.h (rs6000_select_section): Provide prototype.
9576 (rs6000_select_rtx_section): Likewise.
9577 (rs6000_encode_section_info): Likewise.
9578 (sdata_section): Likewise.
9579 (sdata2_section): Likewise.
9580 (sbss_section): Likewise.
9581 * sysv4.h (rs6000_select_section): Delete prototype.
9582 (rs6000_select_rtx_section): Likewise.
9583 (rs6000_encode_section_info): Likewise.
9584 (sdata_section): Likewise.
9585 (sdata2_section): Likewise.
9586 (sbss_section): Likewise.
9587 (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
9588
9589 * sysv4.h: Delete various unnecessary #undef's and put a comment
9590 on the remaining ones.
9591 Change various comments according to coding standard.
9592
9593 2000-02-29 Clinton Popetz <cpopetz@cygnus.com>
9594
9595 * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
9596 CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
9597 (CR0_REGNO_P) Remove.
9598 * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
9599 setup_incoming_varargs, mtcrf_operation, print_operand,
9600 rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
9601 Use the above macros.
9602
9603 2000-02-24 Clinton Popetz <cpopetz@cygnus.com>
9604
9605 * config/rs6000/rs6000.md: Added a new alternative for each
9606 pattern that had a 'x' alternative but no 'y' alternative.
9607 Added a new split for each of the above patterns.
9608
9609 2000-02-18 Geoff Keating <geoffk@cygnus.com>
9610
9611 * aix41.h (ASM_CPU_SPEC): Delete.
9612 (CPP_CPU_SPEC): Delete.
9613
9614 * aix.h (RS6000_OUTPUT_BASENAME): Define.
9615 (ASM_OUTPUT_LABEL): Define.
9616 (ASM_GLOBALIZE_LABEL): Define.
9617 (STRIP_NAME_ENCODING): Define.
9618 * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
9619 (STRIP_NAME_ENCODING): Don't define.
9620 (ASM_OUTPUT_LABEL): Don't define.
9621 (ASM_GLOBALIZE_LABEL): Don't define.
9622 * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
9623 names, and ASM_OUTPUT_LABEL to output labels, rather than
9624 asm_fprintf.
9625 (ASM_OUTPUT_LABEL): Define.
9626 (ASM_OUTPUT_INT): Use assemble_name.
9627 (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
9628 (STRIP_NAME_ENCODING): Don't undefine first.
9629 (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
9630 ELF.
9631 (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
9632 specified with 'asm' even with -fleading-underscore.
9633 * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
9634 (output_epilog): Likewise.
9635 (output_toc): Likewise.
9636 * tramp.asm: Handle -fleading-underscore correctly.
9637
9638 * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
9639 -mminimal-toc.
9640 (nonlocal_goto_receiver): Delete.
9641 * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
9642
9643 * rs6000.h (ASM_OUTPUT_DEF): Don't define.
9644 (SET_ASM_OP): Define.
9645 * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
9646
9647 * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
9648 (ASM_LONG): Define.
9649
9650 * rs6000.c (rs6000_dll_import_ref): Delete, not used.
9651 * rs6000-protos.h (rs6000_dll_import_ref): Delete.
9652
9653 * rs6000.h: Add 'u' to more constants.
9654
9655 2000-02-18 David Edelsohn <edelsohn@gnu.org>
9656
9657 * rs6000.md (mfcr+shift): Delete PowerPC64 version.
9658
9659 2000-02-15 David Edelsohn <edelsohn@gnu.org>
9660
9661 * rs6000.c (reg_or_u_cint_operand): New function.
9662 (logical_operand): Handle 64-bit hosts.
9663 (logical_u_operand): New function.
9664 (non_logical_cint_operand): Handle 64-bit hosts.
9665 (non_logical_u_cint_operand): New function.
9666 * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
9667 (PREDICATE_CODES): Define new functions.
9668 * rs6000-protos.h: Declare new functions.
9669 * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
9670 (movdi_64): Bracket code intended for 64-bit hosts. Create
9671 CONST_DOUBLE for 32-bit values.
9672 (scc insns): Generate DImode compares.
9673 (mfcr insns): Create DImode versions.
9674 (sge matchers): New patterns.
9675
9676 2000-02-15 Gabriel Paubert <paubert@iram.es>
9677
9678 * rs6000.md: Correct instructions length attributes and
9679 constraints on unsigned compare instructions.
9680 (*ne0): Disable for PowerPC64.
9681
9682 2000-02-11 Geoff Keating <geoffk@cygnus.com>
9683
9684 * rs6000.c (output_function_profiler): Use .long for a 32-bit
9685 quantity, fix profile1.C test failure under -fPIC.
9686
9687 * rs6000.c: Add 'u' to many constants to suppress warnings.
9688 (constant_pool_expr_1): Make static.
9689 (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
9690 * rs6000.h: Add 'u' to many constants to suppress warnings.
9691
9692 * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
9693 for the start of the TOC, instead of LCTOC..0.
9694 * aix.h (toc_section): Use LCTOC..1 under AIX for the start
9695 of the TOC.
9696 * rs6000.md (load_toc_aix_si): Use LCTOC..1.
9697 (load_toc_aix_di): Use LCTOC..1.
9698
9699 * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
9700 * rs6000.c (rs6000_legitimize_address): New function from
9701 LEGITIMIZE_ADDRESS. Only use create_TOC_reference on
9702 symbols in the constant pool that really are TOC references.
9703 (print_operand_address): For ELF, write TOC offsets under
9704 -fPIC as subtractions in the insn.
9705 (output_toc): For ELF, define symbols in TOC as normal labels,
9706 to match RTL.
9707 (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
9708 * rs6000-protos.h (rs6000_legitimize_address): Prototype.
9709 (create_TOC_reference): Prototype only when RTX_CODE is defined.
9710 * rs6000.md (movsi): Only use create_TOC_reference on
9711 symbols in the constant pool that really are TOC references.
9712
9713 * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
9714 * rs6000.c (rs6000_reorg): Delete.
9715 * rs6000-protos.h (rs6000_reorg): Delete.
9716
9717 2000-02-09 Geoff Keating <geoffk@cygnus.com>
9718
9719 * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
9720
9721 * aix.h (SETUP_FRAME_ADDRESSES): Define.
9722 * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
9723 [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
9724 [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
9725 * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
9726 rs6000_aix_emit_builtin_unwind_init.
9727 * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
9728 rs6000_emit_eh_toc_restore on AIX.
9729 (return_eh_si): Use r2.
9730 (return_eh_di): Use r2.
9731
9732 * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
9733 since we're breaking binary compatibility anyway.
9734
9735 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
9736
9737 * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
9738 constant_pool_expr_p): Declare them.
9739 (constant_pool_expr_p): Declare it.
9740 * config/rs6000/rs6000.c (toc_label_name): Define.
9741 (rs6000_override_options): Set toc_label_name.
9742 (input_operand): Allow any TOC_RELATIVE_EXPR_P.
9743 (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
9744 uses_TOC): New functions.
9745 (print_operand): Delete old '*' case.
9746 (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
9747 and strip off rtl for TOC before calling output_addr_const.
9748 (rs6000_emit_load_toc_table): Use toc_label_name.
9749 * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
9750 the default.
9751 (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
9752 (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
9753 (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
9754 (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
9755 into explicit TOC_REGISTER offsets.
9756 (TOC_REGISTER): New macro.
9757 * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
9758 TARGET_TOC to reference TOC_REGISTER.
9759 (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
9760 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
9761 uses_TOC before emitting label references.
9762
9763 2000-02-05 Geoff Keating <geoffk@cygnus.com>
9764
9765 * rs6000.md (stack_tie): Fix warning.
9766
9767 * eabi-ctors.c: Use 'asm' names for the start/end variables,
9768 to handle -fleading-underscore.
9769 * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
9770 (USER_LABEL_PREFIX): New macro.
9771 (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
9772 (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
9773 * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
9774 call-linux can use the same multilibs.
9775 * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
9776 and call-linux multilibs. Do multilib with -fleading-underscore.
9777 (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
9778 (MULTILIB_EXCEPTIONS): Remove call-linux exceptions. Add restrictions
9779 to call-aix.
9780
9781 * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
9782 have MASK_SOFT_FLOAT set.
9783 (CPP_FLOAT_DEFAULT_SPEC): New macro.
9784 (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
9785 CPP_FLOAT_DEFAULT_SPEC.
9786
9787 * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
9788 * rs6000.md: Whitespace change.
9789 * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
9790 * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
9791
9792 2000-02-05 Geoff Keating <geoffk@cygnus.com>
9793
9794 * rs6000.md (eh_epilogue): New expander.
9795 (eh_reg_restore): New expand/split/insn combination.
9796 (return_eh_si): New insn.
9797 (return_eh_di): New insn.
9798
9799 * eabi-ci.asm: Put a label at the start of the .eh_frame section.
9800 * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
9801 * eabi-ctors.c (__do_global_ctors): Register this object's
9802 frame. Clean up. Call atexit() after the constructors.
9803 (__do_global_dtors): Deregister this object's frame. Clean up.
9804 Allow for recursive calls to exit().
9805 * rs6000.c (fixuplabelno): New variable.
9806 * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
9807 TARGET_RELOCATABLE, it slows down exec() under linux.
9808 (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
9809
9810 * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
9811 (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
9812 (ASM_OUTPUT_DWARF_DELTA2): New macro.
9813 (ASM_OUTPUT_DWARF_DELTA4): New macro.
9814 (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
9815 (ASM_OUTPUT_DWARF_ADDR): New macro.
9816 (ASM_OUTPUT_DWARF_DATA4): New macro.
9817 (ASM_OUTPUT_DWARF_DATA2): New macro.
9818 (ASM_OUTPUT_DWARF_OFFSET4): New macro.
9819 (ASM_OUTPUT_DWARF_OFFSET): New macro.
9820 (UNALIGNED_INT_ASM_OP): New macro, fake definition.
9821
9822 2000-02-03 Geoff Keating <geoffk@cygnus.com>
9823
9824 * rs6000.c (rs6000_sr_alias_set): New variable.
9825 (rs6000_override_options): Initialise rs6000_sr_alias_set.
9826 (rs6000_emit_stack_tie): New function.
9827 (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
9828 in a way that dwarf2out can understand.
9829 (rs6000_frame_related): New function.
9830 (rs6000_emit_prologue): Use rs6000_sr_alias_set. Specify
9831 RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
9832 Use rs6000_emit_stack_tie when needed.
9833 (rs6000_emit_epilogue): Use rs6000_sr_alias_set. Don't set
9834 RTX_FRAME_RELATED_P. Use rs6000_emit_stack_tie when needed.
9835 * rs6000.md (stack_tie): New insn.
9836 (return_internal_si): Allow return value to be in the count
9837 register.
9838 (return_internal_di): Likewise.
9839
9840 * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
9841
9842 2000-02-03 Geoff Keating <geoffk@cygnus.com>
9843
9844 * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
9845
9846 2000-01-31 Geoff Keating <geoffk@cygnus.com>
9847
9848 * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
9849
9850 * rs6000.md (stmw): Use the right POWER opcode.
9851 (lmw): Likewise.
9852
9853 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9854
9855 * rs6000-protos.h: New file.
9856
9857 * rs6000.c: Include tm_p.h. Fix compile time warnings.
9858
9859 * rs6000.h: Move prototypes to rs6000-protos.h. Fix compile time
9860 warnings.
9861
9862 * sysv4.h: Likewise.
9863
9864 2000-01-28 Geoff Keating <geoffk@cygnus.com>
9865
9866 * ../../configure.in: Delete powerpcle-*-winnt*
9867 and powerpcle-*-pe|powerpcle-*-cygwin*.
9868 * ../../configure: Regenerated.
9869 * cygwin.h: Delete.
9870 * rs6000.h (OBJECT_WINDOWS_NT): Delete.
9871 (TARGET_WINDOWS_NT): Delete.
9872 (ABI_NT): Delete.
9873 (CALL_NT_DLLIMPORT): Delete.
9874 Delete NT-specific code.
9875 * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
9876 * win-nt.h: Delete.
9877 * t-winnt: Delete.
9878 * nt-ci.asm: Delete.
9879 * nt-cn.asm: Delete.
9880 * ntstack.asm: Delete.
9881
9882 2000-01-27 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
9883
9884 * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
9885 (ASM_FILE_START): Likewise.
9886 (ASM_DECLARE_FUNCTION_NAME): Likewise.
9887 (ASM_OUTPUT_LABELREF): Likewise.
9888 (ASM_OUTPUT_SKIP): Likewise.
9889 (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
9890 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
9891 (ASM_OUTPUT_CASE_LABEL): Likewise.
9892 (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
9893 (ASM_OUTPUT_ASCII): Likewise.
9894
9895 2000-01-27 Clinton Popetz <cpopetz@cygnus.com>
9896
9897 * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
9898 reload_toc_labelno for non-prologue TOC reloads. Also, don't
9899 increment rs6000_pic_labelno here.
9900 (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
9901 and increment rs6000_pic_labelno here.
9902
9903 2000-01-24 Geoffrey Keating <geoffk@cygnus.com>
9904
9905 * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
9906 rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
9907 allocation knows (reg) is dead before the insn.
9908
9909 2000-01-21 Geoff Keating <geoffk@cygnus.com>
9910
9911 * rs6000.md (movsi_to_cr): Correct typo in output template.
9912
9913 2000-01-19 Geoffrey Keating <geoffk@cygnus.com>
9914
9915 * rs6000.c (rs6000_pic_labelno): Always define.
9916 (rs6000_pic_func_labelno): Delete.
9917 (lmw_operation): Check for a zero base register,
9918 which doesn't mean what we want.
9919 (stmw_operation): New function.
9920 (print_operand): Define new 'l' modifier.
9921 (rs6000_stack_info): We must save all 64 bits of the registers
9922 if TARGET_POWERPC64.
9923 (rs6000_output_load_toc_table): Delete.
9924 (rs6000_emit_load_toc_table): New function.
9925 (rs6000_allocate_stack_space): Delete.
9926 (rs6000_emit_allocate_stack): New function.
9927 (rs6000_emit_prologue): New function.
9928 (output_prolog): Use rs6000_emit_prologue.
9929 (rs6000_emit_epilogue): Change a few variable names to be
9930 more accurate. Restore all 64 bits of the registers if
9931 TARGET_POWERPC64. Only restore the FP registers which were used
9932 if they are being saved/restored one-at-a-time.
9933 (output_mi_thunk): Delete inefficient code generation.
9934 (output_function_profiler): Don't use rs6000_output_load_toc_table.
9935 * rs6000.h: Declare rs6000_emit_load_toc_table,
9936 rs6000_allocate_stack_space, stmw_operation. Don't declare
9937 rs6000_output_load_toc_table.
9938 * rs6000.md (elf_high): Allow register 0, but discourage it
9939 heavily.
9940 (elf_low): Support loading into register 0.
9941 (load_toc_aix_si): New pattern.
9942 (load_toc_aix_di): New pattern.
9943 (load_toc_v4_pic_si): New pattern.
9944 (load_toc_v4_pic_di): New pattern.
9945 (load_toc_v4_PIC_1): New pattern.
9946 (load_toc_v4_PIC_1b): New pattern.
9947 (load_toc_v4_PIC_2): New pattern.
9948 (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
9949 (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
9950 (prologue): New expander.
9951 (movesi_from_cr): New pattern.
9952 (stmw): New pattern.
9953 (save_fpregs_si): New pattern.
9954 (save_fpregs_di): New pattern.
9955
9956 2000-01-19 Geoff Keating <geoffk@cygnus.com>
9957
9958 * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
9959 (movdi): Likewise.
9960 (movhi): Likewise.
9961 (movqi): Likewise.
9962
9963 2000-01-19 Geoff Keating <geoffk@cygnus.com>
9964
9965 * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
9966 at present.
9967 (movsi_got_internal): Likewise.
9968 (movsi_got_internal+1): Likewise.
9969 (set_sp): 'unspec 7' does a SImode clobber.
9970
9971 2000-01-19 Geoff Keating <geoffk@cygnus.com>
9972
9973 * rs6000.md (floatsidf2): Don't use the fpmem "register", just
9974 allocate a stack temporary.
9975 (floatsidf2_internal): Likewise.
9976 (floatsidf2_internal+1): Likewise. Don't do bizzare hacks
9977 with unspec.
9978 (floatunssidf2): Don't use the fpmem "register", just
9979 allocate a stack temporary.
9980 (floatunssidf2_internal): Likewise.
9981 (floatunssidf2_internal+1): Likewise. Don't do bizzare hacks
9982 with unspec.
9983 (floatsidf2_loadaddr): Delete.
9984 (floatsidf2_store1): Delete.
9985 (floatsidf2_store2): Delete.
9986 (floatsidf2_load): Delete.
9987 (fix_truncdfsi2): Don't use the fpmem "register", just
9988 allocate a stack temporary.
9989 (fix_truncdfsi2_internal_si): Delete.
9990 (fix_truncdfsi2_internal_di): Delete.
9991 (fix_truncdfsi2_internal): New insn.
9992 (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
9993 (fix_truncdfsi2_store): Delete.
9994 (fix_truncdfsi2_load): Delete.
9995 (fctiwz): Produce gen_fctiwz.
9996
9997 2000-01-19 Geoffrey Keating <geoffk@cygnus.com>
9998
9999 * eabi.h (INVOKE__main): Define.
10000 * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
10001 specially.
10002 (rs6000_emit_prologue): Likewise.
10003 * rs6000.h (struct rs6000_stack): Don't keep track of whether
10004 this is the main program.
10005
10006 2000-01-19 Geoff Keating <geoffk@cygnus.com>
10007
10008 * rs6000.c (rs6000_va_arg): Delete some unused variables.
10009
10010 2000-01-19 Geoff Keating <geoffk@cygnus.com>
10011
10012 * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
10013 goes after the argument.
10014
10015 2000-01-12 Geoff Keating <geoffk@cygnus.com>
10016
10017 * rs6000.md: Document 'unspec' values used.
10018 (epilogue): New expander.
10019 (movesi_to_cr_one): New expander.
10020 (movesi_to_cr and following): New pattern.
10021 (lmw): New pattern.
10022 (return_internal_si): New pattern.
10023 (return_internal_di): New pattern.
10024 (return_and_restore_fpregs_si): New pattern.
10025 (return_and_restore_fpregs_di): New pattern.
10026 * rs6000.h: Declare new functions.
10027 * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
10028 rather than rs6000_calls_p.
10029 (rs6000_makes_calls): Delete.
10030 (lmw_operation): New function.
10031 (mtcrf_operation): New function.
10032 (rs6000_emit_epilogue): New function.
10033 (output_epilog): Call rs6000_emit_epilogue and final if
10034 !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
10035
10036 2000-01-12 Geoff Keating <geoffk@cygnus.com>
10037
10038 * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
10039 * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
10040 * aix.h (SUBTARGET_SWITCHES): Document switches.
10041 * rs6000.h: (TARGET_SWITCHES): Don't print options twice. Make
10042 sched-prolog and sched-epilog the same. Document all the
10043 switches.
10044 (TARGET_OPTIONS): No longer allow -mdebug-.
10045
10046 2000-01-12 Geoff Keating <geoffk@cygnus.com>
10047
10048 * rs6000.h (ASM_FILE_END): Move to aix.h.
10049 (EXTRA_SECTIONS): Move to aix.h.
10050 (READONLY_DATA_SECTION): Move to aix.h.
10051 (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
10052 (SELECT_SECTION): Move to aix.h.
10053 (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
10054 (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
10055 (LINK_REGISTER_REGNUM): New definition.
10056 (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
10057 (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
10058 AIX and SVR4.
10059 * sysv4.h: Delete the code between the inclusion of rs6000.h
10060 and svr4.h.
10061 (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
10062 (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
10063 (RS6000_REG_SAVE): Move generic definition to rs6000.h.
10064 (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
10065 * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
10066 (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
10067 (fix_truncdfsi2_internal_di): New pattern.
10068 (fix_truncdfsi2_store): The second arg here is Pmode too.
10069 (fix_truncdfsi2_load): The second arg here is Pmode too.
10070 (tablejumpdi): Now that switch tables hold only SImode values,
10071 gcc needs to know how to add them to the pc which is DImode.
10072 * rs6000.c (rs6000_stack_info): Use symbolic name for
10073 LINK_REGISTER_REGNUM.
10074 (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
10075 (output_toc): Delete unused variables s1 and s2.
10076 (output_ascii): Use fputs not fprintf on a variable string.
10077
10078 2000-01-07 David Edelsohn <edelsohn@gnu.org>
10079
10080 * rs6000.c (processor_target_table): Add power3 as alias for 630.
10081 * aix43.h: Revert Aug 2 change.
10082 (HAS_INIT_SECTION): Define, not visible yet.
10083 (LD_INIT_SWITCH): Define, not visible yet.
10084 * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
10085
10086 2000-01-04 Joel Sherrill (joel@OARcorp.com>
10087
10088 * config/rs6000/rtems.h: Include config/rtems.h.
10089
10090 2000-01-04 David Edelsohn <edelsohn@gnu.org>
10091
10092 * rs6000.h (HANDLE_PRAGMA_PACK): Define.
10093 (SLOW_UNALIGNED_ACCESS): Define.
10094 (CASE_VECTOR_MODE): Always use 32-bit offsets.
10095 (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
10096 (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
10097 (toc_section): Likewise and .toc pseudo-op.
10098 (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
10099 64-bit mode.
10100 (TEXT_SECTION_ASM_OP): Likewise.
10101 (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
10102 32-bit offsets.
10103
10104 1999-12-17 Jakub Jelinek <jakub@redhat.com>
10105
10106 * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
10107 UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
10108 compiling libgcc2.
10109
10110 2000-01-06 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
10111
10112 * rs6000.h: Move more stuff from here...
10113 * aix.h: to here.
10114 * sysv4.h: Cleanup accordingly.
10115 * netware.h: Likewise
10116
10117 2000-01-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
10118
10119 * rs6000.h: Continue cleanup.
10120 * aix.h: Likewise.
10121 * lynx.h: Likewise.
10122 * netware.h: Likewise.
10123 * sol2.h: Likewise.
10124 * sysv4.h: Likewise.
10125 * win-nt.h: Likewise.
10126
10127 * rs6000.h (TARGET_SWITCHES): Add descriptions.
10128 (TARGET_OPTIONS): Likewise.
10129
10130 * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
10131 (SUBTARGET_OPTIONS): Likewise.
10132
10133 * rs6000.md: Fix compile time warnings.
10134
10135 2000-01-04 Geoff Keating <geoffk@cygnus.com>
10136
10137 vxworks patches from the Cygnus tree originally by
10138 Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
10139 <vmakarov@cygnus.com>.
10140 * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
10141 (ENDFILE_SPEC): Likewise.
10142 (LIB_VXWORKS_SPEC): New macro.
10143 (STARTFILE_VXWORKS_SPEC): New macro.
10144 (ENDFILE_VXWORKS_SPEC): New macro.
10145 (LINK_START_VXWORKS_SPEC): New macro.
10146 (LINK_OS_VXWORKS_SPEC): New macro.
10147 (CPP_OS_VXWORKS_SPEC): New macro.
10148 (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
10149 * vxppc.h: Rewrite to use proper configuration method.
10150 * vxppcle.h: New file.
10151 * ../../configure.in: Add powerpcle-wrs-vxworks*.
10152 * ../../configure: Rebuilt.
10153
10154 2000-01-04 Geoff Keating <geoffk@cygnus.com>
10155
10156 Lots of changes to rs6000.h, sysv4.h, aix.h,
10157 aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
10158 with the aim that rs6000.h is the first header
10159 included and the others override it.
10160 * aix.h: New file.
10161
10162 * x-aix41-gld: Remove.
10163 * x-aix43: Remove.
10164 * x-aix41: Remove target-specific switches, and don't specify
10165 -Wl,-bbigtoc as we don't need it any more.
10166 * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
10167 Use t-aix43 for AIX 4.3 and above.
10168 * ../../configure: Regenerated.
10169
10170 * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
10171 options, that don't do anything yet.
10172 (MASK_SCHED_PROLOG): New macro.
10173 (MASK_SCHED_EPILOG): New macro.
10174 (TARGET_SCHED_PROLOG): New macro.
10175 (TARGET_SCHED_EPILOG): New macro.
10176
10177 2000-01-04 Geoff Keating <geoffk@cygnus.com>
10178
10179 * rs6000.c: Correct comment, the `minimal' TOCs are actually
10180 one per translation unit, not one per function.
10181 (output_toc): Also do duplicate constant elimination
10182 for per-translation-unit TOCs.
10183
10184 * rs6000.md (nonlocal_goto_receiver): Put it back as before. Add
10185 a comment explaining _exactly_ when this pattern gets used.
10186 (builtin_setjmp_receiver): New pattern for better clarity.
10187 (init_v4_pic): Move it into a section dealing with TOC registers.
10188
10189 1999-12-30 Geoff Keating <geoffk@cygnus.com>
10190
10191 * rs6000.c (toc_hash_table): New variable.
10192 (rs6000_hash_constant): New function.
10193 (toc_hash_function): New function.
10194 (toc_hash_eq): New function.
10195 (toc_hash_mark_entry): New function.
10196 (toc_hash_mark_table): New function.
10197 (output_toc): Don't output duplicate TOC entries in
10198 a single file.
10199 (rs6000_add_gc_roots): Add the hash table as a GC root.
10200 * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
10201 where they clearly shouldn't be. This may need to be fixed
10202 later when there is a GNU ar for AIX.
10203 * x-aix43: Don't define CLIB or AR_FOR_TARGET.
10204 Don't define BOOT_LDFLAGS as it is now not necessary.
10205
10206 1999-12-29 Geoff Keating <geoffk@cygnus.com>
10207
10208 * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
10209 for va_list on AIX. Use unsigned_char_type_node rather than
10210 constructing our own version on svr4.
10211
10212 1999-12-17 Geoff Keating <geoffk@cygnus.com>
10213
10214 * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
10215 since patently it's not.
10216
10217 1999-12-08 Geoff Keating <geoffk@cygnus.com>
10218
10219 * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
10220 define_expand/define_insn pair, and handle restore of the
10221 SVR4 -fpic register.
10222
10223 Wed Mar 15 15:43:38 2000 Jeffrey A Law (law@cygnus.com)
10224
10225 * acconfig.h (HAVE_GAS_WEAK): New define.
10226 * configure.in (assembler weak support): Check for .weak support.
10227 * config.in, configure: Rebuilt.
10228 * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
10229 HAVE_GAS_WEAK is defined.
10230
10231 2000-03-15 Nick Clifton <nickc@cygnus.com>
10232
10233 * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
10234 asm_fprintf().
10235
10236 2000-03-15 Zack Weinberg <zack@wolery.cumb.org>
10237
10238 * cppfiles.c (open_include_file): New function.
10239 (find_include_file, cpp_read_file): Use it.
10240
10241 2000-03-15 Jason Merrill <jason@casey.cygnus.com>
10242
10243 * cpphash.c (dump_hash_helper): Take the slot, not the element.
10244
10245 Wed Mar 15 14:28:54 2000 Jason Eckhardt <jle@cygnus.com>
10246
10247 * flow.c (verify_flow_info): Check for unconditional return.
10248
10249 Wed Mar 15 11:34:27 2000 Jim Wilson <wilson@cygnus.com>
10250
10251 * config/ia64/ia64.md (restore_stack_nonlocal): New.
10252 * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
10253 (__ia64_restore_stack_nonlocal): New.
10254 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
10255
10256 2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10257
10258 * cpphash.c (collect_formal_parameters): Do not complain about
10259 parameter names that just start with `__VA_ARGS__'.
10260
10261 Wed Mar 15 13:26:58 MET 2000 Jan Hubicka <jh@suse.cz>
10262
10263 * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
10264 movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
10265 * i386.c (pentiumpro_cost): Set mul cost to 4.
10266 (x86_use_movx): Set for PPro.
10267
10268 Wed Mar 15 13:07:05 MET 2000 Jan Hubicka <jh@suse.cz>
10269
10270 * i386.md (ix86_compute_frame_size): stack_alignment_needed is
10271 STACK_BOUNDARY for empty frames now.
10272
10273 2000-03-14 Mark Mitchell <mark@codesourcery.com>
10274
10275 * stor-layout.c (layout_union): Remove.
10276 (layout_union_field): New function, split out from layout_union.
10277 (finish_union_layout): Likewise.
10278 (layout_field): Handle unions by calling layout_union_field.
10279 (finish_record_layout): Handle unions.
10280 (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
10281 QUAL_UNION_TYPE handling.
10282
10283 Wed Feb 23 13:00:06 CET 2000 Jan Hubicka <jh@suse.cz>
10284
10285 * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
10286 end of basic block is jump_insn, not barrier; use create_basic_block
10287 instead of creating basic block by hand.
10288
10289 2000-03-14 Jason Eckhardt <jle@cygnus.com>
10290
10291 * flow.c (reorder_basic_blocks): Account for barriers when writing
10292 over NEXT_INSN (last_bb->end).
10293 (verify_flow_info): Add check for missing barriers.
10294
10295 2000-03-14 Greg McGary <gkm@gnu.org>
10296
10297 * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
10298 * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
10299 * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
10300 __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
10301 __unbounded, __unbounded__): New keywords.
10302 * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
10303 * c-parse.y, c-parse.c, c-parse.h: Regenerate.
10304 * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
10305
10306 2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk>
10307
10308 * cselib.h: New file.
10309 * alias.c: Include "cselib.h".
10310 (fixed_scalar_and_varying_struct_p): Accept the addresses of the
10311 MEMs as two new arguments.
10312 (get_addr): New static function.
10313 (find_base_term): Handle VALUEs.
10314 (memrefs_conflict_p): Likewise.
10315 (true_dependence): Call get_addr on the addresses.
10316 Call fixed_scalar_and_varying_struct_p with addresses that have been
10317 passed through get_addr and canon_rtx.
10318 (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
10319 with true_dependence.
10320 Call get_addr on the addresses; don't call canon_rtx on the MEMs.
10321 * loop.c: Include "cselib.h".
10322 (load_mems): Process extended basic block that enters the loop with
10323 cselib. Use that information to change initialization of the shadow
10324 register so that a constant equivalence is seen by later passes.
10325 * reload1.c: Include "cselib.h".
10326 (reload_cse_invalidate_regno): Delete function.
10327 (reload_cse_mem_conflict_p): Likewise.
10328 (reload_cse_invalidate_mem): Likewise.
10329 (reload_cse_invalidate_rtx): Likewise.
10330 (reload_cse_regno_equal_p): Likewise.
10331 (reload_cse_check_clobber): Likewise.
10332 (reload_cse_record_set): Likewise.
10333 (reg_values): Delete static variable.
10334 (invalidate_regno_rtx): Likewise.
10335 (reload_cse_delete_noop_set): New static function.
10336 (reload_cse_simplify): New static function, broken out of
10337 reload_cse_regs_1.
10338 (reload_cse_noop_set_p): Delete unused argument INSN.
10339 Just call rtx_equal_for_cselib_p on set source and destination.
10340 (reload_cse_regs_1): Break out some code into reload_cse_simplify and
10341 reload_cse_delete_noop_set. Delete code to keep track of values; use
10342 cselib functions instead. Delete code to push/pop obstacks.
10343 (reload_cse_simplify_set): Use cselib to find equivalent values.
10344 Delete code to push/pop obstacks.
10345 (reload_cse_simplify_operands): Likewise.
10346 * rtl.def (VALUE): New rtx code.
10347 * rtl.h (union rtunion_def): New elt rt_cselib.
10348 (X0CSELIB, CSELIB_VAL_PTR): New macros.
10349 * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
10350 (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
10351 unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
10352 discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
10353 hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
10354 cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
10355 cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
10356 cselib_record_set, cselib_record_sets): New static functions.
10357 (cselib_lookup, cselib_update_varray_sizes, cselib_init,
10358 cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
10359 references_value_p): New functions.
10360 (MAX_USELESS_VALUES, REG_VALUES): New macros.
10361 (table, cselib_current_insn, next_unknown_value, cselib_nregs,
10362 n_useless_values, reg_values, callmem, cselib_obstack,
10363 cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
10364 New static variables.
10365 * varray.h (union varray_data_tag): New elt te.
10366 (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
10367 * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
10368 dependencies.
10369
10370 2000-03-14 Nick Clifton <nickc@cygnus.com>
10371
10372 * gcc.c (do_spec_1): Catch the case where %* is used in a
10373 substitution pattern, but it has not been initialised.
10374 Issue a meaningful error message if an unrecognised operator
10375 is encountered in a spec string.
10376
10377 2000-03-14 Richard Earnshaw <rearnsha@arm.com>
10378
10379 * function.c (prepare_function_start): Correctly initialize
10380 cfun->stack_alignment_needed.
10381
10382 2000-03-14 Zack Weinberg <zack@wolery.cumb.org>
10383
10384 * cppfiles.c (find_include_file): Don't assume nshort is a
10385 substring of name.
10386
10387 Tue Mar 14 08:42:21 2000 Jeffrey A Law (law@cygnus.com)
10388
10389 * configure.in (hppa configurations): Add pa32-regs.h to the
10390 list of tm files as appropriate.
10391 * configure: Rebuilt.
10392 * pa.c (compute_frame_size): Remove explicit knowledge about FP
10393 register numbering.
10394 (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
10395 (fmpyaddoperands, fmpysuboperands): Likewise.
10396 * pa.h: Remove various definitions which depend on knowing
10397 how registers are numbered.
10398 * pa32-regs.h: New file with PA32 register numbering specific
10399 definitions.
10400
10401 2000-03-14 Richard Henderson <rth@cygnus.com>
10402
10403 * regmove.c (combine_stack_adjustments): New.
10404 (stack_memref_p, single_set_for_csa): New.
10405 (free_csa_memlist, record_one_stack_memref): New.
10406 (try_apply_stack_adjustment): New.
10407 (combine_stack_adjustments_for_block): New.
10408 * rtl.h (combine_stack_adjustments): Declare.
10409 * toplev.c (rest_of_compilation): Call it.
10410
10411 * i386.md: Revert 2000-01-16 change.
10412
10413 2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de>
10414
10415 * gccbug.in: Add web category, gcc specific classes.
10416
10417 2000-03-14 Nathan Sidwell <nathan@codesourcery.com>
10418
10419 * stor-layout.c (finalize_record_size): Fix typo.
10420
10421 2000-03-14 Stan Shebs <shebs@apple.com>
10422
10423 * c-typeck.c (c_alignof): Error on incomplete types.
10424 * extend.texi (Alignment): Document this.
10425
10426 2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
10427
10428 * cppfiles.c: Include mkdeps.h.
10429 (find_include_file, read_include_file): Remove _cpp_ prefix
10430 from name, make static.
10431 (_cpp_execute_include): New function, broken out of
10432 do_include.
10433
10434 * cpplib.c: Don't include mkdeps.h.
10435 (struct directive): Remove type field. Reorder entries. The
10436 function takes only one argument.
10437 (struct if_stack): Make type field an int.
10438 (directive_table): Rename to dtable. Generate it, the
10439 prototypes of the directive handlers, and the enum for the
10440 directive numbers, from a template macro.
10441 (do_ifndef, do_include_next, do_import): New functions.
10442 (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
10443 do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
10444 do_ident, do_assert, do_unassert, do_sccs): Take only one
10445 argument.
10446 (do_sccs): Define always, but alter behavior based on
10447 SCCS_DIRECTIVE.
10448 (_cpp_handle_directive, consider_directive_while_skipping):
10449 Restructure for new directive table layout.
10450
10451 (pass_thru_directive): Take a directive number, not a pointer
10452 to a struct directive.
10453 (parse_include): New function, broken out of do_include.
10454 (do_include, do_import, do_include_next): Use parse_include
10455 and _cpp_execute_include.
10456 (do_elif, do_else): Test for T_ELSE specifically when checking
10457 for #elif/#else after #else.
10458 (parse_ifdef): New function, broken out of do_ifdef.
10459 (validate_else): Expect a name arg without a leading #.
10460 (if_directive_name): Delete.
10461 (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
10462 directive handlers with only one argument.
10463
10464 * cpphash.h: Update prototypes.
10465 (enum node_type): Remove entries for directives.
10466 * Makefile.in: Update dependencies.
10467
10468 * cpphash.c (dump_hash_helper): Only dump nodes of type
10469 T_MACRO. Emit a newline after each definition.
10470
10471 2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de>
10472
10473 * gccbug.in: New file.
10474 * configure.in (all_outputs): Add gccbug.
10475 * Makefile.in (install-common): Install gccbug.
10476 (GCCBUG_INSTALL_NAME): New variable.
10477 * configure: Rebuilt.
10478
10479 2000-03-13 Jason Merrill <jason@casey.cygnus.com>
10480
10481 * function.c (put_var_into_stack): Use type_for_mode to calculate
10482 part_type. Use MEM_SET_IN_STRUCT_P.
10483 * expr.c (store_field): Handle CONCAT.
10484 (store_constructor): Use fields_length.
10485 * tree.c (fields_length): New fn.
10486 * tree.h: Declare it.
10487
10488 2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
10489
10490 * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
10491 (cpplex.o): New target.
10492 * po/POTFILES.in: Add cpplex.c.
10493
10494 * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
10495 cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
10496 cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
10497 skip_block_comment, skip_line_comment, skip_comment,
10498 copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
10499 _cpp_parse_name, skip_string, parse_string,
10500 _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
10501 _cpp_get_directive_token, find_position,
10502 _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
10503 (maybe_macroexpand, _cpp_lex_token): New functions.
10504
10505 * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
10506 parse_goto_mark): Delete.
10507 (_cpp_handle_eof): New function.
10508 (_cpp_handle_directive): Rename from handle_directive.
10509 (_cpp_output_line_command): Rename from output_line_command.
10510 (do_if, do_elif): Call _cpp_parse_expr directly.
10511 * cppfiles.c (_cpp_read_include_file): Don't call
10512 init_input_buffer here.
10513 * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
10514 * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
10515 here; pop the token_buffer and skip the rest of the line here.
10516 * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
10517 here.
10518
10519 * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
10520 Define here.
10521 (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
10522 CPP_GOTO_MARK): New macros.
10523 (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
10524 _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
10525 _cpp_read_and_prescan, _cpp_init_input_buffer,
10526 _cpp_grow_token_buffer, _cpp_get_directive_token,
10527 _cpp_handle_directive, _cpp_handle_eof,
10528 _cpp_output_line_command): Prototype them here.
10529 * cpplib.h (enum cpp_token): Add CPP_MACRO.
10530 (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
10531 quote_string, output_line_command): Remove.
10532
10533 2000-03-13 Bernd Schmidt <bernds@cygnus.co.uk>
10534
10535 * stmt.c (expand_end_case): RANGE may be signed, and when checking
10536 whether it is too large we must also verify that it isn't negative.
10537
10538 2000-03-13 Jakub Jelinek <jakub@redhat.com>
10539
10540 * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
10541 (movsi_zero_liveg0): Remove.
10542 (movsf_insn_novis_liveg0): Remove.
10543 (negsi2): Remove.
10544 (negsi2_not_liveg0): Rename to negsi2.
10545 (one_cmplsi2): Remove.
10546 (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
10547 (one_cmplsi2_liveg0): Remove.
10548 * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
10549 MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
10550 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
10551 (PREDICATE_CODES): Remove zero_operand.
10552 * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
10553 TARGET_BROKEN_SAVERESTORE.
10554 (zero_operand): Remove.
10555 * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
10556 -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
10557 options.
10558 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
10559 * config/sparc/linux-aout.h (TARGET_LIVE_G0,
10560 TARGET_BROKEN_SAVERESTORE): Remove.
10561 * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
10562 Remove.
10563 * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
10564 Remove.
10565 * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
10566 Remove.
10567
10568 * config/sparc/sparc.md (return_df_no_fpu): New pattern.
10569
10570 2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
10571
10572 * cpplib.c (do_pragma_implementation): Fix off-by-one error
10573 truncating a string. Don't assume tokens are nul terminated.
10574 Problem noted by Andreas Jaeger <aj@suse.de>
10575
10576 2000-03-13 Jason Merrill <jason@casey.cygnus.com>
10577
10578 * dwarf2out.c (add_name_and_src_coords_attributes): Only add
10579 DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
10580 (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
10581
10582 2000-03-13 Richard Earnshaw <rearnsha@arm.com>
10583
10584 * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
10585 STRUCTURE_SIZE_BOUNDARY.
10586
10587 2000-03-13 Mark Mitchell <mark@codesourcery.com>
10588
10589 * tree.h (record_layout_info_s): New structure.
10590 (record_layout_info): New type.
10591 (new_record_layout_info): New function.
10592 (layout_field): Likewise.
10593 (finish_record_layout): Likewise.
10594 * stor-layout.c (layout_record): Remove.
10595 (new_record_layout_info): New function.
10596 (layout_field): New function, broken out from layout_record.
10597 (finalize_record_size): Likewise.
10598 (compute_record_mode): Likewise.
10599 (finalize_type_size): New function, broken out from layout_type.
10600 (finish_record_layout): Likewise.
10601 (layout_type): Use them.
10602
10603 2000-03-12 Zack Weinberg <zack@wolery.cumb.org>
10604
10605 * cpphash.c: Don't include version.h.
10606 (special_symbol) [case T_VERSION]: Look for the string in
10607 hp->value.cpval; don't use version_string.
10608 * cppinit.c (initialize_builtins): Set hp->value.cpval for
10609 __VERSION__ to version_string.
10610 * Makefile.in (cpphash.o): Update deps.
10611
10612 2000-03-12 Zack Weinberg <zack@wolery.cumb.org>
10613
10614 Convert cpplib to use libiberty/hashtab.c.
10615
10616 * cpplib.h (struct cpp_reader): Make hashtab and
10617 all_include_files of type 'struct htab *'. Delete HASHSIZE
10618 and ALL_INCLUDE_HASHSIZE macros.
10619
10620 * cpphash.h: Update prototypes.
10621 (struct hashnode): Remove next, prev, and bucket_hdr members.
10622 Make length a size_t. Add hash member.
10623 (struct ihash): Remove next member. Add hash member. Make
10624 name a flexible array member.
10625
10626 * cppfiles.c: Include hashtab.h.
10627 (include_hash): Delete.
10628 (IHASHSIZE): New macro.
10629 (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
10630 (cpp_included): Do the hash lookup here.
10631 (_cpp_find_include_file): Rewrite.
10632 (cpp_read_file): Put the "fake" hash entry into the hash
10633 table. Honor the control_macro, if it turns out we've seen
10634 the file before. Don't push the buffer here.
10635 (_cpp_read_include_file): Push the buffer here.
10636 (OMODES): New macro. Use it whenever we call open(2).
10637
10638 * cpphash.c: Include hashtab.h.
10639 (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
10640 _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
10641 _cpp_lookup_slot): New functions.
10642 (HASHSIZE): new macro.
10643 (hashf, _cpp_install, _cpp_delete_macro): Delete.
10644 (_cpp_lookup): Use hashtab.h routines.
10645
10646 * cppinit.c: Include hashtab.h.
10647 (cpp_reader_init): Call _cpp_init_macro_hash and
10648 _cpp_init_include_hash. Don't allocate hashtab directly.
10649 (cpp_cleanup): Just call htab_delete on pfile->hashtab and
10650 pfile->all_include_files.
10651 (initialize_builtins): Use _cpp_make_hashnode and
10652 htab_find_slot to add hash entries.
10653 (cpp_finish): Just call _cpp_dump_macro_hash.
10654 * cpplib.c: Include hashtab.h.
10655 (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
10656 create hash entries.
10657 (do_pragma_poison, do_assert): Likewise.
10658 (do_include): Don't push the buffer here. Don't increment
10659 system_include_depth unless _cpp_read_include_file succeeds.
10660 (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
10661 or htab_remove_elt.
10662 (do_pragma_implementation): Use alloca to create copy.
10663
10664 * Makefile.in: Update dependencies.
10665
10666 2000-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10667
10668 * cppinit.c (cl_directive_handler): More K&R fixing.
10669
10670 Sat Mar 11 23:54:26 2000 Jim Wilson <wilson@cygnus.com>
10671
10672 * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
10673 STACK_BOUNDARY.
10674 * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
10675
10676 2000-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10677
10678 * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
10679 Change from char[] to macros.
10680
10681 2000-03-12 Neil Booth <NeilB@earthling.net>
10682
10683 * cppinit.c (cpp_start_read): Update indirect function
10684 call to K&R C.
10685
10686 Sat Mar 11 16:18:12 2000 Jim Wilson <wilson@cygnus.com>
10687
10688 * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
10689 entry.
10690
10691 * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
10692 config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
10693
10694 2000-03-11 Neil Booth <NeilB@earthling.net>
10695
10696 * cppinit.c (struct pending option): Replace undef with a
10697 pointer to a directive handling routine.
10698 (struct cpp_pending): Replace separate assert_ and define_
10699 lists with one directive_ list.
10700 (new_pending_define): Rename new_pending_directive. Extra
10701 argument is the directive's handling routine.
10702 (handle_option): Update to use new_pending_directive.
10703
10704 2000-03-11 Neil Booth <NeilB@earthling.net>
10705
10706 * cppfiles.c (file_cleanup, _cpp_find_include_file,
10707 remap_filename, _cpp_read_include_file, actual_directory,
10708 hack_vms_include_specification): Replace bcopy(), index() etc
10709 calls. Add casts to some allocations. Make some variables
10710 pointers to const [unsigned] char.
10711 * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
10712 collect_formal_parameters): Similarly.
10713 * cppinit.c (struct pending_option, append_include_chain,
10714 cpp_options_init, cpp_reader_init, initialize_standard_includes,
10715 cpp_start_read, new_pending_define, handle_option): Similarly.
10716 * cpplib.c (cpp_define, copy_comment, do_define, do_include,
10717 do_undef, do_error, do_warning, do_pragma, do_pragma_once,
10718 do_pragma_implementation, detect_if_not_defined,
10719 do_ifdef, skip_if_group, cpp_get_token, parse_string,
10720 do_assert, do_unassert): Similarly.
10721 * cpplib.h (cpp_buffer, cpp_options): Update types. Update
10722 function prototypes.
10723 * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
10724
10725 2000-03-10 Richard Henderson <rth@cygnus.com>
10726
10727 * builtins.c (expand_builtin_strlen): Revert last change.
10728 Use emit_insn_before if we're at the beginning of a sequence.
10729
10730 2000-03-10 Jason Merrill <jason@casey.cygnus.com>
10731
10732 * builtins.c (expand_builtin_strlen): Make sure that we have something
10733 at the beginning of the sequence.
10734
10735 * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
10736 deferred inlines.
10737
10738 * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
10739
10740 2000-03-10 Richard Henderson <rth@cygnus.com>
10741
10742 * except.c (can_throw): Use INTVAL on a CONST_INT.
10743 (reachable_handlers): Likewise.
10744 * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
10745
10746 2000-03-10 Andreas Jaeger <aj@suse.de>
10747
10748 * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
10749 MD_STARTFILE_PREFIX since those are not needed on linux.
10750 (ASM_FILE_START): New, from mips/gnu.h.
10751
10752 2000-03-09 Richard Henderson <rth@cygnus.com>
10753 Alex Samuel <samuel@codesourcery.com> and others
10754
10755 * Makefile.in (ssa.o): New rule.
10756 (OBJS): Add ssa.o.
10757 (STAGESTUFF): Add *.ssa and *.ussa.
10758 (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
10759 * rtl.def (PHI): New RTL expression.
10760 * rtl.h (clear_log_links): New declaration.
10761 (convert_to_ssa): Likewise.
10762 (convert_from_ssa): Likewise.
10763 * flow.c (split_edge): If the entry node falls through to the
10764 split edge's source block, split the entry edge.
10765 (clear_log_links): New function.
10766 * toplev.c (ssa_dump): New variable.
10767 (flag_ssa): Likewise.
10768 (f_options): Add "ssa".
10769 (compile_file): Create SSA dump files.
10770 (rest_of_compilation): Go to and from SSA if enabled.
10771 (decide_d_option): Handle -de for SSA dump files.
10772 * ssa.c: New file.
10773
10774 Thu Mar 9 20:01:38 2000 Jim Wilson <wilson@cygnus.com>
10775
10776 * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
10777 same as VAR_DECL.
10778
10779 2000-03-09 Benjamin Kosnik <bkoz@cygnus.com>
10780
10781 * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
10782
10783 Thu Mar 9 18:10:02 2000 Jeffrey A Law (law@cygnus.com)
10784
10785 * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
10786 (MD_STARTFILE_PREFIX_1): New macro.
10787
10788 2000-03-09 Robert Lipe <robertl@sco.com>
10789
10790 * config/ia64/ia64.c: Include system.h.
10791
10792 2000-03-09 Jason Merrill <jason@casey.cygnus.com>
10793
10794 * except.c (nothrow_function_p): If -fno-exceptions, just return.
10795 (init_eh_nesting_info): Likewise.
10796
10797 * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
10798 (TREE_NOTHROW): Rename from TREE_RAISES.
10799 * toplev.c (rest_of_compilation): Set it.
10800 * print-tree.c (print_node): Adjust.
10801 * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
10802 (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
10803 * calls.c (emit_call_1): Add 'nothrow' parm. Add
10804 REG_EH_REGION note as appropriate.
10805 (libfunc_nothrow): New fn.
10806 (emit_library_call, emit_library_call_value): Use it.
10807 (expand_call): Check TREE_NOTHROW.
10808
10809 * varasm.c (make_decl_rtl): Skip initial '*' when setting
10810 DECL_ASSEMBLER_NAME.
10811
10812 2000-03-09 Andreas Jaeger <aj@suse.de>
10813
10814 * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
10815 (TARGET_MEM_FUNCTIONS): Define.
10816
10817 2000-03-09 Jason Merrill <jason@casey.cygnus.com>
10818
10819 * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
10820
10821 * except.c (can_throw): See through a SEQUENCE.
10822 (nothrow_function_p): New fn.
10823 * except.h: Declare it.
10824 * function.c (current_function_nothrow): New var.
10825 (prepare_function_start): Initialize it.
10826 * output.h: Declare it.
10827 * toplev.c (rest_of_compilation): Set it.
10828 * dwarf2out.c (dwarf2out_begin_prologue): Use it.
10829
10830 2000-03-09 Zack Weinberg <zack@wolery.cumb.org>
10831
10832 * cpphash.c (collect_formal_parameters): strncmp returns 0 for
10833 match. (cpp_compare_defs): Count the nul separator when
10834 advancing over argument names.
10835
10836 2000-03-09 Bernd Schmidt <bernds@cygnus.co.uk>
10837
10838 * recog.c (preprocess_constraints): Matching constraints affect
10839 same alternative/different operand, not same operand/different
10840 alternative.
10841
10842 * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
10843 register and a constant specially.
10844
10845 2000-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10846
10847 * libgcc2.h: New file.
10848 * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
10849
10850 Wed Mar 8 16:19:42 2000 Jim Wilson <wilson@cygnus.com>
10851
10852 * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
10853 * configure: Regenerate.
10854 * config/ia64: New.
10855
10856 2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
10857
10858 * Makefile.in (LIBCPP_DEPS): New macro.
10859 (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
10860 it to declare deps.
10861 * cpperror.c: Include cpphash.h.
10862 * cppexp.c: Include cpphash.h. Remove MULTIBYTE_CHARS
10863 dingleberry.
10864 (lex): Don't use CPP_WARN_UNDEF.
10865 (_cpp_parse_expr): Return an int, the truth value.
10866 * cppfiles.c: Include cpphash.h.
10867 (_cpp_merge_include_chains): Move to cppinit.c and make static.
10868 * cppinit.c (include_defaults_array): Disentangle.
10869 (cpp_cleanup): Don't free the if stack here.
10870 (cpp_finish): Pop off all buffers, not just one.
10871 * cpplib.c (eval_if_expr): Return int.
10872 (do_xifdef): Rename do_ifdef.
10873 (handle_directive): Don't use CPP_PREPROCESSED.
10874 (cpp_get_token): Don't use CPP_C89.
10875 * fix-header.c: Don't use CPP_OPTIONS.
10876
10877 * cpplib.h: Move U_CHAR, enum node_type, struct
10878 file_name_list, struct ihash, is_idchar, is_idstart,
10879 is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
10880 CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
10881 CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
10882 CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
10883 CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
10884 of _cpp_simplify_pathname, _cpp_find_include_file,
10885 _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
10886 Move struct if_stack to cpplib.c. Move struct cpp_pending to
10887 cppinit.c.
10888 Change all uses of U_CHAR to be unsigned char instead.
10889 Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
10890
10891 2000-03-08 Jason Merrill <jason@casey.cygnus.com>
10892
10893 * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
10894 (dwarf2out_begin_prologue): Set it.
10895 (output_call_frame_info): Don't emit EH unwind info for leaves.
10896
10897 * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
10898 can occur outside of an EH region.
10899 * except.c: Correct comments about rethrow behavior.
10900 (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
10901
10902 2000-03-08 Andrew MacLeod <amacleod@cygnus.com>
10903
10904 * flow.c (make_edges): Always call make_eh_edge for calls.
10905
10906 2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
10907
10908 * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
10909 (struct cpp_buffer): Remove fname and underflow fields.
10910 (struct cpp_reader): Remove get_token field.
10911 (struct include_hash): Rename to struct ihash. Add typedef to
10912 IHASH.
10913 (struct if_stack): Remove fname field.
10914 (IF_STACK_FRAME): Rename to IF_STACK.
10915
10916 * cpperror.c (print_containing_files): Trust that there are no
10917 macro buffers below the top file buffer.
10918 * cppfiles.c: Replace all references to 'struct include_hash'
10919 with 'IHASH'. Rename initialize_input_buffer to
10920 init_input_buffer. Don't set or reference cpp_buffer->fname,
10921 use buffer->ihash->name instead.
10922 * cpphash.c (special_symbol): Use cpp_file_buffer. Use NULL
10923 not CPP_NULL_BUFFER.
10924 * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
10925 IF_STACK_FRAME, IHASH not struct include_hash.
10926 * cpplib.c: Rename eval_if_expression to eval_if_expr. Remove
10927 null_underflow. Use IF_STACK not IF_STACK_FRAME, IHASH not
10928 struct include_hash, NULL not CPP_NULL_BUFFER. Remove all
10929 references to cpp_buffer->fname (delete entirely, or use
10930 ->ihash->name instead) and IF_STACK->fname.
10931 (cpp_push_buffer): Don't set new->underflow.
10932 (do_include): Use cpp_file_buffer.
10933
10934 * cpphash.c (collect_formal_parameters): Remove duplicate
10935 increment of argslen. Pedwarn in C99 mode if __VA_ARGS__ is
10936 used as a macro argument name. Don't append "..." to namebuf
10937 for varargs macros. After we're done scanning, go through
10938 namebuf and make it NUL separated, not comma separated.
10939 (_cpp_compare_defs): Remove register tag from variables.
10940 Expect defn->argnames to be NUL separated.
10941 (_cpp_dump_definition): Expect defn->argnames to be NUL
10942 separated and in forward order.
10943 * cpphash.h: Update documentation of argnames field.
10944
10945 2000-03-08 Richard Henderson <rth@cygnus.com>
10946
10947 * builtins.c (expand_builtin_strlen): Be prepared for strlensi
10948 to fail. Don't pre-expand the source operand.
10949
10950 * i386.md (strlensi): Initialize eoschar and align before use.
10951
10952 2000-03-08 Jason Merrill <jason@casey.cygnus.com>
10953
10954 * expr.c (expand_expr, case ARRAY_REF): Still check for missing
10955 CONSTRUCTOR element.
10956
10957 2000-03-08 Gavin Romig-Koch <gavin@cetus.cygnus.com>
10958
10959 * mips.c (mips_expand_prologue): If the last
10960 named argument is the vararg marker "va_list", treat it as
10961 an unnamed argument.
10962
10963 2000-03-08 Clinton Popetz <cpopetz@cygnus.com>
10964
10965 * dbxout.c (dbxout_parms): When correcting for promoted
10966 big-endian parameters, use the mode of the DECL_RTL rather
10967 than UNITS_PER_WORD.
10968
10969 2000-03-08 Nathan Sidwell <nathan@codesourcery.com>
10970
10971 * c-common.h (make_fname_decl): Declare.
10972 * c-common.c (make_fname_decl): Define.
10973 (declare_hidden_char_array): Remove.
10974 (declare_function_name): Use make_fname_decl.
10975 * c-decl.c (c_make_fname_decl): New function.
10976 (init_decl_processing): Set make_fname_decl.
10977
10978 Tue Mar 7 23:50:31 2000 Jeffrey A Law (law@cygnus.com)
10979
10980 * cccp.c (handle_directive): Initialize backslash_newlines_p.
10981
10982 2000-03-07 Philipp Thomas <pthomas@suse.de>
10983
10984 * po/POTFILES.in: Remove cppalloc.c from file list.
10985
10986 2000-03-07 Steve Chamberlain <sac@pobox.com>
10987
10988 * pj.c (pj_expand_prologue): current_function->args_info is
10989 now current_function_args_info.
10990
10991 * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
10992 LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
10993 ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
10994
10995 2000-03-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10996
10997 * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
10998 output as hexadecimal rather than the default octal.
10999
11000 2000-03-07 Zack Weinberg <zack@wolery.cumb.org>
11001
11002 * cpphash.c (special_symbol): Fix thinko in previous commit.
11003
11004 2000-03-07 Neil Booth <NeilB@earthling.net>
11005
11006 * cppexp.c (struct operation, left_shift, right_shift,
11007 cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
11008 "int"s to "unsigned int"s.
11009 * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
11010 Similarly.
11011 * cpplib.h: Update for above.
11012 * mkdeps.c (deps_init, deps_calc_target): Cast pointers
11013 returned from allocations.
11014
11015 * cppinit.c (opt_comp, parse_options): New functions.
11016 (handle_option): Use parse_option to parse a single command
11017 line option, that possibly takes an argument.
11018 (cpp_handle_options): Sort the array of command line options on
11019 first invocation (non-ASCII hosts only).
11020 (print_help): Update.
11021
11022 2000-03-07 Zack Weinberg <zack@wolery.cumb.org>
11023
11024 * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
11025 backslash counting loops. Problem noted by Matt Kraai <kraai@ghs.com>.
11026
11027 * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
11028 initialized.
11029 * cppinit.c (cpp_cleanup): Free imp->nshort also.
11030
11031 * cpperror.c (cpp_print_containing_files,
11032 cpp_print_file_and_line, v_cpp_message): Rename to
11033 print_containing_files, print_file_and_line, and v_message.
11034 * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
11035 to _cpp_parse_expr, parse_escape, and lex.
11036 (parse_charconst): Remove broken multibyte support.
11037 * cppfiles.c (include_hash): Make static.
11038 (cpp_included): New function.
11039 (merge_include_chains, find_include_file, finclude,
11040 simplify_pathname): Rename to _cpp_merge_include_chains,
11041 _cpp_find_include_file, _cpp_read_include_file, and
11042 _cpp_simplify_pathname.
11043 * cpphash.c (cpp_lookup, free_definition, delete_macro,
11044 cpp_install, create_definition, macroexpand, compare_defs,
11045 dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
11046 _cpp_delete_macro, _cpp_install, _cpp_create_definition,
11047 _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
11048 * cppinit.c (cpp_handle_option): Rename to handle_option, make
11049 static.
11050 * cpplib.c: Remove extern prototype of cpp_parse_expr.
11051
11052 * cpphash.h: Update prototypes.
11053 * cpplib.h: Likewise. Prototype _cpp_parse_expr here.
11054
11055 2000-03-07 Andrew Haley <aph@cygnus.com>
11056
11057 * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
11058 PTRDIFF_TYPE should be based solely on Pmode.
11059 (SIZE_TYPE): ditto.
11060
11061 2000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11062
11063 * rtl.h (rtunion_def): Constify member `rtstr'.
11064 (emit_line_note_after, emit_line_note, emit_line_note_force,
11065 emit_note, decode_asm_operands): Constify.
11066
11067 * cse.c (canon_hash): Likewise.
11068
11069 * dbxout.c (dbxout_block): Likewise.
11070
11071 * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
11072 v_warning_for_asm): Likewise.
11073
11074 * dwarfout.c (function_start_label): Likewise.
11075
11076 * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
11077 emit_line_note_force): Likewise.
11078
11079 * final.c (last_filename, asm_insn_count, final_scan_insn,
11080 output_source_line): Likewise.
11081
11082 * function.h (struct emit_status): Likewise.
11083
11084 * gcse.c (hash_expr_1): Likewise.
11085
11086 * genattr.c (gen_attr, main): Likewise.
11087
11088 * genattrtab.c (struct function_unit, current_alternative_string,
11089 write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
11090 attr_numeral, check_attr_test, check_attr_value,
11091 convert_set_attr_alternative, convert_set_attr,
11092 compute_alternative_mask, simplify_by_exploding, gen_attr,
11093 gen_unit): Likewise.
11094
11095 * genflags.c (gen_insn): Likewise.
11096
11097 * gengenrtl.c (type_from_format): Likewise.
11098
11099 * genopinit.c (gen_insn): Likewise.
11100
11101 * genoutput.c (n_occurrences, process_template, process_template):
11102 Likewise.
11103
11104 * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
11105 Likewise.
11106
11107 * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
11108 Likewise.
11109
11110 * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
11111 ggc_set_mark, ggc_get_size): Likewise.
11112
11113 * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
11114
11115 * optabs.c (init_one_libfunc): Likewise.
11116
11117 * output.h (assemble_start_function): Likewise.
11118
11119 * recog.c (decode_asm_operands): Likewise.
11120
11121 * toplev.c (rest_of_compilation): Likewise.
11122
11123 * tree.h (emit_line_note_after, emit_line_note,
11124 emit_line_note_force): Likewise.
11125
11126 * varasm.c (asm_output_bss, asm_output_aligned_bss,
11127 asm_emit_uninitialised, assemble_start_function,
11128 assemble_variable, const_hash, compare_constant_1,
11129 find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
11130
11131 * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
11132
11133 * alpha/alpha.md (call_vms, call_value_vms): Likewise.
11134
11135 * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
11136
11137 * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
11138
11139 * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
11140 arm_dllimport_name_p): Likewise.
11141
11142 * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
11143 Likewise.
11144
11145 * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
11146
11147 * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11148
11149 * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
11150 arm_mark_dllexport, arm_mark_dllimport,
11151 arm_pe_encode_section_info): Likewise.
11152
11153 * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
11154 ASM_FINISH_DECLARE_OBJECT): Likewise.
11155
11156 * arm/thumb.c (thumb_function_prologue): Likewise.
11157
11158 * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
11159
11160 * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11161
11162 * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
11163
11164 * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
11165
11166 * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
11167
11168 * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11169
11170 * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
11171 ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
11172
11173 * i386/i386-protos.h (asm_output_function_prefix): Likewise.
11174
11175 * i386/i386.c (asm_output_function_prefix): Likewise.
11176
11177 * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
11178
11179 * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11180
11181 * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
11182
11183 * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
11184 ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
11185 ASM_OUTPUT_SECTION_NAME): Likewise.
11186
11187 * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
11188
11189 * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
11190
11191 * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
11192
11193 * m32r/m32r.c (m32r_encode_section_info): Likewise.
11194
11195 * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11196
11197 * mcore/mcore.c (mcore_encode_section_info): Likewise.
11198
11199 * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11200
11201 * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11202
11203 * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11204
11205 * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
11206
11207 * mips/mips.md (movdi, movsi): Likewise.
11208
11209 * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11210
11211 * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11212
11213 * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
11214
11215 * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
11216 ASM_OUTPUT_ASCII): Likewise.
11217
11218 * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
11219 output_mi_thunk, output_toc): Likewise.
11220
11221 * rs6000/rs6000.md (movsi): Likewise.
11222
11223 * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
11224
11225 * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
11226
11227 * v850/v850.c (print_operand, print_operand_address,
11228 v850_encode_data_area): Likewise.
11229
11230 2000-03-07 Clinton Popetz <cpopetz@cygnus.com>
11231
11232 * config/mips/mips.md (zero_extendsidi2): Always force operand
11233 one to memory for mips16.
11234
11235 Mon Mar 6 15:22:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11236
11237 * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
11238 (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
11239 (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
11240 (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
11241 (min_precision): Result is unsigned.
11242 (add_double, neg_double, mul_double): Low word is unsigned.
11243 (lshift_double, rshift_double, lrotate_double): Likewise.
11244 (rrotate_double, div_and_round_double): Likewise.
11245 (tree_floor_log2, compare_tree_int): New functions.
11246 (preserve_rtl_expr_temps): New declaration.
11247 * c-common.c (declare_hidden_char_array): Use compare_tree_int.
11248 (decl_attributes): Use tree_log2 to find alignment.
11249 Check for TREE_INT_CST_HIGH for format args.
11250 (min_precision): Now unsigned.
11251 Use tree_floor_log2.
11252 (truthvalue_conversion): Delete long-disabled code.
11253 * c-decl.c (finish_struct): Clean up tests on field width.
11254 (finish_function): Use compare_tree_int.
11255 * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
11256 * c-typeck.c (comptypes): Use tree_int_cst_equal.
11257 (default_conversion, digest_init): Use compare_tree_int.
11258 (build_binary_op): Use integer_all_onesp and compare_tree_int.
11259 Fix type errors in forming masks.
11260 * calls.c (initialize_argument_information): Use compare_tree_int.
11261 * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
11262 * except.c (expand_eh_region_start_tree): Use compare_tree_int.
11263 * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
11264 (store_field): Use compare_tree_int.
11265 (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
11266 (expand_expr, case ARRAY_REF): Use compare_tree_int.
11267 (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
11268 (do_store_flag): Use compare_tree_int.
11269 * fold-const.c (encode, decode): Low part is always unsigned.
11270 (force_fit_type, add_double, neg_double, mul_double): Likewise.
11271 (lshift_double, rshift_double, lrotate_double): Likewise.
11272 (rrotate_double, div_and_round_double, int_const_binop): Likewise.
11273 (fold_convert): Use compare_tree_int.
11274 (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
11275 (invert_truthvalue, case INTEGER_CST): Likewise.
11276 (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
11277 * mkdeps.c (deps_dummy_targets): Make I unsigned.
11278 * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
11279 (lshift_double, rshift_double, lrotate_double, rrotate_double):
11280 Likewise.
11281 * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
11282 (expand_end_case): Use compare_tree_int.
11283 (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
11284 * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
11285 (layout_decl): Likewise.
11286 (layout_record, layout_union): Make sizes unsigned.
11287 (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
11288 (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
11289 * tree.c (struct type_hash): hashcode is unsigned.
11290 (build_type_attribute_variant, type_hash_list): Likewise.
11291 (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
11292 (attribute_hash_list, build_array_type, build_method_type): Likewise.
11293 (build_complex_type): Likewise.
11294 (real_value_from_int_cst): Remove unneeded casts.
11295 (integer_all_onesp): Add casts.
11296 (tree_floor_log2, compare_tree_int): New functions.
11297 (build_index_type): Use tree_int_cst_sgn.
11298 * varasm.c (assemble_variable): Use compare_tree_int.
11299
11300 2000-03-06 Jason Merrill <jason@casey.cygnus.com>
11301
11302 * cpphash.c (collect_expansion): Also catch ## at start of macro.
11303
11304 * varasm.c (make_decl_rtl): Don't add a number to members of
11305 local classes.
11306 (make_function_rtl): Likewise.
11307
11308 2000-03-06 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
11309
11310 * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
11311 patch from 2000-01-28.
11312
11313 2000-03-06 Clinton Popetz <cpopetz@cygnus.com>
11314
11315 * config/sh/sh.c: (barrier_align): Handle a delay slot that is
11316 filled with an insn from the jump target.
11317
11318 2000-03-07 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11319
11320 * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
11321 (c4x_external_ref): Likewise.
11322 * config/c4x/c4x.c (struct name_list): Likewise.
11323
11324 1999-12-16 Ben Collins <bcollins@debian.org>
11325
11326 * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
11327 argument to genmultilib.
11328 * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
11329 the contents into the multilib.h header.
11330 * gcc.c: Declare multilib_exclusions for the specs file.
11331 (set_multilib_dir): Use it.
11332 (print_multilib_info): Likewise.
11333 * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
11334 to pass to genmultilib.
11335
11336 2000-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11337
11338 * builtins.c (built_in_class_names, built_in_names): Constify a
11339 char*.
11340
11341 * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
11342 int.
11343 (_mcleanup): Ensure value matches format specifier in sprintf.
11344
11345 * cpphash.c (special_symbol): Don't needlessly cast away
11346 const-ness.
11347
11348 * cppinit.c (base_name): Delete unused prototype.
11349
11350 * mkdeps.c (deps_init): Make definition K&R safe.
11351
11352 * tree.h (built_in_class_names, built_in_names): Constify a
11353 char*.
11354
11355 2000-03-06 Jakub Jelinek <jakub@redhat.com>
11356
11357 * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
11358 floating point instructions for epilogue delay.
11359
11360 * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
11361 to gas if it supports .register pseudo.
11362
11363 * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
11364 LONG_DOUBLE_TYPE_SIZE if not defined.
11365 Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
11366 LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
11367 * real.c: Likewise.
11368 * gengenrtl.c: Likewise.
11369 * print-rtl.c: Likewise.
11370 * rtl.c: Likewise.
11371 * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
11372 MASK_LONG_DOUBLE_128.
11373 * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
11374 * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
11375 * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
11376 (SUBTARGET_SWITCHES): Define.
11377 (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
11378 with -mlong-double-128.
11379 (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
11380 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
11381 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
11382 (CC1_SPEC): Include -mlong-double-{64,128} as needed.
11383 * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
11384 (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
11385 with -mlong-double-128.
11386 (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
11387 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
11388 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
11389 * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
11390 TARGET_LONG_DOUBLE_128): Define.
11391 * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
11392 * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
11393 long double on TARGET_ARCH64.
11394
11395 2000-03-06 Mark Mitchell <mark@codesourcery.com>
11396
11397 * function.c (free_temps_for_rtl_expr): Don't free slots
11398 that have been pushed into a higher level.
11399
11400 Revert this patch:
11401 2000-03-05 Mark Mitchell <mark@codesourcery.com>
11402
11403 2000-03-05 Mark Mitchell <mark@codesourcery.com>
11404
11405 * basic-block.h (ALLOCA_REG_SET): Remove.
11406 (INITIALIZE_REG_SET): New macro.
11407 * flow.c (update_life_info): Use it.
11408 (calculate_global_regs_live): Likewise.
11409 (propagate_block): Likewise.
11410 * global.c (build_insn_chain): Likewise.
11411 * haifa-sched.c (schedule_region): Likewise.
11412
11413 2000-03-05 Stephane Carrez <stcarrez@worldnet.fr>
11414
11415 * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
11416 (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
11417 (DWARF_ARANGES_PAD_SIZE): New define.
11418 (output_aranges): Use it to pad the address range header.
11419 (DWARF_ROUND): Fix for non power of 2 rounding.
11420
11421 2000-03-05 Jason Merrill <jason@casey.cygnus.com>
11422
11423 * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
11424
11425 2000-03-05 Mark Mitchell <mark@codesourcery.com>
11426
11427 * tree.def (RTL_EXPR): Update documentation.
11428 * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
11429 * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
11430 * function.c (preserve_rtl_expr_temp): New function.
11431 (preserve_rtl_expr_temps): Likewise.
11432 (preserve_rtl_expr_result): Use it.
11433
11434 Revert this patch:
11435 2000-03-04 Mark Mitchell <mark@codesourcery.com>
11436
11437 2000-03-04 Thomas Schuster <Thomas.Schuster@gmx.net>
11438
11439 * regmove.c (copy_src_to_dest) Do not create src->dest move
11440 for unchanging destination.
11441
11442 2000-03-04 Mark Mitchell <mark@codesourcery.com>
11443
11444 * function.h (struct sequence_stack): Remove rtl_expr.
11445 (struct emit_staus): Likewise.
11446 (seq_rtl_expr): Remove.
11447 * tree.h (free_temps_for_rtl_expr): Don't declare.
11448 (start_sequence_for_rtl_expr): Likewise.
11449 * rtl.h (preserve_rtl_expr_result): Likewise.
11450 * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
11451 (start_sequence_for_rtl_expr): Remove.
11452 (push_topmost_sequence): Don't save sequence_rtl_expr.
11453 (pop_topmost_sequence): Remove comment about not restoring it.
11454 (end_sequence): Don't set seq_rtl_expr.
11455 (init_emit): Don't initialize it.
11456 (mark_sequence_stack): Don't mark it.
11457 (mark_emit_status): Likewise.
11458 * except.c (protect_with_terminate): Use
11459 start_sequence_for_rtl_expr, not start_sequence.
11460 * expr.c (expand_expr, case RTL_EXPR): Don't call
11461 preserve_rtl_expr_result or free_temps_for_rtl_expr.
11462 * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
11463 (preserve_rtl_expr_result): Remove.
11464 (free_temps_for_rtl_expr): Likewise.
11465 (pop_temp_slots): Likewise.
11466 (mark_temp_slot): Don't mark the rtl_expr.
11467 * stmt.c (expand_start_stmt_expr): Use start_sequence, not
11468 start_sequence_for_rtl_expr.
11469
11470 2000-03-04 Zack Weinberg <zack@wolery.cumb.org>
11471
11472 * mkdeps.c, mkdeps.h: New files.
11473 * po/POTFILES.in: Add them.
11474 * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
11475 (cpplib.o, cppinit.o): Depend on mkdeps.h.
11476 (mkdeps.o): New target.
11477
11478 * cppfiles.c: Delete deps_output.
11479 * cppinit.c: Include mkdeps.h. Delete known_suffixes,
11480 OBJECT_SUFFIX, and base_name.
11481 (cpp_cleanup): Use deps_free. Free ihash->name when clearing
11482 the include hash.
11483 (initialize_dependency_output): Use deps_init,
11484 deps_add_target, deps_calc_target, and deps_add_dep. Remove
11485 all the unnecessary string bashing.
11486 (cpp_finish): Use deps_write. Remove an unnecessary nesting
11487 level.
11488 * cpplib.c (do_include): Use deps_add_dep.
11489 * cpplib.h (struct cpp_reader): Replace deps_buffer,
11490 deps_allocated_size, deps_size, deps_column members with
11491 single pointer to a struct deps. Delete prototype of
11492 deps_output.
11493
11494 * cppinit.c: Fix thinko in previous patch.
11495
11496 Sat Mar 4 11:32:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11497
11498 * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
11499 * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
11500 (mode_for_size_tree): New function.
11501 (layout_decl, layout_type): Call it and clean up BLKmode checks.
11502 * tree.h (mode_for_size_tree): New declaration.
11503
11504 * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
11505
11506 2000-03-04 Jason Merrill <jason@casey.cygnus.com>
11507
11508 * stmt.c (is_body_block): Move...
11509 * dwarfout.c, dwarf2out.c: ...from here.
11510 * tree.h: Declare it.
11511 * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
11512 * final.c (final_start_function): Do call remove_unnecessary_notes
11513 when scheduling.
11514
11515 2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
11516
11517 * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
11518
11519 * cpplib.h (_dollar_ok): New macro.
11520 (is_idchar, is_idstart): Use it.
11521 (IStable): Rename to _cpp_IStable. Declare it const if
11522 gcc >=2.7 or C99. Delete all references to FAKE_CONST.
11523 (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
11524 is_space): Update for renamed IStable.
11525
11526 * cppinit.c: Delete all references to FAKE_CONST and CAT
11527 macros. Define init_IStable as empty macro if gcc >=2.7 or
11528 C99. Change TABLE() to ISTABLE and hardcode name of table.
11529 (cpp_start_read): Don't change the IStable based on
11530 dollars_in_ident.
11531
11532 * cpphash.c (unsafe_chars): Add pfile argument. All callers
11533 changed. Handle '$' for char1 correctly.
11534 * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
11535
11536 * cppexp.c (tokentab2): Make const.
11537 (cpp_lex): Make toktab const.
11538 * cppinit.c (include_defaults_array): Make const.
11539 (initialize_standard_includes): Make default_include const.
11540
11541 2000-03-03 Jason Merrill <jason@casey.cygnus.com>
11542
11543 * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
11544 (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
11545 (gen_decl_die): Likewise.
11546 * dwarfout.c (dwarfout_file_scope_decl): Likewise.
11547 (output_decl): Likewise.
11548
11549 * varasm.c (make_function_rtl): If we change the name used in the
11550 rtl, update DECL_ASSEMBLER_NAME accordingly.
11551 (make_decl_rtl): Likewise.
11552
11553 * toplev.c (rest_of_compilation): Tweak formatting.
11554
11555 * toplev.c (rest_of_compilation): find_loop_tree_blocks before
11556 remove_unnecessary_notes.
11557 (debug_ignore_block): New fn.
11558 * toplev.h: Declare it.
11559 * emit-rtl.c (remove_unncessary_notes): Call it.
11560 * dwarf2out.c (dwarf2out_ignore_block): New fn.
11561 * dwarf2out.h: Declare it.
11562 * final.c (final_start_function): Don't call remove_unnecessary_notes
11563 if we did insn scheduling.
11564
11565 2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
11566
11567 * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
11568 * cpplib.h: Delete SET_CPP_PEDANTIC.
11569
11570 Fri Mar 3 14:56:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11571
11572 * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
11573 result is a RECORD_TYPE.
11574
11575 2000-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
11576
11577 * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
11578
11579 2000-03-03 Richard Henderson <rth@cygnus.com>
11580
11581 * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
11582 addition over compliments over shifts.
11583
11584 Fri Mar 3 12:49:28 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
11585
11586 * reload1.c (reload_combine_note_use): Handle return register USEs.
11587 REG case: Handle multi-hard-register hard regs.
11588
11589 Fri Mar 3 07:38:34 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11590
11591 * md.texi: Document use of '*' in insn pattern name.
11592
11593 2000-03-03 Jason Merrill <jason@casey.cygnus.com>
11594
11595 * calls.c (special_function_p): operator new may not be malloc-like.
11596
11597 * gcse.c (dump_hash_table): Really fix error in last change.
11598
11599 2000-03-02 Denis Chertykov <denisc@overta.ru>
11600
11601 * avr.c (print_operand): Use print_operand_address instead of
11602 output_addr_const.
11603 * avr/libgcc.S: Cleanup code.
11604
11605 2000-03-02 Richard Henderson <rth@cygnus.com>
11606
11607 * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
11608
11609 2000-03-02 Mark Mitchell <mark@codesourcery.com>
11610
11611 * tree.h (TYPE_ALIGN_UNIT): New macro.
11612
11613 2000-03-02 Clinton Popetz <cpopetz@cygnus.com>
11614
11615 * i386.c: (constant_call_address_operand): Reject CONST_INT.
11616
11617 2000-03-02 Jason Merrill <jason@casey.cygnus.com>
11618
11619 * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
11620 for the buffer.
11621 (SET_CPP_PEDANTIC): New macro.
11622 * cpplib.c (do_include): Don't bother checking system_header_p.
11623 (do_warning, do_ident, do_assert, do_unassert): Likewise.
11624 * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
11625
11626 * function.h (struct expr_status): Add x_arg_space_so_far.
11627 (arg_space_so_far): New macro.
11628 * expr.c (init_expr): Initialize it.
11629 * calls.c (emit_call_1): Reset it.
11630 (compute_argument_block_size, expand_call): Use it.
11631 (expand_call, store_one_arg): Increment it.
11632
11633 Thu Mar 2 17:27:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11634
11635 * varasm.c (output_constant): Strip off a CONVERT_EXPR to
11636 a UNION_TYPE.
11637
11638 2000-03-02 Zack Weinberg <zack@wolery.cumb.org>
11639
11640 * cppfiles.c (cpp_read_file): New function.
11641
11642 * cpphash.c (collect_expansion): Make sure to reset last_token
11643 to NORM when we hit a string. Handle trailing whitespace
11644 properly when the expansion is empty.
11645 (create_definition): Disable line commands while parsing the
11646 directive line.
11647 (dump_definition): If pfile->lineno == 0, output a line
11648 command ahead of the dump, and add a trailing newline.
11649
11650 * cppinit.c (append_include_chain): Add fifth argument, which
11651 indicates whether or not system headers are C++ aware.
11652 (initialize_standard_includes): New function,
11653 broken out of read_and_prescan. Pass 'cxx_aware' value from
11654 the include_defaults_array on to append_include_chain.
11655 (dump_special_to_buffer): Const-ify char array.
11656 (builtin_array): Don't dump __BASE_FILE__.
11657 (cpp_start_read): Use cpp_read_file. Reorder code for
11658 clarity. Don't output line commands here for -D/-A/-U
11659 switches. Don't call deps_output for files included with
11660 -include or -imacros.
11661
11662 * cpplib.c (do_define): Don't pay any attention to the second
11663 argument.
11664 (cpp_expand_to_buffer): Disable line commands while scanning.
11665 (output_line_command): Work in the file buffer.
11666 * cpplib.h: Remove no_record_file flag from struct cpp_reader.
11667 Fix formatting of comments. Prototype cpp_read_file.
11668
11669 Thu Mar 2 13:29:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11670
11671 * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
11672 reference the language-equivalent of sizetype.
11673 * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
11674 * fold-const.c (size_binop, size_diffop): Put back checks.
11675 * gcse.c (dump_hash_table): Fix minor error in last change.
11676 * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
11677 Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
11678 all sizetypes.
11679
11680 Thu Mar 2 12:48:45 MET 2000 Jan Hubicka <jh@suse.cz>
11681
11682 * calls.c (expand_call) Do not attempt to combine stack adjustments
11683 with inhibit_defer_pop set.
11684
11685 2000-03-01 Mark Mitchell <mark@codesourcery.com>
11686
11687 * stor-layout.c (layout_decl): Allow front-ends to explicitly set
11688 the DECL_SIZE for a FIELD_DECL.
11689
11690 2000-03-01 Bruce Korb <bkorb@gnu.org>
11691
11692 * fixinc/inclhack.tpl: remove unused symlinks
11693 * fixinc/README: GCC Maintainer info
11694 * fixinc/inclhack.sh: regen
11695 * fixinc/fixincl.sh: regen
11696
11697 2000-03-01 Zack Weinberg <zack@wolery.cumb.org>
11698
11699 * cpphash.c (collect_expansion): Trim trailing white space
11700 from macro definitions, but don't go past the last insertion
11701 point.
11702
11703 Wed Mar 1 12:14:31 MET 2000 Jan Hubicka <jh@suse.cz>
11704
11705 * i386.md (mulqi3): New pattern.
11706
11707 2000-02-29 Zack Weinberg <zack@wolery.cumb.org>
11708
11709 * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
11710 token types.
11711 (struct cpp_reader): Add parsing_if_directive and
11712 parsing_define_directive flags.
11713 (struct cpp_options): Remove output_conditionals flag.
11714 (check_macro_name): Delete prototype.
11715
11716 * cpphash.h (struct macrodef): Delete.
11717 (struct reflist): Separate from struct definition.
11718 (struct definition): Remove unused fields. Add column number.
11719 (create_definition): Returns a DEFINITION *. Takes a
11720 cpp_reader * and an int.
11721
11722 * cpphash.c (SKIP_WHITE_SPACE): Delete.
11723 (PEEKC): Copy defn from cpplib.c.
11724 (rest_extension, REST_EXTENSION_LENGTH): Delete.
11725 (struct arg): New.
11726 (struct arglist): Simplify.
11727 (collect_expansion): Rewrite. Get tokens by calling
11728 cpp_get_token. Add more error checking.
11729 (collect_formal_parameters): New function, broken out of
11730 create_definition and reworked to use get_directive_token.
11731 (create_definition): All real work is now in collect_expansion
11732 and collect_formal_parameters. do_define handles finding the
11733 macro name. Return a DEFINITION, not a MACRODEF.
11734 (macroexpand): Replace bcopy with memcpy throughout. Replace
11735 character-at-a-time copy loop with memcpy and pointer increments.
11736 (compare-defs): d1->argnames / d2->argnames might be null.
11737
11738 * cpplib.c (copy_rest_of_line): Delete function.
11739 (skip_rest_of_line): Do all the work ourselves.
11740 (skip_string): New function.
11741 (parse_string): Use skip_string.
11742 (get_macro_name): New function.
11743 (check_macro_name): Delete.
11744 (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
11745 (cpp_skip_hspace): Use CPP_BUMP_LINE.
11746 (handle_directive): ICE if we're called on a macro buffer.
11747 (do_define): Determine macro name and type (funlike/objlike)
11748 here. Expunge all uses of MACRODEF.
11749 (cpp_push_buffer): Set line_base to NULL.
11750 (do_undef, read_line_number): Don't worry about getting a POP token.
11751 (eval_if_expression): Set/reset parsing_if_directive around
11752 cpp_parse_expr. Don't clear only_seen_white.
11753 (skip_if_group): Remove output_conditionals logic. Use
11754 skip_rest_of_line.
11755 (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
11756 tokens under appropriate conditions.
11757 (cpp_unassert): Call do_unassert not do_assert. Oops.
11758
11759 * cppexp.c (parse_defined): New function, break out of
11760 cpp_lex.
11761 (cpp_lex): We now get CPP_ASSERTION tokens and can check them
11762 ourselves, with cpp_defined.
11763 * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
11764
11765 * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
11766 * gcc.dg/strpaste-2.c: New.
11767
11768 2000-02-29 Mark Mitchell <mark@codesourcery.com>
11769
11770 * fold-const.c (size_binop): Don't asert inputs are the same and
11771 have TYPE_IS_SIZETYPE set.
11772 (size_diffop): Likewise.
11773
11774 2000-02-29 Jason Merrill <jason@casey.cygnus.com>
11775
11776 * dwarfout.c (output_block): Output abstract blocks even if they
11777 don't have TREE_ASM_WRITTEN set.
11778
11779 * calls.c (emit_library_call): Check for null REG.
11780
11781 2000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de>
11782
11783 * c-decl.c (current_function_decl): Move to toplev.c.
11784 (init_decl_processing): Don't add current_function_decl as a ggc
11785 root here.
11786 * dbxout.c (dbxout_symbol): Change return type to int.
11787 (dbxout_symbol_location, dbxout_syms): Likewise.
11788 (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
11789 any locals. Use current_function_func_begin_label if set.
11790 * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
11791 * dwarf2out.c (dwarf2out_begin_prologue): Set
11792 current_function_func_begin_label.
11793 * final.c (final_start_function): Reset it.
11794 * toplev.c (current_function_decl): Define it here.
11795 (current_function_func_begin_label): New variable.
11796 (main): Add both as ggc roots.
11797 * tree.h (current_function_func_begin_label): Declare.
11798
11799 Tue Feb 29 14:07:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11800
11801 * gcse.c: Cleanups throughout: mostly white-space, but also
11802 some minor rearrangement of code.
11803
11804 Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com)
11805
11806 * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
11807 returns a PARALLEL. Use emit_group_load and use_group_regs
11808 as needed.
11809 (emit_library_call_value): Similarly.
11810
11811 * pa/t-pa: Use quadlib.c instead of quadlib.asm.
11812 * pa/quadlib.asm: Remove.
11813 * pa/quadlib.c: New file.
11814
11815 * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
11816 * configure: Rebuilt.
11817
11818 2000-02-29 Philip Blundell <pb@futuretv.com>
11819
11820 * config/arm/conix-elf.h: New file.
11821 * configure.in (arm*-*-conix*): New configuration.
11822 * configure: Regenerate.
11823
11824 2000-02-28 Jason Merrill <jason@casey.cygnus.com>
11825
11826 * dwarf2out.c (gen_block_die): Output abstract blocks even if they
11827 don't have TREE_ASM_WRITTEN set.
11828
11829 Mon Feb 28 21:07:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11830
11831 * Eliminate DECL_FIELD_SIZE.
11832 * builtins.c (built_in_class_names, built_in_names): New variables.
11833 * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
11834 * expr.c (expand_expr, case COMPONENT_REF): Get field size from
11835 DECL_SIZE, not DECL_FIELD_SIZE.
11836 * print-tree.c (print_node): Remove code that prints extra blank
11837 lines in some cases.
11838 Properly handle inline and builtin function cases.
11839 * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
11840 * tree.h (built_in_class_named, built_in_names): New declarations.
11841 (union tree_decl): Rename internal unions to u1 and u2 and change
11842 some of their components.
11843 Add new field built_in_class.
11844 (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
11845 Reflect above changes.
11846 (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
11847 (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
11848 * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
11849 (encode_field_decl): Likewise; also remove obsolete test for bitfield.
11850
11851 2000-02-28 Dmitri Makarov <dim@windriver.com>
11852
11853 * extend.texi: Document ARM's support for long/short calls.
11854
11855 * invoke.texi: Document ARM's -mlong-calls command line switch.
11856
11857 * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
11858 (arm_encode_call_attribute): Add prototype.
11859 (arm_set_default_type_attribute): Add prototype.
11860 (arm_strip_name_encoding): Add prototype.
11861
11862 * config/arm/arm.c (arm_init_cumulative_args): replace
11863 initialisation og 'long_calls' field with initialisation of
11864 'call_cookie' field.
11865 (enum arm_pragma_enum): New enum.
11866 (arm_pragma_long_calls): New static variable.
11867 (arm_process_pragma): Also process "#pragma long_calls_off".
11868 (arm_valid_type_attribute_p): Accept short_call attribute.
11869 (arm_comp_type_attributes): Check long/short call attributes.
11870 (arm_encode_call_attribute): New function: Encode long_call
11871 or short_call attribute in function name.
11872 (arm_set_default_type_attributes): New function: Assign
11873 default attributes to newly defined type.
11874 (current_file_function_operand): New function: Return true if
11875 the symbol is a function which has already been compiled.
11876 (arm_is_longcall_p): New function: Return true if the
11877 indicated function should be called via a long call.
11878 (arm_get_strip_length): New function. Returns number of
11879 prefix characters to be stripped from a function's name.
11880 (arm_strip_name_encoding): New function. Strip prefix characters
11881 from a function's name.
11882
11883 * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
11884 with 'call_cookie'.
11885 (SHORT_CALL_FAG_CHAR): Define.
11886 (LONG_CALL_FAG_CHAR): Define.
11887 (ENCODED_SHORT_CALL_ATTR_P): Define.
11888 (ENCODED_LONG_CALL_ATTR_P): Define.
11889 (ARM_NAME_ENCODING_LENGTHS): Define.
11890 (STRIP_NAME_ENCODING): Define.
11891 (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
11892 (ARM_ENCODE_CALL_TYPE): Define.
11893 (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
11894 (ARM_DECLARE_FUNCTION_SIZE): Define.
11895 (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
11896
11897 * config/arm/arm.md (call): Call arm_is_longcall_p to decide
11898 if a long call is needed.
11899 (call_value): Ditto.
11900 (call_symbol): Ditto.
11901
11902 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
11903 ARM_DECLARE_FUNCTION_SIZE.
11904
11905 * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
11906 (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
11907 (ARM_STRIP_NAME_ENCODING): Undefine.
11908 (STRIP_NAME_ENCODING): Undefine.
11909 (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
11910 (ASM_DECLARE_FUNCTION_NAME): Ditto.
11911 (ASM_OUTPUT_COMMON): Ditto.
11912 (ASM_DECLARE_OBJECT_NAME): Ditto.
11913
11914 * config/arm/pe.c (arm_dllexport_name_p): Check for
11915 ARM_PE_FLAG_CHAR.
11916 (arm_dllimport_name_p): Ditto.
11917 (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
11918 (arm_mark_dllimport): Ditto.
11919
11920 Mon Feb 28 22:11:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
11921
11922 * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
11923
11924 2000-02-28 Mark Mitchell <mark@codesourcery.com>
11925
11926 * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
11927
11928 2000-02-28 Zack Weinberg <zack@wolery.cumb.org>
11929
11930 * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
11931 * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
11932 NO_BUILTIN_WCHAR_TYPE is not defined.
11933 (CPP_WCHAR_TYPE): Delete.
11934 * cccp.c (main): Don't change wchar_type if cplusplus.
11935 (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
11936
11937 2000-02-28 Nick Clifton <nickc@cygnus.com>
11938
11939 * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
11940
11941 Mon Feb 28 14:21:15 2000 Catherine Moore <clm@cygnus.com>
11942
11943 * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
11944 (ASM_WEAKEN_LABEL): Define.
11945
11946 Mon Feb 28 13:07:19 MET 2000 Jan Hubicka <jh@suse.cz>
11947
11948 * expr.c (store_constructor): Do not emit USE.
11949 * rtl.h (stupid_life_analysis): Remove.
11950
11951 Mon Feb 28 07:03:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11952
11953 * function.c (number_blocks): Reset next_block_index based on
11954 what debugging format is used, not what is defined.
11955
11956 * lcm.c: Minor reformatting throughout.
11957 (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
11958
11959 * toplev.c (rest_of_compilation): Account for time in
11960 optimize_mode_switching.
11961
11962 * jump.c (jump_optimize_1): Don't call delete_barrier_successors
11963 if only marking labels.
11964
11965 Mon Feb 28 12:53:57 MET 2000 Jan Hubicka <jh@suse.cz>
11966
11967 * calls.c (expand_call): Attempt to combine stack adjustments with
11968 pending stack adjustments.
11969
11970 Mon Feb 28 11:34:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
11971
11972 * loop.c (reg_in_basic_block_p): Don't abort when falling through
11973 to the end of the function.
11974
11975 2000-02-27 Mark Mitchell <mark@codesourcery.com>
11976
11977 * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
11978 blocks.
11979 * final.c (next_block_index): Remove.
11980 (max_block_depth): Likewise.
11981 (pending_blocks): Likewise.
11982 (init_final): Don't initialize them.
11983 (final_start_function): Don't set next_block_index. Set up
11984 BLOCK_NUMBER.
11985 (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
11986 * function.h (number_blocks): New function.
11987 * function.c (get_block_vector): New function.
11988 (identify_blocks): Use it.
11989 (reorder_blocks): Set NOTE_BLOCK.
11990 (number_blocks): New function.
11991 * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
11992 * tree.h (BLOCK_NUMBER): New macro.
11993 (tree_block): Add block_num field.
11994 * dbxout.c (next_block_number): Remove.
11995 (dbxout_init): Don't set it.
11996 (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
11997 set. Use BLOCK_NUMBER, rather than next_block_num, to determine
11998 block numbers.
11999 * toplev.c (rest_of_compilation): Always call
12000 find_loop_tree_blocks. Fix indentation.
12001 * dwarf2out.c (next_block_number): Remove.
12002 (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
12003 to determine block numbers.
12004 (gen_inlined_subroutine_die): Likewise.
12005 (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
12006 (decls_for_scope): Don't increment next_block_number.
12007 * dwarfout.c (next_block_number): Remove.
12008 (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
12009 to determine block numbers.
12010 (output_inlined_subroutine_die): Likewise.
12011 (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
12012 (output_decls_for_scope): Don't increment next_block_number.
12013 * sdbout.c (next_block_number): Remove.
12014 (sdbout_block): Use BLOCK_NUMBER.
12015 (sdbout_begin_block): Simplify.
12016 * xcoffout.c (next_block_number): Remove.
12017 (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
12018 (xcoffout_begin_block): Don't set next_block_number.
12019 (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
12020 next_block_number.
12021
12022 Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12023
12024 * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
12025 (expand_builtin_strcpy): Pass correct type to size_binop.
12026 (expand_builtin_strcmp): Likewise.
12027 Clean up conditional structure.
12028 * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
12029 (complete_array_type): Don't use size_binop for MAXINDEX.
12030 * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
12031 (c_sizeof_nowarn, c_size_in_bytes): Likewise.
12032 (c_alignof): Use size_one_node.
12033 (build_unary_op): Pass arg of proper type to size_binop.
12034 (really_start_incremental_init, push_init_level): Use sizetype for
12035 constructor{,_bit,_unfilled}_index.
12036 (pop_init_label, output_init_element): Likewise.
12037 (output_pending_init_elements, process_init_element): Likewise.
12038 * calls.c (compute_argument_block_size): Field VAR is ssizetype.
12039 * expr.c (store_expr): Use size_int.
12040 (store_constructor): Use proper types for size_binop args.
12041 (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
12042 (expand_expr_unaligned): Likewise.
12043 (string_contant): Return object of sizetype.
12044 * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
12045 (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
12046 (ARGS_SIZE_TREE): Pass proper types to size_binop.
12047 * fold-const.c (int_const_binop): Refine when size_int is called.
12048 (fold_convert): Likewise.
12049 (size_int_wide): Rework to take KIND as arg, only take low order
12050 bits, handle new sizetype_tab datatype, and chain entries in
12051 size_table.
12052 (size_int_type_wide): New function.
12053 (size_binop): Validate types of arguments.
12054 (ssize_binop): Deleted.
12055 (size_diffop): New function.
12056 (extract_muldiv): Only fold division into multiplication for sizetypes.
12057 * function.c (assign_parms): Use size_diffop and make sure
12058 VAR field is of ssizetype; also pass proper type to size_binop.
12059 (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
12060 (round_down): Deleted from here.
12061 * store-layout.c (sizetype_tab): Now an array.
12062 (sizetype_set, early_root_list): New variables.
12063 (variable_size): Use size_one_node.
12064 (round_up): Pass proper type to size_binop.
12065 (round_down): Moved to here and corrected as above.
12066 (layout_record): Pass proper arg types to size_binop.
12067 (layout_type): Likewise.
12068 If sizetype_set is zero, record the type just laid out.
12069 (make_unsigned_type): Don't call set_sizetype;
12070 (make_signed_type): Likewise; also, call fixup_signed_type.
12071 (initialize_sizetypes): New function.
12072 (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
12073 set name of bitsizetype to "bit_size_type".
12074 Fix up type of sizes of all types made before call.
12075 * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
12076 * tree.c (fix_sizetype): Deleted.
12077 (build_common_tree_nodes): Call initialize_sizetypes.
12078 (build_common_tree_nodes_2): Don't call fix_sizetype.
12079 * tree.h (TYPE_IS_SIZETYPE): New macro.
12080 (initialize_sizetype): New declaration.
12081 (enum size_type_kind): New type.
12082 (struct sizetype_tab): Deleted.
12083 (sizetype_tab): Now array; adjust sizetype macros.
12084 (size_diffop, size_int_type_wide): New functions.
12085 (size_int_wide): Change number of args and type; access macros changed.
12086 (ssize_int, sbitsize_int): New macros.
12087 * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
12088 (ROUND_TYPE_SIZE_UNIT): New macro.
12089
12090 2000-02-27 Zack Weinberg <zack@wolery.cumb.org>
12091
12092 * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
12093
12094 Sun Feb 27 07:44:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12095
12096 * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
12097 Mark as possibly unused.
12098
12099 * cse.c (cse_insn): Delete dead code involving tablejump.
12100 Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
12101
12102 * Makefile.in (libcpp.a): Start by deleting it.
12103
12104 2000-02-27 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12105
12106 * cpplib.h (enum file_change_code): Added rename_file.
12107 * cpplib.c (do_line): If a filename is given, set file_change to
12108 rename_file.
12109 (output_line_command): If file_change is rename_file, always
12110 output a # directive with the file name.
12111
12112 * cpplib.c (do_pragma): Accept #pragma without consecutive token.
12113
12114 2000-02-26 Mark Mitchell <mark@codesourcery.com>
12115
12116 * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
12117 when copying a PARM_DECL or RESULT_DECL.
12118
12119 2000-02-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12120
12121 * fix-header.c (recognized_function): Also fix prototypes for
12122 functions taking "void".
12123
12124 2000-02-26 Geoff Keating <geoffk@cygnus.com>
12125
12126 * reload1.c (do_output_reload): Check reg_reloaded_valid before
12127 looking at reg_reloaded_contents.
12128
12129 2000-02-26 Zack Weinberg <zack@wolery.cumb.org>
12130
12131 * Makefile.in (STMP_FIXINC): New toggle.
12132 (LIBGCC2_DEPS): Delete all references.
12133 (stmp-headers): Delete target. All references either deleted
12134 or changed to stmp-int-headers.
12135 (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
12136 (LIBCPP_OBJS): Take out cppalloc.o.
12137 (cppalloc.o): Delete target.
12138 (stmp-int-hdrs): Depend on $(STMP_FIXINC).
12139 (gen-protos, fix-header): Link with libiberty.a.
12140 * build-make: Don't change FIXINCLUDES. Override STMP_FIXINC
12141 to empty.
12142
12143 * configure.in: Remove refs to strerror.
12144 * acconfig.h: Take out NEED_DECLARATION_STRERROR.
12145 * system.h: Take out strerror stanza.
12146
12147 * cpperror.c (my_strerror): Delete function.
12148 (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
12149 * cppmain.c (main): Call xmalloc_set_program_name first thing.
12150 * cppalloc.c: Delete file.
12151 * gen-protos.c: Don't provide xrealloc.
12152
12153 * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
12154 xstrerror throughout.
12155
12156 2000-02-26 Bruce Korb <bkorb@gnu.org>
12157
12158 * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
12159 match for DOS headers, too.
12160 * fixinc/inclhack.sh,fixincl.x: Regenerate.
12161
12162 2000-02-26 Geoff Keating <geoffk@cygnus.com>
12163
12164 * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default
12165 is right for most ELF targets.
12166 * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
12167 Let the default file use %U properly.
12168 * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the
12169 default.
12170
12171 * config/fp-bit.c (pack_d): Properly handle rounding of denormal
12172 numbers.
12173
12174 Sat Feb 26 09:39:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12175
12176 * toplev.c (documented_lang_options): Correct spelling error.
12177 (decode_d_option, decode_f_option, main): Likewise.
12178
12179 * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
12180
12181 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
12182 to tell assembler it is permitted to expand large constants.
12183
12184 2000-02-25 Mumit Khan <khan@xraylith.wisc.edu>
12185
12186 * protoize.c: (AUX_INFO_SUFFIX): New macro.
12187 (aux_info_suffix): Use.
12188 (SAVE_SUFFIX): New macro.
12189 (save_suffix): Use.
12190 (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
12191 (gen_aux_info_file): Use aux_info_suffix instead of ".X".
12192 (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
12193
12194 * invoke.texi (Running Protoize): Update documentation.
12195
12196 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
12197
12198 * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
12199
12200 2000-02-25 John Wehle (john@feith.com)
12201
12202 * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
12203
12204 2000-02-25 Anthony Green <green@cygnus.com>
12205
12206 * toplev.c (rest_of_compilation): Rebuild jump labels if
12207 combine_instructions has created a new direct jump.
12208 * combine.c (try_combine): Add new_direct_jump_p argument. Set it
12209 when appropriate.
12210 (combine_instructions): Call try_combine with new argument.
12211 Return non-null value when new direct jump instruction is created.
12212 * rtl.h: combine_instructions returns an int.
12213
12214 Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com)
12215
12216 * cse.c (cse_insn): Replace the PATTERN of the insn with an new
12217 jump when changing a computed jump into a jump to a known
12218 target.
12219
12220 Fri Feb 25 19:22:44 2000 Graham Stott <grahams@rcp.co.uk>
12221
12222 * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
12223 to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
12224
12225 * i386.md (define_expand "clrstrsi"): Fix typo.
12226
12227 Fri Feb 25 18:49:39 2000 "K. Richard Pixley" <rich@microunity.com>
12228
12229 * rtl.texi: Fix typo.
12230
12231 Fri Feb 25 20:02:35 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12232
12233 * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
12234 UNITS_PER_WORD. Change caller initial_elimination_offset.
12235 (rounded_frame_size): Take into account that argument pushed has
12236 changed. Fix TARGET_ALIGN_DOUBLE problem.
12237
12238 2000-02-25 Geoff Keating <geoffk@cygnus.com>
12239
12240 * haifa-sched.c (schedule_block): Explain the real reason
12241 we delete REG_SAVE_NOTEs on the first insn of a block.
12242 Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
12243
12244 2000-02-24 Mark Mitchell <mark@codesourcery.com>
12245
12246 * input.h (push_srcloc): New function.
12247 (pop_srcloc): Likewise.
12248 * toplev.c (push_srcloc): Define it.
12249 (pop_srcloc): Likewise.
12250
12251 2000-02-24 Richard Henderson <rth@cygnus.com>
12252
12253 * flow.c (life_analysis): When collecting reg info, clear
12254 regs_ever_live.
12255
12256 Thu Feb 24 22:06:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12257
12258 Fix bug exposed by reload.c no longer rounding the frame
12259 size to BIGGEST_ALIGNMENT:
12260 * sh.c (rounded_frame_size): New function.
12261 (sh_expand_prologue, sh_expand_epilogue): Use it.
12262 (initial_elimination_offset): Likewise.
12263
12264 Thu Feb 24 20:04:11 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12265
12266 Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
12267 * sh-protos.h (sh_need_epilogue): Declare.
12268 * sh.c (sh_need_epilogue_known): New static variable.
12269 (sh_need_epilogue): New function.
12270 (function_epilogue): Clear need_epilogue_known.
12271 * sh.md (return): Split into expander / insn pattern.
12272 Make the expander conditional on ! sh_need_epilogue ().
12273
12274 2000-02-24 Nathan Sidwell <nathan@codesourcery.com>
12275
12276 * machmode.h (get_mode_alignment): Declare.
12277 (GET_MODE_ALIGNMENT): Call it.
12278 * stor-layout.c (get_mode_alignment): New function. Make
12279 sure alignment is always power of 2.
12280
12281 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
12282
12283 * i386.h: Remove useless definition of "I386" and misleading
12284 comment above it.
12285
12286 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
12287
12288 * tree.h (TREE_SET_PERMANENT): New macro. Document conditions
12289 under which TREE_PERMANENT will be set.
12290 * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
12291 build1): Use TREE_SET_PERMANENT.
12292 * print-tree.c (print_node): Don't report value of
12293 TREE_PERMANENT if ggc_p is true.
12294
12295 * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
12296 decide whether to give a type a new alias set.
12297 * objc/objc-act.c (build_objc_string_object): Never copy the string.
12298 * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
12299 of value of 'obstack'.
12300
12301
12302 2000-02-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12303
12304 * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
12305
12306 2000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12307
12308 * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
12309 * cpplib.c (cpp_get_token): Produce them.
12310 * cppexp.c (cpp_lex): Handle them.
12311
12312 2000-02-23 Nick Clifton <nickc@cygnus.com>
12313
12314 * config/arm/arm.c (arm_comp_type_attributes): Simply and
12315 comment tests on type attributes.
12316
12317 Wed Feb 23 16:42:21 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12318
12319 * final.c (shorten_branches): Make value passed to LOOP_ALIGN
12320 conform to documentation.
12321 * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
12322 to check for special cases.
12323 * sh-protos.h (sh_loop_align): Declare.
12324 * sh.c (sh_loop_align): Define.
12325
12326 2000-02-22 Andrew Haley <aph@cygnus.com>
12327
12328 * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
12329 (SIZE_TYPE): Is 32 bits when using -mgp32.
12330 (PTRDIFF_TYPE): Ditto.
12331
12332 Wed Feb 23 07:26:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12333
12334 * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
12335
12336 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
12337
12338 * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
12339 BIGGEST_FIELD_ALIGNMENT a constant.
12340
12341 2000-02-21 Jason Merrill <jason@casey.cygnus.com>
12342
12343 * dwarf2out.c (output_line_info): Put the marker for the end of
12344 the line number info at the actual end.
12345 (gen_struct_or_union_type_die): Use decl_function_context
12346 to check for local classes.
12347 * dwarfout.c (output_type): Likewise.
12348
12349 Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com)
12350
12351 * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
12352 for arguments with a mode, but no type.
12353 (FUNCTION_ARG_CALLEE_COPIES): Similarly.
12354 * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
12355 * pa/long_double.h: New file.
12356 * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
12357 both have 128bit wide long doubles.
12358 * configure: Rebuilt.
12359
12360 2000-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12361
12362 * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
12363
12364 * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
12365 fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
12366 (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
12367
12368 * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
12369
12370 * integrate.c (compare_blocks, find_block): Likewise.
12371
12372 * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
12373
12374 * rtl.h (set_file_and_line_for_stmt): Constify a char*.
12375
12376 * stmt.c (stmt_status, set_file_and_line_for_stmt,
12377 expand_asm_operands): Likewise.
12378
12379 Mon Feb 21 17:06:27 2000 Jason Eckhardt <jle@cygnus.com>
12380
12381 * predict.c (estimate_probability): Added the pointer heuristic to
12382 the collection of static branch predictors.
12383
12384 2000-02-21 Catherine Moore <clm@cygnus.com>
12385
12386 * config/mips/mips.h (ASM_SPEC): Add -mfix700.
12387 * invoke.texi (-mfix7000): Document.
12388
12389 2000-02-21 Gabriel Dos Reis <gdr@codesourcery.com>
12390
12391 * diagnostic.c (init_output_buffer): Make it possible to output at
12392 least 32 characters if we're given a too long prefix.
12393
12394 2000-02-20 Mark Mitchell <mark@codesourcery.com>
12395
12396 * varasm.c (initializer_constant_valid_p): Call
12397 lang_expand_constant to simplify the constant.
12398
12399 2000-02-20 Bruce Korb <bkorb@gnu.org>
12400
12401 * fixinc/inclhack.def(stdio_va_list):
12402 typedef needs to be disabled.
12403 * fixinc/inclhack.sh: regen
12404 * fixinc/fixincl.x: regen
12405
12406 2000-02-20 Geoff Keating <geoffk@cygnus.com>
12407
12408 * print-rtl.c (print_rtx): Don't print addresses when
12409 flag_dump_unnumbered.
12410
12411 2000-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12412
12413 * sparc.c (sparc_output_scratch_registers): Mark parameter with
12414 ATTRIBUTE_UNUSED.
12415 (sparc_va_arg, sparc_flat_output_function_prologue,
12416 sparc_flat_output_function_epilogue): Cast value to unsigned in
12417 comparison.
12418 (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
12419
12420 * sparc.md: Add default case in switch.
12421
12422 2000-02-19 Richard Henderson <rth@cygnus.com>
12423
12424 * c-typeck.c (add_pending_init): Don't abort for multiple
12425 fields at the same offset.
12426 (pending_init_member): Test the correct member.
12427
12428 2000-02-19 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12429
12430 * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
12431 instead of SImode.
12432 (start_catch_handler) : Same.
12433
12434 2000-02-19 Brad Lucier (lucier@math.purdue.edu)
12435
12436 * Makefile.in: Have flow.o depend on $(EXPR_H)
12437
12438 Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12439
12440 * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
12441 * c-decl.c (duplicate_decls, finish_enum): Likewise.
12442 (finish_decl): Remove -Wlarger-than code from here.
12443 * flags.h (id_clash_len): Now int.
12444 (larger_than_size): Now HOST_WIDE_INT.
12445 * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
12446 Clean up checking to see if in table.
12447 (make_bit_field_ref): Remove extra parm to bitsize_int.
12448 * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
12449 * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
12450 * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
12451 and for computing size of decl.
12452 * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
12453 Move -Wlarger-than code to here.
12454 (layout_record): Remove extra arg to bitsize_int.
12455 Set TYPE_BINFO_SIZE_UNIT.
12456 (layout_union): Remove extra arg to bitsize_int.
12457 Use proper type for size of QUAL_UNION.
12458 (layout_type): Remove extra arg to bitsize_int.
12459 * toplev.c (id_clash_len): Now int.
12460 (larger_than_size): Now HOST_WIDE_INT.
12461 (decode_W_option): Clean up id-clash and larger-than- cases.
12462 * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
12463 (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
12464 * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
12465 (struct tree_decl): New field size_unit.
12466 (size_int_wide): No HIGH operand; NUMBER is now signed.
12467 (size_int_2): Deleted.
12468 (size_int, bitsize_int): Don't use it and rework args.
12469 * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
12470
12471 Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com)
12472
12473 * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
12474
12475 2000-02-18 Geoff Keating <geoffk@cygnus.com>
12476
12477 * invoke.texi (Warning Options): Add an explanation of why
12478 you might want the -Wfloat-equal flag.
12479
12480 Fri Feb 18 20:08:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12481
12482 * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
12483 * cppinit.c (new_pending_define): Add cast to avoid warning.
12484 * expmed.c (extract_bit_field): Likewise.
12485 * flow.c (enum reorder_skip_type): New type.
12486 (skip_insns_between_blcok): New it.
12487 Rework to avoid warning about possibly undefined variable.
12488 * function.c (assign_parms): Make thisparm_boundary unsigned.
12489 * genrecog.c (write_switch): Cast XWINT result to int.
12490 * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
12491 * mips-tfile.c (init_file): Make two versions of FDR intializer:
12492 one for MIPS and one for Alpha.
12493 (get_tag, copy_object): Add casts to avoid warnings.
12494 * optabs.c (init_one_libfunc): Cast NAME to (char *).
12495 * reload.c (find_reloads): Make TYPE enum reload_type.
12496 * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
12497 * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
12498 * varasm.c (compare_constant_1): Add cast to avoid warning.
12499 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
12500 to (char *).
12501 (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
12502 Cast switch operand of size to int.
12503 (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
12504 * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
12505 in unhandled case.
12506
12507 2000-02-18 Nick Clifton <nickc@cygnus.com>
12508
12509 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
12510 anything for an alignment of zero.
12511
12512 * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
12513 anything for an alignment of zero.
12514
12515 2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de>
12516
12517 * gcc.texi (Bug Reporting): Refer to bugs.html.
12518 (Bug Lists): Likewise.
12519 * system.h (GCCBUGURL): New preprocessor define.
12520 * rtl.c (fancy_abort): Use it.
12521 * gcc.c (main): Likewise.
12522
12523 2000-02-18 Richard Henderson <rth@cygnus.com>
12524
12525 * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
12526 (life_analysis_1): Subsume into ...
12527 (life_analysis): ... here. Force PROP_REG_INFO off after reload.
12528 Use update_life_info for the relaxation.
12529 (update_life_info): Update REG_BASIC_BLOCK for registers live on
12530 entry and regs_live_at_setjmp.
12531 (set_noop_p): Simplify.
12532 (notice_stack_pointer_modification_1): Renamed from s/_1//.
12533 (record_volatile_insns): Split into ...
12534 (delete_noop_moves): ... here,
12535 (notice_stack_pointer_modification): ... here,
12536 (insn_dead_p): ... and here.
12537 (propagate_block): Don't query INSN_VOLATILE.
12538 (mark_used_regs): Mind !PROP_REG_INFO.
12539 * toplev.c (rest_of_compilation): Call mark_constant_function here,
12540 not in life_analysis.
12541
12542 Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com)
12543
12544 * loop.c (canonicalize_condition): New function,
12545 broken out of get_condition.
12546 (get_condition): Use it.
12547 * expr.h (canonicalize_condition): Prototype it.
12548
12549 * tree.h (tree_int_cst_msb): Declare.
12550 * tree.c (tree_int_cst_msb): New function.
12551
12552 2000-02-17 Mark Mitchell <mark@codesourcery.com>
12553
12554 * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
12555 isn't set.
12556
12557 * invoke.texi (-fmessage-length=n): Document.
12558
12559 2000-02-17 Jason Merrill <jason@casey.cygnus.com>
12560
12561 * bitmap.c (bitmap_operation): Don't leak bitmap elements.
12562
12563 2000-02-17 Mark Mitchell <mark@codesourcery.com>
12564
12565 * function.c (thread_prologue_and_epilogue_insns): Put a line note
12566 after the prologue.
12567
12568 2000-02-17 Nick Clifton <nickc@cygnus.com>
12569
12570 * config/arm/thumb.c: Replace includes of system headers with
12571 #include "system.h".
12572
12573 2000-02-16 Richard Henderson <rth@cygnus.com>
12574
12575 * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
12576 Add crtbeginS.o and crtendS.o.
12577 * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
12578 (ENDFILE_SPEC): Use crtendS.o.
12579 * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
12580
12581 * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
12582 (__do_global_dtors_aux): ... here. Call __cxa_finalize if
12583 shared and present.
12584 (__dso_handle): New variable.
12585 * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
12586 bias to __CTOR_END__.
12587
12588 2000-02-16 Richard Henderson <rth@cygnus.com>
12589
12590 * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
12591
12592 Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson <hp@bitrange.com>
12593
12594 * longlong.h (__clz_tab): Declare as static to match definition.
12595
12596 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
12597
12598 * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
12599 (XREF_FILE_NAME): Define.
12600
12601 * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
12602 (EH_FRAME_SECTION_ASM_OP): Define.
12603 (IDENT_ASM_OP): Define.
12604 (TEXT_SECTION_ASM_OP): Define.
12605 (CPP_SPEC): Define.
12606 (CTORS_SECTION_ASM_OP): Define.
12607 (CTOR_SECTION_FUNCTION): Use it.
12608 (DTORS_SECTION_ASM_OP): Define.
12609 (DTOR_SECTION_FUNCTION): Use it.
12610
12611 2000-02-16 Zack Weinberg <zack@wolery.cumb.org>
12612
12613 * reg-stack.c (emit_swap_insn): Do not put a new insn before a
12614 NOTE_BASIC_BLOCK.
12615
12616 * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
12617 debug_bb_n): New functions.
12618 (dump_flow_info, print_rtl_with_bb): Use dump_regset.
12619 * basic-block.h: Prototype new functions.
12620
12621 Wed Feb 16 21:07:53 2000 Denis Chertykov <denisc@overta.ru>
12622
12623 * configure.in: Add support for avr target.
12624 * configure: Rebuilt.
12625
12626 * invoke.texi: Add AVR invocation docs.
12627 * install.texi: Add information about AVR.
12628 * md.texi: Add AVR constraint letters description.
12629 * extend.texi: Add description for AVR specific attributes.
12630
12631 2000-02-16 Jason Merrill <jason@casey.cygnus.com>
12632
12633 * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
12634
12635 2000-02-16 Nick Clifton <nickc@cygnus.com>
12636
12637 * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
12638 (make_insn_raw): Move RTL check here.
12639
12640 2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12641
12642 * version.c: Include gansidecl.h and version.h.
12643
12644 * version.h: Wrap entire file in macro __GCC_VERSION_H__.
12645
12646 * configure.in (gcc_version): When setting, narrow search to
12647 lines containing `version_string'.
12648
12649 * Makefile.in (mainversion): Likewise.
12650 (GCC_H): New variable.
12651 (gcc.h): Delete target.
12652 (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
12653 (version.o): Depend on version.h.
12654 (dbxout.o): Don't depend on gcc.h.
12655
12656 Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson <hp@bitrange.com>
12657 Michael Meissner <meissner@cygnus.com>
12658
12659 * md.texi (Simple Constraints): Add item about whitespace.
12660 * genoutput.c (strip_whitespace): New.
12661 (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
12662 strip_whitespace for constraints.
12663 Test pointer using NULL, not 0.
12664
12665 2000-02-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12666
12667 * cpplib.c (do_line): Pedwarn for #line > 32767.
12668
12669 * c-lex.c (readescape): Warn about '\x', but do not reject it.
12670
12671 2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk>
12672
12673 * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
12674 to default cpp spec.
12675 (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
12676 * cpp.texi: Document __GNUC_PATCHLEVEL__.
12677 * cpp.1: Likewise.
12678
12679 * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
12680 default spec.
12681
12682 2000-02-15 Denis Chertykov <denisc@overta.ru>
12683
12684 * configure.in: Add support for avr target.
12685
12686 Wed Feb 16 03:21:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12687
12688 * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
12689 (sh_addr_diff_vec_mode): Don't declare.
12690 * sh.c (sh_addr_diff_vec_mode): Delete.
12691
12692 Wed Feb 16 01:27:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12693
12694 * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
12695
12696 Wed Feb 16 00:58:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12697
12698 * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
12699 (smulsi3_highpart_i): Name.
12700 (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
12701 (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
12702 (smulsi3_highpart, umulsi3_highpart): Likewise.
12703
12704 (mulsidi3_i, umulsidi3_i): Make rtl describe operation
12705 correctly independent of endianness.
12706 (mulsidi3, umulsidi3): Now define_insn. Hide details that
12707 confuse the optimizers.
12708 (mulsidi3+1, umulsidi3+1): New define_split.
12709
12710 Tue Feb 15 23:22:26 2000 Andrew Haley <aph@cygnus.com>
12711
12712 * config/sh/sh.md: Guard insn splits against illegal registers.
12713 * config/sh/sh.h: Correct comment about macros.
12714
12715 Tue Feb 15 22:30:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
12716 Andrew MacLeod <amacleod@cygnus.com>
12717
12718 * Makefile.in (lcm.o): Depend on insn-attr.h.
12719 * basic-block.h (optimize_mode_switching): Declare.
12720 * lcm.c (tm_p.h, insn-attr.h): #include.
12721 (seginfo, bb_info): New structs.
12722 (antic, transp, comp, delete, insert) : New file-scope static variables.
12723 (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
12724 (reg_becomes_live, optimize_mode_switching): Likewise.
12725 * tm.texi: Add description of mode switching macros.
12726 * toplev.c (rest_of_compilation): Call optimize_mode_switching.
12727
12728 * sh-protos.h (remove_dead_before_cse): Remove prototype.
12729 (fldi_ok, fpscr_set_from_mem): New prototypes.
12730 * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
12731 (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
12732 Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
12733 (sh_flag_remove_dead_before_cse): Remove declaration.
12734 (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
12735 (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
12736 (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
12737 * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
12738 (barrier_align): Allow for JUMP_INSNS containing a parallel.
12739 (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
12740 (fldi_ok): New function.
12741 (get_fpscr_rtx): Add fpscr_rtx as GC root.
12742 (emit_sf_insn): Only generate fpu switches when optimize < 1.
12743 (emit_df_insn): Likewise.
12744 (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
12745 (sh_flag_remove_dead_before_cse): Delete.
12746 (get_free_reg, fpscr_set_from_mem): New functions.
12747 * sh.md (movdf, movsf): Remove no_new_pseudos code.
12748 (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
12749
12750 2000-02-15 Loren Rittle <ljrittle@acm.org>
12751
12752 * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
12753
12754 2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12755
12756 * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
12757 cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
12758
12759 * cccp.c: Include version.h and/or don't declare `version_string'.
12760 * collect2.c: Likewise.
12761 * alpha.c: Likewise.
12762 * arm/aof.h: Likewise.
12763 * arm/coff.h: Likewise.
12764 * arm/elf.h: Likewise.
12765 * arm/pe.h: Likewise.
12766 * arm/tcoff.h: Likewise.
12767 * arm/telf.h: Likewise.
12768 * arm/tpe.h: Likewise.
12769 * arm/vxarm.h: Likewise.
12770 * convex/convex.c: Likewise.
12771 * i386/dgux.c: Likewise.
12772 * i386/sun386.h: Likewise.
12773 * m88k/m88k.c: Likewise.
12774 * mcore/mcore-pe.h: Likewise.
12775 * mips/mips.h: Likewise.
12776 * romp/romp.h: Likewise.
12777 * sh/sh.c: Likewise.
12778 * cpphash.c: Likewise.
12779 * cppinit.c: Likewise.
12780 * dwarf2out.c: Likewise.
12781 * dwarfout.c: Likewise.
12782 * gcc.c: Likewise.
12783 * gcc.h: Likewise.
12784 * mips-tfile.c: Likewise.
12785 * protoize.c: Likewise.
12786 * toplev.c: Likewise.
12787 * tree.h: Likewise.
12788
12789 * version.c (version_string): Constify a char*.
12790
12791 * version.h: New file.
12792
12793 2000-02-14 Nick Clifton <nickc@cygnus.com>
12794
12795 * configure.in: Add mcore-elf and mcore-pe targets.
12796 * configure: Regenerate.
12797
12798 * NEWS: Add note that MCore port has been contributed.
12799
12800 * invoke.texi: Document command line switches for MCore port.
12801 * install.texi: Add MCore to list of supported targets.
12802
12803 2000-02-14 Geoff Keating <geoffk@cygnus.com>
12804
12805 * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
12806 then we will need to import the frame handling functions.
12807 (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
12808 to import the frames themselves.
12809
12810 Mon Feb 14 13:31:01 2000 Stan Cox <scox@cygnus.com>
12811 Jason Eckhardt <jle@cygnus.com>
12812
12813 * basic_block.h: Added prototype for reorder_basic_blocks.
12814 * toplev.c: Changes to add -freorder-blocks and graph dump after
12815 block reordering is done.
12816 * flow.c (reorder_block_def): New structure for use during block
12817 reordering.
12818 (REORDER_BLOCK_*): New macros to access members of above structure.
12819 (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
12820 make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
12821 functions for block reordering.
12822
12823 Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson <hp@bitrange.com>
12824
12825 * gcc.texi (Passes): Fix typo.
12826 * md.texi (Standard Names): Ditto.
12827 * tm.texi (Storage Layout): Ditto.
12828
12829 2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
12830
12831 * cpplib.c (do_define): Only free the old definition if it
12832 actually had one.
12833
12834 2000-02-13 Neil Booth <NeilB@earthling.net>
12835
12836 * cppfiles.c (read_and_prescan): When emitting deferred
12837 newlines, test speccase[] again instead of checking each
12838 possible whitespace character in turn. When we encounter \r,
12839 look behind for \n first, then ahead.
12840
12841 2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
12842
12843 * cse.c (cse_altered): New internal flag.
12844 (cse_insn): Set it if we changed an insn.
12845 (cse_main): Clear cse_altered before each basic block.
12846 Only garbage collect if cse_altered is true afterward.
12847
12848 Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12849
12850 * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
12851
12852 Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com)
12853
12854 * combine.c (simplify_comparison): Fix typo.
12855
12856 Sun Feb 13 12:57:52 2000 Neil Booth <NeilB@earthling.net>
12857
12858 * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
12859 consistently.
12860
12861 2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12862
12863 * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
12864 previously inserted node instead of root node. Caller changed.
12865
12866 2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12867
12868 * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
12869
12870 2000-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12871
12872 * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
12873 __dereg_frame_dtor): Add prototype argument.
12874
12875 * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
12876
12877 * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
12878
12879 * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
12880
12881 * gthr-vxworks.h (__gthread_once): Likewise.
12882
12883 * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
12884
12885 Sat Feb 12 01:44:26 MET 2000 Jan Hubicka <jh@suse.cz>
12886
12887 * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
12888 (ix86_expand_epilogue): ... here. Use mov instead of add to restore
12889 stack pointer in functions w/o saved registers, output LEAVE more often
12890 on TARGET_USE_LEAVE machines.
12891
12892 2000-02-07 Dmitri Makarov <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
12893
12894 * config/arm/arm.c (arm_init_cumulative_args); New function:
12895 Initlaise the CUMULATIE_ARGS strcuture for a function
12896 defintion.
12897 (arm_function_arg): New function: Determine where to place a
12898 function's argument. Also handles deciding the function's
12899 call cookie.
12900 (current_file_function_operand): New function: Return true if
12901 the symbol is a function which has already been compiled.
12902 (arm_is_long_call_p): New function: Return true if the
12903 indicated function should be called via a long call.
12904 (arm_valid_type_attribute_p): New function: Return true if the
12905 attribute is a valid, arm specific, attribute.
12906 (arm_comp_type_attribute): New function: Return true if the
12907 two types have compatable, arm specific, attributes.
12908
12909 * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
12910 structure.
12911 (FUNCTION_ARG): Redefine to call arm_function_arg.
12912 (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
12913 structure field.
12914 (INIT_CUMULATIVE_ARGS): Redefine to call
12915 arm_init_cumulative_args.
12916 (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
12917 field.
12918 (SETUP_INCOMING_VARARGS): Redefine to use correct structure
12919 field.
12920 (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
12921 functions.
12922 (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
12923 (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
12924 (COMP_TYPE_ATTRIBUTES): Define.
12925
12926 * config/arm/arm.md (call): Call arm_is_long_call_p to decide
12927 if a long call is needed.
12928 (call_value): Call arm_is_long_call_p to decide if a long call
12929 is needed.
12930 (call_symbol): Call arm_is_long_call_p to decide if a long call
12931 is needed.
12932
12933 * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
12934
12935 2000-02-11 Denis Chertykov <denisc@overta.ru>
12936
12937 * README.AVR: New file with information about the avr ports.
12938 * config/avr: New directory with avr port files.
12939
12940 2000-02-11 Andreas Jaeger <aj@suse.de>
12941
12942 * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
12943
12944 2000-02-11 Zack Weinberg <zack@wolery.cumb.org>
12945
12946 * cpphash.c: Fix formatting, update commentary.
12947 (dump_definition): Take three separate arguments instead of a
12948 MACRODEF structure argument.
12949 * cpphash.h: Update prototype of dump_definition.
12950 * cppinit.c (cpp_finish): Update call of dump_definition.
12951
12952 * cpplib.c (do_define): Always create new hash entry with
12953 T_MACRO type. Remove redundant check for redefinition of
12954 poisoned identifier. Update call of dump_definition.
12955 (do_undef): Don't call check_macro_name. Rename sym_length to
12956 len.
12957 (do_error, do_warning): Don't use copy_rest_of_line or
12958 SKIP_WHITE_SPACE.
12959 (do_warning): Don't use pedwarn for the actual warning,
12960 only the notice about its not being in the standard. (Fixes
12961 bug with #warning in system headers.)
12962 (do_ident): Stricter argument checking - accept only a single
12963 string after #ident. Also, macro-expand the line.
12964 (do_xifdef): Use cpp_defined. De-obfuscate.
12965
12966 (do_pragma): Split out specific pragma handling to separate
12967 functions. Use get_directive_token. Update commentary. Do
12968 not pass on #pragma once or #pragma poison to the front end.
12969 (do_pragma_once, do_pragma_implementation, do_pragma_poison,
12970 do_pragma_default): New.
12971
12972 Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com)
12973
12974 * jump.c (jump_optimize_1): The first operand in a relational
12975 can be a CONST_INT.
12976 * optabs.c (emit_conditional_move): Handle relationals which
12977 have a known true/false result.
12978
12979 2000-02-11 Geoff Keating <geoffk@cygnus.com>
12980
12981 * function.c (thread_prologue_and_epilogue_insns): Don't insert
12982 a RETURN insn into a block which already ends with a jump.
12983
12984 2000-02-11 Geoff Keating <geoffk@cygnus.com>
12985
12986 * haifa-sched.c (BUF_LEN): Increase a lot.
12987
12988 2000-02-11 Nick Clifton <nickc@cygnus.com>
12989
12990 * configure.in: Add tm_p_file specification for thumb targets.
12991 * configure: Regenerate.
12992
12993 * config/arm/thumb-protos.h: New file: Prototypes for exported
12994 functions defined in thumb.c.
12995
12996 2000-02-11 Robert Lipe <robertl@sco.com>
12997
12998 * Makefile.in (bootstrap-lean): Remove additional files.
12999 (bootstrap2-lean): Likewise.
13000 (VOL_FILES): List of files for above.
13001
13002 2000-02-11 Nathan Sidwell <nathan@acm.org>
13003
13004 * cpphash.c (special_symbol): Remove spurious argument to
13005 cpp_lookup.
13006
13007 2000-02-11 Joel Sherrill (joel@OARcorp.com>
13008
13009 * configure.in: (i*86-*-rtems*): Swapped elf and coff
13010 stanzas.
13011 * configure: Rebuilt.
13012
13013 2000-02-11 Rodney Brown <RodneyBrown@pmsc.com>
13014
13015 * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
13016
13017 Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com)
13018
13019 * pa.c, pa.h: Remove trigraph sequences within comments.
13020
13021 Fri Feb 11 02:51:56 2000 Pavel Roskin <pavel_roskin@geocities.com>
13022
13023 * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
13024
13025 Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu)
13026
13027 * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
13028
13029 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13030
13031 * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
13032
13033 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13034
13035 * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
13036 (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
13037 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13038 (ASM_FILE_END): Use c4x_file_end.
13039 * config/c4x/c4x.c (c4x_global_label): New function.
13040 (c4x_external_ref, c4x_file_end): Likewise.
13041
13042 * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
13043 (c4x_external_ref, c4x_end_file): Likewise.
13044
13045 2000-02-10 Zack Weinberg <zack@wolery.cumb.org>
13046
13047 * cppexp.c: Don't include cpphash.h.
13048 (parse_charconst, cpp_lex): Use cpp_defined.
13049 (cpp_lex): Use get_directive_token throughout. Remove
13050 unnecessary cases from switch. Move assertion-handling code
13051 down to OTHER case.
13052 (cpp_parse_expr): If we see '+' or '-', check the context to
13053 determine if they are unary or binary operators. Streamline
13054 the jumps a bit. Do not call skip_rest_of_line.
13055
13056 * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
13057 static. Export get_directive_token. Update commentary.
13058 (cpp_defined): New function.
13059 (do_define): Remove reference to T_PCSTRING. Call
13060 free_definition to release memory for old definition, when
13061 redefining a macro.
13062 (eval_if_expression): Set only_seen_white to 0 before calling
13063 cpp_parse_expr. Call skip_rest_of_line after it returns.
13064 (cpp_read_check_assertion): Don't preserve a pointer into the
13065 token buffer across a call to cpp_get_token.
13066
13067 * Makefile.in (cppexp.o): Don't depend on cpphash.h.
13068 * cppfiles.c (redundant_include_p): Use cpp_defined.
13069 * cpphash.c (free_definition): New function.
13070 (delete_macro): Use it. Update commentary.
13071 * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and
13072 free_definition.
13073 * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
13074 from enum node_type. Prototype cpp_defined and get_directive_token.
13075 Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
13076
13077 * fix-header.c (check_macro_names): Use cpp_defined.
13078 (read_scan_file): Set inhibit_warnings and inhibit_errors in
13079 the options structure.
13080
13081 2000-02-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
13082
13083 * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
13084
13085 2000-02-10 Jason Merrill <jason@casey.cygnus.com>
13086
13087 * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
13088 rather than die->die_tag.
13089
13090 Thu Feb 10 16:26:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13091
13092 * combine.c (make_extraction, force_to_mode): Avoid warning on
13093 mixed-signedness conditionals.
13094 (make_field_assignment, nonzero_bits): Likewise.
13095 * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
13096 (store_split_bit_field, extract_split_bit_field): Likewise.
13097 (extract_fixed_bit_field, store_bit_field,
13098 * expr.c: Change alignment to be unsigned everywhere.
13099 (move_by_pieces, store_constructor_field, store_constructor):
13100 Alignment parm is unsigned.
13101 (emit_block_move, emit_group_load, emit_group_store): Likewise.
13102 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
13103 (do_compare_rtx_and_jump): Likewise.
13104 (move_by_pieces_ninsns, clear_by_pieces): Likewise.
13105 Compare align with GET_MODE_ALIGNMENT.
13106 (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
13107 (get_inner_reference): Likewise.
13108 (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
13109 (expand_assignment): Local vars for alignment now unsigned.
13110 (store_constructor, store_field, expand_expr, do_jump): Likewise.
13111 (do_compare_and_jump): Likewise.
13112 (store_field): Call new function expr_align.
13113 * expr.h (emit_block_move, emit_group_load, emit_group_store):
13114 Alignment arg now unsigned.
13115 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
13116 (do_compare_rtx_and_jump, store_bit_field): Likewise.
13117 (extract_bit_field): Likewise.
13118 * fold-const.c (add_double): Add cast to eliminate signedness warning.
13119 * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
13120 (get_best_mode): Alignment arg is unsigned.
13121 * rtl.h (move_by_pieces): Likewise.
13122 * store-layout.c (maximum_field_alignment, set_alignment):
13123 Now unsigned.
13124 (layout_decl): Alignment arg is now unsigned.
13125 Remove unneeded casts.
13126 (layout_record, layout_union, layout_type): Remove unneeded casts.
13127 Local alignment variables now unsigned.
13128 (get_best_mode): Alignment arg now unsigned.
13129 * tree.c (expr_align): New function.
13130 * tree.h (expr_align): Likewise.
13131 (maximum_field_alignment, set_alignment): Now unsigned.
13132 (get_inner_reference): Alignment argument is now pointer to unsigned.
13133 * varasm.c (assemble_variable): Add cast to eliminate warning.
13134
13135 Thu Feb 10 12:56:47 2000 Jim Wilson <wilson@cygnus.com>
13136
13137 * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
13138 then store directly into op0.
13139
13140 * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
13141 the CALL_INSN, and emit the note immediately after it.
13142
13143 2000-02-10 Nick Clifton <nickc@cygnus.com>
13144
13145 * config/arm/thumb.md (epilogue): Include a (return) in the
13146 generated insn, and emit it using emit_jump_insn not
13147 emit_insn.
13148
13149 Thu Feb 10 18:28:59 MET 2000 Jan Hubicka <jh@suse.cz>
13150
13151 * function.c (assign_temp): Change zero-sized arrays to size 1.
13152 * integrate.c (expand_inline_function): Do not update
13153 stack_alignment_needed
13154 * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
13155 add some sanity checking, remove optimization for function with
13156 zero frame size.
13157
13158 2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13159
13160 * flow.c (mark_regs_live_at_end): Delete unused variables.
13161
13162 * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
13163
13164 * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
13165 in macro FRAME_GROWS_DOWNWARD.
13166
13167 * stmt.c (expand_end_bindings): Delete unused variable.
13168
13169 * unroll.c (iteration_info): Mark parameter `loop' with
13170 ATTRIBUTE_UNUSED.
13171
13172 2000-02-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13173
13174 * fixinc/server.c (load_data): Return NULL if the marker line is
13175 not found.
13176 (run_shell): If load_data returns NULL, retry the command once, in
13177 a new shell.
13178
13179 * configure: Rebuilt.
13180
13181 2000-02-09 Bruce Korb <bkorb@gnu.org>
13182
13183 * gcc/fixincludes: ** DELETED **
13184 * gcc/fixcpp: ** DELETED **
13185 * gcc/fixinc-nt.sed: ** DELETED **
13186 * gcc/just-fixinc: ** DELETED **
13187 * gcc/Makefile.in: Removed out-dated commentary
13188 * gcc/configure.in: Removed fast-fixincludes disablement.
13189 * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
13190
13191 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
13192 * function.c (thread_prologue_and_epilogue_insns): Uncomment
13193 last change.
13194
13195 2000-02-09 Richard Henderson <rth@cygnus.com>
13196
13197 * jump.c (delete_insn): Don't delete user labels at -O0.
13198
13199 2000-02-09 Robert Lipe <robertl@sco.com>
13200
13201 * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
13202 Don't link with HOST_LIBS.
13203
13204 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
13205
13206 * configure.in: Correct --help text for --with-dwarf2.
13207 Put tm-dwarf2.h after other tm files, if it's requested.
13208 * configure: Regenerate.
13209 * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
13210 defining it.
13211
13212 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
13213
13214 * cpplib.h: Provide HASHNODE typedef and forward decl of
13215 struct hashnode only. Kill cpp_hashnode typedef. MACRODEF,
13216 DEFINITION, struct hashnode, struct macrodef, struct
13217 definition, scan_decls prototype, default defn of
13218 INCLUDE_LEN_FUDGE moved elsewhere.
13219
13220 * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
13221 definition, and struct hashnode moved here. Remove the unused
13222 'predefined' field from struct definition. Replace the 'args'
13223 union with its sole member. All users updated (cpphash.c).
13224 Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add
13225 multiple include guard.
13226
13227 * cpphash.c (hashf): Make static; use better algorithm; drop
13228 HASHSIZE parameter; return an unsigned int.
13229 (cpp_lookup): Drop HASH parameter. PFILE parameter is
13230 used. Calculate HASHSIZE modulus here.
13231 (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
13232 here.
13233 (create_definition): Drop PREDEFINITION parameter.
13234 * cpplib.c (do_define): Don't calculate a hash value here.
13235 Don't pass (keyword == NULL) to create_definition.
13236
13237 * scan.h: Prototype scan_decls here.
13238 * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
13239 * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
13240 callers of cpp_lookup and cpp_install updated.
13241
13242 * cpphash.c (macarg): Hoist all the flag diddling out of the
13243 function...
13244 (macroexpand): ... and out of the loop that calls macarg.
13245 Skip over the initial paren before macro arguments with
13246 cpp_get_non_space_token; point may be some distance before
13247 that paren. Abort if it's not there.
13248
13249 * cpplib.c (parse_clear_mark): Delete function.
13250 (parse_set_mark, parse_goto_mark): Make static.
13251 (ACTIVE_MARK_P): New macro.
13252 (skip_block_comment, skip_line_comment): Do not bump the line
13253 if ACTIVE_MARK_P is true.
13254 (cpp_pop_buffer): The buffer to be popped may not have an
13255 active mark.
13256 (cpp_get_token): When looking for the initial paren before
13257 macro arguments, only set a mark in a file buffer, Always
13258 return to that mark before proceeding to call macroexpand or
13259 return a NAME token.
13260
13261 * cpplib.h: Remove prototypes of parse_set_mark,
13262 parse_clear_mark, parse_goto_mark.
13263 (struct cpp_options): Rename 'put_out_comments' to
13264 'discard_comments' and invert its sense.
13265 * cppinit.c, cpphash.c, cpplib.c: All users of
13266 put_out_comments changed to use discard_comments, with
13267 opposite sense.
13268
13269 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
13270
13271 * function.c (thread_prologue_and_epilogue_insns): Don't delete
13272 the edge from a block that both jumps and falls through to the
13273 fallthru block.
13274
13275 2000-02-09 Scott Bambrough <scottb@netwinder.org>
13276
13277 * config/arm/arm.md (movsi): In PIC mode, make sure that a
13278 constant source address is legitimate.
13279
13280 2000-02-09 Philip Blundell <pb@futuretv.com>
13281
13282 * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
13283 correctly.
13284
13285 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
13286 generating PIC.
13287 (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
13288
13289 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
13290
13291 * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
13292 ends with a newline and a NUL. Don't be so clever manipulating
13293 strings.
13294
13295 Wed Feb 9 14:18:08 MET 2000 Jan Hubicka <jh@suse.cz>
13296
13297 * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
13298 not to BIGGEST_ALIGNMENT.
13299
13300 2000-02-08 Geoff Keating <geoffk@cygnus.com>
13301
13302 * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
13303 * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
13304 (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
13305 (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
13306 * frame.c (execute_cfa_insn): Handle
13307 DW_CFA_GNU_negative_offset_extended.
13308
13309 2000-02-08 Richard Henderson <rth@cygnus.com>
13310
13311 * flow.c (tidy_fallthru_edges): Split out from ...
13312 (delete_unreachable_blocks): ... here.
13313 (find_basic_blocks): Use it.
13314
13315 Tue Feb 8 15:51:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13316
13317 * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
13318
13319 2000-02-08 Zack Weinberg <zack@wolery.cumb.org>
13320
13321 * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
13322 (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
13323 (fix-header.o): Don't depend on cpphash.h.
13324
13325 * scan.c (hashstr): New function.
13326 * scan.h: Prototype it.
13327 * fix-header.c: Don't include cpphash.h. Use hashstr.
13328 * gen-protos.c: Don't include cpphash.h or cpplib.h. Use
13329 hashstr. Report hash table statistics. Add private
13330 definition of xrealloc.
13331
13332 2000-02-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13333
13334 * i386.h (TARGET_SWITCHES): Fix typo in option name.
13335
13336 2000-02-08 Clinton Popetz <cpopetz@cygnus.com>
13337
13338 * function.c (thread_prologue_and_epilogue_insns): Don't replace
13339 jumps with returns unless they are jumps to the fallthru block.
13340
13341 Tue Feb 8 07:53:55 2000 Jan Hubicka <jh@suse.cz>
13342
13343 * i386.md (addqi3_cc): Fix contraints.
13344
13345 Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
13346
13347 * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
13348
13349 2000-02-07 Mark Mitchell <mark@codesourcery.com>
13350
13351 * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
13352 carriage return after a macro name.
13353
13354 2000-02-07 Fred Fish <fnf@be.com>
13355
13356 * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
13357 so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
13358
13359 2000-02-07 Zack Weinberg <zack@wolery.cumb.org>
13360
13361 * cppfiles.c (deps_output): Count spacers in deps_column.
13362
13363 2000-02-07 Neil Booth <NeilB@earthling.net>
13364
13365 * cppinit.c (initialize_dependency_output): If there is no
13366 suffix, don't try to look for known suffixes. Use strrchr.
13367 (cpp_start_read): Remove duplicate initialization.
13368
13369 Mon Feb 7 18:36:41 MET 2000 Jan Hubicka <jh@suse.cz>
13370
13371 * calls.c (compute_argument_block_size): New argument
13372 preferred_stack_boundary.
13373 (expand_call): update cfun->preferred_stack_boundary, update call of
13374 compute_argument_block_size
13375 (emit_library_call): Increate cfun->preferred_stack_boundary
13376 to PREFERRED_STACK_BOUNDARY
13377 (emit_library_call_value): Likewise.
13378 * explow.c (allocate_dynamic_stack_spave): Likewise.
13379 * function.c (prepare_function_start): Set
13380 cfun->preferred_stack_boundary
13381 * function.h (struct function): Add preferred_stack_boundary field.
13382 * integrate.c (expand_inline_function): Update
13383 cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
13384 (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
13385 * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
13386
13387 2000-02-06 Zack Weinberg <zack@wolery.cumb.org>
13388
13389 * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
13390 cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
13391 cpp_pedwarn, cpp_pedwarn_with_line,
13392 cpp_pedwarn_with_file_and_line): Move to cpperror.c.
13393 (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
13394 v_cpp_error_with_line, v_cpp_warning_with_line,
13395 cpp_message_from_errno, cpp_perror_with_name): Delete.
13396
13397 * cpperror.c (cpp_print_containing_files): Take starting
13398 buffer as argument.
13399 (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
13400 (v_cpp_message): Now called directly by all entry points.
13401 Remove -1 case.
13402 (cpp_pfatal_with_name, cpp_message): Delete.
13403 (cpp_notice_from_errno, cpp_ice): New functions.
13404 (cpp_notice): Is now for reporting error conditions, just
13405 without an associated file.
13406 (cpp_error, cpp_error_with_line): Don't do anything if
13407 opts->inhibit_errors is on.
13408 (cpp_pedwarn_with_file_and_line): Take column argument also.
13409
13410 * cpplib.h: Update prototypes of exported functions.
13411 (struct cpp_options): Add inhibit_errors.
13412
13413 * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
13414 non-error messages. Include intl.h.
13415
13416 * cppinit.c, cppmain.c: Likewise. Also, use
13417 cpp_notice_from_errno instead of cpp_perror_with_name or
13418 cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
13419
13420 * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
13421 report internal errors.
13422
13423 * cpplib.c (do_define): Switch bcopy to memcpy.
13424 Give cpp_pedwarn_with_file_and_line a dummy column argument.
13425
13426 * cpplib.c (copy_rest_of_line): Revert previous change: don't
13427 bail out early if we hit a line comment.
13428
13429 2000-02-06 Richard Henderson <rth@cygnus.com>
13430
13431 * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
13432 * basic-block.h: Declare them.
13433 * emit-rtl.h (active_insn_p): New.
13434 (next_active_insn, prev_active_insn): Use it.
13435 * rtl.h: Declare it.
13436 * function.c (emit_return_into_block): New.
13437 (thread_prologue_and_epilogue_insns): Insert return insns instead
13438 of epilogues when possible.
13439 * jump.c (jump_optimize_1): Remove code to insert a return insn
13440 on the fallthru to the exit block.
13441
13442 * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
13443 and for non-empty stack frames.
13444 * i386.md (return): Expand to return-pop as needed.
13445
13446 2000-02-06 Richard Henderson <rth@cygnus.com>
13447
13448 * simplify-rtx.c (simplify_relational_operation): Canonicalize
13449 constant to op1 for testing.
13450
13451 2000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13452
13453 * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
13454 (fixuns_truncqfqi2): Use it.
13455
13456 2000-02-06 Richard Henderson <rth@cygnus.com>
13457
13458 * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
13459 as a TYPE_LEA insn.
13460
13461 * i386.md (widening and peepholes): Mask the constant instead of
13462 using gen_lowpart.
13463
13464 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
13465
13466 * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
13467 input pointer before possibly branching off to the backslash
13468 code.
13469 * cpphash.c (macroexpand): Correctly delete \r escapes when
13470 stringifying parameters.
13471 * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
13472 if we can; bail out early if we hit a line comment.
13473 (handle_directive): Treat '# 123' in an .S file just like
13474 '# <punctuation>'. Discard the shifted '#' if we hit '#\n'.
13475 Return 1 for '# not_a_directive'.
13476 (get_directive_token): Pop macro buffers here, so that
13477 cpp_get_token can't sneakily move past a newline.
13478 Add sanity checks.
13479 (cpp_get_token): goto randomchar if handle_directive returns 0.
13480
13481 * cppalloc.c: Update copyright.
13482 * cpplib.c: Merge all the static function prototypes into one
13483 block.
13484 * cpplib.h: Remove #if 0 block.
13485
13486 * cpperror.c: Remove #ifdef EMACS block.
13487 * cppmain.c: Likewise.
13488 * cpphash.c: Remove #if 0 blocks.
13489 * cppinit.c: Remove #if 0 blocks, and the -lint option.
13490 * cpplib.c: Remove #if 0 blocks and code referencing
13491 pcp_inside_if or for_lint. Remove duplicate error message.
13492 Fix error messages for #else after #else or #elif. Reformat.
13493 Remove archaic TODO list.
13494 * cpplib.h: Remove pcp_inside_if and for_lint flags.
13495
13496 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
13497
13498 * i386/osf1elf.h: Add missing backslash to multiline string.
13499
13500 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13501
13502 * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
13503
13504 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13505
13506 * Makefile.in (c-common.o): Depend on $(EXPR_H).
13507
13508 * c-common.c: Include expr.h.
13509
13510 * c-pragma.c (mark_align_stack): Add prototype.
13511
13512 * caller-save.c (add_stored_regs): Likewise.
13513
13514 * combine.c (record_promoted_value): Likewise.
13515
13516 * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
13517 Likewise.
13518
13519 * cppinit.c (new_pending_define): Likewise.
13520
13521 * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
13522
13523 * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
13524 AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
13525 AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
13526 class_scope_p): Likewise.
13527
13528 * dwarf2out.h (dwarf2out_set_demangle_name_func,
13529 dwarf2out_add_library_unit_info): Likewise.
13530
13531 * ggc.h (ggc_page_print_statistics): Likewise.
13532
13533 * haifa-sched.c (propagate_deps): Likewise.
13534
13535 * reg-stack.c (next_flags_user, record_label_references): Likewise.
13536
13537 * rtl.h (set_stack_check_libfunc): Likewise.
13538
13539 * toplev.h (set_fatal_function): Likewise.
13540
13541 * toplev.c (set_fatal_function): Delete prototype.
13542
13543 * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
13544
13545 2000-02-05 Geoff Keating <geoffk@cygnus.com>
13546
13547 * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
13548 (FUNC_END): Likewise.
13549
13550 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13551
13552 * caller-save.c: Include tm_p.h.
13553
13554 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13555
13556 * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
13557
13558 2000-02-04 Neil Booth <NeilB@earthling.net>
13559
13560 * cccp.c (main): Check 'dir' for a NULL pointer before passing
13561 it to strcmp.
13562
13563 2000-02-04 Zack Weinberg <zack@wolery.cumb.org>
13564
13565 * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
13566 * genflags.c: Use the max_operand_1 logic from genemit.c to
13567 calculate how many arguments gen_insn prototypes have. Remove
13568 NO_MD_PROTOTYPES ifdefs from the generated file.
13569 * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
13570 file. Cast gen_insn initializers to insn_gen_fn.
13571 * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
13572 * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
13573
13574 2000-02-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13575
13576 * fixinc/Makefile.in (HDR): Add machname.h.
13577 (clean): Likewise.
13578
13579 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13580
13581 * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
13582 (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
13583 (c4x_cpu_version): Ditto.
13584 * config/c4x/c4x-protos.h: ... here.
13585
13586 2000-02-04 Jason Merrill <jason@casey.cygnus.com>
13587
13588 * dwarf2out.c (add_abstract_origin_attribute): Don't call
13589 gen_abstract_function on our context if we're a nested function.
13590
13591 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13592
13593 * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
13594 * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
13595
13596 2000-02-04 Bruce Korb <bkorb@gnu.org>
13597
13598 * fixinc/genfixes(machname.h):
13599 Move the functionality from gen-machine.h into this file.
13600 UNdef MN_NAME_PAT if there are no names to change.
13601 Also, be a little kinder when AutoGen is not present.
13602
13603 * fixinc/Makefile.in(machname.h):
13604 Change the generation rule to use genfixes.
13605
13606 * fixinc/fixfixes.c(machine_name):
13607 machine_name_fix's functionality now dependent upon whether
13608 MN_NAME_PAT is defined.
13609
13610 * fixinc/fixtests.c(machine_name):
13611 ditto.
13612
13613 * fixinc/fixlib.c(mn_get_regexps): conditional on definition
13614 of MN_NAME_PAT.
13615
13616 * fixinc/fixlib.h(mn_get_regexps):
13617 ditto
13618
13619 * fixinc/gen-machine.h: DELETED
13620
13621 2000-02-04 Jan Hubicka <jh@suse.cz>
13622 Richard Henderson <rth@cygnus.com>
13623
13624 * i386.c (SAVE_REGS_FIRST): Remove.
13625 (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
13626 (ix86_compute_frame_size): Likewise.
13627 (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack.
13628 (ix86_emit_restore_regs): Remove.
13629 (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
13630 when a frame pointer is in use.
13631 (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov
13632 instead of pop to restore a register when profitable; emit leave
13633 when profitable.
13634 (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
13635 as a TYPE_LEA insn.
13636 (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
13637 * i386.md (prologue_allocate_stack): Remove.
13638 (epilogue_deallocate_stack): Remove.
13639 (pro_epilogue_adjust_stack): New.
13640
13641 2000-02-04 Richard Henderson <rth@cygnus.com>
13642
13643 * function.c (diddle_return_value): Rework to use a callback function.
13644 Use current_function_return_rtx if it's been set up.
13645 (do_clobber_return_reg, clobber_return_register): New.
13646 (do_use_return_reg, use_return_register): New.
13647 (expand_function_end): Use them.
13648 * stmt.c (expand_null_return): Likewise.
13649 * function.h: Declare them.
13650 * flow.c (mark_regs_live_at_end): Use diddle_return_value.
13651 (mark_reg): Change arguments as appropriate for callback.
13652 * integrate.c (expand_inline_function): Revert 19 Jan change.
13653
13654 Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson <hp@bitrange.com>
13655
13656 * tm.texi (Values in Registers): Fix typo: "fo" "for".
13657 (Misc): Say the scheduler, not the Haifa scheduler.
13658
13659 2000-02-04 Clinton Popetz <cpopetz@cygnus.com>
13660
13661 * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
13662 when in_mem is set. Update all callers.
13663
13664 2000-02-04 Richard Henderson <rth@cygnus.com>
13665
13666 * i386/openbsd.h (INT_ASM_OP): Define.
13667
13668 Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson <hp@bitrange.com>
13669
13670 * tm.texi: Fix various typos.
13671
13672 Thu Feb 3 17:17:32 2000 Steve Ellcey <sje@cup.hp.com>
13673
13674 * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
13675 (MD_STARTFILE_PREFIX_1): New macro.
13676
13677 Thu Feb 3 15:08:13 MET 2000 Jan Hubicka <jh@suse.cz>
13678
13679 * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
13680 destination when needed.
13681 (strmovsi, strsetsi): New expander.
13682 (strmovsi_1, strsetsi_1): New pattern.
13683 * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
13684 TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
13685 (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
13686 * invoke.texi (align-stringops, inline-all-stringops): Document.
13687
13688 Wed Feb 2 23:04:47 2000 Krister Walfridsson <cato@df.lth.se>
13689
13690 * i386/netbsd.h (INT_ASM_OP): Define.
13691
13692 2000-02-02 Zack Weinberg <zack@wolery.cumb.org>
13693
13694 * cpplib.h (cpp_reader): Add new flag, no_directives.
13695 * cpphash.c (macarg): Set it.
13696 * cpplib.c (handle_directive): If no_directives is on and we
13697 find a directive, issue an error and discard the line.
13698
13699 Wed Feb 2 13:07:10 2000 Jim Wilson <wilson@cygnus.com>
13700
13701 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
13702 FP constants. Add ! TARGET_FPU check for FP constants.
13703
13704 2000-02-02 Clinton Popetz <cpopetz@cygnus.com>
13705
13706 * flow.c (find_basic_blocks): Don't kill label_value_list
13707 here.
13708 (cleanup_cfg): Kill it here.
13709
13710 Wed Feb 2 08:12:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13711
13712 * expr.c (store_field): Ensure ALIGN is no stricter than the
13713 alignment of EXP.
13714
13715 2000-02-02 Richard Henderson <rth@cygnus.com>
13716
13717 * jump.c (delete_insn): Partially revert 19 Jan change;
13718 don't convert unused code labels to notes at -O0.
13719
13720 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13721
13722 * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
13723 split_all_insns to recreate REG_LABEL notes for flow2 pass.
13724
13725 2000-02-01 Richard Henderson <rth@cygnus.com>
13726
13727 * i386.c (general_no_elim_operand): New.
13728 (nonmemory_no_elim_operand): New.
13729 (ix86_expand_move): Copy eliminable operands before a push.
13730 * i386-protos.h: Declare new functions.
13731 * i386.h (CAN_ELIMINATE): Simplify.
13732 (PREDICATE_CODES): Update.
13733 * i386.md (push insns): Don't allow eliminable register operands.
13734
13735 2000-02-01 Richard Henderson <rth@cygnus.com>
13736
13737 * flow.c (mark_regs_live_at_end): Follow expand_function_end and
13738 replace BLKmode with DECL_RTL's mode.
13739
13740 2000-02-01 Zack Weinberg <zack@wolery.cumb.org>
13741
13742 * frame.c (find_fde): Convert for loop to do-while so compiler
13743 sees it's always executed at least once.
13744 * libgcc2.c (BBINBUFSIZE): Kill.
13745 (__bb_init_prg): Use fgets.
13746 (__bb_exit_trace_func): Don't paste strings.
13747 * unroll.c (unroll_loop): Initialize unroll_type, not
13748 unroll_number, and tweak logic to match.
13749
13750 * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
13751 all failure paths.
13752 (ix86_flags_dependant): Likewise. Disentangle control flow.
13753 (ix86_sched_reorder): Break guts out to
13754 ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
13755 (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
13756 any possible use.
13757
13758 * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
13759 use string concatenation. Don't save and restore esi.
13760
13761 * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
13762 (machname.h): Remove script to separate file. Use two-step
13763 sequence so target is not created if script fails.
13764 * fixinc/gen-machname.h: New file. Handle case where no non-reserved
13765 identifiers are defined.
13766 * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
13767 an empty string, machine_name doesn't need to do anything at
13768 all.
13769 (is_cxx_header): Add more cases to regexp.
13770 * fixinc/fixlib.h: Update prototype.
13771 * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
13772 mn_get_regexps.
13773 * fixinc/fixincl.c: Define NO_BOGOSITY.
13774
13775 * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
13776 (hp_sysfile): Add missing comma.
13777 (math_exception): Put the wrapper ifdefs at the beginning and
13778 the end of the file.
13779 * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
13780
13781 2000-02-01 Richard Henderson <rth@cygnus.com>
13782
13783 * sparc.c (fp_zero_operand): Turn into a normal predicate.
13784 Use CONST0_RTX. Update all callers.
13785 * sparc.h, sparc-protos.h: Update accordingly.
13786 * sparc.md (fp mov insns): Use fp_zero_operand directly
13787 where applicable.
13788
13789 Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
13790
13791 * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
13792 example.
13793
13794 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13795
13796 * Makefile.in (specs.ready): New target.
13797 (fixinc.sh): Depend on `specs.ready' instead of `specs'.
13798
13799 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13800
13801 * fixinc.irix: Use unique filenames for writing into /tmp,
13802 * fixinc.ptx: Likewise.
13803 * fixinc.sco: Likewise.
13804 * fixinc.svr4: Likewise.
13805 * fixinc.winnt: Likewise.
13806
13807 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13808
13809 * tsystem.h: New file.
13810
13811 * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
13812 s-crtS): Depend on tsystem.h.
13813
13814 * crtstuff.c: Include tsystem.h.
13815 * frame.c: Likewise.
13816 * libgcc2.c: Likewise.
13817
13818 Tue Feb 1 19:53:27 CET 2000 Jan Hubicka <jh@suse.cz>
13819
13820 * builtins.c (expand_builtin_memset): Expand for variable sized
13821 lengths too.
13822
13823 2000-02-01 David Billinghurst <David.Billinghurst@riotinto.com.au>
13824
13825 * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
13826 on ABI.
13827
13828 Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
13829
13830 * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
13831
13832 * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
13833
13834 2000-01-31 Chandra Chavva <cchavva@cygnus.com>
13835
13836 * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
13837 case 3->2 combining (combining with splitting) in which 2 is CC0
13838 setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
13839 checked at the begining of the function with the aid of calling
13840 function 'can_combine_p'.
13841
13842 2000-01-31 Dave Brolley <brolley@redhat.com>
13843
13844 * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
13845
13846 2000-01-31 Jason Merrill <jason@casey.cygnus.com>
13847
13848 * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
13849 new label.
13850
13851 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13852
13853 * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
13854
13855 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
13856 PROTO -> PARAMS.
13857
13858 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
13859
13860 * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
13861 i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
13862 i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
13863 i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
13864 i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
13865 i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
13866 i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
13867 i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
13868 i386/vxi386.h, i386/win-nt.h, i386/win32.h:
13869 Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
13870
13871 * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
13872 Add %(cpp_cpu) to CPP_SPEC.
13873
13874 * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
13875 Add %(cc1_cpu) to CC1_SPEC.
13876
13877 2000-01-28 Ulrich Drepper <drepper@redhat.com>
13878
13879 * c-decl.c (c_decode_option): Accept optional numeric argument to
13880 -Wformat and set warn_format.
13881 * c-common.c: Don't emit warning about non-constant printf format
13882 string unless warn_format > 1.
13883
13884 2000-01-30 Richard Henderson <rth@cygnus.com>
13885
13886 * alpha.md (return_internal): Allow after reload only.
13887
13888 2000-01-30 Richard Henderson <rth@cygnus.com>
13889
13890 * i386.c (ix86_compute_frame_size): Omit padding1 if the
13891 local frame size is zero.
13892
13893 2000-01-30 Richard Henderson <rth@cygnus.com>
13894
13895 * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
13896 * alpha.h (EPILOGUE_USES): New. Mark $26 live.
13897 * alpha.md (return): Turn into an expander.
13898 (return_internal): Don't use $26.
13899 (epilogue): Emit the return insn.
13900
13901 2000-01-30 Richard Henderson <rth@cygnus.com>
13902
13903 * alpha.md (negtf2, abstf2): Fix word order thinko.
13904 (extendsftf2): New.
13905 (trunctfsf2): Avoid intermediate rounding errors.
13906
13907 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
13908
13909 * cppfiles.c (find_position): Drop 'colp' argument, return the
13910 new line base.
13911 (read_and_prescan): Adjust to match. Don't ever manipulate
13912 line or line_base except via find_position.
13913
13914 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
13915
13916 * c-parse.in: Apply Ulrich's changes from c-parse.y.
13917 * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
13918 Regenerate.
13919
13920 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
13921
13922 * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
13923 just print "<command line>". If 'filename' is null or an
13924 empty string, print "<stdin>" for the filename.
13925 * cpplib.c (do_define): Don't print the 'location of the
13926 previous definition' message if we're still parsing the
13927 command line.
13928 (cpp_pedwarn_with_file_and_line): Always call
13929 cpp_file_line_for_message.
13930
13931 2000-01-29 Mark Mitchell <mark@codesourcery.com>
13932
13933 * flow.c (mark_regs_live_at_end): Fix typo.
13934
13935 2000-01-28 Ulrich Drepper <drepper@redhat.com>
13936
13937 * c-common.c: Adjust variable names, comments, help strings to c99.
13938 * c-lex.c: Likewise.
13939 * c-parse.y: Likewise.
13940 * c-tree.h: Likewise.
13941 * cccp.c: Likewise.
13942 * cpplib.h: Likewise.
13943 * c-decl.c: Likewise. Recognize options with names "*99" as well.
13944 * cppinit.c: Likewise.
13945
13946 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13947
13948 * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
13949 * c4x.c: Define the optab rtx values.
13950 (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
13951 (c4x_emit_libcall): Use new optab rtx values.
13952 (c4x_emit_libcall3): Likewise.
13953 (c4x_emit_libcall_mulhi): Likewise.
13954 * c4x-protos.h: Add prototypes for optab rtx values and change
13955 prototypes for above c4x_emit_libcall functions.
13956
13957 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13958
13959 * c4x.c (c4x_output_ascii): Restrict line length of output when TI
13960 syntax is used.
13961 (c4x_function_prologue): Use regnames intead of float_reg_names when
13962 TI syntax is used.
13963 (c4x_function_epilogue): Likewise.
13964 (c4x_print_operand): Likewise.
13965 * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
13966 * c4x.md (set_high): Disable for TARGET_TI.
13967
13968 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13969
13970 * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
13971 of framepointer + constant to ADDR_REGS class.
13972 * c4x.md (addqi3, addqi3_noclobber_reload): Update.
13973 * c4x.c (std_or_reg_operand): New function.
13974 * c4x-protos.h (std_or_reg_operand): Prototype it.
13975
13976 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13977
13978 * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
13979 object names as libgcc2.c.
13980 * libgcc.S: Use newly defined names.
13981
13982 Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz>
13983 * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
13984 function.
13985 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
13986 * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
13987 (FLOW_LOOP_LAST_BLOCK): Likewise.
13988
13989 2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13990
13991 * basic-block.h (struct loop): New fields 'first' and 'last'.
13992 * flow.c (flow_loops_find): Compute loop->first and loop->last.
13993 (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
13994 and loop->last to check for NOTE_INSN_LOOP_END.
13995
13996 Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com>
13997
13998 * predict.c (estimate_probability): Use the new FIRST and LAST fields
13999 of the loop descriptor rather than HEADER and LATCH. Also added
14000 missing break statements as well making some coding style modifications
14001 as suggested by Michael Hayes.
14002
14003 2000-01-28 Richard Henderson <rth@cygnus.com>
14004
14005 * flow.c (find_basic_blocks): Remove do_cleanup argument.
14006 Break out that code ...
14007 (cleanup_cfg): ... here.
14008 (commit_one_edge_insertion): Detect a return instruction being
14009 emitted to an edge. Emit a barrier following; clear fallthru.
14010 (commit_edge_insertions): Verify CFG consistency.
14011 * function.c (expand_function_start): Kill unused variable.
14012 (expand_function_end): Likewise.
14013 (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
14014 to insert the epilogue.
14015
14016 * gcse.c (gcse_main): Adjust for find_basic_blocks change.
14017 (delete_null_pointer_checks): Likewise.
14018 * output.h: Likewise.
14019 * reg-stack.c (reg_to_stack): Likewise.
14020 * toplev.c (rest_of_compilation): Likewise. Run
14021 thread_prologue_and_epilogue_insns after rebuilding the CFG.
14022
14023 2000-01-28 Richard Henderson <rth@cygnus.com>
14024
14025 * Makefile.in (flow.o): Revert 24 Jan change.
14026 * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode
14027 FUNCTION_VALUE result to DECL_RESULT's mode.
14028
14029 * haifa-sched.c (schedule_insns): Don't recompute reg info
14030 after reload.
14031
14032 2000-01-28 Zack Weinberg <zack@wolery.cumb.org>
14033
14034 * configure.in: Make --enable-cpplib the default.
14035 * configure: Regenerate.
14036 * gcc.dg/990119-1.c: No longer expected to fail.
14037
14038 2000-01-28 Bernd Schmidt <bernds@cygnus.co.uk>
14039
14040 * jump.c (jump_optimize_1): Delete an optimization that is also done
14041 by merge_blocks in flow.
14042
14043 2000-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14044
14045 * diagnostic.c (build_message_string, output_printf,
14046 line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
14047 (build_location_prefix): Fix non-literal format string.
14048
14049 2000-01-27 Richard Henderson <rth@cygnus.com>
14050
14051 * alpha.md (trunctfsf2): New.
14052
14053 2000-01-27 Andrew Hobson <ahobson@eng.mindspring.net>
14054
14055 * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
14056
14057 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
14058
14059 * cppinit.c (cpp_handle_option): Recognize C++ comments under
14060 -std=gnu89.
14061 * cpplib.c (skip_block_comment, skip_line_comment): Split code
14062 out of...
14063 (skip_comment) ... here. Permit C++ comments in system
14064 headers always. Warn about C++ comments in user code under
14065 -std=gnu89 -pedantic.
14066 (copy_comment): Use skip_comment.
14067 (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
14068 return EOF.
14069 (consider_directive_while_skipping, do_else, do_endif): Call
14070 validate_else unconditionally.
14071 (validate_else): Check CPP_PEDANTIC here. Accept non-comment
14072 text after the conditional in a system header.
14073 * cpplib.h (struct cpp_buffer): Add flag
14074 warned_cplusplus_comments.
14075
14076 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
14077
14078 * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
14079 Use unshare_all_rtl_1.
14080 (unshare_all_rtl_again): New function.
14081 (unshare_all_rtl_1): New function split out of unshare_all_rtl.
14082
14083 * function.c (purge_addressof_1): Use unshare_all_rtl_again
14084 rather than resetting the 'used' flags ourself.
14085
14086 * toplev.c (rest_of_compilation): Add current_function_decl
14087 to the unshare_all_rtl call.
14088 * tree.h: Prototype unshare_all_rtl.
14089 * rtl.h: Prototype unshare_all_rtl_again here.
14090
14091 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
14092
14093 * genoutput.c (output_prologue): Include ggc.h in generated
14094 files.
14095 * Makefile.in (insn-output.o): Depends on ggc.h.
14096
14097 2000-01-27 Ian Dall <ian@sibyl.beware.dropbear.id.au>
14098 Hans-Peter Nilsson <hp@bitrange.com>
14099
14100 * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
14101 Remove redundant include of xm-ns32k.h.
14102 * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
14103 Remove redundant include of xm-ns32k.h.
14104 * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
14105 Remove redundant include of xm-ns32k.h.
14106 * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
14107
14108 * ns32k/ns32k.h: Update comment on multiply-add instructions.
14109 (TARGET_SWITCHES): Add documentation strings.
14110 (DWARF_FRAME_REGNUM): Override default definition.
14111 (REG_CLASS_CONTENTS): Add comments.
14112 (SUBSET_P): Format to reduce line length.
14113 (SMALL_REGISTER_CLASSES): Make a run time option.
14114 (GO_IF_NONINDEXED_ADDRESS): Reformat.
14115 (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
14116 dereferencing it. Braces to avoid "ambiguous else" were misplaced.
14117 (regclass_map): fix typo in comment.
14118 * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
14119 Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
14120 (trace, reg_or_mem_operand): Delete, unused function.
14121 (calc_address_cost): Small offsets are cheaper than large ones.
14122 (expand_block_move): Generate more efficient code when bytes is a
14123 known at compile time.
14124 * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
14125 (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
14126 instead of reg_or_mem_operand.
14127
14128 * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
14129 not general_operand. Similarly use "=rm" or stricter, not "=g".
14130 For input operands, use stricter constraints than "g" if not
14131 general_operand. Similarly use stricter predicate than
14132 "general_operand" when stricter constraints than "g" are present,
14133 except for matching constraints.
14134 (movstrsi): Use "memory_operand" for operands 0 and 1.
14135 (truncsiqi2, truncsihi2, trunchiqi2): Remove.
14136 (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
14137 not reg_or_mem_operand.
14138 (udivmoddisi4): Ditto.
14139 Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
14140 Use nonimmediate_operand for operand 3, not register_operand.
14141 (udivmoddiqi4_internal): Use register_operand for operand 1, not
14142 reg_or_mem_operand.
14143
14144 2000-01-27 Fred Fish <fnf@be.com>
14145
14146 * gthr-posix.h: Fix typo; compatibily -> compatibility.
14147 * gthr-single.h: Likewise.
14148 * gthr-solaris.h: Likewise.
14149 * gthr-vxworks.h: Likewise.
14150 * gthr-win32.h: Likewise.
14151 * gthr.h: Likewise.
14152
14153 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
14154
14155 * cppinit.c: Add " (cpplib)" to end of string printed by
14156 -v / --version.
14157
14158 2000-01-27 Richard Henderson <rth@cygnus.com>
14159
14160 * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
14161 testing for a signed comparison.
14162 (alpha_emit_floatuns): New.
14163 * alpha-protos.h: Declare it.
14164 * alpha.md (floatunsdisf2, floatunsdidf2): New.
14165 (extendsfdf2): Tidy.
14166
14167 2000-01-27 Jakub Jelinek <jakub@redhat.com>
14168
14169 * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
14170 no -g option specifying debugging format, default to -gstabs+.
14171
14172 Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
14173
14174 * calls.c (special_function_p): New argument fork_or_exec.
14175 (expand_call): When profile_arc_flag is set and the function
14176 is in the fork_or_exec group, call __bb_fork_func first.
14177 * libgcc2.c, _bb module (__bb_fork_func): New function.
14178 (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
14179 output file.
14180 * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
14181 * tree.h (special_function_p): Update prototype.
14182
14183 2000-01-26 Richard Henderson <rth@cygnus.com>
14184
14185 * alpha.c (alpha_split_tfmode_pair): New.
14186 * alpha-protos.h: Declare it.
14187 * alpha.md (abstf2, negtf2): New.
14188 (movtf insn): Add input G constraint.
14189 (movtf splitter): Use alpha_split_tfmode_pair.
14190
14191 2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14192
14193 * i386/cygwin.h: PROTO -> PARAMS.
14194
14195 2000-01-26 Jakub Jelinek <jakub@redhat.com>
14196
14197 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
14198 TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
14199 using _Qp_cmp/_Q_cmp and testing the return value.
14200 (print_operand): Call reverse_condition_maybe_unordered if
14201 we are handling CCFPmode or CCFPEmode.
14202 Handle ORDERED, UN* and LTGT comparisons.
14203 * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
14204 if not TARGET_HARD_QUAD.
14205 (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
14206 bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
14207 Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
14208 Adjust gen_b* calls so that they reflect return comparison of
14209 sparc_emit_float_lib_cmp.
14210
14211 2000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
14212
14213 * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
14214 incoming operands array is large enough for one more operand.
14215 (alpha_emit_xfloating_arith): Likewise.
14216
14217 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
14218
14219 * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
14220 file with one line and no trailing newline.
14221 Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
14222 * fixinc/fixtests.c (machine_name_test): Fix fencepost error
14223 checking if the match is on the line.
14224 * fixinc/gnu-regex.c: Provide regerror not __regerror.
14225
14226 2000-01-25 Richard Henderson <rth@cygnus.com>
14227
14228 * sparc.c (output_cbranch): Fix accidental squashing of the
14229 fp branch pre-delay nop.
14230
14231 2000-01-25 Richard Henderson <rth@cygnus.com>
14232
14233 * tree.def (UNNE_EXPR): Remove.
14234 * c-typeck.c (build_binary_op): Don't handle it.
14235 * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
14236
14237 * rtl.def (UNNE): Remove.
14238 (LTGT): Add.
14239 * jump.c (reverse_condition): Update accordingly.
14240 (swap_condition): Likewise.
14241 (comparison_dominates_p): Handle unordered comparisons.
14242 (reverse_condition_maybe_unordered): New.
14243 * rtl.h (reverse_condition_maybe_unordered): Declare.
14244
14245 * sparc.c (select_cc_mode): Update for UNNE/LTGT.
14246 (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
14247 * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs.
14248 * sparc.md (bltgt): New.
14249
14250 2000-01-25 Nick Clifton <nickc@redhat.com>
14251
14252 * emit-rtl.c (emit_insn): Only check machine class insns for
14253 improper emission of a RETURN.
14254
14255 2000-01-25 Richard Henderson <rth@cygnus.com>
14256
14257 * Makefile.in (flow.o): Depend on $(EXPR_H).
14258 * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
14259 duplicate the structure of diddle_return_value for keeping regs live.
14260
14261 2000-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14262
14263 * loop.c (current_loop_info): Delete.
14264 (consec_sets_invariant_p): Add loop argument, update callers.
14265 (get_condition_for_loop): Likewise.
14266 (count_nonfixed_reads, update_giv_derive): Likewise.
14267 (simplify_giv_expr, general_induction_var): Likewise.
14268 (consec_sets_giv, recombine_givs): Likewise.
14269 (move_movables): Delete loop_start and loop_end arguments,
14270 add loop argument, and update callers.
14271 (find_mem_givs, check_final_value): Likewise.
14272 (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
14273 (loop_invariant_p): Rename from invariant_p, add loop argument, and
14274 update callers.
14275 (basic_induction_var): Add loop argument, delete loop_level argument,
14276 and update callers.
14277 * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
14278 add loop argument, and update callers.
14279 (find_splittable_regs, find_splittable_givs): Likewise.
14280 (reg_dead_after_loop, loop_find_equiv_value): Likewise.
14281 (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
14282 (biv_total_increment): Delete loop_start and loop_end arguments;
14283 update callers.
14284 (precondition_loop_p): Delete loop_start and loop_info arguments;
14285 update callers.
14286 * loop.h (get_condition_for_loop): Add loop argument.
14287 (biv_total_increment): Delete loop_start and loop_end arguments.
14288 (precondition_loop_p): Delete loop_start and loop_info arguments;
14289 add loop argument.
14290 (final_biv_value): Delete loop_start and loop_end arguments;
14291 add loop argument.
14292 (final_giv_value, back_branch_in_range_p): Likewise.
14293
14294 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
14295
14296 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
14297
14298 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
14299
14300 * Makefile.in (c-gperf.h) : Change the "See" pointer to
14301 point to the new "generated_files" doc.
14302
14303 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
14304
14305 * config/fp-bit.c (_unord_f2): Fix typo.
14306
14307 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
14308
14309 * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
14310 c-typeck.c, objc/objc-act.c: Remove all references to obstack
14311 functions obsoleted by GC, such as push_obstacks_nochange,
14312 end_temporary_allocation, savealloc, saveable_tree_cons, etc.
14313 and code which existed only to decide whether or not to call
14314 them. Remove now-unused NESTED argument from start_function;
14315 all callers changed. Do not change behavior based on ggc_p.
14316 The use of the ixp_obstack in c-iterate.c and the util_obstack
14317 in objc/objc-act.c remain; these are not obsoleted by garbage
14318 collection.
14319 * c-tree.h: Update prototype for start_function.
14320
14321 * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
14322
14323 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
14324
14325 * config/mips/mips.md (zero_extendsidi2_internal): Disable for
14326 mips16.
14327
14328 2000-01-25 Richard Henderson <rth@cygnus.com>
14329
14330 * sparc-protos.h (select_cc_mode): Declare.
14331 * sparc.c (select_cc_mode): New. Handle unordered compares.
14332 (output_cbranch): Always reverse via code change. Handle
14333 unordered compares. Factor tests and string updates.
14334 * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
14335 (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
14336 * sparc.md (bunordered, bordered): New.
14337 (bungt, bunlt, buneq, bunge, bunle): New.
14338
14339 2000-01-25 Richard Henderson <rth@cygnus.com>
14340
14341 * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
14342 * ggc-common.c (ggc_add_rtx_varray_root): New.
14343 (ggc_mark_rtx_varray): New.
14344 (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr
14345 functions down below ggc_mark_foo.
14346 * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
14347
14348 2000-01-25 Richard Henderson <rth@cygnus.com>
14349
14350 * alpha.c (secondary_reload_class): Don't allocate a secondary
14351 for integral mode memories into FLOAT_REGS. Rearrange the more
14352 complicated memory expression inward.
14353
14354 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
14355
14356 * inclhack.def: Fixes to play nicer with FreeBSD, and
14357 corrections to comments.
14358 (cxx_unready): Add select expression.
14359 (irix_sockaddr): Add bypass expression.
14360 (machine_ansi_h_va_list): New fix.
14361 (stdio_va_list): No need to edit _BSD_VA_LIST_.
14362 Split out addition of "#include <stdarg.h>" to...
14363 (stdio_stdarg_h): ... here.
14364 (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply
14365 to stdlib.h also. Do not munge _BSD_SIZE_T_.
14366 (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
14367 size_t.
14368 (ultrix_ifdef): Tighten up select expression.
14369
14370 * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of
14371 re_ct and max_mach to avoid use of shell. Make printed names
14372 match names in inclhack.def. Use static copyright date.
14373 Don't count c_test and test expressions as requiring regex_t
14374 slots. Add some commentary.
14375 * inclhack.tpl: Do not include the 'This script contains N
14376 fixup scripts' line if PROGRAM is defined. Use static
14377 copyright date.
14378
14379 2000-01-24 Jason Merrill <jason@casey.cygnus.com>
14380
14381 * dwarf2out.c: include "varray.h", not dyn-string.h.
14382 (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
14383 (addr_const_to_string, addr_to_string): Lose.
14384 (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
14385 (struct dw_val_struct): val_addr is now an rtx.
14386 (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
14387 (used_rtx_varray): New varray.
14388 (dwarf2out_init): Initialize it.
14389 (save_rtx): New fn.
14390 (mem_loc_descriptor, add_const_value_attribute): Call it instead of
14391 addr_to_string.
14392 * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
14393 sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
14394 * Makefile.in (dwarf2out.o): Update dependencies.
14395
14396 2000-01-24 Richard Henderson <rth@cygnus.com>
14397
14398 * i386.c (i386_dwarf_output_addr_const): New.
14399 * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
14400
14401 * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
14402 if defined.
14403 * dwarfout.c (output_mem_loc_descriptor): Likewise.
14404 * i386.c (i386_simplify_dwarf_addr): New.
14405 * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
14406
14407 Mon Jan 24 16:56:10 2000 Jim Wilson <wilson@cygnus.com>
14408
14409 * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
14410 TYPE_STUB_DECL is NULL.
14411
14412 2000-01-24 Richard Henderson <rth@cygnus.com>
14413
14414 * builtins.c (expand_tree_builtin): Move ...
14415 * c-common.c (expand_tree_builtin): ... here.
14416
14417 2000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14418
14419 * loop.h (LOOP_INFO): New accessor macro.
14420 * basic-block.h (struct loop): Rename field `info' to `aux'.
14421 * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
14422 (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
14423 * unroll.c (loop_iterations, unroll_loop): Likewise.
14424
14425 2000-01-24 Christopher Faylor <cgf@cygnus.com>
14426
14427 * config/i386/t-cygwin: Accomodate new winsup directory layout
14428 when searching for include files.
14429
14430 2000-01-24 Richard Henderson <rth@cygnus.com>
14431
14432 * rtl.def: Add unordered fp comparisions.
14433 * tree.def: Likewise.
14434 * tree.h: Add ISO C 9x unordered fp comparision builtins.
14435
14436 * builtins.c (expand_tree_builtin): New function.
14437 * c-typeck.c (build_function_call): Use it.
14438 (build_binary_op): Support unordered compares.
14439 * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
14440
14441 * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
14442 (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
14443 * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
14444 (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
14445 * jump.c (reverse_condition): Don't abort for UNLE etc, but
14446 return UNKNOWN.
14447 (swap_condition): Handle unordered compares.
14448 (thread_jumps): Check can_reverse before reversing.
14449 * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be
14450 reversed for FP.
14451
14452 * optabs.c (can_compare_p): New argument CODE. Verify branch or
14453 setcc is present before acking for cmp_optab. Update all callers.
14454 (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
14455 * expmed.c (do_cmp_and_jump): Update for can_compare_p.
14456 * expr.c (expand_expr): Likewise. Support unordered compares.
14457 (do_jump, do_store_flag): Likewise.
14458 * expr.h (enum libfunc_index): Add unordered compares.
14459
14460 * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
14461 (DPBIT_FUNCS): Add _unord_df.
14462 * config/fp-bit.c (_unord_f2): New.
14463 * fp-test.c (main): Try unordered compare builtins.
14464
14465 * alpha-protos.h (alpha_fp_comparison_operator): Declare.
14466 * alpha.c (alpha_comparison_operator): Check mode properly.
14467 (alpha_swapped_comparison_operator): Likewise.
14468 (signed_comparison_operator): Likewise.
14469 (alpha_fp_comparison_operator): New.
14470 (alpha_emit_conditional_branch): Handle unordered compares.
14471 * alpha.h (PREDICATE_CODES): Update.
14472 * alpha.md (fp compares): Use alpha_fp_comparison_operator.
14473 (bunordered, bordered): New.
14474
14475 2000-01-24 Richard Henderson <rth@cygnus.com>
14476
14477 * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
14478 * alpha.md (movtf): New expander, insn, and splitter.
14479
14480 Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz>
14481
14482 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
14483 dead registers.
14484
14485 Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz>
14486
14487 * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
14488 (FIXED_REGISTERS, CALL_USED_REGISTERS,
14489 REG_ALLOC_ORDER): Add frame pointer
14490 (FRAME_POINTER_REGNUM): Set to 20
14491 (HARD_FRAME_POINTER_REGNUM): New macro.
14492 (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
14493 to HARD_FRAME_POINTER.
14494 (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
14495 (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
14496 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
14497 (HI_REGISTER_NAMES): Add "frame".
14498 (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
14499 (debug_reg): Handle FRAME_POINTER_REGNUM.
14500 (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
14501 GENERAL_REGS and INDEX_REGS.
14502 * i386.c (SAVED_REGS_FIRST): new macro.
14503 (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
14504 (ix86_decompose_address, memory_address_length): Likewise.
14505 (regclass_map): Add frame pointer.
14506 (call_insn_operand): Handle frame_pointer_rtx.
14507 (reg_no_sp_operand): Likewise.
14508 (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
14509 (print_operand, legitimize_pic_address): Fix formating.
14510 (ix86_compute_frame_size): Make static, update prototype, new
14511 parameters padding1, padding2, use ix86_nsaved_regs, use
14512 stack_alignment_needed.
14513 (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
14514 to HARD_FRAME_POINTER_REGNUM conversions.
14515 (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
14516 (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
14517 (print_reg): Abort on FRAME_POINTER_REGNUM
14518
14519 Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz>
14520
14521 * i386.h (PREDICATE_CODES): Add aligned_operand.
14522 * i386.c (aligned_operand): New function.
14523 (ix86_aligned_p): Kill.
14524 * i386.md (movhi_1): Emit mov for aligned operands.
14525 (promoting peep2s): Use aligned_operand.
14526
14527 2000-01-23 Zack Weinberg <zack@wolery.cumb.org>
14528
14529 * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
14530 expression to allow underscores in macro names.
14531 (fix_char_macro_defines): Increment scanning pointer.
14532
14533 2000-01-23 Richard Henderson <rth@cygnus.com>
14534
14535 * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
14536 * alpha/osf5.h: New file.
14537 * configure.in (alpha-*-osf5): Add it to tm_file.
14538
14539 * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
14540
14541 * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
14542 (alpha_emit_xfloating_cvt, function_arg): Declare.
14543 * alpha.c (alpha_emit_conditional_branch): Call
14544 alpha_emit_xfloating_compare for TFmode compares.
14545 (alpha_lookup_xfloating_lib_func): New.
14546 (alpha_compute_xfloating_mode_arg): New.
14547 (alpha_emit_xfloating_libcall): New.
14548 (alpha_emit_xfloating_arith): New.
14549 (alpha_emit_xfloating_compare): New.
14550 (alpha_emit_xfloating_cvt): New.
14551 (print_operand): Add default abort case.
14552 (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
14553 * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
14554 (BIGGEST_ALIGNMENT): Increase to 128 bits.
14555 (RETURN_IN_MEMORY): True for TF/TCmode.
14556 (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
14557 (FUNCTION_ARG): Move to function_arg.
14558 (FUNCTION_ARG_PASS_BY_REFERENCE): New.
14559 (ASM_OUTPUT_LONG_DOUBLE): New.
14560 (ASM_OUTPUT_DOUBLE): Always output bits.
14561 * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
14562 (fix_trunctfdi2, floatditf2, floatunsditf2): New.
14563 (extenddftf2, trunctfdf2): New.
14564
14565 2000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
14566
14567 * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
14568 * config/sparc/sol2.h: ... here.
14569
14570 2000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14571
14572 * basic-block.h (struct loops): New field `levels'.
14573 * flow.c (flow_loops_level_compute): Traverse all outer loops.
14574 (flow_loop_level_compute): Initialise level to 1.
14575 (flow_loops_find): Set loops->levels.
14576 (flow_loops_dump): Print loops->levels.
14577
14578 2000-01-23 Richard Henderson <rth@cygnus.com>
14579
14580 * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
14581 (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
14582
14583 2000-01-23 Richard Henderson <rth@cygnus.com>
14584
14585 * i386.c (dbx_register_map, svr4_dbx_register_map): New.
14586 * i386.h (DBX_REGISTER_NUMBER): Use them.
14587 * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
14588 * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
14589 * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
14590 * i386/sequent.h: Kill incorrect comment.
14591
14592 2000-01-23 Mark Mitchell <mark@codesourcery.com>
14593
14594 * ggc-page.c (struct page_entry): Make `context_depth' an
14595 `unsigned short'.
14596 (struct globals): Likewise.
14597
14598 2000-01-23 Clinton Popetz <cpopetz@cygnus.com>
14599
14600 * loop.c (check_dbra_loop): When checking a loop for
14601 reversability, check the source of any stores to ensure
14602 they don't depend on an initial value.
14603
14604 2000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14605
14606 * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
14607
14608 2000-01-22 Zack Weinberg <zack@wolery.cumb.org>
14609
14610 * fixinc/fixincl.c: Move declarations of 'pz_fname' and
14611 'pz_scan' into scope of entire function. Only affects
14612 compiles with -DDEBUG.
14613
14614 2000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
14615
14616 * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
14617 section naming to that prior to 2000-01-07 patch.
14618 * config/mips/elf.h (UNIQUE_SECTION): Ditto.
14619 * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
14620 * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
14621 * config/i386/interix.c (UNIQUE_SECTION): Ditto.
14622 * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
14623
14624 2000-01-22 Bernd Schmidt <bernds@cygnus.co.uk>
14625
14626 * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
14627 constant.
14628
14629 2000-01-21 Jim Wilson <wilson@cygnus.com>
14630
14631 * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
14632 * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
14633
14634 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
14635
14636 * cpphash.c (change_newlines): Delete function.
14637 (struct argdata): Delete 'newlines' and 'use_count' fields.
14638 (macroexpand): Remove code referencing those fields.
14639
14640 2000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14641
14642 * loop.c (loops_info): New variable.
14643 (loop_optimize): Allocate loops->array and free it on exit.
14644 Allocate memory for loops_info and assign to each loop,
14645 replacing alloca.
14646 (find_and_verify_loops): Do not allocate loops->array.
14647
14648 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
14649
14650 * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
14651
14652 2000-01-21 Jakub Jelinek <jakub@redhat.com>
14653
14654 * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
14655 pseudos if expanded after first flow.
14656 (movdi_pic_label_ref): Likewise.
14657
14658 2000-01-20 Richard Henderson <rth@cygnus.com>
14659
14660 * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
14661
14662 2000-01-20 Zack Weinberg <zack@wolery.cumb.org>
14663
14664 * Makefile.in (fixinc.sh): Depend on specs.
14665 * fixinc/Makefile.in: Add rule to create machname.h.
14666 (fixlib.o): Depend on machname.h.
14667 * fixinc/fixtests.c (machine_name): New test.
14668 * fixinc/fixfixes.c (machine_name): New fix.
14669 * fixinc/fixlib.c (mn_get_regexps): New helper function for
14670 the machine_name test and fix.
14671 * fixinc/fixlib.h: Prototype it.
14672 * fixinc/inclhack.def (machine_name): Use the C test and fix.
14673 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
14674
14675 * gcc.c (do_spec_1) [case P]: Take care not to create
14676 identifiers with three leading or trailing underscores.
14677
14678 * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
14679 (fixincl): Don't specify libraries twice on link line.
14680 (gnu-regex.o): Remove special rule.
14681 * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
14682 defined by config.h. Do not define _REGEX_RE_COMP.
14683 (regcomp): Allocate and initialize a fastmap.
14684 * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
14685
14686 2000-01-20 Brad Lucier <lucier@math.purdue.edu>
14687
14688 * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
14689
14690 2000-01-19 Richard Henderson <rth@cygnus.com>
14691
14692 * flow.c (propagate_block): Replace FIRST, LAST and BNUM
14693 arguments with BB. Update all callers. Tidy line wrapping.
14694
14695 2000-01-19 Clinton Popetz <cpopetz@cygnus.com>
14696
14697 * emit-rtl.c (try_split): Return last_insn if we split the
14698 last_insn.
14699
14700 Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz>
14701
14702 * i386-protos.h (ix86_compute_frame_size): Remove prototype.
14703 (ix86_initial_elimination_offset): Declare.
14704 * i386.c (ix86_nsaved_regs): Break out from ...
14705 (ix86_can_use_return_insn_p): ... here.
14706 (ix86_emit_save_regs): Break out from ...
14707 (ix86_expand_prologue): ... here.
14708 (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
14709 out from ...
14710 (ix86_expand_epilogue): ... here.
14711 (ix86_compute_frame_size): Make static, add prototype.
14712 (ix86_initial_elimination_offset): Break out from ...
14713 * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
14714
14715 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14716
14717 * recog.h (OUT_FCN): Delete.
14718
14719 * vax.md: Call `get_insn_template' instead of OUT_FCN.
14720
14721 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14722
14723 * cppalloc.c: PROTO -> PARAMS.
14724 * cpperror.c: Likewise.
14725 * cppfiles.c: Likewise.
14726 * cpplib.c: Likewise.
14727 * cpplib.h: Likewise.
14728
14729 * config/arm/arm-protos.h: PROTO -> PARAMS.
14730 * config/arm/arm.c: Likewise.
14731 * config/c4x/c4x.c: Likewise.
14732 * config/fr30/fr30-protos.h: Likewise.
14733 * config/nextstep.c: Likewise.
14734 * config/pa/pa.c: Likewise.
14735 * config/pj/pj.c: Likewise.
14736 * config/rs6000/rs6000.c: Likewise.
14737 * config/v850/v850-protos.h: Likewise.
14738 * config/v850/v850.c: Likewise.
14739
14740 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14741
14742 * i370-protos.h: New file.
14743
14744 * i370.c: Include tm_p.h. Fix compile time warnings.
14745
14746 * i370.h: Move prototypes to i370-protos.h. Fix compile time
14747 warnings.
14748
14749 * i370.md: Likewise.
14750
14751 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14752
14753 * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
14754 (target_isinf, target_isnan, eisnan): Mark parameter with
14755 ATTRIBUTE_UNUSED.
14756 (eiisinf): Wrap in INFINITY.
14757 (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
14758 (ibmtoe): Remove unused variable `rndsav'.
14759
14760 Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
14761
14762 * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
14763 (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
14764
14765 2000-01-19 Zack Weinberg <zack@wolery.cumb.org>
14766
14767 * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
14768 * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
14769 (fix_char_macro_defines, fix_char_macro_uses): New functions.
14770
14771 * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
14772 Recognize Emacs mode markers also.
14773 * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
14774 C++ comments in C++ headers. Call is_cxx_header only if
14775 necessary.
14776
14777 * fixinc/inclhack.def (avoid_bool): Add select for the problem and
14778 bypass for ncurses.
14779 (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
14780 (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
14781 ... these, which use the new C fixes.
14782 (math_exception): Escape literal '+' in bypass expression.
14783
14784 * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
14785 Regenerate.
14786
14787 2000-01-19 Geoff Keating <geoffk@cygnus.com>
14788
14789 * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
14790 inside the MEM.
14791
14792 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14793
14794 * loop.c (loop_optimize): Allocate loop_info structure for each loop
14795 prior to calling scan_loop.
14796
14797 Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
14798
14799 * sh.c (find_barrier, gen_block_redirect): Fix indentation.
14800 (split_branches, calc_live_regs): Likewise.
14801
14802 Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
14803
14804 * sh.md (fpu_single, fp_mode): New attributes.
14805
14806 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14807
14808 * loop.c (current_loop_info): Renamed from loop_info_data
14809 and changed to a pointer.
14810 (loop_optimize): Allocate loop_info structure for each loop
14811 and initialise to zero.
14812 (scan_loop): Set current_loop_info.
14813
14814 * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
14815 on iteration_var.
14816
14817 2000-01-19 Richard Henderson <rth@cygnus.com>
14818
14819 * stupid.c: Die die die.
14820 * Makefile.in (OBJS): Remove stupid.o.
14821 (stupid.o): Likewise.
14822
14823 * except.c (emit_eh_context): Don't emit USEs for stupid.
14824 * explow.c (probe_stack_range): Likewise.
14825 * flags.h (obey_regdecls): Remove.
14826 * flow.c (find_basic_blocks): Don't run try_merge_blocks
14827 when not optimizing.
14828 (life_analysis): Limit data collection when not optimizing.
14829 (mark_regs_live_at_end): Always mark the return value registers.
14830 (mark_used_regs): Remove dummy RETURN case.
14831 (print_rtl_with_bb): Don't consult obey_regdecls.
14832 * function.c (use_variable, use_variable_after): Remove.
14833 (assign_parms): Consult optimize not obey_regdecls.
14834 (expand_function_start): Don't emit USEs for stupid.
14835 (expand_function_end): Likewise.
14836 * global.c (build_insn_chain): Export.
14837 * integrate.c (expand_inline_function): Kill return-value USE
14838 handling code.
14839 * jump.c (jump_optimize_1): Do simple jump optimizations and
14840 dead code elimination.
14841 (calculate_can_reach_end): Remove check_deleted argument.
14842 (delete_insn): Patch out insns even when not optimizing.
14843 * local-alloc.c (block_alloc): Don't do tying when not optimizing.
14844 * rtl.h (use_variable, use_variable_after): Remove declarations.
14845 (build_insn_chain): Declare.
14846 * stmt.c (expand_value_return): Don't emit USEs for stupid.
14847 (expand_end_bindings): Likewise.
14848 (expand_decl): Likewise. Consult optimize not obey_regdecls.
14849 * toplev.c (obey_regdecls): Remove.
14850 (rest_of_compilation): Don't set it. Kill stupid in favour of
14851 flow1, local-alloc, and reload.
14852 (main): Don't set obey_regdecls.
14853
14854 * config/nextstep.c (handle_pragma): Likewise.
14855
14856 * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
14857
14858 * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
14859
14860 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14861
14862 * alpha-protos.h: PROTO -> PARAMS.
14863 * alpha.c: Likewise.
14864 * elf.h: Likewise.
14865 * h8300.c: Likewise.
14866 * i386-protos.h: Likewise.
14867 * i386.c: Likewise.
14868 * m32r-protos.h: Likewise.
14869 * m32r.c: Likewise.
14870 * mips.c: Likewise.
14871 * mips.md: Likewise.
14872 * gmon-sol2.c: Likewise.
14873 * sparc.c: Likewise.
14874
14875 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14876
14877 * ns32k-protos.h: New file.
14878
14879 * ns32k.c: Fix compile time warnings.
14880
14881 * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time
14882 warnings.
14883
14884 * ns32k.md: Likewise.
14885
14886 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14887
14888 * vax-protos.h: New file.
14889
14890 * vax.c: Fix compile time warnings.
14891
14892 * vax.h: Move prototypes to vax-protos.h. Fix compile time
14893 warnings.
14894
14895 * vax.md: Likewise.
14896
14897 * vaxv.md: Likewise.
14898
14899 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14900
14901 * romp-protos.h: New file.
14902
14903 * romp.c: Fix compile time warnings.
14904
14905 * romp.h: Move prototypes to romp-protos.h. Fix compile time
14906 warnings.
14907
14908 * romp.md: Likewise.
14909
14910 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14911
14912 * we32k-protos.h: New file.
14913
14914 * we32k.c: Fix compile time warnings.
14915
14916 * we32k.h: Move prototypes to we32k-protos.h. Fix compile time
14917 warnings.
14918
14919 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14920
14921 * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
14922
14923 * except.c (eh_regs): Likewise.
14924
14925 * final.c (output_operand): Likewise.
14926
14927 * fold-const.c (target_isinf, target_isnan): Likewise.
14928
14929 Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
14930
14931 * i386.h (BIGGEST_ALIGNMENT): Set to 128.
14932 (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
14933
14934 * i386.md (memstr): Do not use rep stosb for counts divisible by 4
14935 when optimize_size.
14936 (clrstrsi): Rewrite.
14937 (strsethi, strsetqi): New expanders.
14938 (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
14939 (cmpstrsi): Emit compare insn before cmpstrsi_1
14940 (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
14941 (strlensi_1): Likewise.
14942 (cmpstrsi_1): Likewise; do not output compare.
14943 (strlen expander): Do not unroll when optimizing for size.
14944 (*subsi3_carry): Rename to subsi3_carry
14945 (addqi3_cc): New pattern.
14946 * i386.h (processor_costs): Add move_ratio field.
14947 (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
14948 * i386.c (*_cost): Set move_ratio.
14949 (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
14950 (x86_expand_strlensi_1): Rewrite the main loop.
14951
14952 2000-01-17 Richard Henderson <rth@cygnus.com>
14953
14954 * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
14955 * cse.c (find_comparison_args, fold_rtx): Likewise.
14956 * integrate.c (subst_constants): Likewise.
14957 * loop.c (get_condition): Likewise.
14958
14959 * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
14960
14961 * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
14962
14963 2000-01-18 Martin v. Löwis <loewis@informatik.hu-berlin.de>
14964
14965 * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
14966 (RESTORE_WARN_FLAGS): Unpack it.
14967 Change semantic type of extension to ttype.
14968 * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
14969 * c-parse.y, c-parse.c, objc/objc-parse.y,
14970 objc/objc-parse.c: Regenerate.
14971
14972 2000-01-17 Zack Weinberg <zack@wolery.cumb.org>
14973
14974 * fixinc/fixlib.c: Add copyright notice.
14975 (compile_re): New function.
14976 * fixinc/fixlib.h: Prototype compile_re.
14977
14978 * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
14979 Use compile_re to compile regular expressions.
14980
14981 * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
14982 where the pattern matched.
14983
14984 * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
14985 use 'replace'.
14986 (ultrix_ansi_compat): Likewise.
14987 (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
14988 add egrep test.
14989 (interactv_add2, interactv_add3): Delete.
14990 (x11_sprintf): Don't use filename glob.
14991 * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
14992 Regenerate.
14993
14994 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14995
14996 * print-rtl.c: PROTO -> PARAMS.
14997 * real.c: Likewise.
14998 * reg-stack.c: Likewise.
14999 * resource.c: Likewise.
15000 * sdbout.h: Likewise.
15001 * simplify-rtx.c: Likewise.
15002 * stor-layout.c: Likewise.
15003 * stupid.c: Likewise.
15004 * xcoffout.c: Likewise.
15005 * xcoffout.h: Likewise.
15006
15007 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15008
15009 * toplev.c: PROTO -> PARAMS.
15010 * toplev.h: Likewise.
15011 * tree.c: Likewise.
15012 * tree.h: Likewise.
15013 * unroll.c: Likewise.
15014 * varasm.c: Likewise.
15015 * varray.c: Likewise.
15016 * varray.h: Likewise.
15017
15018 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15019
15020 * reload.c: PROTO -> PARAMS.
15021 * reload.h: Likewise.
15022 * reload1.c: Likewise.
15023 * reorg.c: Likewise.
15024 * resource.h: Likewise.
15025 * rtl.c: Likewise.
15026 * rtl.h: Likewise.
15027 * rtlanal.c: Likewise.
15028 * sbitmap.h: Likewise.
15029 * sdbout.c: Likewise.
15030 * stack.h: Likewise.
15031 * stmt.c: Likewise.
15032 * system.h: Likewise.
15033
15034 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15035
15036 * machmode.h: PROTO -> PARAMS.
15037 * mbchar.h: Likewise.
15038 * mips-tdump.c: Likewise.
15039 * mips-tfile.c: Likewise.
15040 * optabs.c: Likewise.
15041 * output.h: Likewise.
15042 * prefix.c: Likewise.
15043 * profile.c: Likewise.
15044 * protoize.c: Likewise.
15045 * real.h: Likewise.
15046 * recog.c: Likewise.
15047 * recog.h: Likewise.
15048 * regclass.c: Likewise.
15049 * regmove.c: Likewise.
15050 * regs.h: Likewise.
15051
15052 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15053
15054 * ggc-common.c: PROTO -> PARAMS.
15055 * ggc-page.c: Likewise.
15056 * ggc-simple.c: Likewise.
15057 * ggc.h: Likewise.
15058 * global.c: Likewise.
15059 * graph.c: Likewise.
15060 * gthr-win32.h: Likewise.
15061 * haifa-sched.c: Likewise.
15062 * halfpic.h: Likewise.
15063 * integrate.c: Likewise.
15064 * integrate.h: Likewise.
15065 * jump.c: Likewise.
15066 * lcm.c: Likewise.
15067 * local-alloc.c: Likewise.
15068 * loop.c: Likewise.
15069 * loop.h: Likewise.
15070
15071 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15072
15073 * genattr.c: PROTO -> PARAMS.
15074 * genattrtab.c: Likewise.
15075 * gencheck.c: Likewise.
15076 * gencodes.c: Likewise.
15077 * genconfig.c: Likewise.
15078 * genemit.c: Likewise.
15079 * genextract.c: Likewise.
15080 * genflags.c: Likewise.
15081 * gengenrtl.c: Likewise.
15082 * genopinit.c: Likewise.
15083 * genoutput.c: Likewise.
15084 * genpeep.c: Likewise.
15085 * genrecog.c: Likewise.
15086
15087 2000-01-16 Mark Mitchell <mark@codesourcery.com>
15088
15089 * tree.h (BINFO_VPTR_FIELD): Augment documentation.
15090
15091 2000-01-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
15092
15093 * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
15094 * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
15095 * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
15096 * configure, config.in: Rebuilt.
15097
15098 2000-01-16 Zack Weinberg <zack@wolery.cumb.org>
15099
15100 * config/i386/i386.md: Add peephole to merge successive stack
15101 adjusts.
15102
15103 Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com)
15104
15105 * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
15106 instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK
15107 when walking backwards to find all the parameter loads when
15108 the basic block ends in a call.
15109
15110 2000-01-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15111
15112 * loop.c (this_loop_info): Delete.
15113 (uid_loop): Add in place of uid_loop_num. All uses updated.
15114 (loop_number_exit_count): Delete and replace with entry in loop
15115 structure. All uses updated.
15116 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
15117 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
15118 (loop_outer_loop): Likewise.
15119 (loop_invalid, loop_number_exit_labels): Likewise.
15120 (loop_used_count_register): Delete and replace with entry in
15121 loop_info structure.
15122 (find_and_verify_loops): Add loops argument.
15123 (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
15124 loop_end, etc. arguments with loop structure pointer. All callers
15125 changed.
15126 (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
15127 (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
15128 (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
15129 (insert_bct): Likewise.
15130 (basic_induction_var): New argument level.
15131 * loop.h (struct loop_info): Delete fields num, loops_enclosed,
15132 vtop, and cont. Add used_count_register.
15133 (uid_loop): Delete declaration.
15134 (loop_number_exit_count): Likewise.
15135 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
15136 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
15137 (loop_outer_loop, loop_used_count_register): Likewise.
15138 (loop_invalid, loop_number_exit_labels): Likewise.
15139 (unroll_loop): Replace loop_start and loop_end arguments
15140 with loop structure pointer.
15141 (loop_precondition_p, loop_iterations): Likewise.
15142 Include basic-block.h.
15143 * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
15144 with loop structure pointer.
15145 (loop_precondition_p, loop_iterations): Likewise.
15146 * basic-block.h (struct loop): New entries vtop, cont,
15147 cont_dominator, start, end, top, scan_start, exit_labels,
15148 exit_count.
15149 * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
15150
15151 2000-01-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
15152
15153 * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
15154
15155 2000-01-14 Nathan Sidwell <sidwell@codesourcery.com>
15156
15157 * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
15158
15159 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15160
15161 * pdp11-protos.h: New file.
15162
15163 * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile
15164 time warnings.
15165
15166 * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time
15167 warnings.
15168
15169 * pdp11.md: Likewise.
15170
15171 * 2bsd.h: Likewise.
15172
15173 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15174
15175 * mn10300-protos.h: New file.
15176
15177 * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile
15178 time warnings.
15179
15180 * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time
15181 warnings.
15182
15183 * mn10300.md: Likewise.
15184
15185 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15186
15187 * mn10200-protos.h: New file.
15188
15189 * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile
15190 time warnings.
15191
15192 * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time
15193 warnings.
15194
15195 * mn10200.md: Likewise.
15196
15197 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15198
15199 * h8300-protos.h: New file.
15200
15201 * h8300.c: Include tm_p.h. Add static prototypes. Fix compile
15202 time warnings.
15203
15204 * h8300.h: Move prototypes to h8300-protos.h. Fix compile time
15205 warnings.
15206
15207 * h8300.md: Likewise.
15208
15209 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15210
15211 * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
15212 (asm_emit_uninitialised): Likewise.
15213
15214 2000-01-13 Gavin Romig-Koch <gavin@cygnus.com>
15215
15216 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
15217 * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
15218
15219 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
15220
15221 * config/mips/mips.c (override_options): Don't turn on extra
15222 alignment for mips16.
15223
15224 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
15225
15226 * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
15227 eabi, and make sure queued POSTINCREMENT rtl is emitted at
15228 the right point.
15229
15230 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
15231
15232 * builtins.c (PAD_VARARGS_DOWN): Define.
15233 (std_expand_builtin_va_arg): Use the above macro.
15234 * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
15235 * tm.texi (Register Arguments): Document the above macro.
15236
15237 2000-01-14 Nick Clifton <nickc@cygnus.com>
15238
15239 * emit-rtl.c (emit_insn): If checking is enabled, make sure
15240 that this function has not been used to emit a jump
15241 instruction.
15242
15243 * jump.c (return_jump_1): Cope with being passed a null rtx.
15244
15245 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15246
15247 * eh-common.h: PROTO -> PARAMS.
15248 * emit-rtl.c: Likewise.
15249 * errors.c: Likewise.
15250 * errors.h: Likewise.
15251 * except.c: Likewise.
15252 * except.h: Likewise.
15253 * explow.c: Likewise.
15254 * expmed.c: Likewise.
15255 * expr.c: Likewise.
15256 * expr.h: Likewise.
15257 * final.c: Likewise.
15258 * fix-header.c: Likewise.
15259 * flow.c: Likewise.
15260 * fold-const.c: Likewise.
15261 * function.c: Likewise.
15262 * function.h: Likewise.
15263 * gcc.c: Likewise.
15264 * gcov-io.h: Likewise.
15265 * gcov.c: Likewise.
15266 * gcse.c: Likewise.
15267
15268 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15269
15270 * sh-protos.h: New file.
15271
15272 * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
15273 Add static prototypes. Fix compile time warnings.
15274
15275 * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings.
15276 * sh.md: Likewise.
15277 * elf.h: Likewise.
15278
15279 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15280
15281 * arc-protos.h: New file.
15282
15283 * arc.c: Include tm_p.h. Add static prototypes. Fix compile
15284 time warnings.
15285
15286 * arc.h: Move prototypes to arc-protos.h. Fix compile time
15287 warnings.
15288
15289 * arc.md: Likewise.
15290
15291 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15292
15293 * dsp16xx-protos.h: New file.
15294
15295 * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile
15296 time warnings.
15297
15298 * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time
15299 warnings.
15300
15301 * dsp16xx.md: Likewise.
15302
15303 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15304
15305 * convex-protos.h: New file.
15306
15307 * convex.c: Include tm_p.h. Add static prototypes. Fix compile
15308 time warnings.
15309
15310 * convex.h: Move prototypes to convex-protos.h. Fix compile time
15311 warnings.
15312
15313 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15314
15315 * elxsi-protos.h: New file.
15316
15317 * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile
15318 time warnings.
15319
15320 * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time
15321 warnings.
15322
15323 * elxsi.md: Likewise.
15324
15325 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
15326
15327 * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
15328 case for moving from HI/LO/HI_LO_REG. This makes the behavior
15329 match the comment for MIPS16.
15330
15331 Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com)
15332
15333 * flow.c (split_edge): Do not call set_block_for_insn if we
15334 do not have a basic_block_for_insn structure.
15335
15336 * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
15337 and destination functions are 32bit aligned within the trampoline.
15338 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
15339 (TRAMPOLINE_ALIGNMENT): Define.
15340
15341 * cse.c (cse_insn): When changing (set (pc) (reg)) to
15342 (set (pc) (label_ref)), verify the change creates a valid insn.
15343
15344 * fr30.c (call_operand): Tighten and rework to match rules for
15345 call RTL expressions.
15346 * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
15347 * fr30.md (call patterns): Improve constraints.
15348
15349 Thu Jan 13 23:44:03 2000 Richard Henderson <rth@cygnus.com>
15350
15351 * fr30.c (fr30_expand_epilogue): Revert last change.
15352 Use emit_jump_insn for the return insn.
15353
15354 Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com>
15355 Stan Cox <scox@cygnus.com>
15356
15357 * predict.c: New file. Preliminary infrastructure work for static
15358 branch prediction and basic block reordering.
15359 * basic-block.h: Add prototype for estimate_probability.
15360 * Makefile.in: Add rules for predict.o.
15361
15362 2000-01-13 Jason Merrill <jason@yorick.cygnus.com>
15363
15364 * fixincludes (va_list): Use __not_va_list__ for the dummy.
15365 * fixinc/*: Likewise.
15366
15367 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15368
15369 * cccp.c: PROTO -> PARAMS.
15370 * cexp.y: Likewise.
15371 * collect2.c: Likewise.
15372 * combine.c: Likewise.
15373 * convert.h: Likewise.
15374 * cse.c: Likewise.
15375 * dbxout.c: Likewise.
15376 * dbxout.h: Likewise.
15377 * diagnostic.c: Likewise.
15378 * doprint.c: Likewise.
15379 * dwarf2out.c: Likewise.
15380 * dwarf2out.h: Likewise.
15381 * dwarfout.c: Likewise.
15382 * dwarfout.h: Likewise.
15383 * dyn-string.h: Likewise.
15384
15385 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15386
15387 * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
15388 macro conditionals guarding use.
15389
15390 * dwarf2out.c: Include "tm_p.h".
15391
15392 * function.c (locate_and_pad_parm): Mark parameter with
15393 ATTRIBUTE_UNUSED.
15394 (expand_function_end): Likewise for variable `context'.
15395
15396 * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
15397
15398 2000-01-13 Nick Clifton <nickc@cygnus.com>
15399
15400 * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
15401 register to prevent compile time warnings.
15402
15403 2000-01-13 Zack Weinberg <zack@wolery.cumb.org>
15404
15405 * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
15406 to avoid -Wtraditional warning.
15407
15408 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15409
15410 * 1750a-protos.h: New file.
15411
15412 * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile
15413 time warnings.
15414
15415 * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time
15416 warnings.
15417
15418 * 1750a.md: Likewise.
15419
15420 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15421
15422 * a29k-protos.h: New file.
15423
15424 * a29k.c: Include tm_p.h. Add static prototypes. Fix compile
15425 time warnings.
15426
15427 * a29k.h: Move prototypes to a29k-protos.h. Fix compile time
15428 warnings.
15429
15430 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15431
15432 * clipper-protos.h: New file.
15433
15434 * clipper.c: Include tm_p.h. Add static prototypes. Fix compile
15435 time warnings.
15436
15437 * clipper.h: Move prototypes to clipper-protos.h. Fix compile time
15438 warnings.
15439
15440 Thu Jan 13 16:03:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
15441
15442 * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
15443
15444 2000-01-13 Nathan Sidwell <sidwell@codesourcery.com>
15445
15446 * configure.in (--enable-new-gxx-abi): New option.
15447 * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
15448 * Makefile.in (GXX_ABI_FLAG): New variable.
15449 * configure: Regenerate.
15450
15451 2000-01-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15452
15453 * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
15454 * tm.texi (FORCE_STRUCT_BLK): Document.
15455 * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
15456
15457 Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson <hp@axis.com>
15458
15459 * config/ns32k/ns32k.md: Revert Jan 9 change.
15460
15461 * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
15462 to a mode-test, if the predicate is address_operand.
15463
15464 Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com)
15465
15466 * combine.c (if_then_else_cond): Be careful about what kinds
15467 of RTL expressions are passed to operand_subword.
15468
15469 * flow.c (split_edge): If we have to insert a new jump, make
15470 sure to associate it with a basic block.
15471
15472 * flow.c (commit_one_edge_insertion): A block with one successor
15473 can end in a JUMP_INSN that is not a simplejump.
15474
15475 2000-01-12 Robert Lipe <robertl@sco.com>
15476
15477 * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
15478 (BUILD_VA_LIST_TYPE): Define.
15479 (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
15480 with crtstuff.c.
15481
15482 2000-01-12 Jason Merrill <jason@casey.cygnus.com>
15483
15484 * cccp.c (do_pragma): Add cast to (char *).
15485
15486 2000-01-12 Richard Henderson <rth@cygnus.com>
15487 Fred Fish <fnf@be.com>
15488 Jason Merrill <jason@cygnus.com>
15489
15490 * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
15491 * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
15492 * i386/beos-elf.h, i386/beos-pe.h: New files.
15493
15494 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
15495 * cross-make (SYSTEM_HEADER_DIR): Define using
15496 CROSS_SYSTEM_HEADER_DIR.
15497
15498 * gcc.c (LIBRARY_PATH_ENV): Provide default.
15499 (process_command): Use it.
15500 (main): Likewise. Kill trailing = from env vars.
15501 (build_search_list): Put it back.
15502 * collect2.c (main): Use LIBRARY_PATH_ENV.
15503
15504 * configure.in (GCC_NEED_DECLARATIONS): Add environ.
15505 * toplev.c: Use NEED_DECLARATION_ENVIRON.
15506
15507 * tm.texi (Frame Layout): Document SMALL_STACK.
15508 * c-common.c (c_common_nodes_and_builtins): Check it.
15509
15510 * system.h: Undef alloca after including glibc's <stdlib.h>,
15511 if USE_C_ALLOCA is defined.
15512
15513 * gcc.c (set_input): New fn.
15514 (main): After all input files are compiled, reset the input file
15515 info to the first.
15516
15517 * aclocal.m4 (rindex, index): If already defined, don't attempt
15518 to redefine.
15519
15520 * ginclude/varargs.h: (__va_list__): Define ifndef.
15521 * ginclude/stdarg.h: Likewise.
15522
15523 * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
15524 instead of unsigned char.
15525
15526 * hash.h (true, false, boolean): Undef before enum.
15527
15528 * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
15529 proper type of "HOST_WIDE_INT *", rather than their natural type of
15530 "unsigned HOST_WIDE_INT *".
15531
15532 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15533
15534 * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
15535
15536 * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
15537
15538 * regclass.c (choose_hard_reg_mode): Likewise.
15539
15540 * reload.c (find_valid_class, strict_memory_address_p): Likewise.
15541
15542 * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
15543
15544 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15545
15546 * c-common.c: PROTO -> PARAMS.
15547 * c-common.h: Likewise.
15548 * c-decl.c: Likewise.
15549 * c-iterate.c: Likewise.
15550 * c-lang.c: Likewise.
15551 * c-lex.c: Likewise.
15552 * c-lex.h: Likewise.
15553 * c-parse.in: Likewise.
15554 * c-pragma.c: Likewise.
15555 * c-pragma.h: Likewise.
15556 * c-tree.h: Likewise.
15557 * c-typeck.c: Likewise.
15558 * objc/objc-act.c: Likewise.
15559 * objc/objc-act.h: Likewise.
15560
15561 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15562
15563 * m88k-protos.h: New file.
15564
15565 * m88k.c: Include tm_p.h. Add static prototypes. Fix compile
15566 time warnings.
15567
15568 * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings.
15569
15570 * m88k.md: Likewise.
15571
15572 * tekXD88.h: Likewise.
15573
15574 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15575
15576 * m68k-protos.h: New file.
15577
15578 * m68k.c: Include tm_p.h. Add static prototypes. Fix compile
15579 time warnings.
15580
15581 * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings.
15582
15583 * mot3300.h: Likewise.
15584
15585 2000-01-12 Richard Earnshaw <rearnsha@arm.com>
15586
15587 * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
15588 extract_bitlst.
15589 (extract_bitlist): Declare bitlen.
15590
15591 2000-01-12 Zack Weinberg <zack@wolery.cumb.org
15592
15593 * cccp.c: Accept and ignore -lang-fortran.
15594
15595 * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
15596 qualifiers don't match at any level of pointerness.
15597
15598 2000-01-12 Robert Lipe <robertl@sco.com>
15599
15600 * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
15601
15602 2000-01-12 Bernd Schmidt <bernds@cygnus.co.uk>
15603
15604 * reload1.c (reload_reg_unavailable): New static variable.
15605 (reload_reg_free_p): Test it.
15606 (reload_reg_free_for_value_p): Test it instead of
15607 reload_reg_used.
15608 (choose_reload_regs_init): Compute it.
15609
15610 Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com)
15611
15612 * reorg.c (fill_slots_from_thread): Check modified_in_p
15613 before replacing.
15614
15615 Wed Jan 12 03:20:31 2000 John Marshall <john_w_marshall@palm.com>
15616
15617 * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
15618 these nodes even if INTERNALS is not set.
15619
15620 Wed Jan 12 09:39:22 2000 Nick Burrett <nick.burrett@btinternet.com>
15621
15622 * gcse.c (delete_null_pointer_checks_1): Cope when
15623 get_condition cannot determine the condition.
15624
15625 2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com>
15626
15627 * toplev.h (set_message_length): Declare.
15628
15629 * diagnostic.c (obstack_chunk_alloc): Define macro.
15630 (obstack_chunk_free): Likewise.
15631 (struct output_buffer): New data structure.
15632 (vmessage): Remove.
15633 (output_maximum_width): New variable.
15634 (doing_line_wrapping, set_message_length, init_output_buffer,
15635 get_output_prefix, output_space_left, emit_output_prefix,
15636 output_newline, output_append, output_puts, dump_output,
15637 vbuild_message_string, build_message_string, build_location_prefix,
15638 voutput_notice, output_printf, line_wrapper_printf,
15639 vline_wrapper_message_with_location): New functions. Implement
15640 automatic line wrapping.
15641 (v_message_with_decl): Make it handle automatic line wrapping.
15642 (v_error_with_file_and_line): Likewise.
15643 (v_warning_with_file_and_line): Likewise.
15644 (announce_function): Likewise.
15645 (default_print_error_function): Likewise.
15646
15647 2000-01-11 16:24 -0800 Zack Weinberg <zack@wolery.cumb.org>
15648
15649 * cpplib.h (struct cpp_options): Change lang_asm to char.
15650 Add lang_fortran.
15651 * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
15652 done in cpp_handle_option now.
15653 (initialize_builtins): Take out special case code used only by
15654 __STDC_VERSION__.
15655 (cpp_handle_option): Turn off trigraphs and trigraph warnings
15656 if -traditional. Recognize -lang-fortran and set
15657 lang_fortran, also turn off cplusplus_comments.
15658 (print_help): Document -lang-fortran.
15659 * cpplib.c (handle_directive): Ignore `# 123 "file"' if
15660 lang_asm. Ignore all directives other than `# 123 "file"' if
15661 CPP_PREPROCESSED.
15662 (cpp_get_token): If -traditional, don't recognize directives
15663 unless the # is in column 1.
15664 (parse_string): If lang_fortran or lang_asm, silently
15665 terminate strings ('' or "") at end of line.
15666 Remove unnecessary braces.
15667
15668 2000-01-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
15669 Richard Henderson <rth@cygnus.com>
15670
15671 * resource.c (mark_referenced_resources): Mark a set strict_low_part
15672 as used.
15673 * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
15674 strict_low_part when possible.
15675
15676 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15677
15678 * alias.c: PROTO -> PARAMS.
15679 * basic-block.h: Likewise.
15680 * bitmap.c: Likewise.
15681 * bitmap.h: Likewise.
15682 * builtins.c: Likewise.
15683 * c-aux-info.c: Likewise.
15684 * caller-save.c: Likewise.
15685 * calls.c: Likewise.
15686
15687 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15688
15689 * Makefile.in (toplev.o): Depend on regs.h.
15690
15691 * output.h (tdesc_section): Prototype.
15692
15693 * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
15694
15695 * sdbout.c: Include "tm_p.h".
15696
15697 * toplev.c: Include "regs.h".
15698
15699 Tue Jan 11 11:37:58 2000 Mike Stump <mrs@wrs.com>
15700
15701 * unroll.c (unroll_loop): Add EH support.
15702
15703 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15704
15705 * pa-protos.h: New file.
15706
15707 * pa.c: Include recog.h and tm_p.h.
15708 (compute_zdepwi_operands, compute_movstrsi_length,
15709 remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
15710 find_addr_reg, import_milli): Add static prototypes.
15711 (pa_cpu_string, pa_arch_string): Constify a char*.
15712 (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
15713 (read_only_operand): Add argument `mode'.
15714 (singlemove_string, output_move_double, output_fp_move_double,
15715 output_block_move, output_and, output_ior, output_ascii,
15716 remove_useless_addtr_insns, milli_names, output_mul_insn,
15717 output_div_insn, output_mod_insn, output_arg_descriptor,
15718 output_cbranch, output_bb, output_bvb, output_dbra, ,
15719 output_millicode_call, output_call, hppa_encode_label,
15720 output_parallel_movb, output_parallel_addb): Constify a char*.
15721 (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
15722 (output_parallel_addb): Remove extra arg to `constrain_operands'
15723
15724 * pa.h: Move all prototypes to pa-protos.h.
15725 (pa_cpu_string, pa_arch_string): Constify a char*.
15726 (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
15727
15728 * pa.md: Call `function_label_operand' with mode argument.
15729 Likewise for `read_only_operand'.
15730 Fix nesting of parens in call to `symbolic_operand'.
15731
15732 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15733
15734 * i860-protos.h: New file.
15735
15736 * i860.c: Include tm_p.h. Add static prototypes. Fix compile
15737 time warnings.
15738
15739 * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings.
15740
15741 * i860.md: Likewise.
15742
15743 Tue Jan 11 18:59:35 MET 2000 Jan Hubicka <jh@suse.cz>
15744
15745 * i386.md (movstrsi expander): Rewrite.
15746 (movstrsi_1 insn): Deleted.
15747 (strmovhi, strmovqi expander): New expanders.
15748 (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
15749 * i386.c (x86_single_stringop): New global variable.
15750 * i386.h (x86_single_stringop): Declare.
15751 (TARGET_SINGLE_STRINGOP): New macro.
15752
15753 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
15754
15755 * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
15756 integer vararg POSTINCREMENT before the destination of the jump
15757 for the hard fp case.
15758 (function_arg_pass_by_reference): Pass a copy of CUM to
15759 FUNCTION_ARG.
15760
15761 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
15762 for CONSTANT_ADDRESS_P above while loop for subreg.
15763
15764 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
15765
15766 * flow.c (propagate_block): When a prologue/epilogue insn
15767 is marked dead, unconditionally clear libcall_is_dead and
15768 insn_is_dead, and only dump rtl if warnings aren't being
15769 suppressed.
15770
15771 Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz>
15772
15773 * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
15774 * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
15775 (FIXED_REGISTERS): Set dirflag as fixed.
15776 (CALL_USED_REGISTERS): Set dirflag as used.
15777 (REG_ALLOC_ORDER): Set dirflag as last one.
15778 (DIRFLAG_REG): New macro.
15779 (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
15780 (HI_REGISTER_NAMES): Add dirflag.
15781 (DEBUF_PRINT_REG): Handle dirflag.
15782 * i386.md (type attribute): New cld and str types.
15783 (length_opcode attribute): Set cld and str to 1.
15784 (memory attribute): Set str to unknown - it is not clear from the
15785 patterns.
15786 (pent_np function unit): Prefixed string operations takes 12 cycles
15787 minimally; cld takes 2 cycles.
15788 (ppro_uops attribute): Str is "many" and cld is "few".
15789 (ppro_p0 unit): Handle cld here.
15790 (k6_alux unit): Handle cld and str types.
15791 (k6_load unit): It is ocupied by str opcodes.
15792 (k6_store unit): It is ocupied by str opcodes.
15793 (athlon_decode): Str is vector decoded.
15794 (athlon_ieu): Handle str and cld.
15795 (cld pattern): New.
15796 (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
15797 (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
15798 cmpstrsi_nz_1 insn): Do not output cld instruction
15799
15800 Tue Jan 11 06:14:39 2000 David Starner <dstarner98@aasaa.ofe.org>
15801
15802 * gcc.texi (G++ and GCC): Add Java and Chill.
15803 (Bug Critera): Don't list languages.
15804
15805 * gcc.texi (Incompatibilities): No longer claim most C compilers
15806 are K&R.
15807
15808 * gcc.texi (G++ and GCC): Update other front-ends list.
15809
15810 Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com)
15811
15812 * i386.c (ix86_expand_setcc): Fix typo.
15813 (ix86_expand_movcc): Similarly.
15814
15815 * Band-aid until haifa's bitset implementation is nuked.
15816 * haifa-sched.c (extract_bitlst): New parameter for size of the
15817 bitset in bits. All callers changed. Avoid looking at undefined
15818 bits in the bitset.
15819 (edgeset_bitsize): New variable.
15820 (schedule_region): Initialize edgeset_bitsize.
15821
15822 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15823
15824 * Makefile.in (optabs.o): Depend on real.h
15825 (resource.o): Depend on insn-attr.h
15826
15827 * builtins.c (result_vector): Wrap prototype in macro conditions
15828 governing definition and use.
15829
15830 * c-common.c: Include tm_p.h.
15831
15832 * c-lex.c: Likewise.
15833
15834 * elfos.h: Constify a char*.
15835
15836 * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
15837 (get_attr_length, shorten_branches, profile_after_prologue): Mark
15838 parameter with ATTRIBUTE_UNUSED.
15839
15840 * fold-const.c (exact_real_inverse): Wrap variable `i' in
15841 CHECK_FLOAT_VALUE.
15842
15843 * haifa-sched.c (schedule_insns): Mark parameter with
15844 ATTRIBUTE_UNUSED.
15845
15846 * optabs.c: Include real.h.
15847
15848 * real.h (ereal_atof): Add prototype arguments.
15849
15850 * resource.c: Include insn-attr.h.
15851
15852 * sdbout.c (sdbout_queue_anonymous_type,
15853 sdbout_dequeue_anonymous_types): Wrap in macro
15854 SDB_ALLOW_FORWARD_REFERENCES.
15855 (sdbout_init, sdbout_start_new_source_file): Mark parameter with
15856 ATTRIBUTE_UNUSED.
15857
15858 * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
15859
15860 * stupid.c: Include tm_p.h.
15861
15862 * tree.c (real_value_from_int_cst): Mark parameter with
15863 ATTRIBUTE_UNUSED.
15864
15865 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15866
15867 * i960-protos.h: New file.
15868
15869 * i960.c: Include tm_p.h. Add static prototypes. Fix compile
15870 time warnings.
15871
15872 * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings.
15873
15874 2000-01-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
15875
15876 * combine.c (expand_field_assignment): Do not discard SUBREGs
15877 while computing nonzero_bits.
15878
15879 2000-01-09 Nick Clifton <nickc@cygnus.com>
15880
15881 * config/arm/arm.c: Fix compile time warnings about signed vs
15882 unsigned constants.
15883 * config/arm/arm.h: Fix compile time warnings about signed vs
15884 unsigned constants.
15885
15886 2000-01-09 Philip Blundell <philb@gnu.org>
15887
15888 * config/arm/arm.c (output_return_instruction): Use `ldr' rather
15889 than `ldm' with only one register.
15890 * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
15891 only one register.
15892
15893 * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
15894 clobbered.
15895
15896 Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson <hp@axis.com>
15897
15898 * config/ns32k/ns32k.md (load or push effective address): Operand 1
15899 must have SImode.
15900
15901 2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15902
15903 * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
15904 assignment used as truth value.
15905
15906 * function.c (assign_temp): Mark parameter `dont_promote' with
15907 ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro
15908 PROMOTE_FOR_CALL_ONLY.
15909
15910 * genrecog.c (write_subroutine): Mark variable `operands' with
15911 ATTRIBUTE_UNUSED.
15912
15913 * optabs.c (prepare_cmp_insn): Mark parameter `align' with
15914 ATTRIBUTE_UNUSED.
15915
15916 * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
15917 (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
15918
15919 * toplev.c (note_deferral_of_defined_inline_function): Likewise
15920 for `decl'.
15921
15922 2000-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15923
15924 * config/c4x.h: Tidy up comments.
15925 * config/c4x.c: Likewise.
15926
15927 Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com)
15928
15929 * fold-const.c (lshift_double, rshift_double): Handle
15930 shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
15931
15932 2000-01-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
15933
15934 * toplev.c (rest_of_compilation): Initialize cse_not_expected as
15935 in prepare_function_start().
15936
15937 Sat Jan 8 12:12:46 2000 Nick Clifton <nickc@cygnus.com>
15938
15939 * config/v850/v850.c (expand_epilogue): Interrupt functions no
15940 longer allocate extra stack for function calls.
15941
15942 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15943
15944 * config/c4x/c4x.md (*subqf3_set): Fix typo.
15945
15946 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15947
15948 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
15949
15950 2000-01-07 David Edelsohn <edelsohn@gnu.org>
15951
15952 * rs6000.c (processor_target_table): Add power3 as alias for 630.
15953 * aix43.h: Revert Aug 2 change.
15954 (HAS_INIT_SECTION): Define, not visible yet.
15955 (LD_INIT_SWITCH): Define, not visible yet.
15956 * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
15957
15958 * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
15959
15960 * collect2.c (main): Expand ld2 size further.
15961 (export_object_lst): Cast assignment to avoid warning.
15962 (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
15963 (scan_prog_file, COFF): Do not collect initialization or
15964 finalization functions generated for entire shared object if
15965 init/fini support present.
15966
15967 2000-01-07 Nick Clifton <nickc@cygnus.com>
15968
15969 * config/elfos.h: Tidy up formatting of marcos. Make sure
15970 that .section directives are always prefixed by a tab.
15971
15972 * config/svr4.h: Add #include "elfos.h" and remove duplicate
15973 definitions.
15974
15975 2000-01-07 Matt Austern <austern@sgi.com>
15976
15977 * fold-const.c (real_hex_to_f): Remove duplicate declaration of
15978 expon.
15979
15980 Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com)
15981
15982 * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
15983 crtstuff.c.
15984 (crtbegin.o, s-crtS): Likewise.
15985
15986 2000-01-06 Richard Henderson <rth@cygnus.com>
15987
15988 * alpha.md (adddi_2+1): Limit offset such that it will be
15989 loadable with a single ldah+lda pair.
15990 (adddi_2+2): Explicitly fail split if we can't make it work.
15991
15992 2000-01-06 Mumit Khan <khan@xraylith.wisc.edu>
15993
15994 * protoize.c: Conditionally include unistd.h.
15995 (IS_SAME_PATH_CHAR): New macro.
15996 (IS_SAME_PATH): New macro.
15997 (CPLUS_FILE_SUFFIX): New macro.
15998 (cplus_suffix): New static variable.
15999 (is_abspath): New static function.
16000 (in_system_include_dir): Handle DOS style pathnames.
16001 (file_could_be_converted): Likewise.
16002 (file_normally_convertible): Likewise.
16003 (directory_specified_p): Likewise.
16004 (file_excluded_p): Likewise.
16005 (abspath): Likewise.
16006 (shortpath): Likewise.
16007 (referenced_file_is_newer): Likewise.
16008 (save_def_or_dec): Likewise.
16009 (do_processing): Likewise.
16010 (main): Likewise.
16011 (edit_file): Likewise. Use rename instead of link.
16012 (rename_c_file): Likewise. Don't rename syscalls file.
16013 (munge_compile_params): Define null device for DOS based systems.
16014 (process_aux_info_file): Use binary mode if appliable.
16015 (edit_file): Likewise.
16016 * invoke.texi (Running Protoize): Document C++ suffixes used.
16017
16018 * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
16019 IS_DIR_SEPARATOR macros.
16020 * collect2.c: Likewise.
16021 * cppinit.c: Likewise.
16022 * dwarf2out.c: Likewise.
16023 * gcc.c: Likewise.
16024 * gcov.c: Likewise.
16025 * prefix.c: Likewise.
16026 * rtl.c: Likewise.
16027 * toplev.c: Likewise.
16028 * system.h: And move to here.
16029
16030 * prefix.c (update_path): Fix typo in variable name.
16031
16032 2000-01-06 Richard Henderson <rth@cygnus.com>
16033
16034 * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
16035 (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
16036 (count_reg_sets_1, count_reg_references): Likewise.
16037 (flow_loops_level_compute): Start counting actual loop depth at 1.
16038 (flow_loops_find): Likewise.
16039 * local-alloc.c (update_equiv_regs): Likewise.
16040 * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
16041
16042 2000-01-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
16043
16044 * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
16045 FIRST_PSEUDO_REGISTER
16046 * dwarf2out.c: Don't include frame.h
16047 * dwarfout.c: Likewise
16048 * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
16049 frame.h
16050
16051 Thu Jan 6 13:44:59 CET 2000 Jan Hubicka <jh@suse.cz>
16052
16053 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
16054 dead registers.
16055
16056 * i386.c (movsf splitter): Fix typo in my last checkin.
16057
16058 2000-01-05 Nick Clifton <nickc@cygnus.com>
16059
16060 * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
16061 own definition of this macro.
16062 (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
16063 flag_data_sections or UNIQUE_SECTION_P are true.
16064
16065 * tm.texi (UNIQUE_SECTION): Document that it can be called for
16066 unitialised data decls.
16067
16068 * config/i386/winnt.c (i386_pe_unique_section): Cope with
16069 being called for uninitialised data.
16070
16071 * config/i386/interix.c (i386_pe_unique_section): Cope with
16072 being called for uninitialised data.
16073
16074 * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
16075 for uninitialised data.
16076
16077 * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
16078 for uninitialised data.
16079
16080 * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
16081 for uninitialised data.
16082
16083 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
16084 (UNIQUE_SECTION_P): Always generate a unique section if
16085 flag_data_sections is true.
16086 (UNIQUE_SECTION): Also generate unique sections for
16087 uninitialised data.
16088 (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
16089 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
16090 named_section().
16091
16092 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16093
16094 * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
16095 SI, or DI.
16096
16097 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16098
16099 * config/c4x/c4x.md (udivqi3, divqi3): Delete.
16100 (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
16101 (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
16102 (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
16103 (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
16104
16105 * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
16106
16107 2000-01-05 11:25 -0800 Zack Weinberg <zack@rabi.columbia.edu>
16108
16109 * c-decl.c (finish_enum): Simplify code to determine minimum and
16110 maximum values of the enum, and calculate the type. Remove check
16111 for FUNCTION_DECLs in the values list, which cannot happen. Replace
16112 the DECL_INITIAL of each enumeration constant with a copy converted
16113 to the enumeration type. When updating variant types, don't bother
16114 updating the type itself.
16115
16116 * c-typeck.c (build_binary_op): Simplify conditional expressions
16117 when weeding out spurious signed-unsigned warnings. Add new
16118 spurious warning category: if the unsigned quantity is an enum
16119 and its maximum value fits in signed_type(result_type). Update
16120 commentary.
16121 (build_conditional_expr): Warn here if one alternative is signed
16122 and the other is unsigned.
16123
16124 2000-01-05 Nick Clifton <nickc@cygnus.com>
16125
16126 * config/fr30/fr30.h: Remove extraneous comments.
16127
16128 2000-01-05 Bernd Schmidt <bernds@cygnus.co.uk>
16129
16130 * reload1.c (choose_reload_regs): When disabling a reload, also
16131 set reload_spill_index to -1.
16132
16133 2000-01-04 Joel Sherrill (joel@OARcorp.com>
16134
16135 * configure.in (m68*-*-rtemscoff*): New target, formal name for
16136 old m68*-*-rtems*.
16137 (m68*-*-rtemself*): New target.
16138 (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
16139 (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
16140 (sparc*-*-rtemself*): New target.
16141 (sparc*-*-rtems*): Now elf not a.out.
16142 * config/i386/rtems.h: Include config/rtems.h.
16143 * config/i386/rtemself.h: Include config/rtems.h.
16144 * config/i960/rtems.h: Include config/rtems.h.
16145 * config/m68k/rtems.h: Include config/rtems.h.
16146 * config/m68k/rtemself.h: Include config/rtems.h.
16147 * config/mips/rtems64.h: Include config/rtems.h.
16148 * config/pa/rtems.h: Include config/rtems.h.
16149 * config/rs6000/rtems.h: Include config/rtems.h.
16150 * config/sh/rtems.h: Include config/rtems.h.
16151 * config/sh/rtemself.h: Include config/rtems.h.
16152 * config/sparc/rtems.h: Include config/rtems.h.
16153 * config/sparc/rtemself.h: Include config/rtems.h
16154
16155 Tue Jan 4 23:59:26 2000 Denis Chertykov <denisc@overta.ru>
16156
16157 * final.c (shorten_branches): Correctly compute length of
16158 asms without operands.
16159
16160 Tue Jan 4 22:55:41 2000 Steve Chamberlain <sac@pobox.com>
16161
16162 * configure.in: Add pj target.
16163 * configure: Regenerate.
16164 * config/pj: New directory.
16165 * config/pj/lib1funcs.S: New file.
16166 * config/pj/linux.h: New file.
16167 * config/pj/pj.c: New file.
16168 * config/pj/pj.md: New file.
16169 * config/pj/pjl.h: New file.
16170 * config/pj/t-pj: New file.
16171 * config/pj/xm-pj.h: New file
16172
16173 Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com)
16174
16175 * toplev.c (rest_of_compilation): Run shorten-branches before
16176 reg-stack for now.
16177
16178 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16179
16180 * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
16181 macros so that they're consistent with their names.
16182 * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
16183 * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
16184
16185 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16186
16187 * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
16188 modified inadvertently.
16189
16190 2000-01-04 Joel Sherrill <joel@OARcorp.com>
16191
16192 * configure.in (v850*-*-rtems*): New target.
16193 * configure: Regenerate.
16194 * config/v850/rtems.h: New file.
16195
16196 2000-01-04 Mumit Khan <khan@xraylith.wisc.edu>
16197
16198 * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
16199 (__gthread_key_create): Likewise.
16200 (__gthread_key_dtor): Likewise.
16201 (__gthread_once): Fix logic.
16202 (__gthread_key_delete): Cast away constness.
16203
16204 * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
16205 * invoke.texi: Document.
16206 * i386/mingw32.h (CPP_SPEC): Use.
16207 (LIBGCC_SPEC): Likewise.
16208 * i386/crtdll.h (LIBGCC_SPEC): Likewise.
16209
16210 2000-01-04 David Edelsohn <edelsohn@gnu.org>
16211
16212 * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
16213 (HANDLE_PRAGMA_PACK): Undefine.
16214 (SLOW_UNALIGNED_ACCESS): Define.
16215
16216 2000-01-04 David Edelsohn <edelsohn@gnu.org>
16217
16218 * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
16219 to default definition.
16220 (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
16221 (store_fixed_bit_field): Call macro with word_mode and alignment.
16222 (extract_bit_field): Call macro with relevant mode and alignment.
16223 * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
16224 to default definition.
16225 (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
16226 and alignment.
16227 (move_by_pieces_ninsns): Likewise.
16228 (clear_by_pieces): Likewise.
16229 (emit_push_insn): Likewise.
16230 (store_field): Call macro with relevant mode and alignment.
16231 (expand_expr): Likewise.
16232 (expand_expr_unaligned): Likewise.
16233
16234 * rs6000.h (HANDLE_PRAGMA_PACK): Define.
16235 (SLOW_UNALIGNED_ACCESS): Define.
16236 (CASE_VECTOR_MODE): Always use 32-bit offsets.
16237 (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
16238 (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
16239 (toc_section): Likewise and .toc pseudo-op.
16240 (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
16241 64-bit mode.
16242 (TEXT_SECTION_ASM_OP): Likewise.
16243 (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
16244 32-bit offsets.
16245
16246 * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
16247 * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
16248 * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
16249 * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
16250 * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
16251
16252 Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com)
16253
16254 * regclass.c: Revert my Jan 4 change to loop cost computation.
16255
16256 Tue Jan 4 19:22:39 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
16257
16258 * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
16259 compilation.
16260
16261 2000-01-04 Stan Cox <scox@cygnus.com>
16262
16263 * haifa-sched.c (build_control_flow): Change unreachable simple
16264 loop test to check if current block has only one predecessor.
16265 (find_rgns): Initialize degree. Use dest as degree index, not src.
16266
16267 2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16268
16269 * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
16270
16271 * calls.c (expand_call): Likewise for
16272 `old_stack_arg_under_construction'.
16273
16274 * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
16275
16276 * function.c (pad_to_arg_alignment): Likewise for `save_var' and
16277 `save_constant'.
16278
16279 * gcc.c (execute): Likewise for `ut' and `st'.
16280
16281 * genattrtab.c (attr_rtx): Likewise for `rt_val'.
16282
16283 * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
16284
16285 * jump.c (jump_optimize_1): Likewise for `temp2'.
16286
16287 * local-alloc.c (block_alloc): Likewise for `r1'.
16288
16289 * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
16290
16291 * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
16292 (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
16293
16294 * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
16295 and `set2'.
16296
16297 * reload.c (find_reloads): Likewise for `goal_alternative_number'
16298 and `goal_earlyclobber'.
16299
16300 * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
16301
16302 * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
16303
16304 * stupid.c (stupid_life_analysis): Likewise for `chain'.
16305
16306 * unroll.c (copy_loop_body): Likewise for `copy'.
16307
16308 * varasm.c (output_constructor): Likewise for `byte'.
16309
16310 Tue Jan 4 15:34:34 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
16311
16312 * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
16313 all FP constants for constant->reg moves.
16314 (ix86_split_to_parts): Try to convert memory address into immediate
16315 when available in the constant pool.
16316 * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
16317 moves.
16318 (LEGITIMATE_CONSTANT_P): Return 1.
16319 * i386.md (pushsf): New splitter to convert constant pool memory
16320 reference to immediate.
16321 (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
16322 reload.
16323
16324 2000-01-04 Bernd Schmidt <bernds@cygnus.co.uk>
16325
16326 * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
16327 (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
16328 ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
16329 (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
16330 rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
16331
16332 2000-01-04 Martin von Löwis <loewis@informatik.hu-berlin.de>
16333
16334 * ginclude/stdbool.h: Support compilation as C++.
16335
16336 Tue Jan 4 01:35:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
16337
16338 * fold-const.c (make_range): Don't try to reverse an unbounded range.
16339
16340 Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com)
16341
16342 * regclass.c (regclass): Properly compute loop_cost. Adjust
16343 comments.
16344
16345 * regclass.c: Fix minor whitespace problems.
16346
16347 2000-01-03 Anthony Green <green@cygnus.com>
16348
16349 * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
16350 Restore the pic register if required.
16351
16352 2000-01-03 Ulrich Drepper <drepper@cygnus.com>
16353
16354 * c-common.c (format_char_info): Update comment.
16355 (check_format_info): Recognize 'z' modifier in the same way 'Z'
16356 was recognized. Emit warning for formats new in ISO C99 only
16357 if flag_isoc9x is not set.
16358
16359 Mon Jan 3 12:59:54 2000 Mark P. Mitchell <mark@codesourcery.com>
16360
16361 * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
16362
16363 Mon Jan 3 15:33:37 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
16364
16365 * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
16366 SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
16367 (make_compound_operation): Choose cheaper alternative between
16368 ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
16369
16370 * regclass.c (op_costs): Remove global variable.
16371 (record_reg_classes): New parameter "op_costs" and "reg_pref".
16372 (record_operand_costs): Break out from ...
16373 (scan_one_insn): ... here.
16374 (dump_regclass): Make dumps nicer.
16375 (regclass): Dump preferrences choosed and changes done during passes.
16376
16377 2000-01-03 Jakub Jelinek <jakub@redhat.com>
16378
16379 * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
16380
16381 2000-01-03 Jakub Jelinek <jakub@redhat.com>
16382
16383 * config/sparc/sparc.c (gen_df_reg): New function.
16384 * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
16385 * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
16386 movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
16387 movtf_cc_reg_sp64+1): Use it.
16388
16389 2000-01-02 Mark Mitchell <mark@codesourcery.com>
16390
16391 * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
16392 copied LABEL_DECLs.
16393
16394 Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
16395
16396 * config/i386/i386.c (ix86_expand_unary_operator): Function
16397 definition made void.
16398 (ix86_expand_binary_operator): Update outdated preceding comment.
16399 * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
16400 prototype.
16401
16402 * config/i386/i386.c (override_options): Fix option-name typo.
16403
16404 2000-01-02 Mark Mitchell <mark@codesourcery.com>
16405
16406 * system.h (CEIL): Define.
16407 * builtins.c (CEIL): Remove.
16408 * expmed.c (CEIL): Likewise.
16409 * expr.c (CEIL): Likewise.
16410 * stor-layout.c (CEIL): Likewise.
16411
16412 2000-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
16413
16414 * expr.c (store_constructor_field): Fix typo introduced with last
16415 gcc2 merge.
16416
16417 2000-01-01 Mark Mitchell <mark@codesourcery.com>
16418
16419 * tree.h (BINFO_N_BASETYPES): New macro.
16420
16421 2000-01-01 Bernd Schmidt <bernds@cygnus.co.uk>
16422
16423 * expmed.c (emit_store_flag): Prevent losing a pending stack
16424 adjust the same way we prevent losing queued increments.
16425
16426 See ChangeLog.2 for earlier changes.