]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
* flow.c (verify_flow_info): Check for unconditional return.
[gcc.git] / gcc / ChangeLog
1 Wed Mar 15 14:28:54 2000 Jason Eckhardt <jle@cygnus.com>
2
3 * flow.c (verify_flow_info): Check for unconditional return.
4
5 Wed Mar 15 11:34:27 2000 Jim Wilson <wilson@cygnus.com>
6
7 * config/ia64/ia64.md (restore_stack_nonlocal): New.
8 * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
9 (__ia64_restore_stack_nonlocal): New.
10 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
11
12 2000-03-15 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13
14 * cpphash.c (collect_formal_parameters): Do not complain about
15 parameter names that just start with `__VA_ARGS__'.
16
17 Wed Mar 15 13:26:58 MET 2000 Jan Hubicka <jh@suse.cz>
18
19 * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
20 movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
21 * i386.c (pentiumpro_cost): Set mul cost to 4.
22 (x86_use_movx): Set for PPro.
23
24 Wed Mar 15 13:07:05 MET 2000 Jan Hubicka <jh@suse.cz>
25
26 * i386.md (ix86_compute_frame_size): stack_alignment_needed is
27 STACK_BOUNDARY for empty frames now.
28
29 2000-03-14 Mark Mitchell <mark@codesourcery.com>
30
31 * stor-layout.c (layout_union): Remove.
32 (layout_union_field): New function, split out from layout_union.
33 (finish_union_layout): Likewise.
34 (layout_field): Handle unions by calling layout_union_field.
35 (finish_record_layout): Handle unions.
36 (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
37 QUAL_UNION_TYPE handling.
38
39 Wed Feb 23 13:00:06 CET 2000 Jan Hubicka <jh@suse.cz>
40 * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
41 end of basic block is jump_insn, not barrier; use create_basic_block
42 instead of creating basic block by hand.
43
44 2000-03-14 Jason Eckhardt <jle@cygnus.com>
45 * flow.c (reorder_basic_blocks): Account for barriers when writing
46 over NEXT_INSN (last_bb->end).
47 (verify_flow_info): Add check for missing barriers.
48
49 2000-03-14 Greg McGary <gkm@gnu.org>
50
51 * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
52 * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
53 * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
54 __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
55 __unbounded, __unbounded__): New keywords.
56 * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
57 * c-parse.y, c-parse.c, c-parse.h: Regenerate.
58 * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
59
60 2000-03-14 Bernd Schmidt <bernds@cygnus.co.uk>
61
62 * cselib.h: New file.
63 * alias.c: Include "cselib.h".
64 (fixed_scalar_and_varying_struct_p): Accept the addresses of the
65 MEMs as two new arguments.
66 (get_addr): New static function.
67 (find_base_term): Handle VALUEs.
68 (memrefs_conflict_p): Likewise.
69 (true_dependence): Call get_addr on the addresses.
70 Call fixed_scalar_and_varying_struct_p with addresses that have been
71 passed through get_addr and canon_rtx.
72 (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
73 with true_dependence.
74 Call get_addr on the addresses; don't call canon_rtx on the MEMs.
75 * loop.c: Include "cselib.h".
76 (load_mems): Process extended basic block that enters the loop with
77 cselib. Use that information to change initialization of the shadow
78 register so that a constant equivalence is seen by later passes.
79 * reload1.c: Include "cselib.h".
80 (reload_cse_invalidate_regno): Delete function.
81 (reload_cse_mem_conflict_p): Likewise.
82 (reload_cse_invalidate_mem): Likewise.
83 (reload_cse_invalidate_rtx): Likewise.
84 (reload_cse_regno_equal_p): Likewise.
85 (reload_cse_check_clobber): Likewise.
86 (reload_cse_record_set): Likewise.
87 (reg_values): Delete static variable.
88 (invalidate_regno_rtx): Likewise.
89 (reload_cse_delete_noop_set): New static function.
90 (reload_cse_simplify): New static function, broken out of
91 reload_cse_regs_1.
92 (reload_cse_noop_set_p): Delete unused argument INSN.
93 Just call rtx_equal_for_cselib_p on set source and destination.
94 (reload_cse_regs_1): Break out some code into reload_cse_simplify and
95 reload_cse_delete_noop_set. Delete code to keep track of values; use
96 cselib functions instead. Delete code to push/pop obstacks.
97 (reload_cse_simplify_set): Use cselib to find equivalent values.
98 Delete code to push/pop obstacks.
99 (reload_cse_simplify_operands): Likewise.
100 * rtl.def (VALUE): New rtx code.
101 * rtl.h (union rtunion_def): New elt rt_cselib.
102 (X0CSELIB, CSELIB_VAL_PTR): New macros.
103 * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
104 (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
105 unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
106 discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
107 hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
108 cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
109 cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
110 cselib_record_set, cselib_record_sets): New static functions.
111 (cselib_lookup, cselib_update_varray_sizes, cselib_init,
112 cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
113 references_value_p): New functions.
114 (MAX_USELESS_VALUES, REG_VALUES): New macros.
115 (table, cselib_current_insn, next_unknown_value, cselib_nregs,
116 n_useless_values, reg_values, callmem, cselib_obstack,
117 cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
118 New static variables.
119 * varray.h (union varray_data_tag): New elt te.
120 (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
121 * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
122 dependencies.
123
124 2000-03-14 Nick Clifton <nickc@cygnus.com>
125
126 * gcc.c (do_spec_1): Catch the case where %* is used in a
127 substitution pattern, but it has not been initialised.
128 Issue a meaningful error message if an unrecognised operator
129 is encountered in a spec string.
130
131 2000-03-14 Richard Earnshaw <rearnsha@arm.com>
132
133 * function.c (prepare_function_start): Correctly initialize
134 cfun->stack_alignment_needed.
135
136 2000-03-14 Zack Weinberg <zack@wolery.cumb.org>
137
138 * cppfiles.c (find_include_file): Don't assume nshort is a
139 substring of name.
140
141 Tue Mar 14 08:42:21 2000 Jeffrey A Law (law@cygnus.com)
142
143 * configure.in (hppa configurations): Add pa32-regs.h to the
144 list of tm files as appropriate.
145 * configure: Rebuilt.
146 * pa.c (compute_frame_size): Remove explicit knowledge about FP
147 register numbering.
148 (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
149 (fmpyaddoperands, fmpysuboperands): Likewise.
150 * pa.h: Remove various definitions which depend on knowing
151 how registers are numbered.
152 * pa32-regs.h: New file with PA32 register numbering specific
153 definitions.
154
155 2000-03-14 Richard Henderson <rth@cygnus.com>
156
157 * regmove.c (combine_stack_adjustments): New.
158 (stack_memref_p, single_set_for_csa): New.
159 (free_csa_memlist, record_one_stack_memref): New.
160 (try_apply_stack_adjustment): New.
161 (combine_stack_adjustments_for_block): New.
162 * rtl.h (combine_stack_adjustments): Declare.
163 * toplev.c (rest_of_compilation): Call it.
164
165 * i386.md: Revert 2000-01-16 change.
166
167 2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de>
168
169 * gccbug.in: Add web category, gcc specific classes.
170
171 2000-03-14 Nathan Sidwell <nathan@codesourcery.com>
172
173 * stor-layout.c (finalize_record_size): Fix typo.
174
175 2000-03-14 Stan Shebs <shebs@apple.com>
176
177 * c-typeck.c (c_alignof): Error on incomplete types.
178 * extend.texi (Alignment): Document this.
179
180 2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
181
182 * cppfiles.c: Include mkdeps.h.
183 (find_include_file, read_include_file): Remove _cpp_ prefix
184 from name, make static.
185 (_cpp_execute_include): New function, broken out of
186 do_include.
187
188 * cpplib.c: Don't include mkdeps.h.
189 (struct directive): Remove type field. Reorder entries. The
190 function takes only one argument.
191 (struct if_stack): Make type field an int.
192 (directive_table): Rename to dtable. Generate it, the
193 prototypes of the directive handlers, and the enum for the
194 directive numbers, from a template macro.
195 (do_ifndef, do_include_next, do_import): New functions.
196 (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
197 do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
198 do_ident, do_assert, do_unassert, do_sccs): Take only one
199 argument.
200 (do_sccs): Define always, but alter behavior based on
201 SCCS_DIRECTIVE.
202 (_cpp_handle_directive, consider_directive_while_skipping):
203 Restructure for new directive table layout.
204
205 (pass_thru_directive): Take a directive number, not a pointer
206 to a struct directive.
207 (parse_include): New function, broken out of do_include.
208 (do_include, do_import, do_include_next): Use parse_include
209 and _cpp_execute_include.
210 (do_elif, do_else): Test for T_ELSE specifically when checking
211 for #elif/#else after #else.
212 (parse_ifdef): New function, broken out of do_ifdef.
213 (validate_else): Expect a name arg without a leading #.
214 (if_directive_name): Delete.
215 (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
216 directive handlers with only one argument.
217
218 * cpphash.h: Update prototypes.
219 (enum node_type): Remove entries for directives.
220 * Makefile.in: Update dependencies.
221
222 * cpphash.c (dump_hash_helper): Only dump nodes of type
223 T_MACRO. Emit a newline after each definition.
224
225 2000-03-14 Martin v. Löwis <loewis@informatik.hu-berlin.de>
226
227 * gccbug.in: New file.
228 * configure.in (all_outputs): Add gccbug.
229 * Makefile.in (install-common): Install gccbug.
230 (GCCBUG_INSTALL_NAME): New variable.
231 * configure: Rebuilt.
232
233 2000-03-13 Jason Merrill <jason@casey.cygnus.com>
234
235 * function.c (put_var_into_stack): Use type_for_mode to calculate
236 part_type. Use MEM_SET_IN_STRUCT_P.
237 * expr.c (store_field): Handle CONCAT.
238 (store_constructor): Use fields_length.
239 * tree.c (fields_length): New fn.
240 * tree.h: Declare it.
241
242 2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
243
244 * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
245 (cpplex.o): New target.
246 * po/POTFILES.in: Add cpplex.c.
247
248 * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
249 cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
250 cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
251 skip_block_comment, skip_line_comment, skip_comment,
252 copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
253 _cpp_parse_name, skip_string, parse_string,
254 _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
255 _cpp_get_directive_token, find_position,
256 _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
257 (maybe_macroexpand, _cpp_lex_token): New functions.
258
259 * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
260 parse_goto_mark): Delete.
261 (_cpp_handle_eof): New function.
262 (_cpp_handle_directive): Rename from handle_directive.
263 (_cpp_output_line_command): Rename from output_line_command.
264 (do_if, do_elif): Call _cpp_parse_expr directly.
265 * cppfiles.c (_cpp_read_include_file): Don't call
266 init_input_buffer here.
267 * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
268 * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
269 here; pop the token_buffer and skip the rest of the line here.
270 * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
271 here.
272
273 * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
274 Define here.
275 (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
276 CPP_GOTO_MARK): New macros.
277 (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
278 _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
279 _cpp_read_and_prescan, _cpp_init_input_buffer,
280 _cpp_grow_token_buffer, _cpp_get_directive_token,
281 _cpp_handle_directive, _cpp_handle_eof,
282 _cpp_output_line_command): Prototype them here.
283 * cpplib.h (enum cpp_token): Add CPP_MACRO.
284 (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
285 quote_string, output_line_command): Remove.
286
287 2000-03-13 Bernd Schmidt <bernds@cygnus.co.uk>
288
289 * stmt.c (expand_end_case): RANGE may be signed, and when checking
290 whether it is too large we must also verify that it isn't negative.
291
292 2000-03-13 Jakub Jelinek <jakub@redhat.com>
293
294 * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
295 (movsi_zero_liveg0): Remove.
296 (movsf_insn_novis_liveg0): Remove.
297 (negsi2): Remove.
298 (negsi2_not_liveg0): Rename to negsi2.
299 (one_cmplsi2): Remove.
300 (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
301 (one_cmplsi2_liveg0): Remove.
302 * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
303 MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
304 (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
305 (PREDICATE_CODES): Remove zero_operand.
306 * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
307 TARGET_BROKEN_SAVERESTORE.
308 (zero_operand): Remove.
309 * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
310 -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
311 options.
312 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
313 * config/sparc/linux-aout.h (TARGET_LIVE_G0,
314 TARGET_BROKEN_SAVERESTORE): Remove.
315 * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
316 Remove.
317 * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
318 Remove.
319 * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
320 Remove.
321
322 * config/sparc/sparc.md (return_df_no_fpu): New pattern.
323
324 2000-03-13 Zack Weinberg <zack@wolery.cumb.org>
325
326 * cpplib.c (do_pragma_implementation): Fix off-by-one error
327 truncating a string. Don't assume tokens are nul terminated.
328 Problem noted by Andreas Jaeger <aj@suse.de>
329
330 2000-03-13 Jason Merrill <jason@casey.cygnus.com>
331
332 * dwarf2out.c (add_name_and_src_coords_attributes): Only add
333 DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
334 (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
335
336 2000-03-13 Richard Earnshaw <rearnsha@arm.com>
337
338 * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
339 STRUCTURE_SIZE_BOUNDARY.
340
341 2000-03-13 Mark Mitchell <mark@codesourcery.com>
342
343 * tree.h (record_layout_info_s): New structure.
344 (record_layout_info): New type.
345 (new_record_layout_info): New function.
346 (layout_field): Likewise.
347 (finish_record_layout): Likewise.
348 * stor-layout.c (layout_record): Remove.
349 (new_record_layout_info): New function.
350 (layout_field): New function, broken out from layout_record.
351 (finalize_record_size): Likewise.
352 (compute_record_mode): Likewise.
353 (finalize_type_size): New function, broken out from layout_type.
354 (finish_record_layout): Likewise.
355 (layout_type): Use them.
356
357 2000-03-12 Zack Weinberg <zack@wolery.cumb.org>
358
359 * cpphash.c: Don't include version.h.
360 (special_symbol) [case T_VERSION]: Look for the string in
361 hp->value.cpval; don't use version_string.
362 * cppinit.c (initialize_builtins): Set hp->value.cpval for
363 __VERSION__ to version_string.
364 * Makefile.in (cpphash.o): Update deps.
365
366 2000-03-12 Zack Weinberg <zack@wolery.cumb.org>
367
368 Convert cpplib to use libiberty/hashtab.c.
369
370 * cpplib.h (struct cpp_reader): Make hashtab and
371 all_include_files of type 'struct htab *'. Delete HASHSIZE
372 and ALL_INCLUDE_HASHSIZE macros.
373
374 * cpphash.h: Update prototypes.
375 (struct hashnode): Remove next, prev, and bucket_hdr members.
376 Make length a size_t. Add hash member.
377 (struct ihash): Remove next member. Add hash member. Make
378 name a flexible array member.
379
380 * cppfiles.c: Include hashtab.h.
381 (include_hash): Delete.
382 (IHASHSIZE): New macro.
383 (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
384 (cpp_included): Do the hash lookup here.
385 (_cpp_find_include_file): Rewrite.
386 (cpp_read_file): Put the "fake" hash entry into the hash
387 table. Honor the control_macro, if it turns out we've seen
388 the file before. Don't push the buffer here.
389 (_cpp_read_include_file): Push the buffer here.
390 (OMODES): New macro. Use it whenever we call open(2).
391
392 * cpphash.c: Include hashtab.h.
393 (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
394 _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
395 _cpp_lookup_slot): New functions.
396 (HASHSIZE): new macro.
397 (hashf, _cpp_install, _cpp_delete_macro): Delete.
398 (_cpp_lookup): Use hashtab.h routines.
399
400 * cppinit.c: Include hashtab.h.
401 (cpp_reader_init): Call _cpp_init_macro_hash and
402 _cpp_init_include_hash. Don't allocate hashtab directly.
403 (cpp_cleanup): Just call htab_delete on pfile->hashtab and
404 pfile->all_include_files.
405 (initialize_builtins): Use _cpp_make_hashnode and
406 htab_find_slot to add hash entries.
407 (cpp_finish): Just call _cpp_dump_macro_hash.
408 * cpplib.c: Include hashtab.h.
409 (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
410 create hash entries.
411 (do_pragma_poison, do_assert): Likewise.
412 (do_include): Don't push the buffer here. Don't increment
413 system_include_depth unless _cpp_read_include_file succeeds.
414 (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
415 or htab_remove_elt.
416 (do_pragma_implementation): Use alloca to create copy.
417
418 * Makefile.in: Update dependencies.
419
420 2000-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
421
422 * cppinit.c (cl_directive_handler): More K&R fixing.
423
424 Sat Mar 11 23:54:26 2000 Jim Wilson <wilson@cygnus.com>
425
426 * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
427 STACK_BOUNDARY.
428 * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
429
430 2000-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
431
432 * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
433 Change from char[] to macros.
434
435 2000-03-12 Neil Booth <NeilB@earthling.net>
436
437 * cppinit.c (cpp_start_read): Update indirect function
438 call to K&R C.
439
440 Sat Mar 11 16:18:12 2000 Jim Wilson <wilson@cygnus.com>
441
442 * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
443 entry.
444
445 * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
446 config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
447
448 2000-03-11 Neil Booth <NeilB@earthling.net>
449
450 * cppinit.c (struct pending option): Replace undef with a
451 pointer to a directive handling routine.
452 (struct cpp_pending): Replace separate assert_ and define_
453 lists with one directive_ list.
454 (new_pending_define): Rename new_pending_directive. Extra
455 argument is the directive's handling routine.
456 (handle_option): Update to use new_pending_directive.
457
458 2000-03-11 Neil Booth <NeilB@earthling.net>
459
460 * cppfiles.c (file_cleanup, _cpp_find_include_file,
461 remap_filename, _cpp_read_include_file, actual_directory,
462 hack_vms_include_specification): Replace bcopy(), index() etc
463 calls. Add casts to some allocations. Make some variables
464 pointers to const [unsigned] char.
465 * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
466 collect_formal_parameters): Similarly.
467 * cppinit.c (struct pending_option, append_include_chain,
468 cpp_options_init, cpp_reader_init, initialize_standard_includes,
469 cpp_start_read, new_pending_define, handle_option): Similarly.
470 * cpplib.c (cpp_define, copy_comment, do_define, do_include,
471 do_undef, do_error, do_warning, do_pragma, do_pragma_once,
472 do_pragma_implementation, detect_if_not_defined,
473 do_ifdef, skip_if_group, cpp_get_token, parse_string,
474 do_assert, do_unassert): Similarly.
475 * cpplib.h (cpp_buffer, cpp_options): Update types. Update
476 function prototypes.
477 * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
478
479 2000-03-10 Richard Henderson <rth@cygnus.com>
480
481 * builtins.c (expand_builtin_strlen): Revert last change.
482 Use emit_insn_before if we're at the beginning of a sequence.
483
484 2000-03-10 Jason Merrill <jason@casey.cygnus.com>
485
486 * builtins.c (expand_builtin_strlen): Make sure that we have something
487 at the beginning of the sequence.
488
489 * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
490 deferred inlines.
491
492 * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
493
494 2000-03-10 Richard Henderson <rth@cygnus.com>
495
496 * except.c (can_throw): Use INTVAL on a CONST_INT.
497 (reachable_handlers): Likewise.
498 * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
499
500 2000-03-10 Andreas Jaeger <aj@suse.de>
501
502 * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
503 MD_STARTFILE_PREFIX since those are not needed on linux.
504 (ASM_FILE_START): New, from mips/gnu.h.
505
506 2000-03-09 Richard Henderson <rth@cygnus.com>
507 Alex Samuel <samuel@codesourcery.com> and others
508
509 * Makefile.in (ssa.o): New rule.
510 (OBJS): Add ssa.o.
511 (STAGESTUFF): Add *.ssa and *.ussa.
512 (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
513 * rtl.def (PHI): New RTL expression.
514 * rtl.h (clear_log_links): New declaration.
515 (convert_to_ssa): Likewise.
516 (convert_from_ssa): Likewise.
517 * flow.c (split_edge): If the entry node falls through to the
518 split edge's source block, split the entry edge.
519 (clear_log_links): New function.
520 * toplev.c (ssa_dump): New variable.
521 (flag_ssa): Likewise.
522 (f_options): Add "ssa".
523 (compile_file): Create SSA dump files.
524 (rest_of_compilation): Go to and from SSA if enabled.
525 (decide_d_option): Handle -de for SSA dump files.
526 * ssa.c: New file.
527
528 Thu Mar 9 20:01:38 2000 Jim Wilson <wilson@cygnus.com>
529
530 * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
531 same as VAR_DECL.
532
533 2000-03-09 Benjamin Kosnik <bkoz@cygnus.com>
534
535 * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
536
537 Thu Mar 9 18:10:02 2000 Jeffrey A Law (law@cygnus.com)
538
539 * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
540 (MD_STARTFILE_PREFIX_1): New macro.
541
542 2000-03-09 Robert Lipe <robertl@sco.com>
543
544 * config/ia64/ia64.c: Include system.h.
545
546 2000-03-09 Jason Merrill <jason@casey.cygnus.com>
547
548 * except.c (nothrow_function_p): If -fno-exceptions, just return.
549 (init_eh_nesting_info): Likewise.
550
551 * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
552 (TREE_NOTHROW): Rename from TREE_RAISES.
553 * toplev.c (rest_of_compilation): Set it.
554 * print-tree.c (print_node): Adjust.
555 * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
556 (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
557 * calls.c (emit_call_1): Add 'nothrow' parm. Add
558 REG_EH_REGION note as appropriate.
559 (libfunc_nothrow): New fn.
560 (emit_library_call, emit_library_call_value): Use it.
561 (expand_call): Check TREE_NOTHROW.
562
563 * varasm.c (make_decl_rtl): Skip initial '*' when setting
564 DECL_ASSEMBLER_NAME.
565
566 2000-03-09 Andreas Jaeger <aj@suse.de>
567
568 * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
569 (TARGET_MEM_FUNCTIONS): Define.
570
571 2000-03-09 Jason Merrill <jason@casey.cygnus.com>
572
573 * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
574
575 * except.c (can_throw): See through a SEQUENCE.
576 (nothrow_function_p): New fn.
577 * except.h: Declare it.
578 * function.c (current_function_nothrow): New var.
579 (prepare_function_start): Initialize it.
580 * output.h: Declare it.
581 * toplev.c (rest_of_compilation): Set it.
582 * dwarf2out.c (dwarf2out_begin_prologue): Use it.
583
584 2000-03-09 Zack Weinberg <zack@wolery.cumb.org>
585
586 * cpphash.c (collect_formal_parameters): strncmp returns 0 for
587 match. (cpp_compare_defs): Count the nul separator when
588 advancing over argument names.
589
590 2000-03-09 Bernd Schmidt <bernds@cygnus.co.uk>
591
592 * recog.c (preprocess_constraints): Matching constraints affect
593 same alternative/different operand, not same operand/different
594 alternative.
595
596 * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
597 register and a constant specially.
598
599 2000-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
600
601 * libgcc2.h: New file.
602 * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
603
604 Wed Mar 8 16:19:42 2000 Jim Wilson <wilson@cygnus.com>
605
606 * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
607 * configure: Regenerate.
608 * config/ia64: New.
609
610 2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
611
612 * Makefile.in (LIBCPP_DEPS): New macro.
613 (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
614 it to declare deps.
615 * cpperror.c: Include cpphash.h.
616 * cppexp.c: Include cpphash.h. Remove MULTIBYTE_CHARS
617 dingleberry.
618 (lex): Don't use CPP_WARN_UNDEF.
619 (_cpp_parse_expr): Return an int, the truth value.
620 * cppfiles.c: Include cpphash.h.
621 (_cpp_merge_include_chains): Move to cppinit.c and make static.
622 * cppinit.c (include_defaults_array): Disentangle.
623 (cpp_cleanup): Don't free the if stack here.
624 (cpp_finish): Pop off all buffers, not just one.
625 * cpplib.c (eval_if_expr): Return int.
626 (do_xifdef): Rename do_ifdef.
627 (handle_directive): Don't use CPP_PREPROCESSED.
628 (cpp_get_token): Don't use CPP_C89.
629 * fix-header.c: Don't use CPP_OPTIONS.
630
631 * cpplib.h: Move U_CHAR, enum node_type, struct
632 file_name_list, struct ihash, is_idchar, is_idstart,
633 is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
634 CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
635 CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
636 CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
637 CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
638 of _cpp_simplify_pathname, _cpp_find_include_file,
639 _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
640 Move struct if_stack to cpplib.c. Move struct cpp_pending to
641 cppinit.c.
642 Change all uses of U_CHAR to be unsigned char instead.
643 Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
644
645 2000-03-08 Jason Merrill <jason@casey.cygnus.com>
646
647 * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
648 (dwarf2out_begin_prologue): Set it.
649 (output_call_frame_info): Don't emit EH unwind info for leaves.
650
651 * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
652 can occur outside of an EH region.
653 * except.c: Correct comments about rethrow behavior.
654 (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
655
656 2000-03-08 Andrew MacLeod <amacleod@cygnus.com>
657
658 * flow.c (make_edges): Always call make_eh_edge for calls.
659
660 2000-03-08 Zack Weinberg <zack@wolery.cumb.org>
661
662 * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
663 (struct cpp_buffer): Remove fname and underflow fields.
664 (struct cpp_reader): Remove get_token field.
665 (struct include_hash): Rename to struct ihash. Add typedef to
666 IHASH.
667 (struct if_stack): Remove fname field.
668 (IF_STACK_FRAME): Rename to IF_STACK.
669
670 * cpperror.c (print_containing_files): Trust that there are no
671 macro buffers below the top file buffer.
672 * cppfiles.c: Replace all references to 'struct include_hash'
673 with 'IHASH'. Rename initialize_input_buffer to
674 init_input_buffer. Don't set or reference cpp_buffer->fname,
675 use buffer->ihash->name instead.
676 * cpphash.c (special_symbol): Use cpp_file_buffer. Use NULL
677 not CPP_NULL_BUFFER.
678 * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
679 IF_STACK_FRAME, IHASH not struct include_hash.
680 * cpplib.c: Rename eval_if_expression to eval_if_expr. Remove
681 null_underflow. Use IF_STACK not IF_STACK_FRAME, IHASH not
682 struct include_hash, NULL not CPP_NULL_BUFFER. Remove all
683 references to cpp_buffer->fname (delete entirely, or use
684 ->ihash->name instead) and IF_STACK->fname.
685 (cpp_push_buffer): Don't set new->underflow.
686 (do_include): Use cpp_file_buffer.
687
688 * cpphash.c (collect_formal_parameters): Remove duplicate
689 increment of argslen. Pedwarn in C99 mode if __VA_ARGS__ is
690 used as a macro argument name. Don't append "..." to namebuf
691 for varargs macros. After we're done scanning, go through
692 namebuf and make it NUL separated, not comma separated.
693 (_cpp_compare_defs): Remove register tag from variables.
694 Expect defn->argnames to be NUL separated.
695 (_cpp_dump_definition): Expect defn->argnames to be NUL
696 separated and in forward order.
697 * cpphash.h: Update documentation of argnames field.
698
699 2000-03-08 Richard Henderson <rth@cygnus.com>
700
701 * builtins.c (expand_builtin_strlen): Be prepared for strlensi
702 to fail. Don't pre-expand the source operand.
703
704 * i386.md (strlensi): Initialize eoschar and align before use.
705
706 2000-03-08 Jason Merrill <jason@casey.cygnus.com>
707
708 * expr.c (expand_expr, case ARRAY_REF): Still check for missing
709 CONSTRUCTOR element.
710
711 2000-03-08 Gavin Romig-Koch <gavin@cetus.cygnus.com>
712
713 * mips.c (mips_expand_prologue): If the last
714 named argument is the vararg marker "va_list", treat it as
715 an unnamed argument.
716
717 2000-03-08 Clinton Popetz <cpopetz@cygnus.com>
718
719 * dbxout.c (dbxout_parms): When correcting for promoted
720 big-endian parameters, use the mode of the DECL_RTL rather
721 than UNITS_PER_WORD.
722
723 2000-03-08 Nathan Sidwell <nathan@codesourcery.com>
724
725 * c-common.h (make_fname_decl): Declare.
726 * c-common.c (make_fname_decl): Define.
727 (declare_hidden_char_array): Remove.
728 (declare_function_name): Use make_fname_decl.
729 * c-decl.c (c_make_fname_decl): New function.
730 (init_decl_processing): Set make_fname_decl.
731
732 Tue Mar 7 23:50:31 2000 Jeffrey A Law (law@cygnus.com)
733
734 * cccp.c (handle_directive): Initialize backslash_newlines_p.
735
736 2000-03-07 Philipp Thomas <pthomas@suse.de>
737
738 * po/POTFILES.in: Remove cppalloc.c from file list.
739
740 2000-03-07 Steve Chamberlain <sac@pobox.com>
741
742 * pj.c (pj_expand_prologue): current_function->args_info is
743 now current_function_args_info.
744
745 * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
746 LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
747 ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
748
749 2000-03-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
750
751 * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
752 output as hexadecimal rather than the default octal.
753
754 2000-03-07 Zack Weinberg <zack@wolery.cumb.org>
755
756 * cpphash.c (special_symbol): Fix thinko in previous commit.
757
758 2000-03-07 Neil Booth <NeilB@earthling.net>
759
760 * cppexp.c (struct operation, left_shift, right_shift,
761 cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
762 "int"s to "unsigned int"s.
763 * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
764 Similarly.
765 * cpplib.h: Update for above.
766 * mkdeps.c (deps_init, deps_calc_target): Cast pointers
767 returned from allocations.
768
769 * cppinit.c (opt_comp, parse_options): New functions.
770 (handle_option): Use parse_option to parse a single command
771 line option, that possibly takes an argument.
772 (cpp_handle_options): Sort the array of command line options on
773 first invocation (non-ASCII hosts only).
774 (print_help): Update.
775
776 2000-03-07 Zack Weinberg <zack@wolery.cumb.org>
777
778 * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
779 backslash counting loops. Problem noted by Matt Kraai <kraai@ghs.com>.
780
781 * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
782 initialized.
783 * cppinit.c (cpp_cleanup): Free imp->nshort also.
784
785 * cpperror.c (cpp_print_containing_files,
786 cpp_print_file_and_line, v_cpp_message): Rename to
787 print_containing_files, print_file_and_line, and v_message.
788 * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
789 to _cpp_parse_expr, parse_escape, and lex.
790 (parse_charconst): Remove broken multibyte support.
791 * cppfiles.c (include_hash): Make static.
792 (cpp_included): New function.
793 (merge_include_chains, find_include_file, finclude,
794 simplify_pathname): Rename to _cpp_merge_include_chains,
795 _cpp_find_include_file, _cpp_read_include_file, and
796 _cpp_simplify_pathname.
797 * cpphash.c (cpp_lookup, free_definition, delete_macro,
798 cpp_install, create_definition, macroexpand, compare_defs,
799 dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
800 _cpp_delete_macro, _cpp_install, _cpp_create_definition,
801 _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
802 * cppinit.c (cpp_handle_option): Rename to handle_option, make
803 static.
804 * cpplib.c: Remove extern prototype of cpp_parse_expr.
805
806 * cpphash.h: Update prototypes.
807 * cpplib.h: Likewise. Prototype _cpp_parse_expr here.
808
809 2000-03-07 Andrew Haley <aph@cygnus.com>
810
811 * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
812 PTRDIFF_TYPE should be based solely on Pmode.
813 (SIZE_TYPE): ditto.
814
815 2000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
816
817 * rtl.h (rtunion_def): Constify member `rtstr'.
818 (emit_line_note_after, emit_line_note, emit_line_note_force,
819 emit_note, decode_asm_operands): Constify.
820
821 * cse.c (canon_hash): Likewise.
822
823 * dbxout.c (dbxout_block): Likewise.
824
825 * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
826 v_warning_for_asm): Likewise.
827
828 * dwarfout.c (function_start_label): Likewise.
829
830 * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
831 emit_line_note_force): Likewise.
832
833 * final.c (last_filename, asm_insn_count, final_scan_insn,
834 output_source_line): Likewise.
835
836 * function.h (struct emit_status): Likewise.
837
838 * gcse.c (hash_expr_1): Likewise.
839
840 * genattr.c (gen_attr, main): Likewise.
841
842 * genattrtab.c (struct function_unit, current_alternative_string,
843 write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
844 attr_numeral, check_attr_test, check_attr_value,
845 convert_set_attr_alternative, convert_set_attr,
846 compute_alternative_mask, simplify_by_exploding, gen_attr,
847 gen_unit): Likewise.
848
849 * genflags.c (gen_insn): Likewise.
850
851 * gengenrtl.c (type_from_format): Likewise.
852
853 * genopinit.c (gen_insn): Likewise.
854
855 * genoutput.c (n_occurrences, process_template, process_template):
856 Likewise.
857
858 * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
859 Likewise.
860
861 * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
862 Likewise.
863
864 * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
865 ggc_set_mark, ggc_get_size): Likewise.
866
867 * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
868
869 * optabs.c (init_one_libfunc): Likewise.
870
871 * output.h (assemble_start_function): Likewise.
872
873 * recog.c (decode_asm_operands): Likewise.
874
875 * toplev.c (rest_of_compilation): Likewise.
876
877 * tree.h (emit_line_note_after, emit_line_note,
878 emit_line_note_force): Likewise.
879
880 * varasm.c (asm_output_bss, asm_output_aligned_bss,
881 asm_emit_uninitialised, assemble_start_function,
882 assemble_variable, const_hash, compare_constant_1,
883 find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
884
885 * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
886
887 * alpha/alpha.md (call_vms, call_value_vms): Likewise.
888
889 * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
890
891 * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
892
893 * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
894 arm_dllimport_name_p): Likewise.
895
896 * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
897 Likewise.
898
899 * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
900
901 * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
902
903 * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
904 arm_mark_dllexport, arm_mark_dllimport,
905 arm_pe_encode_section_info): Likewise.
906
907 * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
908 ASM_FINISH_DECLARE_OBJECT): Likewise.
909
910 * arm/thumb.c (thumb_function_prologue): Likewise.
911
912 * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
913
914 * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
915
916 * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
917
918 * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
919
920 * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
921
922 * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
923
924 * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
925 ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
926
927 * i386/i386-protos.h (asm_output_function_prefix): Likewise.
928
929 * i386/i386.c (asm_output_function_prefix): Likewise.
930
931 * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
932
933 * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
934
935 * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
936
937 * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
938 ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
939 ASM_OUTPUT_SECTION_NAME): Likewise.
940
941 * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
942
943 * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
944
945 * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
946
947 * m32r/m32r.c (m32r_encode_section_info): Likewise.
948
949 * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
950
951 * mcore/mcore.c (mcore_encode_section_info): Likewise.
952
953 * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
954
955 * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
956
957 * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
958
959 * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
960
961 * mips/mips.md (movdi, movsi): Likewise.
962
963 * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
964
965 * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
966
967 * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
968
969 * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
970 ASM_OUTPUT_ASCII): Likewise.
971
972 * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
973 output_mi_thunk, output_toc): Likewise.
974
975 * rs6000/rs6000.md (movsi): Likewise.
976
977 * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
978
979 * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
980
981 * v850/v850.c (print_operand, print_operand_address,
982 v850_encode_data_area): Likewise.
983
984 2000-03-07 Clinton Popetz <cpopetz@cygnus.com>
985
986 * config/mips/mips.md (zero_extendsidi2): Always force operand
987 one to memory for mips16.
988
989 Mon Mar 6 15:22:29 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
990
991 * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
992 (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
993 (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
994 (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
995 (min_precision): Result is unsigned.
996 (add_double, neg_double, mul_double): Low word is unsigned.
997 (lshift_double, rshift_double, lrotate_double): Likewise.
998 (rrotate_double, div_and_round_double): Likewise.
999 (tree_floor_log2, compare_tree_int): New functions.
1000 (preserve_rtl_expr_temps): New declaration.
1001 * c-common.c (declare_hidden_char_array): Use compare_tree_int.
1002 (decl_attributes): Use tree_log2 to find alignment.
1003 Check for TREE_INT_CST_HIGH for format args.
1004 (min_precision): Now unsigned.
1005 Use tree_floor_log2.
1006 (truthvalue_conversion): Delete long-disabled code.
1007 * c-decl.c (finish_struct): Clean up tests on field width.
1008 (finish_function): Use compare_tree_int.
1009 * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
1010 * c-typeck.c (comptypes): Use tree_int_cst_equal.
1011 (default_conversion, digest_init): Use compare_tree_int.
1012 (build_binary_op): Use integer_all_onesp and compare_tree_int.
1013 Fix type errors in forming masks.
1014 * calls.c (initialize_argument_information): Use compare_tree_int.
1015 * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
1016 * except.c (expand_eh_region_start_tree): Use compare_tree_int.
1017 * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
1018 (store_field): Use compare_tree_int.
1019 (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
1020 (expand_expr, case ARRAY_REF): Use compare_tree_int.
1021 (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
1022 (do_store_flag): Use compare_tree_int.
1023 * fold-const.c (encode, decode): Low part is always unsigned.
1024 (force_fit_type, add_double, neg_double, mul_double): Likewise.
1025 (lshift_double, rshift_double, lrotate_double): Likewise.
1026 (rrotate_double, div_and_round_double, int_const_binop): Likewise.
1027 (fold_convert): Use compare_tree_int.
1028 (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
1029 (invert_truthvalue, case INTEGER_CST): Likewise.
1030 (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
1031 * mkdeps.c (deps_dummy_targets): Make I unsigned.
1032 * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
1033 (lshift_double, rshift_double, lrotate_double, rrotate_double):
1034 Likewise.
1035 * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
1036 (expand_end_case): Use compare_tree_int.
1037 (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
1038 * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
1039 (layout_decl): Likewise.
1040 (layout_record, layout_union): Make sizes unsigned.
1041 (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
1042 (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
1043 * tree.c (struct type_hash): hashcode is unsigned.
1044 (build_type_attribute_variant, type_hash_list): Likewise.
1045 (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
1046 (attribute_hash_list, build_array_type, build_method_type): Likewise.
1047 (build_complex_type): Likewise.
1048 (real_value_from_int_cst): Remove unneeded casts.
1049 (integer_all_onesp): Add casts.
1050 (tree_floor_log2, compare_tree_int): New functions.
1051 (build_index_type): Use tree_int_cst_sgn.
1052 * varasm.c (assemble_variable): Use compare_tree_int.
1053
1054 2000-03-06 Jason Merrill <jason@casey.cygnus.com>
1055
1056 * cpphash.c (collect_expansion): Also catch ## at start of macro.
1057
1058 * varasm.c (make_decl_rtl): Don't add a number to members of
1059 local classes.
1060 (make_function_rtl): Likewise.
1061
1062 2000-03-06 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
1063
1064 * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
1065 patch from 2000-01-28.
1066
1067 2000-03-06 Clinton Popetz <cpopetz@cygnus.com>
1068
1069 * config/sh/sh.c: (barrier_align): Handle a delay slot that is
1070 filled with an insn from the jump target.
1071
1072 2000-03-07 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1073
1074 * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
1075 (c4x_external_ref): Likewise.
1076 * config/c4x/c4x.c (struct name_list): Likewise.
1077
1078 1999-12-16 Ben Collins <bcollins@debian.org>
1079
1080 * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
1081 argument to genmultilib.
1082 * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
1083 the contents into the multilib.h header.
1084 * gcc.c: Declare multilib_exclusions for the specs file.
1085 (set_multilib_dir): Use it.
1086 (print_multilib_info): Likewise.
1087 * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
1088 to pass to genmultilib.
1089
1090 2000-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1091
1092 * builtins.c (built_in_class_names, built_in_names): Constify a
1093 char*.
1094
1095 * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
1096 int.
1097 (_mcleanup): Ensure value matches format specifier in sprintf.
1098
1099 * cpphash.c (special_symbol): Don't needlessly cast away
1100 const-ness.
1101
1102 * cppinit.c (base_name): Delete unused prototype.
1103
1104 * mkdeps.c (deps_init): Make definition K&R safe.
1105
1106 * tree.h (built_in_class_names, built_in_names): Constify a
1107 char*.
1108
1109 2000-03-06 Jakub Jelinek <jakub@redhat.com>
1110
1111 * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
1112 floating point instructions for epilogue delay.
1113
1114 * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
1115 to gas if it supports .register pseudo.
1116
1117 * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
1118 LONG_DOUBLE_TYPE_SIZE if not defined.
1119 Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
1120 LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
1121 * real.c: Likewise.
1122 * gengenrtl.c: Likewise.
1123 * print-rtl.c: Likewise.
1124 * rtl.c: Likewise.
1125 * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
1126 MASK_LONG_DOUBLE_128.
1127 * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
1128 * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
1129 * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
1130 (SUBTARGET_SWITCHES): Define.
1131 (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
1132 with -mlong-double-128.
1133 (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
1134 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
1135 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
1136 (CC1_SPEC): Include -mlong-double-{64,128} as needed.
1137 * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
1138 (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
1139 with -mlong-double-128.
1140 (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
1141 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
1142 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
1143 * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
1144 TARGET_LONG_DOUBLE_128): Define.
1145 * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
1146 * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
1147 long double on TARGET_ARCH64.
1148
1149 2000-03-06 Mark Mitchell <mark@codesourcery.com>
1150
1151 * function.c (free_temps_for_rtl_expr): Don't free slots
1152 that have been pushed into a higher level.
1153
1154 Revert this patch:
1155 2000-03-05 Mark Mitchell <mark@codesourcery.com>
1156
1157 2000-03-05 Mark Mitchell <mark@codesourcery.com>
1158
1159 * basic-block.h (ALLOCA_REG_SET): Remove.
1160 (INITIALIZE_REG_SET): New macro.
1161 * flow.c (update_life_info): Use it.
1162 (calculate_global_regs_live): Likewise.
1163 (propagate_block): Likewise.
1164 * global.c (build_insn_chain): Likewise.
1165 * haifa-sched.c (schedule_region): Likewise.
1166
1167 2000-03-05 Stephane Carrez <stcarrez@worldnet.fr>
1168
1169 * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
1170 (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
1171 (DWARF_ARANGES_PAD_SIZE): New define.
1172 (output_aranges): Use it to pad the address range header.
1173 (DWARF_ROUND): Fix for non power of 2 rounding.
1174
1175 2000-03-05 Jason Merrill <jason@casey.cygnus.com>
1176
1177 * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
1178
1179 2000-03-05 Mark Mitchell <mark@codesourcery.com>
1180
1181 * tree.def (RTL_EXPR): Update documentation.
1182 * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
1183 * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
1184 * function.c (preserve_rtl_expr_temp): New function.
1185 (preserve_rtl_expr_temps): Likewise.
1186 (preserve_rtl_expr_result): Use it.
1187
1188 Revert this patch:
1189 2000-03-04 Mark Mitchell <mark@codesourcery.com>
1190
1191 2000-03-04 Thomas Schuster <Thomas.Schuster@gmx.net>
1192
1193 * regmove.c (copy_src_to_dest) Do not create src->dest move
1194 for unchanging destination.
1195
1196 2000-03-04 Mark Mitchell <mark@codesourcery.com>
1197
1198 * function.h (struct sequence_stack): Remove rtl_expr.
1199 (struct emit_staus): Likewise.
1200 (seq_rtl_expr): Remove.
1201 * tree.h (free_temps_for_rtl_expr): Don't declare.
1202 (start_sequence_for_rtl_expr): Likewise.
1203 * rtl.h (preserve_rtl_expr_result): Likewise.
1204 * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
1205 (start_sequence_for_rtl_expr): Remove.
1206 (push_topmost_sequence): Don't save sequence_rtl_expr.
1207 (pop_topmost_sequence): Remove comment about not restoring it.
1208 (end_sequence): Don't set seq_rtl_expr.
1209 (init_emit): Don't initialize it.
1210 (mark_sequence_stack): Don't mark it.
1211 (mark_emit_status): Likewise.
1212 * except.c (protect_with_terminate): Use
1213 start_sequence_for_rtl_expr, not start_sequence.
1214 * expr.c (expand_expr, case RTL_EXPR): Don't call
1215 preserve_rtl_expr_result or free_temps_for_rtl_expr.
1216 * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
1217 (preserve_rtl_expr_result): Remove.
1218 (free_temps_for_rtl_expr): Likewise.
1219 (pop_temp_slots): Likewise.
1220 (mark_temp_slot): Don't mark the rtl_expr.
1221 * stmt.c (expand_start_stmt_expr): Use start_sequence, not
1222 start_sequence_for_rtl_expr.
1223
1224 2000-03-04 Zack Weinberg <zack@wolery.cumb.org>
1225
1226 * mkdeps.c, mkdeps.h: New files.
1227 * po/POTFILES.in: Add them.
1228 * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
1229 (cpplib.o, cppinit.o): Depend on mkdeps.h.
1230 (mkdeps.o): New target.
1231
1232 * cppfiles.c: Delete deps_output.
1233 * cppinit.c: Include mkdeps.h. Delete known_suffixes,
1234 OBJECT_SUFFIX, and base_name.
1235 (cpp_cleanup): Use deps_free. Free ihash->name when clearing
1236 the include hash.
1237 (initialize_dependency_output): Use deps_init,
1238 deps_add_target, deps_calc_target, and deps_add_dep. Remove
1239 all the unnecessary string bashing.
1240 (cpp_finish): Use deps_write. Remove an unnecessary nesting
1241 level.
1242 * cpplib.c (do_include): Use deps_add_dep.
1243 * cpplib.h (struct cpp_reader): Replace deps_buffer,
1244 deps_allocated_size, deps_size, deps_column members with
1245 single pointer to a struct deps. Delete prototype of
1246 deps_output.
1247
1248 * cppinit.c: Fix thinko in previous patch.
1249
1250 Sat Mar 4 11:32:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1251
1252 * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
1253 * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
1254 (mode_for_size_tree): New function.
1255 (layout_decl, layout_type): Call it and clean up BLKmode checks.
1256 * tree.h (mode_for_size_tree): New declaration.
1257
1258 * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
1259
1260 2000-03-04 Jason Merrill <jason@casey.cygnus.com>
1261
1262 * stmt.c (is_body_block): Move...
1263 * dwarfout.c, dwarf2out.c: ...from here.
1264 * tree.h: Declare it.
1265 * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
1266 * final.c (final_start_function): Do call remove_unnecessary_notes
1267 when scheduling.
1268
1269 2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
1270
1271 * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
1272
1273 * cpplib.h (_dollar_ok): New macro.
1274 (is_idchar, is_idstart): Use it.
1275 (IStable): Rename to _cpp_IStable. Declare it const if
1276 gcc >=2.7 or C99. Delete all references to FAKE_CONST.
1277 (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
1278 is_space): Update for renamed IStable.
1279
1280 * cppinit.c: Delete all references to FAKE_CONST and CAT
1281 macros. Define init_IStable as empty macro if gcc >=2.7 or
1282 C99. Change TABLE() to ISTABLE and hardcode name of table.
1283 (cpp_start_read): Don't change the IStable based on
1284 dollars_in_ident.
1285
1286 * cpphash.c (unsafe_chars): Add pfile argument. All callers
1287 changed. Handle '$' for char1 correctly.
1288 * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
1289
1290 * cppexp.c (tokentab2): Make const.
1291 (cpp_lex): Make toktab const.
1292 * cppinit.c (include_defaults_array): Make const.
1293 (initialize_standard_includes): Make default_include const.
1294
1295 2000-03-03 Jason Merrill <jason@casey.cygnus.com>
1296
1297 * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
1298 (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
1299 (gen_decl_die): Likewise.
1300 * dwarfout.c (dwarfout_file_scope_decl): Likewise.
1301 (output_decl): Likewise.
1302
1303 * varasm.c (make_function_rtl): If we change the name used in the
1304 rtl, update DECL_ASSEMBLER_NAME accordingly.
1305 (make_decl_rtl): Likewise.
1306
1307 * toplev.c (rest_of_compilation): Tweak formatting.
1308
1309 * toplev.c (rest_of_compilation): find_loop_tree_blocks before
1310 remove_unnecessary_notes.
1311 (debug_ignore_block): New fn.
1312 * toplev.h: Declare it.
1313 * emit-rtl.c (remove_unncessary_notes): Call it.
1314 * dwarf2out.c (dwarf2out_ignore_block): New fn.
1315 * dwarf2out.h: Declare it.
1316 * final.c (final_start_function): Don't call remove_unnecessary_notes
1317 if we did insn scheduling.
1318
1319 2000-03-03 Zack Weinberg <zack@wolery.cumb.org>
1320
1321 * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
1322 * cpplib.h: Delete SET_CPP_PEDANTIC.
1323
1324 Fri Mar 3 14:56:12 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1325
1326 * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
1327 result is a RECORD_TYPE.
1328
1329 2000-03-03 Jonathan Larmour <jlarmour@cygnus.co.uk>
1330
1331 * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
1332
1333 2000-03-03 Richard Henderson <rth@cygnus.com>
1334
1335 * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
1336 addition over compliments over shifts.
1337
1338 Fri Mar 3 12:49:28 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1339
1340 * reload1.c (reload_combine_note_use): Handle return register USEs.
1341 REG case: Handle multi-hard-register hard regs.
1342
1343 Fri Mar 3 07:38:34 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1344
1345 * md.texi: Document use of '*' in insn pattern name.
1346
1347 2000-03-03 Jason Merrill <jason@casey.cygnus.com>
1348
1349 * calls.c (special_function_p): operator new may not be malloc-like.
1350
1351 * gcse.c (dump_hash_table): Really fix error in last change.
1352
1353 2000-03-02 Denis Chertykov <denisc@overta.ru>
1354
1355 * avr.c (print_operand): Use print_operand_address instead of
1356 output_addr_const.
1357 * avr/libgcc.S: Cleanup code.
1358
1359 2000-03-02 Richard Henderson <rth@cygnus.com>
1360
1361 * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
1362
1363 2000-03-02 Mark Mitchell <mark@codesourcery.com>
1364
1365 * tree.h (TYPE_ALIGN_UNIT): New macro.
1366
1367 2000-03-02 Clinton Popetz <cpopetz@cygnus.com>
1368
1369 * i386.c: (constant_call_address_operand): Reject CONST_INT.
1370
1371 2000-03-02 Jason Merrill <jason@casey.cygnus.com>
1372
1373 * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
1374 for the buffer.
1375 (SET_CPP_PEDANTIC): New macro.
1376 * cpplib.c (do_include): Don't bother checking system_header_p.
1377 (do_warning, do_ident, do_assert, do_unassert): Likewise.
1378 * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
1379
1380 * function.h (struct expr_status): Add x_arg_space_so_far.
1381 (arg_space_so_far): New macro.
1382 * expr.c (init_expr): Initialize it.
1383 * calls.c (emit_call_1): Reset it.
1384 (compute_argument_block_size, expand_call): Use it.
1385 (expand_call, store_one_arg): Increment it.
1386
1387 Thu Mar 2 17:27:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1388
1389 * varasm.c (output_constant): Strip off a CONVERT_EXPR to
1390 a UNION_TYPE.
1391
1392 2000-03-02 Zack Weinberg <zack@wolery.cumb.org>
1393
1394 * cppfiles.c (cpp_read_file): New function.
1395
1396 * cpphash.c (collect_expansion): Make sure to reset last_token
1397 to NORM when we hit a string. Handle trailing whitespace
1398 properly when the expansion is empty.
1399 (create_definition): Disable line commands while parsing the
1400 directive line.
1401 (dump_definition): If pfile->lineno == 0, output a line
1402 command ahead of the dump, and add a trailing newline.
1403
1404 * cppinit.c (append_include_chain): Add fifth argument, which
1405 indicates whether or not system headers are C++ aware.
1406 (initialize_standard_includes): New function,
1407 broken out of read_and_prescan. Pass 'cxx_aware' value from
1408 the include_defaults_array on to append_include_chain.
1409 (dump_special_to_buffer): Const-ify char array.
1410 (builtin_array): Don't dump __BASE_FILE__.
1411 (cpp_start_read): Use cpp_read_file. Reorder code for
1412 clarity. Don't output line commands here for -D/-A/-U
1413 switches. Don't call deps_output for files included with
1414 -include or -imacros.
1415
1416 * cpplib.c (do_define): Don't pay any attention to the second
1417 argument.
1418 (cpp_expand_to_buffer): Disable line commands while scanning.
1419 (output_line_command): Work in the file buffer.
1420 * cpplib.h: Remove no_record_file flag from struct cpp_reader.
1421 Fix formatting of comments. Prototype cpp_read_file.
1422
1423 Thu Mar 2 13:29:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1424
1425 * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
1426 reference the language-equivalent of sizetype.
1427 * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
1428 * fold-const.c (size_binop, size_diffop): Put back checks.
1429 * gcse.c (dump_hash_table): Fix minor error in last change.
1430 * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
1431 Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
1432 all sizetypes.
1433
1434 Thu Mar 2 12:48:45 MET 2000 Jan Hubicka <jh@suse.cz>
1435
1436 * calls.c (expand_call) Do not attempt to combine stack adjustments
1437 with inhibit_defer_pop set.
1438
1439 2000-03-01 Mark Mitchell <mark@codesourcery.com>
1440
1441 * stor-layout.c (layout_decl): Allow front-ends to explicitly set
1442 the DECL_SIZE for a FIELD_DECL.
1443
1444 2000-03-01 Bruce Korb <bkorb@gnu.org>
1445
1446 * fixinc/inclhack.tpl: remove unused symlinks
1447 * fixinc/README: GCC Maintainer info
1448 * fixinc/inclhack.sh: regen
1449 * fixinc/fixincl.sh: regen
1450
1451 2000-03-01 Zack Weinberg <zack@wolery.cumb.org>
1452
1453 * cpphash.c (collect_expansion): Trim trailing white space
1454 from macro definitions, but don't go past the last insertion
1455 point.
1456
1457 Wed Mar 1 12:14:31 MET 2000 Jan Hubicka <jh@suse.cz>
1458
1459 * i386.md (mulqi3): New pattern.
1460
1461 2000-02-29 Zack Weinberg <zack@wolery.cumb.org>
1462
1463 * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
1464 token types.
1465 (struct cpp_reader): Add parsing_if_directive and
1466 parsing_define_directive flags.
1467 (struct cpp_options): Remove output_conditionals flag.
1468 (check_macro_name): Delete prototype.
1469
1470 * cpphash.h (struct macrodef): Delete.
1471 (struct reflist): Separate from struct definition.
1472 (struct definition): Remove unused fields. Add column number.
1473 (create_definition): Returns a DEFINITION *. Takes a
1474 cpp_reader * and an int.
1475
1476 * cpphash.c (SKIP_WHITE_SPACE): Delete.
1477 (PEEKC): Copy defn from cpplib.c.
1478 (rest_extension, REST_EXTENSION_LENGTH): Delete.
1479 (struct arg): New.
1480 (struct arglist): Simplify.
1481 (collect_expansion): Rewrite. Get tokens by calling
1482 cpp_get_token. Add more error checking.
1483 (collect_formal_parameters): New function, broken out of
1484 create_definition and reworked to use get_directive_token.
1485 (create_definition): All real work is now in collect_expansion
1486 and collect_formal_parameters. do_define handles finding the
1487 macro name. Return a DEFINITION, not a MACRODEF.
1488 (macroexpand): Replace bcopy with memcpy throughout. Replace
1489 character-at-a-time copy loop with memcpy and pointer increments.
1490 (compare-defs): d1->argnames / d2->argnames might be null.
1491
1492 * cpplib.c (copy_rest_of_line): Delete function.
1493 (skip_rest_of_line): Do all the work ourselves.
1494 (skip_string): New function.
1495 (parse_string): Use skip_string.
1496 (get_macro_name): New function.
1497 (check_macro_name): Delete.
1498 (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
1499 (cpp_skip_hspace): Use CPP_BUMP_LINE.
1500 (handle_directive): ICE if we're called on a macro buffer.
1501 (do_define): Determine macro name and type (funlike/objlike)
1502 here. Expunge all uses of MACRODEF.
1503 (cpp_push_buffer): Set line_base to NULL.
1504 (do_undef, read_line_number): Don't worry about getting a POP token.
1505 (eval_if_expression): Set/reset parsing_if_directive around
1506 cpp_parse_expr. Don't clear only_seen_white.
1507 (skip_if_group): Remove output_conditionals logic. Use
1508 skip_rest_of_line.
1509 (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
1510 tokens under appropriate conditions.
1511 (cpp_unassert): Call do_unassert not do_assert. Oops.
1512
1513 * cppexp.c (parse_defined): New function, break out of
1514 cpp_lex.
1515 (cpp_lex): We now get CPP_ASSERTION tokens and can check them
1516 ourselves, with cpp_defined.
1517 * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
1518
1519 * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
1520 * gcc.dg/strpaste-2.c: New.
1521
1522 2000-02-29 Mark Mitchell <mark@codesourcery.com>
1523
1524 * fold-const.c (size_binop): Don't asert inputs are the same and
1525 have TYPE_IS_SIZETYPE set.
1526 (size_diffop): Likewise.
1527
1528 2000-02-29 Jason Merrill <jason@casey.cygnus.com>
1529
1530 * dwarfout.c (output_block): Output abstract blocks even if they
1531 don't have TREE_ASM_WRITTEN set.
1532
1533 * calls.c (emit_library_call): Check for null REG.
1534
1535 2000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de>
1536
1537 * c-decl.c (current_function_decl): Move to toplev.c.
1538 (init_decl_processing): Don't add current_function_decl as a ggc
1539 root here.
1540 * dbxout.c (dbxout_symbol): Change return type to int.
1541 (dbxout_symbol_location, dbxout_syms): Likewise.
1542 (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
1543 any locals. Use current_function_func_begin_label if set.
1544 * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
1545 * dwarf2out.c (dwarf2out_begin_prologue): Set
1546 current_function_func_begin_label.
1547 * final.c (final_start_function): Reset it.
1548 * toplev.c (current_function_decl): Define it here.
1549 (current_function_func_begin_label): New variable.
1550 (main): Add both as ggc roots.
1551 * tree.h (current_function_func_begin_label): Declare.
1552
1553 Tue Feb 29 14:07:04 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1554
1555 * gcse.c: Cleanups throughout: mostly white-space, but also
1556 some minor rearrangement of code.
1557
1558 Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com)
1559
1560 * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
1561 returns a PARALLEL. Use emit_group_load and use_group_regs
1562 as needed.
1563 (emit_library_call_value): Similarly.
1564
1565 * pa/t-pa: Use quadlib.c instead of quadlib.asm.
1566 * pa/quadlib.asm: Remove.
1567 * pa/quadlib.c: New file.
1568
1569 * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
1570 * configure: Rebuilt.
1571
1572 2000-02-29 Philip Blundell <pb@futuretv.com>
1573
1574 * config/arm/conix-elf.h: New file.
1575 * configure.in (arm*-*-conix*): New configuration.
1576 * configure: Regenerate.
1577
1578 2000-02-28 Jason Merrill <jason@casey.cygnus.com>
1579
1580 * dwarf2out.c (gen_block_die): Output abstract blocks even if they
1581 don't have TREE_ASM_WRITTEN set.
1582
1583 Mon Feb 28 21:07:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1584
1585 * Eliminate DECL_FIELD_SIZE.
1586 * builtins.c (built_in_class_names, built_in_names): New variables.
1587 * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
1588 * expr.c (expand_expr, case COMPONENT_REF): Get field size from
1589 DECL_SIZE, not DECL_FIELD_SIZE.
1590 * print-tree.c (print_node): Remove code that prints extra blank
1591 lines in some cases.
1592 Properly handle inline and builtin function cases.
1593 * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
1594 * tree.h (built_in_class_named, built_in_names): New declarations.
1595 (union tree_decl): Rename internal unions to u1 and u2 and change
1596 some of their components.
1597 Add new field built_in_class.
1598 (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
1599 Reflect above changes.
1600 (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
1601 (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
1602 * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
1603 (encode_field_decl): Likewise; also remove obsolete test for bitfield.
1604
1605 2000-02-28 Dmitri Makarov <dim@windriver.com>
1606
1607 * extend.texi: Document ARM's support for long/short calls.
1608
1609 * invoke.texi: Document ARM's -mlong-calls command line switch.
1610
1611 * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
1612 (arm_encode_call_attribute): Add prototype.
1613 (arm_set_default_type_attribute): Add prototype.
1614 (arm_strip_name_encoding): Add prototype.
1615
1616 * config/arm/arm.c (arm_init_cumulative_args): replace
1617 initialisation og 'long_calls' field with initialisation of
1618 'call_cookie' field.
1619 (enum arm_pragma_enum): New enum.
1620 (arm_pragma_long_calls): New static variable.
1621 (arm_process_pragma): Also process "#pragma long_calls_off".
1622 (arm_valid_type_attribute_p): Accept short_call attribute.
1623 (arm_comp_type_attributes): Check long/short call attributes.
1624 (arm_encode_call_attribute): New function: Encode long_call
1625 or short_call attribute in function name.
1626 (arm_set_default_type_attributes): New function: Assign
1627 default attributes to newly defined type.
1628 (current_file_function_operand): New function: Return true if
1629 the symbol is a function which has already been compiled.
1630 (arm_is_longcall_p): New function: Return true if the
1631 indicated function should be called via a long call.
1632 (arm_get_strip_length): New function. Returns number of
1633 prefix characters to be stripped from a function's name.
1634 (arm_strip_name_encoding): New function. Strip prefix characters
1635 from a function's name.
1636
1637 * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
1638 with 'call_cookie'.
1639 (SHORT_CALL_FAG_CHAR): Define.
1640 (LONG_CALL_FAG_CHAR): Define.
1641 (ENCODED_SHORT_CALL_ATTR_P): Define.
1642 (ENCODED_LONG_CALL_ATTR_P): Define.
1643 (ARM_NAME_ENCODING_LENGTHS): Define.
1644 (STRIP_NAME_ENCODING): Define.
1645 (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
1646 (ARM_ENCODE_CALL_TYPE): Define.
1647 (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
1648 (ARM_DECLARE_FUNCTION_SIZE): Define.
1649 (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
1650
1651 * config/arm/arm.md (call): Call arm_is_longcall_p to decide
1652 if a long call is needed.
1653 (call_value): Ditto.
1654 (call_symbol): Ditto.
1655
1656 * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
1657 ARM_DECLARE_FUNCTION_SIZE.
1658
1659 * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
1660 (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
1661 (ARM_STRIP_NAME_ENCODING): Undefine.
1662 (STRIP_NAME_ENCODING): Undefine.
1663 (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
1664 (ASM_DECLARE_FUNCTION_NAME): Ditto.
1665 (ASM_OUTPUT_COMMON): Ditto.
1666 (ASM_DECLARE_OBJECT_NAME): Ditto.
1667
1668 * config/arm/pe.c (arm_dllexport_name_p): Check for
1669 ARM_PE_FLAG_CHAR.
1670 (arm_dllimport_name_p): Ditto.
1671 (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
1672 (arm_mark_dllimport): Ditto.
1673
1674 Mon Feb 28 22:11:12 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1675
1676 * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
1677
1678 2000-02-28 Mark Mitchell <mark@codesourcery.com>
1679
1680 * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
1681
1682 2000-02-28 Zack Weinberg <zack@wolery.cumb.org>
1683
1684 * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
1685 * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
1686 NO_BUILTIN_WCHAR_TYPE is not defined.
1687 (CPP_WCHAR_TYPE): Delete.
1688 * cccp.c (main): Don't change wchar_type if cplusplus.
1689 (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
1690
1691 2000-02-28 Nick Clifton <nickc@cygnus.com>
1692
1693 * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
1694
1695 Mon Feb 28 14:21:15 2000 Catherine Moore <clm@cygnus.com>
1696
1697 * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
1698 (ASM_WEAKEN_LABEL): Define.
1699
1700 Mon Feb 28 13:07:19 MET 2000 Jan Hubicka <jh@suse.cz>
1701
1702 * expr.c (store_constructor): Do not emit USE.
1703 * rtl.h (stupid_life_analysis): Remove.
1704
1705 Mon Feb 28 07:03:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1706
1707 * function.c (number_blocks): Reset next_block_index based on
1708 what debugging format is used, not what is defined.
1709
1710 * lcm.c: Minor reformatting throughout.
1711 (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
1712
1713 * toplev.c (rest_of_compilation): Account for time in
1714 optimize_mode_switching.
1715
1716 * jump.c (jump_optimize_1): Don't call delete_barrier_successors
1717 if only marking labels.
1718
1719 Mon Feb 28 12:53:57 MET 2000 Jan Hubicka <jh@suse.cz>
1720
1721 * calls.c (expand_call): Attempt to combine stack adjustments with
1722 pending stack adjustments.
1723
1724 Mon Feb 28 11:34:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1725
1726 * loop.c (reg_in_basic_block_p): Don't abort when falling through
1727 to the end of the function.
1728
1729 2000-02-27 Mark Mitchell <mark@codesourcery.com>
1730
1731 * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
1732 blocks.
1733 * final.c (next_block_index): Remove.
1734 (max_block_depth): Likewise.
1735 (pending_blocks): Likewise.
1736 (init_final): Don't initialize them.
1737 (final_start_function): Don't set next_block_index. Set up
1738 BLOCK_NUMBER.
1739 (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
1740 * function.h (number_blocks): New function.
1741 * function.c (get_block_vector): New function.
1742 (identify_blocks): Use it.
1743 (reorder_blocks): Set NOTE_BLOCK.
1744 (number_blocks): New function.
1745 * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
1746 * tree.h (BLOCK_NUMBER): New macro.
1747 (tree_block): Add block_num field.
1748 * dbxout.c (next_block_number): Remove.
1749 (dbxout_init): Don't set it.
1750 (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
1751 set. Use BLOCK_NUMBER, rather than next_block_num, to determine
1752 block numbers.
1753 * toplev.c (rest_of_compilation): Always call
1754 find_loop_tree_blocks. Fix indentation.
1755 * dwarf2out.c (next_block_number): Remove.
1756 (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
1757 to determine block numbers.
1758 (gen_inlined_subroutine_die): Likewise.
1759 (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
1760 (decls_for_scope): Don't increment next_block_number.
1761 * dwarfout.c (next_block_number): Remove.
1762 (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
1763 to determine block numbers.
1764 (output_inlined_subroutine_die): Likewise.
1765 (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
1766 (output_decls_for_scope): Don't increment next_block_number.
1767 * sdbout.c (next_block_number): Remove.
1768 (sdbout_block): Use BLOCK_NUMBER.
1769 (sdbout_begin_block): Simplify.
1770 * xcoffout.c (next_block_number): Remove.
1771 (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
1772 (xcoffout_begin_block): Don't set next_block_number.
1773 (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
1774 next_block_number.
1775
1776 Sun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1777
1778 * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
1779 (expand_builtin_strcpy): Pass correct type to size_binop.
1780 (expand_builtin_strcmp): Likewise.
1781 Clean up conditional structure.
1782 * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
1783 (complete_array_type): Don't use size_binop for MAXINDEX.
1784 * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
1785 (c_sizeof_nowarn, c_size_in_bytes): Likewise.
1786 (c_alignof): Use size_one_node.
1787 (build_unary_op): Pass arg of proper type to size_binop.
1788 (really_start_incremental_init, push_init_level): Use sizetype for
1789 constructor{,_bit,_unfilled}_index.
1790 (pop_init_label, output_init_element): Likewise.
1791 (output_pending_init_elements, process_init_element): Likewise.
1792 * calls.c (compute_argument_block_size): Field VAR is ssizetype.
1793 * expr.c (store_expr): Use size_int.
1794 (store_constructor): Use proper types for size_binop args.
1795 (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
1796 (expand_expr_unaligned): Likewise.
1797 (string_contant): Return object of sizetype.
1798 * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
1799 (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
1800 (ARGS_SIZE_TREE): Pass proper types to size_binop.
1801 * fold-const.c (int_const_binop): Refine when size_int is called.
1802 (fold_convert): Likewise.
1803 (size_int_wide): Rework to take KIND as arg, only take low order
1804 bits, handle new sizetype_tab datatype, and chain entries in
1805 size_table.
1806 (size_int_type_wide): New function.
1807 (size_binop): Validate types of arguments.
1808 (ssize_binop): Deleted.
1809 (size_diffop): New function.
1810 (extract_muldiv): Only fold division into multiplication for sizetypes.
1811 * function.c (assign_parms): Use size_diffop and make sure
1812 VAR field is of ssizetype; also pass proper type to size_binop.
1813 (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
1814 (round_down): Deleted from here.
1815 * store-layout.c (sizetype_tab): Now an array.
1816 (sizetype_set, early_root_list): New variables.
1817 (variable_size): Use size_one_node.
1818 (round_up): Pass proper type to size_binop.
1819 (round_down): Moved to here and corrected as above.
1820 (layout_record): Pass proper arg types to size_binop.
1821 (layout_type): Likewise.
1822 If sizetype_set is zero, record the type just laid out.
1823 (make_unsigned_type): Don't call set_sizetype;
1824 (make_signed_type): Likewise; also, call fixup_signed_type.
1825 (initialize_sizetypes): New function.
1826 (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
1827 set name of bitsizetype to "bit_size_type".
1828 Fix up type of sizes of all types made before call.
1829 * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
1830 * tree.c (fix_sizetype): Deleted.
1831 (build_common_tree_nodes): Call initialize_sizetypes.
1832 (build_common_tree_nodes_2): Don't call fix_sizetype.
1833 * tree.h (TYPE_IS_SIZETYPE): New macro.
1834 (initialize_sizetype): New declaration.
1835 (enum size_type_kind): New type.
1836 (struct sizetype_tab): Deleted.
1837 (sizetype_tab): Now array; adjust sizetype macros.
1838 (size_diffop, size_int_type_wide): New functions.
1839 (size_int_wide): Change number of args and type; access macros changed.
1840 (ssize_int, sbitsize_int): New macros.
1841 * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
1842 (ROUND_TYPE_SIZE_UNIT): New macro.
1843
1844 2000-02-27 Zack Weinberg <zack@wolery.cumb.org>
1845
1846 * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
1847
1848 Sun Feb 27 07:44:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1849
1850 * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
1851 Mark as possibly unused.
1852
1853 * cse.c (cse_insn): Delete dead code involving tablejump.
1854 Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
1855
1856 * Makefile.in (libcpp.a): Start by deleting it.
1857
1858 2000-02-27 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
1859
1860 * cpplib.h (enum file_change_code): Added rename_file.
1861 * cpplib.c (do_line): If a filename is given, set file_change to
1862 rename_file.
1863 (output_line_command): If file_change is rename_file, always
1864 output a # directive with the file name.
1865
1866 * cpplib.c (do_pragma): Accept #pragma without consecutive token.
1867
1868 2000-02-26 Mark Mitchell <mark@codesourcery.com>
1869
1870 * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
1871 when copying a PARM_DECL or RESULT_DECL.
1872
1873 2000-02-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1874
1875 * fix-header.c (recognized_function): Also fix prototypes for
1876 functions taking "void".
1877
1878 2000-02-26 Geoff Keating <geoffk@cygnus.com>
1879
1880 * reload1.c (do_output_reload): Check reg_reloaded_valid before
1881 looking at reg_reloaded_contents.
1882
1883 2000-02-26 Zack Weinberg <zack@wolery.cumb.org>
1884
1885 * Makefile.in (STMP_FIXINC): New toggle.
1886 (LIBGCC2_DEPS): Delete all references.
1887 (stmp-headers): Delete target. All references either deleted
1888 or changed to stmp-int-headers.
1889 (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
1890 (LIBCPP_OBJS): Take out cppalloc.o.
1891 (cppalloc.o): Delete target.
1892 (stmp-int-hdrs): Depend on $(STMP_FIXINC).
1893 (gen-protos, fix-header): Link with libiberty.a.
1894 * build-make: Don't change FIXINCLUDES. Override STMP_FIXINC
1895 to empty.
1896
1897 * configure.in: Remove refs to strerror.
1898 * acconfig.h: Take out NEED_DECLARATION_STRERROR.
1899 * system.h: Take out strerror stanza.
1900
1901 * cpperror.c (my_strerror): Delete function.
1902 (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
1903 * cppmain.c (main): Call xmalloc_set_program_name first thing.
1904 * cppalloc.c: Delete file.
1905 * gen-protos.c: Don't provide xrealloc.
1906
1907 * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
1908 xstrerror throughout.
1909
1910 2000-02-26 Bruce Korb <bkorb@gnu.org>
1911
1912 * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
1913 match for DOS headers, too.
1914 * fixinc/inclhack.sh,fixincl.x: Regenerate.
1915
1916 2000-02-26 Geoff Keating <geoffk@cygnus.com>
1917
1918 * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default
1919 is right for most ELF targets.
1920 * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
1921 Let the default file use %U properly.
1922 * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the
1923 default.
1924
1925 * config/fp-bit.c (pack_d): Properly handle rounding of denormal
1926 numbers.
1927
1928 Sat Feb 26 09:39:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1929
1930 * toplev.c (documented_lang_options): Correct spelling error.
1931 (decode_d_option, decode_f_option, main): Likewise.
1932
1933 * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
1934
1935 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
1936 to tell assembler it is permitted to expand large constants.
1937
1938 2000-02-25 Mumit Khan <khan@xraylith.wisc.edu>
1939
1940 * protoize.c: (AUX_INFO_SUFFIX): New macro.
1941 (aux_info_suffix): Use.
1942 (SAVE_SUFFIX): New macro.
1943 (save_suffix): Use.
1944 (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
1945 (gen_aux_info_file): Use aux_info_suffix instead of ".X".
1946 (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
1947
1948 * invoke.texi (Running Protoize): Update documentation.
1949
1950 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
1951
1952 * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
1953
1954 2000-02-25 John Wehle (john@feith.com)
1955
1956 * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
1957
1958 2000-02-25 Anthony Green <green@cygnus.com>
1959
1960 * toplev.c (rest_of_compilation): Rebuild jump labels if
1961 combine_instructions has created a new direct jump.
1962 * combine.c (try_combine): Add new_direct_jump_p argument. Set it
1963 when appropriate.
1964 (combine_instructions): Call try_combine with new argument.
1965 Return non-null value when new direct jump instruction is created.
1966 * rtl.h: combine_instructions returns an int.
1967
1968 Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com)
1969
1970 * cse.c (cse_insn): Replace the PATTERN of the insn with an new
1971 jump when changing a computed jump into a jump to a known
1972 target.
1973
1974 Fri Feb 25 19:22:44 2000 Graham Stott <grahams@rcp.co.uk>
1975
1976 * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
1977 to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
1978
1979 * i386.md (define_expand "clrstrsi"): Fix typo.
1980
1981 Fri Feb 25 18:49:39 2000 "K. Richard Pixley" <rich@microunity.com>
1982
1983 * rtl.texi: Fix typo.
1984
1985 Fri Feb 25 20:02:35 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1986
1987 * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
1988 UNITS_PER_WORD. Change caller initial_elimination_offset.
1989 (rounded_frame_size): Take into account that argument pushed has
1990 changed. Fix TARGET_ALIGN_DOUBLE problem.
1991
1992 2000-02-25 Geoff Keating <geoffk@cygnus.com>
1993
1994 * haifa-sched.c (schedule_block): Explain the real reason
1995 we delete REG_SAVE_NOTEs on the first insn of a block.
1996 Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
1997
1998 2000-02-24 Mark Mitchell <mark@codesourcery.com>
1999
2000 * input.h (push_srcloc): New function.
2001 (pop_srcloc): Likewise.
2002 * toplev.c (push_srcloc): Define it.
2003 (pop_srcloc): Likewise.
2004
2005 2000-02-24 Richard Henderson <rth@cygnus.com>
2006
2007 * flow.c (life_analysis): When collecting reg info, clear
2008 regs_ever_live.
2009
2010 Thu Feb 24 22:06:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2011
2012 Fix bug exposed by reload.c no longer rounding the frame
2013 size to BIGGEST_ALIGNMENT:
2014 * sh.c (rounded_frame_size): New function.
2015 (sh_expand_prologue, sh_expand_epilogue): Use it.
2016 (initial_elimination_offset): Likewise.
2017
2018 Thu Feb 24 20:04:11 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2019
2020 Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
2021 * sh-protos.h (sh_need_epilogue): Declare.
2022 * sh.c (sh_need_epilogue_known): New static variable.
2023 (sh_need_epilogue): New function.
2024 (function_epilogue): Clear need_epilogue_known.
2025 * sh.md (return): Split into expander / insn pattern.
2026 Make the expander conditional on ! sh_need_epilogue ().
2027
2028 2000-02-24 Nathan Sidwell <nathan@codesourcery.com>
2029
2030 * machmode.h (get_mode_alignment): Declare.
2031 (GET_MODE_ALIGNMENT): Call it.
2032 * stor-layout.c (get_mode_alignment): New function. Make
2033 sure alignment is always power of 2.
2034
2035 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
2036
2037 * i386.h: Remove useless definition of "I386" and misleading
2038 comment above it.
2039
2040 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
2041
2042 * tree.h (TREE_SET_PERMANENT): New macro. Document conditions
2043 under which TREE_PERMANENT will be set.
2044 * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
2045 build1): Use TREE_SET_PERMANENT.
2046 * print-tree.c (print_node): Don't report value of
2047 TREE_PERMANENT if ggc_p is true.
2048
2049 * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
2050 decide whether to give a type a new alias set.
2051 * objc/objc-act.c (build_objc_string_object): Never copy the string.
2052 * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
2053 of value of 'obstack'.
2054
2055
2056 2000-02-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2057
2058 * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
2059
2060 2000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2061
2062 * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
2063 * cpplib.c (cpp_get_token): Produce them.
2064 * cppexp.c (cpp_lex): Handle them.
2065
2066 2000-02-23 Nick Clifton <nickc@cygnus.com>
2067
2068 * config/arm/arm.c (arm_comp_type_attributes): Simply and
2069 comment tests on type attributes.
2070
2071 Wed Feb 23 16:42:21 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2072
2073 * final.c (shorten_branches): Make value passed to LOOP_ALIGN
2074 conform to documentation.
2075 * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
2076 to check for special cases.
2077 * sh-protos.h (sh_loop_align): Declare.
2078 * sh.c (sh_loop_align): Define.
2079
2080 2000-02-22 Andrew Haley <aph@cygnus.com>
2081
2082 * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
2083 (SIZE_TYPE): Is 32 bits when using -mgp32.
2084 (PTRDIFF_TYPE): Ditto.
2085
2086 Wed Feb 23 07:26:27 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2087
2088 * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
2089
2090 2000-02-23 Zack Weinberg <zack@wolery.cumb.org>
2091
2092 * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
2093 BIGGEST_FIELD_ALIGNMENT a constant.
2094
2095 2000-02-21 Jason Merrill <jason@casey.cygnus.com>
2096
2097 * dwarf2out.c (output_line_info): Put the marker for the end of
2098 the line number info at the actual end.
2099 (gen_struct_or_union_type_die): Use decl_function_context
2100 to check for local classes.
2101 * dwarfout.c (output_type): Likewise.
2102
2103 Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com)
2104
2105 * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
2106 for arguments with a mode, but no type.
2107 (FUNCTION_ARG_CALLEE_COPIES): Similarly.
2108 * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
2109 * pa/long_double.h: New file.
2110 * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
2111 both have 128bit wide long doubles.
2112 * configure: Rebuilt.
2113
2114 2000-02-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2115
2116 * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
2117
2118 * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
2119 fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
2120 (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
2121
2122 * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
2123
2124 * integrate.c (compare_blocks, find_block): Likewise.
2125
2126 * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
2127
2128 * rtl.h (set_file_and_line_for_stmt): Constify a char*.
2129
2130 * stmt.c (stmt_status, set_file_and_line_for_stmt,
2131 expand_asm_operands): Likewise.
2132
2133 Mon Feb 21 17:06:27 2000 Jason Eckhardt <jle@cygnus.com>
2134
2135 * predict.c (estimate_probability): Added the pointer heuristic to
2136 the collection of static branch predictors.
2137
2138 2000-02-21 Catherine Moore <clm@cygnus.com>
2139
2140 * config/mips/mips.h (ASM_SPEC): Add -mfix700.
2141 * invoke.texi (-mfix7000): Document.
2142
2143 2000-02-21 Gabriel Dos Reis <gdr@codesourcery.com>
2144
2145 * diagnostic.c (init_output_buffer): Make it possible to output at
2146 least 32 characters if we're given a too long prefix.
2147
2148 2000-02-20 Mark Mitchell <mark@codesourcery.com>
2149
2150 * varasm.c (initializer_constant_valid_p): Call
2151 lang_expand_constant to simplify the constant.
2152
2153 2000-02-20 Bruce Korb <bkorb@gnu.org>
2154
2155 * fixinc/inclhack.def(stdio_va_list):
2156 typedef needs to be disabled.
2157 * fixinc/inclhack.sh: regen
2158 * fixinc/fixincl.x: regen
2159
2160 2000-02-20 Geoff Keating <geoffk@cygnus.com>
2161
2162 * print-rtl.c (print_rtx): Don't print addresses when
2163 flag_dump_unnumbered.
2164
2165 2000-02-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2166
2167 * sparc.c (sparc_output_scratch_registers): Mark parameter with
2168 ATTRIBUTE_UNUSED.
2169 (sparc_va_arg, sparc_flat_output_function_prologue,
2170 sparc_flat_output_function_epilogue): Cast value to unsigned in
2171 comparison.
2172 (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
2173
2174 * sparc.md: Add default case in switch.
2175
2176 2000-02-19 Richard Henderson <rth@cygnus.com>
2177
2178 * c-typeck.c (add_pending_init): Don't abort for multiple
2179 fields at the same offset.
2180 (pending_init_member): Test the correct member.
2181
2182 2000-02-19 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2183
2184 * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
2185 instead of SImode.
2186 (start_catch_handler) : Same.
2187
2188 2000-02-19 Brad Lucier (lucier@math.purdue.edu)
2189
2190 * Makefile.in: Have flow.o depend on $(EXPR_H)
2191
2192 Sat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2193
2194 * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
2195 * c-decl.c (duplicate_decls, finish_enum): Likewise.
2196 (finish_decl): Remove -Wlarger-than code from here.
2197 * flags.h (id_clash_len): Now int.
2198 (larger_than_size): Now HOST_WIDE_INT.
2199 * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
2200 Clean up checking to see if in table.
2201 (make_bit_field_ref): Remove extra parm to bitsize_int.
2202 * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
2203 * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
2204 * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
2205 and for computing size of decl.
2206 * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
2207 Move -Wlarger-than code to here.
2208 (layout_record): Remove extra arg to bitsize_int.
2209 Set TYPE_BINFO_SIZE_UNIT.
2210 (layout_union): Remove extra arg to bitsize_int.
2211 Use proper type for size of QUAL_UNION.
2212 (layout_type): Remove extra arg to bitsize_int.
2213 * toplev.c (id_clash_len): Now int.
2214 (larger_than_size): Now HOST_WIDE_INT.
2215 (decode_W_option): Clean up id-clash and larger-than- cases.
2216 * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
2217 (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
2218 * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
2219 (struct tree_decl): New field size_unit.
2220 (size_int_wide): No HIGH operand; NUMBER is now signed.
2221 (size_int_2): Deleted.
2222 (size_int, bitsize_int): Don't use it and rework args.
2223 * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
2224
2225 Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com)
2226
2227 * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
2228
2229 2000-02-18 Geoff Keating <geoffk@cygnus.com>
2230
2231 * invoke.texi (Warning Options): Add an explanation of why
2232 you might want the -Wfloat-equal flag.
2233
2234 Fri Feb 18 20:08:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2235
2236 * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
2237 * cppinit.c (new_pending_define): Add cast to avoid warning.
2238 * expmed.c (extract_bit_field): Likewise.
2239 * flow.c (enum reorder_skip_type): New type.
2240 (skip_insns_between_blcok): New it.
2241 Rework to avoid warning about possibly undefined variable.
2242 * function.c (assign_parms): Make thisparm_boundary unsigned.
2243 * genrecog.c (write_switch): Cast XWINT result to int.
2244 * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
2245 * mips-tfile.c (init_file): Make two versions of FDR intializer:
2246 one for MIPS and one for Alpha.
2247 (get_tag, copy_object): Add casts to avoid warnings.
2248 * optabs.c (init_one_libfunc): Cast NAME to (char *).
2249 * reload.c (find_reloads): Make TYPE enum reload_type.
2250 * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
2251 * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
2252 * varasm.c (compare_constant_1): Add cast to avoid warning.
2253 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
2254 to (char *).
2255 (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
2256 Cast switch operand of size to int.
2257 (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
2258 * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
2259 in unhandled case.
2260
2261 2000-02-18 Nick Clifton <nickc@cygnus.com>
2262
2263 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
2264 anything for an alignment of zero.
2265
2266 * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
2267 anything for an alignment of zero.
2268
2269 2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de>
2270
2271 * gcc.texi (Bug Reporting): Refer to bugs.html.
2272 (Bug Lists): Likewise.
2273 * system.h (GCCBUGURL): New preprocessor define.
2274 * rtl.c (fancy_abort): Use it.
2275 * gcc.c (main): Likewise.
2276
2277 2000-02-18 Richard Henderson <rth@cygnus.com>
2278
2279 * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
2280 (life_analysis_1): Subsume into ...
2281 (life_analysis): ... here. Force PROP_REG_INFO off after reload.
2282 Use update_life_info for the relaxation.
2283 (update_life_info): Update REG_BASIC_BLOCK for registers live on
2284 entry and regs_live_at_setjmp.
2285 (set_noop_p): Simplify.
2286 (notice_stack_pointer_modification_1): Renamed from s/_1//.
2287 (record_volatile_insns): Split into ...
2288 (delete_noop_moves): ... here,
2289 (notice_stack_pointer_modification): ... here,
2290 (insn_dead_p): ... and here.
2291 (propagate_block): Don't query INSN_VOLATILE.
2292 (mark_used_regs): Mind !PROP_REG_INFO.
2293 * toplev.c (rest_of_compilation): Call mark_constant_function here,
2294 not in life_analysis.
2295
2296 Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com)
2297
2298 * loop.c (canonicalize_condition): New function,
2299 broken out of get_condition.
2300 (get_condition): Use it.
2301 * expr.h (canonicalize_condition): Prototype it.
2302
2303 * tree.h (tree_int_cst_msb): Declare.
2304 * tree.c (tree_int_cst_msb): New function.
2305
2306 2000-02-17 Mark Mitchell <mark@codesourcery.com>
2307
2308 * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
2309 isn't set.
2310
2311 * invoke.texi (-fmessage-length=n): Document.
2312
2313 2000-02-17 Jason Merrill <jason@casey.cygnus.com>
2314
2315 * bitmap.c (bitmap_operation): Don't leak bitmap elements.
2316
2317 2000-02-17 Mark Mitchell <mark@codesourcery.com>
2318
2319 * function.c (thread_prologue_and_epilogue_insns): Put a line note
2320 after the prologue.
2321
2322 2000-02-17 Nick Clifton <nickc@cygnus.com>
2323
2324 * config/arm/thumb.c: Replace includes of system headers with
2325 #include "system.h".
2326
2327 2000-02-16 Richard Henderson <rth@cygnus.com>
2328
2329 * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
2330 Add crtbeginS.o and crtendS.o.
2331 * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
2332 (ENDFILE_SPEC): Use crtendS.o.
2333 * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
2334
2335 * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
2336 (__do_global_dtors_aux): ... here. Call __cxa_finalize if
2337 shared and present.
2338 (__dso_handle): New variable.
2339 * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
2340 bias to __CTOR_END__.
2341
2342 2000-02-16 Richard Henderson <rth@cygnus.com>
2343
2344 * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
2345
2346 Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson <hp@bitrange.com>
2347
2348 * longlong.h (__clz_tab): Declare as static to match definition.
2349
2350 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
2351 * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
2352 (XREF_FILE_NAME): Define.
2353
2354 * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
2355 (EH_FRAME_SECTION_ASM_OP): Define.
2356 (IDENT_ASM_OP): Define.
2357 (TEXT_SECTION_ASM_OP): Define.
2358 (CPP_SPEC): Define.
2359 (CTORS_SECTION_ASM_OP): Define.
2360 (CTOR_SECTION_FUNCTION): Use it.
2361 (DTORS_SECTION_ASM_OP): Define.
2362 (DTOR_SECTION_FUNCTION): Use it.
2363
2364 2000-02-16 Zack Weinberg <zack@wolery.cumb.org>
2365
2366 * reg-stack.c (emit_swap_insn): Do not put a new insn before a
2367 NOTE_BASIC_BLOCK.
2368
2369 * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
2370 debug_bb_n): New functions.
2371 (dump_flow_info, print_rtl_with_bb): Use dump_regset.
2372 * basic-block.h: Prototype new functions.
2373
2374 Wed Feb 16 21:07:53 2000 Denis Chertykov <denisc@overta.ru>
2375
2376 * configure.in: Add support for avr target.
2377 * configure: Rebuilt.
2378
2379 * invoke.texi: Add AVR invocation docs.
2380 * install.texi: Add information about AVR.
2381 * md.texi: Add AVR constraint letters description.
2382 * extend.texi: Add description for AVR specific attributes.
2383
2384 2000-02-16 Jason Merrill <jason@casey.cygnus.com>
2385
2386 * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
2387
2388 2000-02-16 Nick Clifton <nickc@cygnus.com>
2389
2390 * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
2391 (make_insn_raw): Move RTL check here.
2392
2393 2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2394
2395 * version.c: Include gansidecl.h and version.h.
2396
2397 * version.h: Wrap entire file in macro __GCC_VERSION_H__.
2398
2399 * configure.in (gcc_version): When setting, narrow search to
2400 lines containing `version_string'.
2401
2402 * Makefile.in (mainversion): Likewise.
2403 (GCC_H): New variable.
2404 (gcc.h): Delete target.
2405 (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
2406 (version.o): Depend on version.h.
2407 (dbxout.o): Don't depend on gcc.h.
2408
2409 Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson <hp@bitrange.com>
2410 Michael Meissner <meissner@cygnus.com>
2411
2412 * md.texi (Simple Constraints): Add item about whitespace.
2413 * genoutput.c (strip_whitespace): New.
2414 (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
2415 strip_whitespace for constraints.
2416 Test pointer using NULL, not 0.
2417
2418 2000-02-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2419
2420 * cpplib.c (do_line): Pedwarn for #line > 32767.
2421
2422 * c-lex.c (readescape): Warn about '\x', but do not reject it.
2423
2424 2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk>
2425
2426 * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
2427 to default cpp spec.
2428 (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
2429 * cpp.texi: Document __GNUC_PATCHLEVEL__.
2430 * cpp.1: Likewise.
2431
2432 * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
2433 default spec.
2434
2435 2000-02-15 Denis Chertykov <denisc@overta.ru>
2436
2437 * configure.in: Add support for avr target.
2438
2439 Wed Feb 16 03:21:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2440
2441 * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
2442 (sh_addr_diff_vec_mode): Don't declare.
2443 * sh.c (sh_addr_diff_vec_mode): Delete.
2444
2445 Wed Feb 16 01:27:52 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2446
2447 * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
2448
2449 Wed Feb 16 00:58:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2450
2451 * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
2452 (smulsi3_highpart_i): Name.
2453 (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
2454 (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
2455 (smulsi3_highpart, umulsi3_highpart): Likewise.
2456
2457 (mulsidi3_i, umulsidi3_i): Make rtl describe operation
2458 correctly independent of endianness.
2459 (mulsidi3, umulsidi3): Now define_insn. Hide details that
2460 confuse the optimizers.
2461 (mulsidi3+1, umulsidi3+1): New define_split.
2462
2463 Tue Feb 15 23:22:26 2000 Andrew Haley <aph@cygnus.com>
2464
2465 * config/sh/sh.md: Guard insn splits against illegal registers.
2466 * config/sh/sh.h: Correct comment about macros.
2467
2468 Tue Feb 15 22:30:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2469 Andrew MacLeod <amacleod@cygnus.com>
2470
2471 * Makefile.in (lcm.o): Depend on insn-attr.h.
2472 * basic-block.h (optimize_mode_switching): Declare.
2473 * lcm.c (tm_p.h, insn-attr.h): #include.
2474 (seginfo, bb_info): New structs.
2475 (antic, transp, comp, delete, insert) : New file-scope static variables.
2476 (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
2477 (reg_becomes_live, optimize_mode_switching): Likewise.
2478 * tm.texi: Add description of mode switching macros.
2479 * toplev.c (rest_of_compilation): Call optimize_mode_switching.
2480
2481 * sh-protos.h (remove_dead_before_cse): Remove prototype.
2482 (fldi_ok, fpscr_set_from_mem): New prototypes.
2483 * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
2484 (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
2485 Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
2486 (sh_flag_remove_dead_before_cse): Remove declaration.
2487 (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
2488 (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
2489 (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
2490 * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
2491 (barrier_align): Allow for JUMP_INSNS containing a parallel.
2492 (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
2493 (fldi_ok): New function.
2494 (get_fpscr_rtx): Add fpscr_rtx as GC root.
2495 (emit_sf_insn): Only generate fpu switches when optimize < 1.
2496 (emit_df_insn): Likewise.
2497 (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
2498 (sh_flag_remove_dead_before_cse): Delete.
2499 (get_free_reg, fpscr_set_from_mem): New functions.
2500 * sh.md (movdf, movsf): Remove no_new_pseudos code.
2501 (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
2502
2503 2000-02-15 Loren Rittle <ljrittle@acm.org>
2504
2505 * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
2506
2507 2000-02-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2508
2509 * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
2510 cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
2511
2512 * cccp.c: Include version.h and/or don't declare `version_string'.
2513 * collect2.c: Likewise.
2514 * alpha.c: Likewise.
2515 * arm/aof.h: Likewise.
2516 * arm/coff.h: Likewise.
2517 * arm/elf.h: Likewise.
2518 * arm/pe.h: Likewise.
2519 * arm/tcoff.h: Likewise.
2520 * arm/telf.h: Likewise.
2521 * arm/tpe.h: Likewise.
2522 * arm/vxarm.h: Likewise.
2523 * convex/convex.c: Likewise.
2524 * i386/dgux.c: Likewise.
2525 * i386/sun386.h: Likewise.
2526 * m88k/m88k.c: Likewise.
2527 * mcore/mcore-pe.h: Likewise.
2528 * mips/mips.h: Likewise.
2529 * romp/romp.h: Likewise.
2530 * sh/sh.c: Likewise.
2531 * cpphash.c: Likewise.
2532 * cppinit.c: Likewise.
2533 * dwarf2out.c: Likewise.
2534 * dwarfout.c: Likewise.
2535 * gcc.c: Likewise.
2536 * gcc.h: Likewise.
2537 * mips-tfile.c: Likewise.
2538 * protoize.c: Likewise.
2539 * toplev.c: Likewise.
2540 * tree.h: Likewise.
2541
2542 * version.c (version_string): Constify a char*.
2543
2544 * version.h: New file.
2545
2546 2000-02-14 Nick Clifton <nickc@cygnus.com>
2547
2548 * configure.in: Add mcore-elf and mcore-pe targets.
2549 * configure: Regenerate.
2550
2551 * NEWS: Add note that MCore port has been contributed.
2552
2553 * invoke.texi: Document command line switches for MCore port.
2554 * install.texi: Add MCore to list of supported targets.
2555
2556 2000-02-14 Geoff Keating <geoffk@cygnus.com>
2557
2558 * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
2559 then we will need to import the frame handling functions.
2560 (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
2561 to import the frames themselves.
2562
2563 Mon Feb 14 13:31:01 2000 Stan Cox <scox@cygnus.com>
2564 Jason Eckhardt <jle@cygnus.com>
2565
2566 * basic_block.h: Added prototype for reorder_basic_blocks.
2567 * toplev.c: Changes to add -freorder-blocks and graph dump after
2568 block reordering is done.
2569 * flow.c (reorder_block_def): New structure for use during block
2570 reordering.
2571 (REORDER_BLOCK_*): New macros to access members of above structure.
2572 (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
2573 make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
2574 functions for block reordering.
2575
2576 Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson <hp@bitrange.com>
2577
2578 * gcc.texi (Passes): Fix typo.
2579 * md.texi (Standard Names): Ditto.
2580 * tm.texi (Storage Layout): Ditto.
2581
2582 2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
2583
2584 * cpplib.c (do_define): Only free the old definition if it
2585 actually had one.
2586
2587 2000-02-13 Neil Booth <NeilB@earthling.net>
2588
2589 * cppfiles.c (read_and_prescan): When emitting deferred
2590 newlines, test speccase[] again instead of checking each
2591 possible whitespace character in turn. When we encounter \r,
2592 look behind for \n first, then ahead.
2593
2594 2000-02-13 Zack Weinberg <zack@wolery.cumb.org>
2595
2596 * cse.c (cse_altered): New internal flag.
2597 (cse_insn): Set it if we changed an insn.
2598 (cse_main): Clear cse_altered before each basic block.
2599 Only garbage collect if cse_altered is true afterward.
2600
2601 Sun Feb 13 14:12:28 2000 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2602
2603 * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
2604
2605 Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com)
2606
2607 * combine.c (simplify_comparison): Fix typo.
2608
2609 Sun Feb 13 12:57:52 2000 Neil Booth <NeilB@earthling.net>
2610
2611 * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
2612 consistently.
2613
2614 2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2615
2616 * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
2617 previously inserted node instead of root node. Caller changed.
2618
2619 2000-02-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2620
2621 * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
2622
2623 2000-02-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2624
2625 * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
2626 __dereg_frame_dtor): Add prototype argument.
2627
2628 * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
2629
2630 * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
2631
2632 * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
2633
2634 * gthr-vxworks.h (__gthread_once): Likewise.
2635
2636 * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
2637
2638 Sat Feb 12 01:44:26 MET 2000 Jan Hubicka <jh@suse.cz>
2639
2640 * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
2641 (ix86_expand_epilogue): ... here. Use mov instead of add to restore
2642 stack pointer in functions w/o saved registers, output LEAVE more often
2643 on TARGET_USE_LEAVE machines.
2644
2645 2000-02-07 Dmitri Makarov <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
2646
2647 * config/arm/arm.c (arm_init_cumulative_args); New function:
2648 Initlaise the CUMULATIE_ARGS strcuture for a function
2649 defintion.
2650 (arm_function_arg): New function: Determine where to place a
2651 function's argument. Also handles deciding the function's
2652 call cookie.
2653 (current_file_function_operand): New function: Return true if
2654 the symbol is a function which has already been compiled.
2655 (arm_is_long_call_p): New function: Return true if the
2656 indicated function should be called via a long call.
2657 (arm_valid_type_attribute_p): New function: Return true if the
2658 attribute is a valid, arm specific, attribute.
2659 (arm_comp_type_attribute): New function: Return true if the
2660 two types have compatable, arm specific, attributes.
2661
2662 * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
2663 structure.
2664 (FUNCTION_ARG): Redefine to call arm_function_arg.
2665 (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
2666 structure field.
2667 (INIT_CUMULATIVE_ARGS): Redefine to call
2668 arm_init_cumulative_args.
2669 (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
2670 field.
2671 (SETUP_INCOMING_VARARGS): Redefine to use correct structure
2672 field.
2673 (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
2674 functions.
2675 (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
2676 (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
2677 (COMP_TYPE_ATTRIBUTES): Define.
2678
2679 * config/arm/arm.md (call): Call arm_is_long_call_p to decide
2680 if a long call is needed.
2681 (call_value): Call arm_is_long_call_p to decide if a long call
2682 is needed.
2683 (call_symbol): Call arm_is_long_call_p to decide if a long call
2684 is needed.
2685
2686 * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
2687
2688 2000-02-11 Denis Chertykov <denisc@overta.ru>
2689
2690 * README.AVR: New file with information about the avr ports.
2691 * config/avr: New directory with avr port files.
2692
2693 2000-02-11 Andreas Jaeger <aj@suse.de>
2694
2695 * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
2696
2697 2000-02-11 Zack Weinberg <zack@wolery.cumb.org>
2698
2699 * cpphash.c: Fix formatting, update commentary.
2700 (dump_definition): Take three separate arguments instead of a
2701 MACRODEF structure argument.
2702 * cpphash.h: Update prototype of dump_definition.
2703 * cppinit.c (cpp_finish): Update call of dump_definition.
2704
2705 * cpplib.c (do_define): Always create new hash entry with
2706 T_MACRO type. Remove redundant check for redefinition of
2707 poisoned identifier. Update call of dump_definition.
2708 (do_undef): Don't call check_macro_name. Rename sym_length to
2709 len.
2710 (do_error, do_warning): Don't use copy_rest_of_line or
2711 SKIP_WHITE_SPACE.
2712 (do_warning): Don't use pedwarn for the actual warning,
2713 only the notice about its not being in the standard. (Fixes
2714 bug with #warning in system headers.)
2715 (do_ident): Stricter argument checking - accept only a single
2716 string after #ident. Also, macro-expand the line.
2717 (do_xifdef): Use cpp_defined. De-obfuscate.
2718
2719 (do_pragma): Split out specific pragma handling to separate
2720 functions. Use get_directive_token. Update commentary. Do
2721 not pass on #pragma once or #pragma poison to the front end.
2722 (do_pragma_once, do_pragma_implementation, do_pragma_poison,
2723 do_pragma_default): New.
2724
2725 Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com)
2726
2727 * jump.c (jump_optimize_1): The first operand in a relational
2728 can be a CONST_INT.
2729 * optabs.c (emit_conditional_move): Handle relationals which
2730 have a known true/false result.
2731
2732 2000-02-11 Geoff Keating <geoffk@cygnus.com>
2733
2734 * function.c (thread_prologue_and_epilogue_insns): Don't insert
2735 a RETURN insn into a block which already ends with a jump.
2736
2737 2000-02-11 Geoff Keating <geoffk@cygnus.com>
2738
2739 * haifa-sched.c (BUF_LEN): Increase a lot.
2740
2741 2000-02-11 Nick Clifton <nickc@cygnus.com>
2742
2743 * configure.in: Add tm_p_file specification for thumb targets.
2744 * configure: Regenerate.
2745
2746 * config/arm/thumb-protos.h: New file: Prototypes for exported
2747 functions defined in thumb.c.
2748
2749 2000-02-11 Robert Lipe <robertl@sco.com>
2750
2751 * Makefile.in (bootstrap-lean): Remove additional files.
2752 (bootstrap2-lean): Likewise.
2753 (VOL_FILES): List of files for above.
2754
2755 2000-02-11 Nathan Sidwell <nathan@acm.org>
2756
2757 * cpphash.c (special_symbol): Remove spurious argument to
2758 cpp_lookup.
2759
2760 2000-02-11 Joel Sherrill (joel@OARcorp.com>
2761
2762 * configure.in: (i*86-*-rtems*): Swapped elf and coff
2763 stanzas.
2764 * configure: Rebuilt.
2765
2766 2000-02-11 Rodney Brown <RodneyBrown@pmsc.com>
2767
2768 * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
2769
2770 Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com)
2771
2772 * pa.c, pa.h: Remove trigraph sequences within comments.
2773
2774 Fri Feb 11 02:51:56 2000 Pavel Roskin <pavel_roskin@geocities.com>
2775
2776 * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
2777
2778 Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu)
2779
2780 * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
2781
2782 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2783
2784 * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
2785
2786 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2787
2788 * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
2789 (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
2790 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
2791 (ASM_FILE_END): Use c4x_file_end.
2792 * config/c4x/c4x.c (c4x_global_label): New function.
2793 (c4x_external_ref, c4x_file_end): Likewise.
2794
2795 * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
2796 (c4x_external_ref, c4x_end_file): Likewise.
2797
2798 2000-02-10 Zack Weinberg <zack@wolery.cumb.org>
2799
2800 * cppexp.c: Don't include cpphash.h.
2801 (parse_charconst, cpp_lex): Use cpp_defined.
2802 (cpp_lex): Use get_directive_token throughout. Remove
2803 unnecessary cases from switch. Move assertion-handling code
2804 down to OTHER case.
2805 (cpp_parse_expr): If we see '+' or '-', check the context to
2806 determine if they are unary or binary operators. Streamline
2807 the jumps a bit. Do not call skip_rest_of_line.
2808
2809 * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
2810 static. Export get_directive_token. Update commentary.
2811 (cpp_defined): New function.
2812 (do_define): Remove reference to T_PCSTRING. Call
2813 free_definition to release memory for old definition, when
2814 redefining a macro.
2815 (eval_if_expression): Set only_seen_white to 0 before calling
2816 cpp_parse_expr. Call skip_rest_of_line after it returns.
2817 (cpp_read_check_assertion): Don't preserve a pointer into the
2818 token buffer across a call to cpp_get_token.
2819
2820 * Makefile.in (cppexp.o): Don't depend on cpphash.h.
2821 * cppfiles.c (redundant_include_p): Use cpp_defined.
2822 * cpphash.c (free_definition): New function.
2823 (delete_macro): Use it. Update commentary.
2824 * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and
2825 free_definition.
2826 * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
2827 from enum node_type. Prototype cpp_defined and get_directive_token.
2828 Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
2829
2830 * fix-header.c (check_macro_names): Use cpp_defined.
2831 (read_scan_file): Set inhibit_warnings and inhibit_errors in
2832 the options structure.
2833
2834 2000-02-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2835
2836 * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
2837
2838 2000-02-10 Jason Merrill <jason@casey.cygnus.com>
2839
2840 * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
2841 rather than die->die_tag.
2842
2843 Thu Feb 10 16:26:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2844
2845 * combine.c (make_extraction, force_to_mode): Avoid warning on
2846 mixed-signedness conditionals.
2847 (make_field_assignment, nonzero_bits): Likewise.
2848 * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
2849 (store_split_bit_field, extract_split_bit_field): Likewise.
2850 (extract_fixed_bit_field, store_bit_field,
2851 * expr.c: Change alignment to be unsigned everywhere.
2852 (move_by_pieces, store_constructor_field, store_constructor):
2853 Alignment parm is unsigned.
2854 (emit_block_move, emit_group_load, emit_group_store): Likewise.
2855 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
2856 (do_compare_rtx_and_jump): Likewise.
2857 (move_by_pieces_ninsns, clear_by_pieces): Likewise.
2858 Compare align with GET_MODE_ALIGNMENT.
2859 (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
2860 (get_inner_reference): Likewise.
2861 (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
2862 (expand_assignment): Local vars for alignment now unsigned.
2863 (store_constructor, store_field, expand_expr, do_jump): Likewise.
2864 (do_compare_and_jump): Likewise.
2865 (store_field): Call new function expr_align.
2866 * expr.h (emit_block_move, emit_group_load, emit_group_store):
2867 Alignment arg now unsigned.
2868 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
2869 (do_compare_rtx_and_jump, store_bit_field): Likewise.
2870 (extract_bit_field): Likewise.
2871 * fold-const.c (add_double): Add cast to eliminate signedness warning.
2872 * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
2873 (get_best_mode): Alignment arg is unsigned.
2874 * rtl.h (move_by_pieces): Likewise.
2875 * store-layout.c (maximum_field_alignment, set_alignment):
2876 Now unsigned.
2877 (layout_decl): Alignment arg is now unsigned.
2878 Remove unneeded casts.
2879 (layout_record, layout_union, layout_type): Remove unneeded casts.
2880 Local alignment variables now unsigned.
2881 (get_best_mode): Alignment arg now unsigned.
2882 * tree.c (expr_align): New function.
2883 * tree.h (expr_align): Likewise.
2884 (maximum_field_alignment, set_alignment): Now unsigned.
2885 (get_inner_reference): Alignment argument is now pointer to unsigned.
2886 * varasm.c (assemble_variable): Add cast to eliminate warning.
2887
2888 Thu Feb 10 12:56:47 2000 Jim Wilson <wilson@cygnus.com>
2889
2890 * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
2891 then store directly into op0.
2892
2893 * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
2894 the CALL_INSN, and emit the note immediately after it.
2895
2896 2000-02-10 Nick Clifton <nickc@cygnus.com>
2897
2898 * config/arm/thumb.md (epilogue): Include a (return) in the
2899 generated insn, and emit it using emit_jump_insn not
2900 emit_insn.
2901
2902 Thu Feb 10 18:28:59 MET 2000 Jan Hubicka <jh@suse.cz>
2903
2904 * function.c (assign_temp): Change zero-sized arrays to size 1.
2905 * integrate.c (expand_inline_function): Do not update
2906 stack_alignment_needed
2907 * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
2908 add some sanity checking, remove optimization for function with
2909 zero frame size.
2910
2911 2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2912
2913 * flow.c (mark_regs_live_at_end): Delete unused variables.
2914
2915 * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
2916
2917 * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
2918 in macro FRAME_GROWS_DOWNWARD.
2919
2920 * stmt.c (expand_end_bindings): Delete unused variable.
2921
2922 * unroll.c (iteration_info): Mark parameter `loop' with
2923 ATTRIBUTE_UNUSED.
2924
2925 2000-02-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2926
2927 * fixinc/server.c (load_data): Return NULL if the marker line is
2928 not found.
2929 (run_shell): If load_data returns NULL, retry the command once, in
2930 a new shell.
2931
2932 * configure: Rebuilt.
2933
2934 2000-02-09 Bruce Korb <bkorb@gnu.org>
2935
2936 * gcc/fixincludes: ** DELETED **
2937 * gcc/fixcpp: ** DELETED **
2938 * gcc/fixinc-nt.sed: ** DELETED **
2939 * gcc/just-fixinc: ** DELETED **
2940 * gcc/Makefile.in: Removed out-dated commentary
2941 * gcc/configure.in: Removed fast-fixincludes disablement.
2942 * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
2943
2944 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
2945 * function.c (thread_prologue_and_epilogue_insns): Uncomment
2946 last change.
2947
2948 2000-02-09 Richard Henderson <rth@cygnus.com>
2949
2950 * jump.c (delete_insn): Don't delete user labels at -O0.
2951
2952 2000-02-09 Robert Lipe <robertl@sco.com>
2953
2954 * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
2955 Don't link with HOST_LIBS.
2956
2957 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
2958
2959 * configure.in: Correct --help text for --with-dwarf2.
2960 Put tm-dwarf2.h after other tm files, if it's requested.
2961 * configure: Regenerate.
2962 * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
2963 defining it.
2964
2965 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
2966
2967 * cpplib.h: Provide HASHNODE typedef and forward decl of
2968 struct hashnode only. Kill cpp_hashnode typedef. MACRODEF,
2969 DEFINITION, struct hashnode, struct macrodef, struct
2970 definition, scan_decls prototype, default defn of
2971 INCLUDE_LEN_FUDGE moved elsewhere.
2972
2973 * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
2974 definition, and struct hashnode moved here. Remove the unused
2975 'predefined' field from struct definition. Replace the 'args'
2976 union with its sole member. All users updated (cpphash.c).
2977 Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add
2978 multiple include guard.
2979
2980 * cpphash.c (hashf): Make static; use better algorithm; drop
2981 HASHSIZE parameter; return an unsigned int.
2982 (cpp_lookup): Drop HASH parameter. PFILE parameter is
2983 used. Calculate HASHSIZE modulus here.
2984 (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
2985 here.
2986 (create_definition): Drop PREDEFINITION parameter.
2987 * cpplib.c (do_define): Don't calculate a hash value here.
2988 Don't pass (keyword == NULL) to create_definition.
2989
2990 * scan.h: Prototype scan_decls here.
2991 * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
2992 * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
2993 callers of cpp_lookup and cpp_install updated.
2994
2995 * cpphash.c (macarg): Hoist all the flag diddling out of the
2996 function...
2997 (macroexpand): ... and out of the loop that calls macarg.
2998 Skip over the initial paren before macro arguments with
2999 cpp_get_non_space_token; point may be some distance before
3000 that paren. Abort if it's not there.
3001
3002 * cpplib.c (parse_clear_mark): Delete function.
3003 (parse_set_mark, parse_goto_mark): Make static.
3004 (ACTIVE_MARK_P): New macro.
3005 (skip_block_comment, skip_line_comment): Do not bump the line
3006 if ACTIVE_MARK_P is true.
3007 (cpp_pop_buffer): The buffer to be popped may not have an
3008 active mark.
3009 (cpp_get_token): When looking for the initial paren before
3010 macro arguments, only set a mark in a file buffer, Always
3011 return to that mark before proceeding to call macroexpand or
3012 return a NAME token.
3013
3014 * cpplib.h: Remove prototypes of parse_set_mark,
3015 parse_clear_mark, parse_goto_mark.
3016 (struct cpp_options): Rename 'put_out_comments' to
3017 'discard_comments' and invert its sense.
3018 * cppinit.c, cpphash.c, cpplib.c: All users of
3019 put_out_comments changed to use discard_comments, with
3020 opposite sense.
3021
3022 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
3023
3024 * function.c (thread_prologue_and_epilogue_insns): Don't delete
3025 the edge from a block that both jumps and falls through to the
3026 fallthru block.
3027
3028 2000-02-09 Scott Bambrough <scottb@netwinder.org>
3029
3030 * config/arm/arm.md (movsi): In PIC mode, make sure that a
3031 constant source address is legitimate.
3032
3033 2000-02-09 Philip Blundell <pb@futuretv.com>
3034
3035 * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
3036 correctly.
3037
3038 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
3039 generating PIC.
3040 (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
3041
3042 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
3043
3044 * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
3045 ends with a newline and a NUL. Don't be so clever manipulating
3046 strings.
3047
3048 Wed Feb 9 14:18:08 MET 2000 Jan Hubicka <jh@suse.cz>
3049
3050 * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
3051 not to BIGGEST_ALIGNMENT.
3052
3053 2000-02-08 Geoff Keating <geoffk@cygnus.com>
3054
3055 * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
3056 * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
3057 (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
3058 (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
3059 * frame.c (execute_cfa_insn): Handle
3060 DW_CFA_GNU_negative_offset_extended.
3061
3062 2000-02-08 Richard Henderson <rth@cygnus.com>
3063
3064 * flow.c (tidy_fallthru_edges): Split out from ...
3065 (delete_unreachable_blocks): ... here.
3066 (find_basic_blocks): Use it.
3067
3068 Tue Feb 8 15:51:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3069
3070 * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
3071
3072 2000-02-08 Zack Weinberg <zack@wolery.cumb.org>
3073
3074 * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
3075 (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
3076 (fix-header.o): Don't depend on cpphash.h.
3077
3078 * scan.c (hashstr): New function.
3079 * scan.h: Prototype it.
3080 * fix-header.c: Don't include cpphash.h. Use hashstr.
3081 * gen-protos.c: Don't include cpphash.h or cpplib.h. Use
3082 hashstr. Report hash table statistics. Add private
3083 definition of xrealloc.
3084
3085 2000-02-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3086
3087 * i386.h (TARGET_SWITCHES): Fix typo in option name.
3088
3089 2000-02-08 Clinton Popetz <cpopetz@cygnus.com>
3090
3091 * function.c (thread_prologue_and_epilogue_insns): Don't replace
3092 jumps with returns unless they are jumps to the fallthru block.
3093
3094 Tue Feb 8 07:53:55 2000 Jan Hubicka <jh@suse.cz>
3095
3096 * i386.md (addqi3_cc): Fix contraints.
3097
3098 Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
3099
3100 * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
3101
3102 2000-02-07 Mark Mitchell <mark@codesourcery.com>
3103
3104 * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
3105 carriage return after a macro name.
3106
3107 2000-02-07 Fred Fish <fnf@be.com>
3108
3109 * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
3110 so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
3111
3112 2000-02-07 Zack Weinberg <zack@wolery.cumb.org>
3113
3114 * cppfiles.c (deps_output): Count spacers in deps_column.
3115
3116 2000-02-07 Neil Booth <NeilB@earthling.net>
3117
3118 * cppinit.c (initialize_dependency_output): If there is no
3119 suffix, don't try to look for known suffixes. Use strrchr.
3120 (cpp_start_read): Remove duplicate initialization.
3121
3122 Mon Feb 7 18:36:41 MET 2000 Jan Hubicka <jh@suse.cz>
3123
3124 * calls.c (compute_argument_block_size): New argument
3125 preferred_stack_boundary.
3126 (expand_call): update cfun->preferred_stack_boundary, update call of
3127 compute_argument_block_size
3128 (emit_library_call): Increate cfun->preferred_stack_boundary
3129 to PREFERRED_STACK_BOUNDARY
3130 (emit_library_call_value): Likewise.
3131 * explow.c (allocate_dynamic_stack_spave): Likewise.
3132 * function.c (prepare_function_start): Set
3133 cfun->preferred_stack_boundary
3134 * function.h (struct function): Add preferred_stack_boundary field.
3135 * integrate.c (expand_inline_function): Update
3136 cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
3137 (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
3138 * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
3139
3140 2000-02-06 Zack Weinberg <zack@wolery.cumb.org>
3141
3142 * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
3143 cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
3144 cpp_pedwarn, cpp_pedwarn_with_line,
3145 cpp_pedwarn_with_file_and_line): Move to cpperror.c.
3146 (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
3147 v_cpp_error_with_line, v_cpp_warning_with_line,
3148 cpp_message_from_errno, cpp_perror_with_name): Delete.
3149
3150 * cpperror.c (cpp_print_containing_files): Take starting
3151 buffer as argument.
3152 (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
3153 (v_cpp_message): Now called directly by all entry points.
3154 Remove -1 case.
3155 (cpp_pfatal_with_name, cpp_message): Delete.
3156 (cpp_notice_from_errno, cpp_ice): New functions.
3157 (cpp_notice): Is now for reporting error conditions, just
3158 without an associated file.
3159 (cpp_error, cpp_error_with_line): Don't do anything if
3160 opts->inhibit_errors is on.
3161 (cpp_pedwarn_with_file_and_line): Take column argument also.
3162
3163 * cpplib.h: Update prototypes of exported functions.
3164 (struct cpp_options): Add inhibit_errors.
3165
3166 * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
3167 non-error messages. Include intl.h.
3168
3169 * cppinit.c, cppmain.c: Likewise. Also, use
3170 cpp_notice_from_errno instead of cpp_perror_with_name or
3171 cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
3172
3173 * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
3174 report internal errors.
3175
3176 * cpplib.c (do_define): Switch bcopy to memcpy.
3177 Give cpp_pedwarn_with_file_and_line a dummy column argument.
3178
3179 * cpplib.c (copy_rest_of_line): Revert previous change: don't
3180 bail out early if we hit a line comment.
3181
3182 2000-02-06 Richard Henderson <rth@cygnus.com>
3183
3184 * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
3185 * basic-block.h: Declare them.
3186 * emit-rtl.h (active_insn_p): New.
3187 (next_active_insn, prev_active_insn): Use it.
3188 * rtl.h: Declare it.
3189 * function.c (emit_return_into_block): New.
3190 (thread_prologue_and_epilogue_insns): Insert return insns instead
3191 of epilogues when possible.
3192 * jump.c (jump_optimize_1): Remove code to insert a return insn
3193 on the fallthru to the exit block.
3194
3195 * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
3196 and for non-empty stack frames.
3197 * i386.md (return): Expand to return-pop as needed.
3198
3199 2000-02-06 Richard Henderson <rth@cygnus.com>
3200
3201 * simplify-rtx.c (simplify_relational_operation): Canonicalize
3202 constant to op1 for testing.
3203
3204 2000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3205
3206 * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
3207 (fixuns_truncqfqi2): Use it.
3208
3209 2000-02-06 Richard Henderson <rth@cygnus.com>
3210
3211 * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
3212 as a TYPE_LEA insn.
3213
3214 * i386.md (widening and peepholes): Mask the constant instead of
3215 using gen_lowpart.
3216
3217 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
3218
3219 * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
3220 input pointer before possibly branching off to the backslash
3221 code.
3222 * cpphash.c (macroexpand): Correctly delete \r escapes when
3223 stringifying parameters.
3224 * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
3225 if we can; bail out early if we hit a line comment.
3226 (handle_directive): Treat '# 123' in an .S file just like
3227 '# <punctuation>'. Discard the shifted '#' if we hit '#\n'.
3228 Return 1 for '# not_a_directive'.
3229 (get_directive_token): Pop macro buffers here, so that
3230 cpp_get_token can't sneakily move past a newline.
3231 Add sanity checks.
3232 (cpp_get_token): goto randomchar if handle_directive returns 0.
3233
3234 * cppalloc.c: Update copyright.
3235 * cpplib.c: Merge all the static function prototypes into one
3236 block.
3237 * cpplib.h: Remove #if 0 block.
3238
3239 * cpperror.c: Remove #ifdef EMACS block.
3240 * cppmain.c: Likewise.
3241 * cpphash.c: Remove #if 0 blocks.
3242 * cppinit.c: Remove #if 0 blocks, and the -lint option.
3243 * cpplib.c: Remove #if 0 blocks and code referencing
3244 pcp_inside_if or for_lint. Remove duplicate error message.
3245 Fix error messages for #else after #else or #elif. Reformat.
3246 Remove archaic TODO list.
3247 * cpplib.h: Remove pcp_inside_if and for_lint flags.
3248
3249 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
3250
3251 * i386/osf1elf.h: Add missing backslash to multiline string.
3252
3253 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3254
3255 * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
3256
3257 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3258
3259 * Makefile.in (c-common.o): Depend on $(EXPR_H).
3260
3261 * c-common.c: Include expr.h.
3262
3263 * c-pragma.c (mark_align_stack): Add prototype.
3264
3265 * caller-save.c (add_stored_regs): Likewise.
3266
3267 * combine.c (record_promoted_value): Likewise.
3268
3269 * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
3270 Likewise.
3271
3272 * cppinit.c (new_pending_define): Likewise.
3273
3274 * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
3275
3276 * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
3277 AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
3278 AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
3279 class_scope_p): Likewise.
3280
3281 * dwarf2out.h (dwarf2out_set_demangle_name_func,
3282 dwarf2out_add_library_unit_info): Likewise.
3283
3284 * ggc.h (ggc_page_print_statistics): Likewise.
3285
3286 * haifa-sched.c (propagate_deps): Likewise.
3287
3288 * reg-stack.c (next_flags_user, record_label_references): Likewise.
3289
3290 * rtl.h (set_stack_check_libfunc): Likewise.
3291
3292 * toplev.h (set_fatal_function): Likewise.
3293
3294 * toplev.c (set_fatal_function): Delete prototype.
3295
3296 * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
3297
3298 2000-02-05 Geoff Keating <geoffk@cygnus.com>
3299
3300 * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
3301 (FUNC_END): Likewise.
3302
3303 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3304
3305 * caller-save.c: Include tm_p.h.
3306
3307 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3308
3309 * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
3310
3311 2000-02-04 Neil Booth <NeilB@earthling.net>
3312
3313 * cccp.c (main): Check 'dir' for a NULL pointer before passing
3314 it to strcmp.
3315
3316 2000-02-04 Zack Weinberg <zack@wolery.cumb.org>
3317
3318 * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
3319 * genflags.c: Use the max_operand_1 logic from genemit.c to
3320 calculate how many arguments gen_insn prototypes have. Remove
3321 NO_MD_PROTOTYPES ifdefs from the generated file.
3322 * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
3323 file. Cast gen_insn initializers to insn_gen_fn.
3324 * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
3325 * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
3326
3327 2000-02-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3328
3329 * fixinc/Makefile.in (HDR): Add machname.h.
3330 (clean): Likewise.
3331
3332 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3333
3334 * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
3335 (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
3336 (c4x_cpu_version): Ditto.
3337 * config/c4x/c4x-protos.h: ... here.
3338
3339 2000-02-04 Jason Merrill <jason@casey.cygnus.com>
3340
3341 * dwarf2out.c (add_abstract_origin_attribute): Don't call
3342 gen_abstract_function on our context if we're a nested function.
3343
3344 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3345
3346 * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
3347 * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
3348
3349 2000-02-04 Bruce Korb <bkorb@gnu.org>
3350
3351 * fixinc/genfixes(machname.h):
3352 Move the functionality from gen-machine.h into this file.
3353 UNdef MN_NAME_PAT if there are no names to change.
3354 Also, be a little kinder when AutoGen is not present.
3355
3356 * fixinc/Makefile.in(machname.h):
3357 Change the generation rule to use genfixes.
3358
3359 * fixinc/fixfixes.c(machine_name):
3360 machine_name_fix's functionality now dependent upon whether
3361 MN_NAME_PAT is defined.
3362
3363 * fixinc/fixtests.c(machine_name):
3364 ditto.
3365
3366 * fixinc/fixlib.c(mn_get_regexps): conditional on definition
3367 of MN_NAME_PAT.
3368
3369 * fixinc/fixlib.h(mn_get_regexps):
3370 ditto
3371
3372 * fixinc/gen-machine.h: DELETED
3373
3374 2000-02-04 Jan Hubicka <jh@suse.cz>
3375 Richard Henderson <rth@cygnus.com>
3376
3377 * i386.c (SAVE_REGS_FIRST): Remove.
3378 (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
3379 (ix86_compute_frame_size): Likewise.
3380 (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack.
3381 (ix86_emit_restore_regs): Remove.
3382 (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
3383 when a frame pointer is in use.
3384 (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov
3385 instead of pop to restore a register when profitable; emit leave
3386 when profitable.
3387 (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
3388 as a TYPE_LEA insn.
3389 (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
3390 * i386.md (prologue_allocate_stack): Remove.
3391 (epilogue_deallocate_stack): Remove.
3392 (pro_epilogue_adjust_stack): New.
3393
3394 2000-02-04 Richard Henderson <rth@cygnus.com>
3395
3396 * function.c (diddle_return_value): Rework to use a callback function.
3397 Use current_function_return_rtx if it's been set up.
3398 (do_clobber_return_reg, clobber_return_register): New.
3399 (do_use_return_reg, use_return_register): New.
3400 (expand_function_end): Use them.
3401 * stmt.c (expand_null_return): Likewise.
3402 * function.h: Declare them.
3403 * flow.c (mark_regs_live_at_end): Use diddle_return_value.
3404 (mark_reg): Change arguments as appropriate for callback.
3405 * integrate.c (expand_inline_function): Revert 19 Jan change.
3406
3407 Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson <hp@bitrange.com>
3408
3409 * tm.texi (Values in Registers): Fix typo: "fo" "for".
3410 (Misc): Say the scheduler, not the Haifa scheduler.
3411
3412 2000-02-04 Clinton Popetz <cpopetz@cygnus.com>
3413
3414 * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
3415 when in_mem is set. Update all callers.
3416
3417 2000-02-04 Richard Henderson <rth@cygnus.com>
3418
3419 * i386/openbsd.h (INT_ASM_OP): Define.
3420
3421 Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson <hp@bitrange.com>
3422
3423 * tm.texi: Fix various typos.
3424
3425 Thu Feb 3 17:17:32 2000 Steve Ellcey <sje@cup.hp.com>
3426
3427 * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
3428 (MD_STARTFILE_PREFIX_1): New macro.
3429
3430 Thu Feb 3 15:08:13 MET 2000 Jan Hubicka <jh@suse.cz>
3431
3432 * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
3433 destination when needed.
3434 (strmovsi, strsetsi): New expander.
3435 (strmovsi_1, strsetsi_1): New pattern.
3436 * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
3437 TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
3438 (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
3439 * invoke.texi (align-stringops, inline-all-stringops): Document.
3440
3441 Wed Feb 2 23:04:47 2000 Krister Walfridsson <cato@df.lth.se>
3442
3443 * i386/netbsd.h (INT_ASM_OP): Define.
3444
3445 2000-02-02 Zack Weinberg <zack@wolery.cumb.org>
3446
3447 * cpplib.h (cpp_reader): Add new flag, no_directives.
3448 * cpphash.c (macarg): Set it.
3449 * cpplib.c (handle_directive): If no_directives is on and we
3450 find a directive, issue an error and discard the line.
3451
3452 Wed Feb 2 13:07:10 2000 Jim Wilson <wilson@cygnus.com>
3453
3454 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
3455 FP constants. Add ! TARGET_FPU check for FP constants.
3456
3457 2000-02-02 Clinton Popetz <cpopetz@cygnus.com>
3458
3459 * flow.c (find_basic_blocks): Don't kill label_value_list
3460 here.
3461 (cleanup_cfg): Kill it here.
3462
3463 Wed Feb 2 08:12:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3464
3465 * expr.c (store_field): Ensure ALIGN is no stricter than the
3466 alignment of EXP.
3467
3468 2000-02-02 Richard Henderson <rth@cygnus.com>
3469
3470 * jump.c (delete_insn): Partially revert 19 Jan change;
3471 don't convert unused code labels to notes at -O0.
3472
3473 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3474
3475 * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
3476 split_all_insns to recreate REG_LABEL notes for flow2 pass.
3477
3478 2000-02-01 Richard Henderson <rth@cygnus.com>
3479
3480 * i386.c (general_no_elim_operand): New.
3481 (nonmemory_no_elim_operand): New.
3482 (ix86_expand_move): Copy eliminable operands before a push.
3483 * i386-protos.h: Declare new functions.
3484 * i386.h (CAN_ELIMINATE): Simplify.
3485 (PREDICATE_CODES): Update.
3486 * i386.md (push insns): Don't allow eliminable register operands.
3487
3488 2000-02-01 Richard Henderson <rth@cygnus.com>
3489
3490 * flow.c (mark_regs_live_at_end): Follow expand_function_end and
3491 replace BLKmode with DECL_RTL's mode.
3492
3493 2000-02-01 Zack Weinberg <zack@wolery.cumb.org>
3494
3495 * frame.c (find_fde): Convert for loop to do-while so compiler
3496 sees it's always executed at least once.
3497 * libgcc2.c (BBINBUFSIZE): Kill.
3498 (__bb_init_prg): Use fgets.
3499 (__bb_exit_trace_func): Don't paste strings.
3500 * unroll.c (unroll_loop): Initialize unroll_type, not
3501 unroll_number, and tweak logic to match.
3502
3503 * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
3504 all failure paths.
3505 (ix86_flags_dependant): Likewise. Disentangle control flow.
3506 (ix86_sched_reorder): Break guts out to
3507 ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
3508 (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
3509 any possible use.
3510
3511 * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
3512 use string concatenation. Don't save and restore esi.
3513
3514 * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
3515 (machname.h): Remove script to separate file. Use two-step
3516 sequence so target is not created if script fails.
3517 * fixinc/gen-machname.h: New file. Handle case where no non-reserved
3518 identifiers are defined.
3519 * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
3520 an empty string, machine_name doesn't need to do anything at
3521 all.
3522 (is_cxx_header): Add more cases to regexp.
3523 * fixinc/fixlib.h: Update prototype.
3524 * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
3525 mn_get_regexps.
3526 * fixinc/fixincl.c: Define NO_BOGOSITY.
3527
3528 * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
3529 (hp_sysfile): Add missing comma.
3530 (math_exception): Put the wrapper ifdefs at the beginning and
3531 the end of the file.
3532 * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
3533
3534 2000-02-01 Richard Henderson <rth@cygnus.com>
3535
3536 * sparc.c (fp_zero_operand): Turn into a normal predicate.
3537 Use CONST0_RTX. Update all callers.
3538 * sparc.h, sparc-protos.h: Update accordingly.
3539 * sparc.md (fp mov insns): Use fp_zero_operand directly
3540 where applicable.
3541
3542 Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
3543
3544 * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
3545 example.
3546
3547 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3548
3549 * Makefile.in (specs.ready): New target.
3550 (fixinc.sh): Depend on `specs.ready' instead of `specs'.
3551
3552 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3553
3554 * fixinc.irix: Use unique filenames for writing into /tmp,
3555 * fixinc.ptx: Likewise.
3556 * fixinc.sco: Likewise.
3557 * fixinc.svr4: Likewise.
3558 * fixinc.winnt: Likewise.
3559
3560 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3561
3562 * tsystem.h: New file.
3563
3564 * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
3565 s-crtS): Depend on tsystem.h.
3566
3567 * crtstuff.c: Include tsystem.h.
3568 * frame.c: Likewise.
3569 * libgcc2.c: Likewise.
3570
3571 Tue Feb 1 19:53:27 CET 2000 Jan Hubicka <jh@suse.cz>
3572
3573 * builtins.c (expand_builtin_memset): Expand for variable sized
3574 lengths too.
3575
3576 2000-02-01 David Billinghurst <David.Billinghurst@riotinto.com.au>
3577
3578 * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
3579 on ABI.
3580
3581 Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
3582
3583 * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
3584
3585 * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
3586
3587 2000-01-31 Chandra Chavva <cchavva@cygnus.com>
3588
3589 * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
3590 case 3->2 combining (combining with splitting) in which 2 is CC0
3591 setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
3592 checked at the begining of the function with the aid of calling
3593 function 'can_combine_p'.
3594
3595 2000-01-31 Dave Brolley <brolley@redhat.com>
3596
3597 * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
3598
3599 2000-01-31 Jason Merrill <jason@casey.cygnus.com>
3600
3601 * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
3602 new label.
3603
3604 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3605
3606 * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
3607
3608 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
3609 PROTO -> PARAMS.
3610
3611 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
3612
3613 * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
3614 i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
3615 i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
3616 i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
3617 i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
3618 i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
3619 i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
3620 i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
3621 i386/vxi386.h, i386/win-nt.h, i386/win32.h:
3622 Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
3623
3624 * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
3625 Add %(cpp_cpu) to CPP_SPEC.
3626
3627 * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
3628 Add %(cc1_cpu) to CC1_SPEC.
3629
3630 2000-01-28 Ulrich Drepper <drepper@redhat.com>
3631
3632 * c-decl.c (c_decode_option): Accept optional numeric argument to
3633 -Wformat and set warn_format.
3634 * c-common.c: Don't emit warning about non-constant printf format
3635 string unless warn_format > 1.
3636
3637 2000-01-30 Richard Henderson <rth@cygnus.com>
3638
3639 * alpha.md (return_internal): Allow after reload only.
3640
3641 2000-01-30 Richard Henderson <rth@cygnus.com>
3642
3643 * i386.c (ix86_compute_frame_size): Omit padding1 if the
3644 local frame size is zero.
3645
3646 2000-01-30 Richard Henderson <rth@cygnus.com>
3647
3648 * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
3649 * alpha.h (EPILOGUE_USES): New. Mark $26 live.
3650 * alpha.md (return): Turn into an expander.
3651 (return_internal): Don't use $26.
3652 (epilogue): Emit the return insn.
3653
3654 2000-01-30 Richard Henderson <rth@cygnus.com>
3655
3656 * alpha.md (negtf2, abstf2): Fix word order thinko.
3657 (extendsftf2): New.
3658 (trunctfsf2): Avoid intermediate rounding errors.
3659
3660 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
3661
3662 * cppfiles.c (find_position): Drop 'colp' argument, return the
3663 new line base.
3664 (read_and_prescan): Adjust to match. Don't ever manipulate
3665 line or line_base except via find_position.
3666
3667 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
3668
3669 * c-parse.in: Apply Ulrich's changes from c-parse.y.
3670 * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
3671 Regenerate.
3672
3673 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
3674
3675 * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
3676 just print "<command line>". If 'filename' is null or an
3677 empty string, print "<stdin>" for the filename.
3678 * cpplib.c (do_define): Don't print the 'location of the
3679 previous definition' message if we're still parsing the
3680 command line.
3681 (cpp_pedwarn_with_file_and_line): Always call
3682 cpp_file_line_for_message.
3683
3684 2000-01-29 Mark Mitchell <mark@codesourcery.com>
3685
3686 * flow.c (mark_regs_live_at_end): Fix typo.
3687
3688 2000-01-28 Ulrich Drepper <drepper@redhat.com>
3689
3690 * c-common.c: Adjust variable names, comments, help strings to c99.
3691 * c-lex.c: Likewise.
3692 * c-parse.y: Likewise.
3693 * c-tree.h: Likewise.
3694 * cccp.c: Likewise.
3695 * cpplib.h: Likewise.
3696 * c-decl.c: Likewise. Recognize options with names "*99" as well.
3697 * cppinit.c: Likewise.
3698
3699 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3700
3701 * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
3702 * c4x.c: Define the optab rtx values.
3703 (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
3704 (c4x_emit_libcall): Use new optab rtx values.
3705 (c4x_emit_libcall3): Likewise.
3706 (c4x_emit_libcall_mulhi): Likewise.
3707 * c4x-protos.h: Add prototypes for optab rtx values and change
3708 prototypes for above c4x_emit_libcall functions.
3709
3710 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3711
3712 * c4x.c (c4x_output_ascii): Restrict line length of output when TI
3713 syntax is used.
3714 (c4x_function_prologue): Use regnames intead of float_reg_names when
3715 TI syntax is used.
3716 (c4x_function_epilogue): Likewise.
3717 (c4x_print_operand): Likewise.
3718 * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
3719 * c4x.md (set_high): Disable for TARGET_TI.
3720
3721 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3722
3723 * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
3724 of framepointer + constant to ADDR_REGS class.
3725 * c4x.md (addqi3, addqi3_noclobber_reload): Update.
3726 * c4x.c (std_or_reg_operand): New function.
3727 * c4x-protos.h (std_or_reg_operand): Prototype it.
3728
3729 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3730
3731 * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
3732 object names as libgcc2.c.
3733 * libgcc.S: Use newly defined names.
3734
3735 Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz>
3736 * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
3737 function.
3738 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
3739 * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
3740 (FLOW_LOOP_LAST_BLOCK): Likewise.
3741
3742 2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3743
3744 * basic-block.h (struct loop): New fields 'first' and 'last'.
3745 * flow.c (flow_loops_find): Compute loop->first and loop->last.
3746 (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
3747 and loop->last to check for NOTE_INSN_LOOP_END.
3748
3749 Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com>
3750
3751 * predict.c (estimate_probability): Use the new FIRST and LAST fields
3752 of the loop descriptor rather than HEADER and LATCH. Also added
3753 missing break statements as well making some coding style modifications
3754 as suggested by Michael Hayes.
3755
3756 2000-01-28 Richard Henderson <rth@cygnus.com>
3757
3758 * flow.c (find_basic_blocks): Remove do_cleanup argument.
3759 Break out that code ...
3760 (cleanup_cfg): ... here.
3761 (commit_one_edge_insertion): Detect a return instruction being
3762 emitted to an edge. Emit a barrier following; clear fallthru.
3763 (commit_edge_insertions): Verify CFG consistency.
3764 * function.c (expand_function_start): Kill unused variable.
3765 (expand_function_end): Likewise.
3766 (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
3767 to insert the epilogue.
3768
3769 * gcse.c (gcse_main): Adjust for find_basic_blocks change.
3770 (delete_null_pointer_checks): Likewise.
3771 * output.h: Likewise.
3772 * reg-stack.c (reg_to_stack): Likewise.
3773 * toplev.c (rest_of_compilation): Likewise. Run
3774 thread_prologue_and_epilogue_insns after rebuilding the CFG.
3775
3776 2000-01-28 Richard Henderson <rth@cygnus.com>
3777
3778 * Makefile.in (flow.o): Revert 24 Jan change.
3779 * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode
3780 FUNCTION_VALUE result to DECL_RESULT's mode.
3781
3782 * haifa-sched.c (schedule_insns): Don't recompute reg info
3783 after reload.
3784
3785 2000-01-28 Zack Weinberg <zack@wolery.cumb.org>
3786
3787 * configure.in: Make --enable-cpplib the default.
3788 * configure: Regenerate.
3789 * gcc.dg/990119-1.c: No longer expected to fail.
3790
3791 2000-01-28 Bernd Schmidt <bernds@cygnus.co.uk>
3792
3793 * jump.c (jump_optimize_1): Delete an optimization that is also done
3794 by merge_blocks in flow.
3795
3796 2000-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3797
3798 * diagnostic.c (build_message_string, output_printf,
3799 line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
3800 (build_location_prefix): Fix non-literal format string.
3801
3802 2000-01-27 Richard Henderson <rth@cygnus.com>
3803
3804 * alpha.md (trunctfsf2): New.
3805
3806 2000-01-27 Andrew Hobson <ahobson@eng.mindspring.net>
3807
3808 * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
3809
3810 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
3811
3812 * cppinit.c (cpp_handle_option): Recognize C++ comments under
3813 -std=gnu89.
3814 * cpplib.c (skip_block_comment, skip_line_comment): Split code
3815 out of...
3816 (skip_comment) ... here. Permit C++ comments in system
3817 headers always. Warn about C++ comments in user code under
3818 -std=gnu89 -pedantic.
3819 (copy_comment): Use skip_comment.
3820 (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
3821 return EOF.
3822 (consider_directive_while_skipping, do_else, do_endif): Call
3823 validate_else unconditionally.
3824 (validate_else): Check CPP_PEDANTIC here. Accept non-comment
3825 text after the conditional in a system header.
3826 * cpplib.h (struct cpp_buffer): Add flag
3827 warned_cplusplus_comments.
3828
3829 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
3830
3831 * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
3832 Use unshare_all_rtl_1.
3833 (unshare_all_rtl_again): New function.
3834 (unshare_all_rtl_1): New function split out of unshare_all_rtl.
3835
3836 * function.c (purge_addressof_1): Use unshare_all_rtl_again
3837 rather than resetting the 'used' flags ourself.
3838
3839 * toplev.c (rest_of_compilation): Add current_function_decl
3840 to the unshare_all_rtl call.
3841 * tree.h: Prototype unshare_all_rtl.
3842 * rtl.h: Prototype unshare_all_rtl_again here.
3843
3844 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
3845
3846 * genoutput.c (output_prologue): Include ggc.h in generated
3847 files.
3848 * Makefile.in (insn-output.o): Depends on ggc.h.
3849
3850 2000-01-27 Ian Dall <ian@sibyl.beware.dropbear.id.au>
3851 Hans-Peter Nilsson <hp@bitrange.com>
3852
3853 * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
3854 Remove redundant include of xm-ns32k.h.
3855 * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
3856 Remove redundant include of xm-ns32k.h.
3857 * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
3858 Remove redundant include of xm-ns32k.h.
3859 * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
3860
3861 * ns32k/ns32k.h: Update comment on multiply-add instructions.
3862 (TARGET_SWITCHES): Add documentation strings.
3863 (DWARF_FRAME_REGNUM): Override default definition.
3864 (REG_CLASS_CONTENTS): Add comments.
3865 (SUBSET_P): Format to reduce line length.
3866 (SMALL_REGISTER_CLASSES): Make a run time option.
3867 (GO_IF_NONINDEXED_ADDRESS): Reformat.
3868 (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
3869 dereferencing it. Braces to avoid "ambiguous else" were misplaced.
3870 (regclass_map): fix typo in comment.
3871 * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
3872 Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
3873 (trace, reg_or_mem_operand): Delete, unused function.
3874 (calc_address_cost): Small offsets are cheaper than large ones.
3875 (expand_block_move): Generate more efficient code when bytes is a
3876 known at compile time.
3877 * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
3878 (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
3879 instead of reg_or_mem_operand.
3880
3881 * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
3882 not general_operand. Similarly use "=rm" or stricter, not "=g".
3883 For input operands, use stricter constraints than "g" if not
3884 general_operand. Similarly use stricter predicate than
3885 "general_operand" when stricter constraints than "g" are present,
3886 except for matching constraints.
3887 (movstrsi): Use "memory_operand" for operands 0 and 1.
3888 (truncsiqi2, truncsihi2, trunchiqi2): Remove.
3889 (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
3890 not reg_or_mem_operand.
3891 (udivmoddisi4): Ditto.
3892 Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
3893 Use nonimmediate_operand for operand 3, not register_operand.
3894 (udivmoddiqi4_internal): Use register_operand for operand 1, not
3895 reg_or_mem_operand.
3896
3897 2000-01-27 Fred Fish <fnf@be.com>
3898
3899 * gthr-posix.h: Fix typo; compatibily -> compatibility.
3900 * gthr-single.h: Likewise.
3901 * gthr-solaris.h: Likewise.
3902 * gthr-vxworks.h: Likewise.
3903 * gthr-win32.h: Likewise.
3904 * gthr.h: Likewise.
3905
3906 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
3907
3908 * cppinit.c: Add " (cpplib)" to end of string printed by
3909 -v / --version.
3910
3911 2000-01-27 Richard Henderson <rth@cygnus.com>
3912
3913 * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
3914 testing for a signed comparison.
3915 (alpha_emit_floatuns): New.
3916 * alpha-protos.h: Declare it.
3917 * alpha.md (floatunsdisf2, floatunsdidf2): New.
3918 (extendsfdf2): Tidy.
3919
3920 2000-01-27 Jakub Jelinek <jakub@redhat.com>
3921
3922 * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
3923 no -g option specifying debugging format, default to -gstabs+.
3924
3925 Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
3926
3927 * calls.c (special_function_p): New argument fork_or_exec.
3928 (expand_call): When profile_arc_flag is set and the function
3929 is in the fork_or_exec group, call __bb_fork_func first.
3930 * libgcc2.c, _bb module (__bb_fork_func): New function.
3931 (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
3932 output file.
3933 * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
3934 * tree.h (special_function_p): Update prototype.
3935
3936 2000-01-26 Richard Henderson <rth@cygnus.com>
3937
3938 * alpha.c (alpha_split_tfmode_pair): New.
3939 * alpha-protos.h: Declare it.
3940 * alpha.md (abstf2, negtf2): New.
3941 (movtf insn): Add input G constraint.
3942 (movtf splitter): Use alpha_split_tfmode_pair.
3943
3944 2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3945
3946 * i386/cygwin.h: PROTO -> PARAMS.
3947
3948 2000-01-26 Jakub Jelinek <jakub@redhat.com>
3949
3950 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
3951 TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
3952 using _Qp_cmp/_Q_cmp and testing the return value.
3953 (print_operand): Call reverse_condition_maybe_unordered if
3954 we are handling CCFPmode or CCFPEmode.
3955 Handle ORDERED, UN* and LTGT comparisons.
3956 * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
3957 if not TARGET_HARD_QUAD.
3958 (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
3959 bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
3960 Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
3961 Adjust gen_b* calls so that they reflect return comparison of
3962 sparc_emit_float_lib_cmp.
3963
3964 2000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
3965
3966 * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
3967 incoming operands array is large enough for one more operand.
3968 (alpha_emit_xfloating_arith): Likewise.
3969
3970 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
3971
3972 * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
3973 file with one line and no trailing newline.
3974 Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
3975 * fixinc/fixtests.c (machine_name_test): Fix fencepost error
3976 checking if the match is on the line.
3977 * fixinc/gnu-regex.c: Provide regerror not __regerror.
3978
3979 2000-01-25 Richard Henderson <rth@cygnus.com>
3980
3981 * sparc.c (output_cbranch): Fix accidental squashing of the
3982 fp branch pre-delay nop.
3983
3984 2000-01-25 Richard Henderson <rth@cygnus.com>
3985
3986 * tree.def (UNNE_EXPR): Remove.
3987 * c-typeck.c (build_binary_op): Don't handle it.
3988 * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
3989
3990 * rtl.def (UNNE): Remove.
3991 (LTGT): Add.
3992 * jump.c (reverse_condition): Update accordingly.
3993 (swap_condition): Likewise.
3994 (comparison_dominates_p): Handle unordered comparisons.
3995 (reverse_condition_maybe_unordered): New.
3996 * rtl.h (reverse_condition_maybe_unordered): Declare.
3997
3998 * sparc.c (select_cc_mode): Update for UNNE/LTGT.
3999 (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
4000 * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs.
4001 * sparc.md (bltgt): New.
4002
4003 2000-01-25 Nick Clifton <nickc@redhat.com>
4004
4005 * emit-rtl.c (emit_insn): Only check machine class insns for
4006 improper emission of a RETURN.
4007
4008 2000-01-25 Richard Henderson <rth@cygnus.com>
4009
4010 * Makefile.in (flow.o): Depend on $(EXPR_H).
4011 * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
4012 duplicate the structure of diddle_return_value for keeping regs live.
4013
4014 2000-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4015
4016 * loop.c (current_loop_info): Delete.
4017 (consec_sets_invariant_p): Add loop argument, update callers.
4018 (get_condition_for_loop): Likewise.
4019 (count_nonfixed_reads, update_giv_derive): Likewise.
4020 (simplify_giv_expr, general_induction_var): Likewise.
4021 (consec_sets_giv, recombine_givs): Likewise.
4022 (move_movables): Delete loop_start and loop_end arguments,
4023 add loop argument, and update callers.
4024 (find_mem_givs, check_final_value): Likewise.
4025 (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
4026 (loop_invariant_p): Rename from invariant_p, add loop argument, and
4027 update callers.
4028 (basic_induction_var): Add loop argument, delete loop_level argument,
4029 and update callers.
4030 * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
4031 add loop argument, and update callers.
4032 (find_splittable_regs, find_splittable_givs): Likewise.
4033 (reg_dead_after_loop, loop_find_equiv_value): Likewise.
4034 (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
4035 (biv_total_increment): Delete loop_start and loop_end arguments;
4036 update callers.
4037 (precondition_loop_p): Delete loop_start and loop_info arguments;
4038 update callers.
4039 * loop.h (get_condition_for_loop): Add loop argument.
4040 (biv_total_increment): Delete loop_start and loop_end arguments.
4041 (precondition_loop_p): Delete loop_start and loop_info arguments;
4042 add loop argument.
4043 (final_biv_value): Delete loop_start and loop_end arguments;
4044 add loop argument.
4045 (final_giv_value, back_branch_in_range_p): Likewise.
4046
4047 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
4048
4049 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
4050
4051 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
4052
4053 * Makefile.in (c-gperf.h) : Change the "See" pointer to
4054 point to the new "generated_files" doc.
4055
4056 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
4057
4058 * config/fp-bit.c (_unord_f2): Fix typo.
4059
4060 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
4061
4062 * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
4063 c-typeck.c, objc/objc-act.c: Remove all references to obstack
4064 functions obsoleted by GC, such as push_obstacks_nochange,
4065 end_temporary_allocation, savealloc, saveable_tree_cons, etc.
4066 and code which existed only to decide whether or not to call
4067 them. Remove now-unused NESTED argument from start_function;
4068 all callers changed. Do not change behavior based on ggc_p.
4069 The use of the ixp_obstack in c-iterate.c and the util_obstack
4070 in objc/objc-act.c remain; these are not obsoleted by garbage
4071 collection.
4072 * c-tree.h: Update prototype for start_function.
4073
4074 * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
4075
4076 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
4077
4078 * config/mips/mips.md (zero_extendsidi2_internal): Disable for
4079 mips16.
4080
4081 2000-01-25 Richard Henderson <rth@cygnus.com>
4082
4083 * sparc-protos.h (select_cc_mode): Declare.
4084 * sparc.c (select_cc_mode): New. Handle unordered compares.
4085 (output_cbranch): Always reverse via code change. Handle
4086 unordered compares. Factor tests and string updates.
4087 * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
4088 (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
4089 * sparc.md (bunordered, bordered): New.
4090 (bungt, bunlt, buneq, bunge, bunle): New.
4091
4092 2000-01-25 Richard Henderson <rth@cygnus.com>
4093
4094 * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
4095 * ggc-common.c (ggc_add_rtx_varray_root): New.
4096 (ggc_mark_rtx_varray): New.
4097 (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr
4098 functions down below ggc_mark_foo.
4099 * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
4100
4101 2000-01-25 Richard Henderson <rth@cygnus.com>
4102
4103 * alpha.c (secondary_reload_class): Don't allocate a secondary
4104 for integral mode memories into FLOAT_REGS. Rearrange the more
4105 complicated memory expression inward.
4106
4107 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
4108
4109 * inclhack.def: Fixes to play nicer with FreeBSD, and
4110 corrections to comments.
4111 (cxx_unready): Add select expression.
4112 (irix_sockaddr): Add bypass expression.
4113 (machine_ansi_h_va_list): New fix.
4114 (stdio_va_list): No need to edit _BSD_VA_LIST_.
4115 Split out addition of "#include <stdarg.h>" to...
4116 (stdio_stdarg_h): ... here.
4117 (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply
4118 to stdlib.h also. Do not munge _BSD_SIZE_T_.
4119 (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
4120 size_t.
4121 (ultrix_ifdef): Tighten up select expression.
4122
4123 * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of
4124 re_ct and max_mach to avoid use of shell. Make printed names
4125 match names in inclhack.def. Use static copyright date.
4126 Don't count c_test and test expressions as requiring regex_t
4127 slots. Add some commentary.
4128 * inclhack.tpl: Do not include the 'This script contains N
4129 fixup scripts' line if PROGRAM is defined. Use static
4130 copyright date.
4131
4132 2000-01-24 Jason Merrill <jason@casey.cygnus.com>
4133
4134 * dwarf2out.c: include "varray.h", not dyn-string.h.
4135 (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
4136 (addr_const_to_string, addr_to_string): Lose.
4137 (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
4138 (struct dw_val_struct): val_addr is now an rtx.
4139 (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
4140 (used_rtx_varray): New varray.
4141 (dwarf2out_init): Initialize it.
4142 (save_rtx): New fn.
4143 (mem_loc_descriptor, add_const_value_attribute): Call it instead of
4144 addr_to_string.
4145 * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
4146 sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
4147 * Makefile.in (dwarf2out.o): Update dependencies.
4148
4149 2000-01-24 Richard Henderson <rth@cygnus.com>
4150
4151 * i386.c (i386_dwarf_output_addr_const): New.
4152 * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
4153
4154 * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
4155 if defined.
4156 * dwarfout.c (output_mem_loc_descriptor): Likewise.
4157 * i386.c (i386_simplify_dwarf_addr): New.
4158 * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
4159
4160 Mon Jan 24 16:56:10 2000 Jim Wilson <wilson@cygnus.com>
4161
4162 * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
4163 TYPE_STUB_DECL is NULL.
4164
4165 2000-01-24 Richard Henderson <rth@cygnus.com>
4166
4167 * builtins.c (expand_tree_builtin): Move ...
4168 * c-common.c (expand_tree_builtin): ... here.
4169
4170 2000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4171
4172 * loop.h (LOOP_INFO): New accessor macro.
4173 * basic-block.h (struct loop): Rename field `info' to `aux'.
4174 * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
4175 (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
4176 * unroll.c (loop_iterations, unroll_loop): Likewise.
4177
4178 2000-01-24 Christopher Faylor <cgf@cygnus.com>
4179
4180 * config/i386/t-cygwin: Accomodate new winsup directory layout
4181 when searching for include files.
4182
4183 2000-01-24 Richard Henderson <rth@cygnus.com>
4184
4185 * rtl.def: Add unordered fp comparisions.
4186 * tree.def: Likewise.
4187 * tree.h: Add ISO C 9x unordered fp comparision builtins.
4188
4189 * builtins.c (expand_tree_builtin): New function.
4190 * c-typeck.c (build_function_call): Use it.
4191 (build_binary_op): Support unordered compares.
4192 * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
4193
4194 * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
4195 (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
4196 * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
4197 (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
4198 * jump.c (reverse_condition): Don't abort for UNLE etc, but
4199 return UNKNOWN.
4200 (swap_condition): Handle unordered compares.
4201 (thread_jumps): Check can_reverse before reversing.
4202 * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be
4203 reversed for FP.
4204
4205 * optabs.c (can_compare_p): New argument CODE. Verify branch or
4206 setcc is present before acking for cmp_optab. Update all callers.
4207 (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
4208 * expmed.c (do_cmp_and_jump): Update for can_compare_p.
4209 * expr.c (expand_expr): Likewise. Support unordered compares.
4210 (do_jump, do_store_flag): Likewise.
4211 * expr.h (enum libfunc_index): Add unordered compares.
4212
4213 * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
4214 (DPBIT_FUNCS): Add _unord_df.
4215 * config/fp-bit.c (_unord_f2): New.
4216 * fp-test.c (main): Try unordered compare builtins.
4217
4218 * alpha-protos.h (alpha_fp_comparison_operator): Declare.
4219 * alpha.c (alpha_comparison_operator): Check mode properly.
4220 (alpha_swapped_comparison_operator): Likewise.
4221 (signed_comparison_operator): Likewise.
4222 (alpha_fp_comparison_operator): New.
4223 (alpha_emit_conditional_branch): Handle unordered compares.
4224 * alpha.h (PREDICATE_CODES): Update.
4225 * alpha.md (fp compares): Use alpha_fp_comparison_operator.
4226 (bunordered, bordered): New.
4227
4228 2000-01-24 Richard Henderson <rth@cygnus.com>
4229
4230 * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
4231 * alpha.md (movtf): New expander, insn, and splitter.
4232
4233 Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz>
4234
4235 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
4236 dead registers.
4237
4238 Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz>
4239
4240 * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
4241 (FIXED_REGISTERS, CALL_USED_REGISTERS,
4242 REG_ALLOC_ORDER): Add frame pointer
4243 (FRAME_POINTER_REGNUM): Set to 20
4244 (HARD_FRAME_POINTER_REGNUM): New macro.
4245 (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
4246 to HARD_FRAME_POINTER.
4247 (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
4248 (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
4249 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
4250 (HI_REGISTER_NAMES): Add "frame".
4251 (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
4252 (debug_reg): Handle FRAME_POINTER_REGNUM.
4253 (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
4254 GENERAL_REGS and INDEX_REGS.
4255 * i386.c (SAVED_REGS_FIRST): new macro.
4256 (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
4257 (ix86_decompose_address, memory_address_length): Likewise.
4258 (regclass_map): Add frame pointer.
4259 (call_insn_operand): Handle frame_pointer_rtx.
4260 (reg_no_sp_operand): Likewise.
4261 (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
4262 (print_operand, legitimize_pic_address): Fix formating.
4263 (ix86_compute_frame_size): Make static, update prototype, new
4264 parameters padding1, padding2, use ix86_nsaved_regs, use
4265 stack_alignment_needed.
4266 (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
4267 to HARD_FRAME_POINTER_REGNUM conversions.
4268 (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
4269 (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
4270 (print_reg): Abort on FRAME_POINTER_REGNUM
4271
4272 Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz>
4273
4274 * i386.h (PREDICATE_CODES): Add aligned_operand.
4275 * i386.c (aligned_operand): New function.
4276 (ix86_aligned_p): Kill.
4277 * i386.md (movhi_1): Emit mov for aligned operands.
4278 (promoting peep2s): Use aligned_operand.
4279
4280 2000-01-23 Zack Weinberg <zack@wolery.cumb.org>
4281
4282 * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
4283 expression to allow underscores in macro names.
4284 (fix_char_macro_defines): Increment scanning pointer.
4285
4286 2000-01-23 Richard Henderson <rth@cygnus.com>
4287
4288 * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
4289 * alpha/osf5.h: New file.
4290 * configure.in (alpha-*-osf5): Add it to tm_file.
4291
4292 * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
4293
4294 * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
4295 (alpha_emit_xfloating_cvt, function_arg): Declare.
4296 * alpha.c (alpha_emit_conditional_branch): Call
4297 alpha_emit_xfloating_compare for TFmode compares.
4298 (alpha_lookup_xfloating_lib_func): New.
4299 (alpha_compute_xfloating_mode_arg): New.
4300 (alpha_emit_xfloating_libcall): New.
4301 (alpha_emit_xfloating_arith): New.
4302 (alpha_emit_xfloating_compare): New.
4303 (alpha_emit_xfloating_cvt): New.
4304 (print_operand): Add default abort case.
4305 (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
4306 * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
4307 (BIGGEST_ALIGNMENT): Increase to 128 bits.
4308 (RETURN_IN_MEMORY): True for TF/TCmode.
4309 (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
4310 (FUNCTION_ARG): Move to function_arg.
4311 (FUNCTION_ARG_PASS_BY_REFERENCE): New.
4312 (ASM_OUTPUT_LONG_DOUBLE): New.
4313 (ASM_OUTPUT_DOUBLE): Always output bits.
4314 * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
4315 (fix_trunctfdi2, floatditf2, floatunsditf2): New.
4316 (extenddftf2, trunctfdf2): New.
4317
4318 2000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
4319
4320 * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
4321 * config/sparc/sol2.h: ... here.
4322
4323 2000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4324
4325 * basic-block.h (struct loops): New field `levels'.
4326 * flow.c (flow_loops_level_compute): Traverse all outer loops.
4327 (flow_loop_level_compute): Initialise level to 1.
4328 (flow_loops_find): Set loops->levels.
4329 (flow_loops_dump): Print loops->levels.
4330
4331 2000-01-23 Richard Henderson <rth@cygnus.com>
4332
4333 * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
4334 (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
4335
4336 2000-01-23 Richard Henderson <rth@cygnus.com>
4337
4338 * i386.c (dbx_register_map, svr4_dbx_register_map): New.
4339 * i386.h (DBX_REGISTER_NUMBER): Use them.
4340 * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
4341 * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
4342 * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
4343 * i386/sequent.h: Kill incorrect comment.
4344
4345 2000-01-23 Mark Mitchell <mark@codesourcery.com>
4346
4347 * ggc-page.c (struct page_entry): Make `context_depth' an
4348 `unsigned short'.
4349 (struct globals): Likewise.
4350
4351 2000-01-23 Clinton Popetz <cpopetz@cygnus.com>
4352
4353 * loop.c (check_dbra_loop): When checking a loop for
4354 reversability, check the source of any stores to ensure
4355 they don't depend on an initial value.
4356
4357 2000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4358
4359 * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
4360
4361 2000-01-22 Zack Weinberg <zack@wolery.cumb.org>
4362
4363 * fixinc/fixincl.c: Move declarations of 'pz_fname' and
4364 'pz_scan' into scope of entire function. Only affects
4365 compiles with -DDEBUG.
4366
4367 2000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
4368
4369 * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
4370 section naming to that prior to 2000-01-07 patch.
4371 * config/mips/elf.h (UNIQUE_SECTION): Ditto.
4372 * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
4373 * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
4374 * config/i386/interix.c (UNIQUE_SECTION): Ditto.
4375 * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
4376
4377 2000-01-22 Bernd Schmidt <bernds@cygnus.co.uk>
4378
4379 * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
4380 constant.
4381
4382 2000-01-21 Jim Wilson <wilson@cygnus.com>
4383
4384 * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
4385 * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
4386
4387 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
4388
4389 * cpphash.c (change_newlines): Delete function.
4390 (struct argdata): Delete 'newlines' and 'use_count' fields.
4391 (macroexpand): Remove code referencing those fields.
4392
4393 2000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4394
4395 * loop.c (loops_info): New variable.
4396 (loop_optimize): Allocate loops->array and free it on exit.
4397 Allocate memory for loops_info and assign to each loop,
4398 replacing alloca.
4399 (find_and_verify_loops): Do not allocate loops->array.
4400
4401 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
4402
4403 * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
4404
4405 2000-01-21 Jakub Jelinek <jakub@redhat.com>
4406
4407 * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
4408 pseudos if expanded after first flow.
4409 (movdi_pic_label_ref): Likewise.
4410
4411 2000-01-20 Richard Henderson <rth@cygnus.com>
4412
4413 * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
4414
4415 2000-01-20 Zack Weinberg <zack@wolery.cumb.org>
4416
4417 * Makefile.in (fixinc.sh): Depend on specs.
4418 * fixinc/Makefile.in: Add rule to create machname.h.
4419 (fixlib.o): Depend on machname.h.
4420 * fixinc/fixtests.c (machine_name): New test.
4421 * fixinc/fixfixes.c (machine_name): New fix.
4422 * fixinc/fixlib.c (mn_get_regexps): New helper function for
4423 the machine_name test and fix.
4424 * fixinc/fixlib.h: Prototype it.
4425 * fixinc/inclhack.def (machine_name): Use the C test and fix.
4426 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
4427
4428 * gcc.c (do_spec_1) [case P]: Take care not to create
4429 identifiers with three leading or trailing underscores.
4430
4431 * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
4432 (fixincl): Don't specify libraries twice on link line.
4433 (gnu-regex.o): Remove special rule.
4434 * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
4435 defined by config.h. Do not define _REGEX_RE_COMP.
4436 (regcomp): Allocate and initialize a fastmap.
4437 * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
4438
4439 2000-01-20 Brad Lucier <lucier@math.purdue.edu>
4440
4441 * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
4442
4443 2000-01-19 Richard Henderson <rth@cygnus.com>
4444
4445 * flow.c (propagate_block): Replace FIRST, LAST and BNUM
4446 arguments with BB. Update all callers. Tidy line wrapping.
4447
4448 2000-01-19 Clinton Popetz <cpopetz@cygnus.com>
4449
4450 * emit-rtl.c (try_split): Return last_insn if we split the
4451 last_insn.
4452
4453 Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz>
4454
4455 * i386-protos.h (ix86_compute_frame_size): Remove prototype.
4456 (ix86_initial_elimination_offset): Declare.
4457 * i386.c (ix86_nsaved_regs): Break out from ...
4458 (ix86_can_use_return_insn_p): ... here.
4459 (ix86_emit_save_regs): Break out from ...
4460 (ix86_expand_prologue): ... here.
4461 (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
4462 out from ...
4463 (ix86_expand_epilogue): ... here.
4464 (ix86_compute_frame_size): Make static, add prototype.
4465 (ix86_initial_elimination_offset): Break out from ...
4466 * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
4467
4468 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4469
4470 * recog.h (OUT_FCN): Delete.
4471
4472 * vax.md: Call `get_insn_template' instead of OUT_FCN.
4473
4474 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4475
4476 * cppalloc.c: PROTO -> PARAMS.
4477 * cpperror.c: Likewise.
4478 * cppfiles.c: Likewise.
4479 * cpplib.c: Likewise.
4480 * cpplib.h: Likewise.
4481
4482 * config/arm/arm-protos.h: PROTO -> PARAMS.
4483 * config/arm/arm.c: Likewise.
4484 * config/c4x/c4x.c: Likewise.
4485 * config/fr30/fr30-protos.h: Likewise.
4486 * config/nextstep.c: Likewise.
4487 * config/pa/pa.c: Likewise.
4488 * config/pj/pj.c: Likewise.
4489 * config/rs6000/rs6000.c: Likewise.
4490 * config/v850/v850-protos.h: Likewise.
4491 * config/v850/v850.c: Likewise.
4492
4493 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4494
4495 * i370-protos.h: New file.
4496
4497 * i370.c: Include tm_p.h. Fix compile time warnings.
4498
4499 * i370.h: Move prototypes to i370-protos.h. Fix compile time
4500 warnings.
4501
4502 * i370.md: Likewise.
4503
4504 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4505
4506 * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
4507 (target_isinf, target_isnan, eisnan): Mark parameter with
4508 ATTRIBUTE_UNUSED.
4509 (eiisinf): Wrap in INFINITY.
4510 (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
4511 (ibmtoe): Remove unused variable `rndsav'.
4512
4513 Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4514
4515 * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
4516 (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
4517
4518 2000-01-19 Zack Weinberg <zack@wolery.cumb.org>
4519
4520 * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
4521 * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
4522 (fix_char_macro_defines, fix_char_macro_uses): New functions.
4523
4524 * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
4525 Recognize Emacs mode markers also.
4526 * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
4527 C++ comments in C++ headers. Call is_cxx_header only if
4528 necessary.
4529
4530 * fixinc/inclhack.def (avoid_bool): Add select for the problem and
4531 bypass for ncurses.
4532 (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
4533 (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
4534 ... these, which use the new C fixes.
4535 (math_exception): Escape literal '+' in bypass expression.
4536
4537 * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
4538 Regenerate.
4539
4540 2000-01-19 Geoff Keating <geoffk@cygnus.com>
4541
4542 * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
4543 inside the MEM.
4544
4545 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4546
4547 * loop.c (loop_optimize): Allocate loop_info structure for each loop
4548 prior to calling scan_loop.
4549
4550 Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4551
4552 * sh.c (find_barrier, gen_block_redirect): Fix indentation.
4553 (split_branches, calc_live_regs): Likewise.
4554
4555 Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4556
4557 * sh.md (fpu_single, fp_mode): New attributes.
4558
4559 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4560
4561 * loop.c (current_loop_info): Renamed from loop_info_data
4562 and changed to a pointer.
4563 (loop_optimize): Allocate loop_info structure for each loop
4564 and initialise to zero.
4565 (scan_loop): Set current_loop_info.
4566
4567 * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
4568 on iteration_var.
4569
4570 2000-01-19 Richard Henderson <rth@cygnus.com>
4571
4572 * stupid.c: Die die die.
4573 * Makefile.in (OBJS): Remove stupid.o.
4574 (stupid.o): Likewise.
4575
4576 * except.c (emit_eh_context): Don't emit USEs for stupid.
4577 * explow.c (probe_stack_range): Likewise.
4578 * flags.h (obey_regdecls): Remove.
4579 * flow.c (find_basic_blocks): Don't run try_merge_blocks
4580 when not optimizing.
4581 (life_analysis): Limit data collection when not optimizing.
4582 (mark_regs_live_at_end): Always mark the return value registers.
4583 (mark_used_regs): Remove dummy RETURN case.
4584 (print_rtl_with_bb): Don't consult obey_regdecls.
4585 * function.c (use_variable, use_variable_after): Remove.
4586 (assign_parms): Consult optimize not obey_regdecls.
4587 (expand_function_start): Don't emit USEs for stupid.
4588 (expand_function_end): Likewise.
4589 * global.c (build_insn_chain): Export.
4590 * integrate.c (expand_inline_function): Kill return-value USE
4591 handling code.
4592 * jump.c (jump_optimize_1): Do simple jump optimizations and
4593 dead code elimination.
4594 (calculate_can_reach_end): Remove check_deleted argument.
4595 (delete_insn): Patch out insns even when not optimizing.
4596 * local-alloc.c (block_alloc): Don't do tying when not optimizing.
4597 * rtl.h (use_variable, use_variable_after): Remove declarations.
4598 (build_insn_chain): Declare.
4599 * stmt.c (expand_value_return): Don't emit USEs for stupid.
4600 (expand_end_bindings): Likewise.
4601 (expand_decl): Likewise. Consult optimize not obey_regdecls.
4602 * toplev.c (obey_regdecls): Remove.
4603 (rest_of_compilation): Don't set it. Kill stupid in favour of
4604 flow1, local-alloc, and reload.
4605 (main): Don't set obey_regdecls.
4606
4607 * config/nextstep.c (handle_pragma): Likewise.
4608
4609 * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
4610
4611 * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
4612
4613 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4614
4615 * alpha-protos.h: PROTO -> PARAMS.
4616 * alpha.c: Likewise.
4617 * elf.h: Likewise.
4618 * h8300.c: Likewise.
4619 * i386-protos.h: Likewise.
4620 * i386.c: Likewise.
4621 * m32r-protos.h: Likewise.
4622 * m32r.c: Likewise.
4623 * mips.c: Likewise.
4624 * mips.md: Likewise.
4625 * gmon-sol2.c: Likewise.
4626 * sparc.c: Likewise.
4627
4628 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4629
4630 * ns32k-protos.h: New file.
4631
4632 * ns32k.c: Fix compile time warnings.
4633
4634 * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time
4635 warnings.
4636
4637 * ns32k.md: Likewise.
4638
4639 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4640
4641 * vax-protos.h: New file.
4642
4643 * vax.c: Fix compile time warnings.
4644
4645 * vax.h: Move prototypes to vax-protos.h. Fix compile time
4646 warnings.
4647
4648 * vax.md: Likewise.
4649
4650 * vaxv.md: Likewise.
4651
4652 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4653
4654 * romp-protos.h: New file.
4655
4656 * romp.c: Fix compile time warnings.
4657
4658 * romp.h: Move prototypes to romp-protos.h. Fix compile time
4659 warnings.
4660
4661 * romp.md: Likewise.
4662
4663 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4664
4665 * we32k-protos.h: New file.
4666
4667 * we32k.c: Fix compile time warnings.
4668
4669 * we32k.h: Move prototypes to we32k-protos.h. Fix compile time
4670 warnings.
4671
4672 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4673
4674 * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
4675
4676 * except.c (eh_regs): Likewise.
4677
4678 * final.c (output_operand): Likewise.
4679
4680 * fold-const.c (target_isinf, target_isnan): Likewise.
4681
4682 Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
4683
4684 * i386.h (BIGGEST_ALIGNMENT): Set to 128.
4685 (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
4686
4687 * i386.md (memstr): Do not use rep stosb for counts divisible by 4
4688 when optimize_size.
4689 (clrstrsi): Rewrite.
4690 (strsethi, strsetqi): New expanders.
4691 (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
4692 (cmpstrsi): Emit compare insn before cmpstrsi_1
4693 (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
4694 (strlensi_1): Likewise.
4695 (cmpstrsi_1): Likewise; do not output compare.
4696 (strlen expander): Do not unroll when optimizing for size.
4697 (*subsi3_carry): Rename to subsi3_carry
4698 (addqi3_cc): New pattern.
4699 * i386.h (processor_costs): Add move_ratio field.
4700 (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
4701 * i386.c (*_cost): Set move_ratio.
4702 (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
4703 (x86_expand_strlensi_1): Rewrite the main loop.
4704
4705 2000-01-17 Richard Henderson <rth@cygnus.com>
4706
4707 * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
4708 * cse.c (find_comparison_args, fold_rtx): Likewise.
4709 * integrate.c (subst_constants): Likewise.
4710 * loop.c (get_condition): Likewise.
4711
4712 * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
4713
4714 * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
4715
4716 2000-01-18 Martin v. Löwis <loewis@informatik.hu-berlin.de>
4717
4718 * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
4719 (RESTORE_WARN_FLAGS): Unpack it.
4720 Change semantic type of extension to ttype.
4721 * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
4722 * c-parse.y, c-parse.c, objc/objc-parse.y,
4723 objc/objc-parse.c: Regenerate.
4724
4725 2000-01-17 Zack Weinberg <zack@wolery.cumb.org>
4726
4727 * fixinc/fixlib.c: Add copyright notice.
4728 (compile_re): New function.
4729 * fixinc/fixlib.h: Prototype compile_re.
4730
4731 * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
4732 Use compile_re to compile regular expressions.
4733
4734 * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
4735 where the pattern matched.
4736
4737 * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
4738 use 'replace'.
4739 (ultrix_ansi_compat): Likewise.
4740 (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
4741 add egrep test.
4742 (interactv_add2, interactv_add3): Delete.
4743 (x11_sprintf): Don't use filename glob.
4744 * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
4745 Regenerate.
4746
4747 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4748
4749 * print-rtl.c: PROTO -> PARAMS.
4750 * real.c: Likewise.
4751 * reg-stack.c: Likewise.
4752 * resource.c: Likewise.
4753 * sdbout.h: Likewise.
4754 * simplify-rtx.c: Likewise.
4755 * stor-layout.c: Likewise.
4756 * stupid.c: Likewise.
4757 * xcoffout.c: Likewise.
4758 * xcoffout.h: Likewise.
4759
4760 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4761
4762 * toplev.c: PROTO -> PARAMS.
4763 * toplev.h: Likewise.
4764 * tree.c: Likewise.
4765 * tree.h: Likewise.
4766 * unroll.c: Likewise.
4767 * varasm.c: Likewise.
4768 * varray.c: Likewise.
4769 * varray.h: Likewise.
4770
4771 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4772
4773 * reload.c: PROTO -> PARAMS.
4774 * reload.h: Likewise.
4775 * reload1.c: Likewise.
4776 * reorg.c: Likewise.
4777 * resource.h: Likewise.
4778 * rtl.c: Likewise.
4779 * rtl.h: Likewise.
4780 * rtlanal.c: Likewise.
4781 * sbitmap.h: Likewise.
4782 * sdbout.c: Likewise.
4783 * stack.h: Likewise.
4784 * stmt.c: Likewise.
4785 * system.h: Likewise.
4786
4787 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4788
4789 * machmode.h: PROTO -> PARAMS.
4790 * mbchar.h: Likewise.
4791 * mips-tdump.c: Likewise.
4792 * mips-tfile.c: Likewise.
4793 * optabs.c: Likewise.
4794 * output.h: Likewise.
4795 * prefix.c: Likewise.
4796 * profile.c: Likewise.
4797 * protoize.c: Likewise.
4798 * real.h: Likewise.
4799 * recog.c: Likewise.
4800 * recog.h: Likewise.
4801 * regclass.c: Likewise.
4802 * regmove.c: Likewise.
4803 * regs.h: Likewise.
4804
4805 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4806
4807 * ggc-common.c: PROTO -> PARAMS.
4808 * ggc-page.c: Likewise.
4809 * ggc-simple.c: Likewise.
4810 * ggc.h: Likewise.
4811 * global.c: Likewise.
4812 * graph.c: Likewise.
4813 * gthr-win32.h: Likewise.
4814 * haifa-sched.c: Likewise.
4815 * halfpic.h: Likewise.
4816 * integrate.c: Likewise.
4817 * integrate.h: Likewise.
4818 * jump.c: Likewise.
4819 * lcm.c: Likewise.
4820 * local-alloc.c: Likewise.
4821 * loop.c: Likewise.
4822 * loop.h: Likewise.
4823
4824 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4825
4826 * genattr.c: PROTO -> PARAMS.
4827 * genattrtab.c: Likewise.
4828 * gencheck.c: Likewise.
4829 * gencodes.c: Likewise.
4830 * genconfig.c: Likewise.
4831 * genemit.c: Likewise.
4832 * genextract.c: Likewise.
4833 * genflags.c: Likewise.
4834 * gengenrtl.c: Likewise.
4835 * genopinit.c: Likewise.
4836 * genoutput.c: Likewise.
4837 * genpeep.c: Likewise.
4838 * genrecog.c: Likewise.
4839
4840 2000-01-16 Mark Mitchell <mark@codesourcery.com>
4841
4842 * tree.h (BINFO_VPTR_FIELD): Augment documentation.
4843
4844 2000-01-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
4845
4846 * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
4847 * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
4848 * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
4849 * configure, config.in: Rebuilt.
4850
4851 2000-01-16 Zack Weinberg <zack@wolery.cumb.org>
4852
4853 * config/i386/i386.md: Add peephole to merge successive stack
4854 adjusts.
4855
4856 Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com)
4857
4858 * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
4859 instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK
4860 when walking backwards to find all the parameter loads when
4861 the basic block ends in a call.
4862
4863 2000-01-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4864
4865 * loop.c (this_loop_info): Delete.
4866 (uid_loop): Add in place of uid_loop_num. All uses updated.
4867 (loop_number_exit_count): Delete and replace with entry in loop
4868 structure. All uses updated.
4869 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
4870 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
4871 (loop_outer_loop): Likewise.
4872 (loop_invalid, loop_number_exit_labels): Likewise.
4873 (loop_used_count_register): Delete and replace with entry in
4874 loop_info structure.
4875 (find_and_verify_loops): Add loops argument.
4876 (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
4877 loop_end, etc. arguments with loop structure pointer. All callers
4878 changed.
4879 (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
4880 (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
4881 (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
4882 (insert_bct): Likewise.
4883 (basic_induction_var): New argument level.
4884 * loop.h (struct loop_info): Delete fields num, loops_enclosed,
4885 vtop, and cont. Add used_count_register.
4886 (uid_loop): Delete declaration.
4887 (loop_number_exit_count): Likewise.
4888 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
4889 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
4890 (loop_outer_loop, loop_used_count_register): Likewise.
4891 (loop_invalid, loop_number_exit_labels): Likewise.
4892 (unroll_loop): Replace loop_start and loop_end arguments
4893 with loop structure pointer.
4894 (loop_precondition_p, loop_iterations): Likewise.
4895 Include basic-block.h.
4896 * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
4897 with loop structure pointer.
4898 (loop_precondition_p, loop_iterations): Likewise.
4899 * basic-block.h (struct loop): New entries vtop, cont,
4900 cont_dominator, start, end, top, scan_start, exit_labels,
4901 exit_count.
4902 * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
4903
4904 2000-01-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4905
4906 * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
4907
4908 2000-01-14 Nathan Sidwell <sidwell@codesourcery.com>
4909
4910 * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
4911
4912 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4913
4914 * pdp11-protos.h: New file.
4915
4916 * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile
4917 time warnings.
4918
4919 * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time
4920 warnings.
4921
4922 * pdp11.md: Likewise.
4923
4924 * 2bsd.h: Likewise.
4925
4926 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4927
4928 * mn10300-protos.h: New file.
4929
4930 * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile
4931 time warnings.
4932
4933 * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time
4934 warnings.
4935
4936 * mn10300.md: Likewise.
4937
4938 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4939
4940 * mn10200-protos.h: New file.
4941
4942 * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile
4943 time warnings.
4944
4945 * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time
4946 warnings.
4947
4948 * mn10200.md: Likewise.
4949
4950 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4951
4952 * h8300-protos.h: New file.
4953
4954 * h8300.c: Include tm_p.h. Add static prototypes. Fix compile
4955 time warnings.
4956
4957 * h8300.h: Move prototypes to h8300-protos.h. Fix compile time
4958 warnings.
4959
4960 * h8300.md: Likewise.
4961
4962 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4963
4964 * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
4965 (asm_emit_uninitialised): Likewise.
4966
4967 2000-01-13 Gavin Romig-Koch <gavin@cygnus.com>
4968
4969 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
4970 * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
4971
4972 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
4973
4974 * config/mips/mips.c (override_options): Don't turn on extra
4975 alignment for mips16.
4976
4977 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
4978
4979 * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
4980 eabi, and make sure queued POSTINCREMENT rtl is emitted at
4981 the right point.
4982
4983 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
4984
4985 * builtins.c (PAD_VARARGS_DOWN): Define.
4986 (std_expand_builtin_va_arg): Use the above macro.
4987 * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
4988 * tm.texi (Register Arguments): Document the above macro.
4989
4990 2000-01-14 Nick Clifton <nickc@cygnus.com>
4991
4992 * emit-rtl.c (emit_insn): If checking is enabled, make sure
4993 that this function has not been used to emit a jump
4994 instruction.
4995
4996 * jump.c (return_jump_1): Cope with being passed a null rtx.
4997
4998 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4999
5000 * eh-common.h: PROTO -> PARAMS.
5001 * emit-rtl.c: Likewise.
5002 * errors.c: Likewise.
5003 * errors.h: Likewise.
5004 * except.c: Likewise.
5005 * except.h: Likewise.
5006 * explow.c: Likewise.
5007 * expmed.c: Likewise.
5008 * expr.c: Likewise.
5009 * expr.h: Likewise.
5010 * final.c: Likewise.
5011 * fix-header.c: Likewise.
5012 * flow.c: Likewise.
5013 * fold-const.c: Likewise.
5014 * function.c: Likewise.
5015 * function.h: Likewise.
5016 * gcc.c: Likewise.
5017 * gcov-io.h: Likewise.
5018 * gcov.c: Likewise.
5019 * gcse.c: Likewise.
5020
5021 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5022
5023 * sh-protos.h: New file.
5024
5025 * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
5026 Add static prototypes. Fix compile time warnings.
5027
5028 * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings.
5029 * sh.md: Likewise.
5030 * elf.h: Likewise.
5031
5032 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5033
5034 * arc-protos.h: New file.
5035
5036 * arc.c: Include tm_p.h. Add static prototypes. Fix compile
5037 time warnings.
5038
5039 * arc.h: Move prototypes to arc-protos.h. Fix compile time
5040 warnings.
5041
5042 * arc.md: Likewise.
5043
5044 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5045
5046 * dsp16xx-protos.h: New file.
5047
5048 * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile
5049 time warnings.
5050
5051 * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time
5052 warnings.
5053
5054 * dsp16xx.md: Likewise.
5055
5056 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5057
5058 * convex-protos.h: New file.
5059
5060 * convex.c: Include tm_p.h. Add static prototypes. Fix compile
5061 time warnings.
5062
5063 * convex.h: Move prototypes to convex-protos.h. Fix compile time
5064 warnings.
5065
5066 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5067
5068 * elxsi-protos.h: New file.
5069
5070 * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile
5071 time warnings.
5072
5073 * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time
5074 warnings.
5075
5076 * elxsi.md: Likewise.
5077
5078 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
5079
5080 * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
5081 case for moving from HI/LO/HI_LO_REG. This makes the behavior
5082 match the comment for MIPS16.
5083
5084 Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com)
5085
5086 * flow.c (split_edge): Do not call set_block_for_insn if we
5087 do not have a basic_block_for_insn structure.
5088
5089 * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
5090 and destination functions are 32bit aligned within the trampoline.
5091 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
5092 (TRAMPOLINE_ALIGNMENT): Define.
5093
5094 * cse.c (cse_insn): When changing (set (pc) (reg)) to
5095 (set (pc) (label_ref)), verify the change creates a valid insn.
5096
5097 * fr30.c (call_operand): Tighten and rework to match rules for
5098 call RTL expressions.
5099 * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
5100 * fr30.md (call patterns): Improve constraints.
5101
5102 Thu Jan 13 23:44:03 2000 Richard Henderson <rth@cygnus.com>
5103
5104 * fr30.c (fr30_expand_epilogue): Revert last change.
5105 Use emit_jump_insn for the return insn.
5106
5107 Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com>
5108 Stan Cox <scox@cygnus.com>
5109
5110 * predict.c: New file. Preliminary infrastructure work for static
5111 branch prediction and basic block reordering.
5112 * basic-block.h: Add prototype for estimate_probability.
5113 * Makefile.in: Add rules for predict.o.
5114
5115 2000-01-13 Jason Merrill <jason@yorick.cygnus.com>
5116
5117 * fixincludes (va_list): Use __not_va_list__ for the dummy.
5118 * fixinc/*: Likewise.
5119
5120 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5121
5122 * cccp.c: PROTO -> PARAMS.
5123 * cexp.y: Likewise.
5124 * collect2.c: Likewise.
5125 * combine.c: Likewise.
5126 * convert.h: Likewise.
5127 * cse.c: Likewise.
5128 * dbxout.c: Likewise.
5129 * dbxout.h: Likewise.
5130 * diagnostic.c: Likewise.
5131 * doprint.c: Likewise.
5132 * dwarf2out.c: Likewise.
5133 * dwarf2out.h: Likewise.
5134 * dwarfout.c: Likewise.
5135 * dwarfout.h: Likewise.
5136 * dyn-string.h: Likewise.
5137
5138 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5139
5140 * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
5141 macro conditionals guarding use.
5142
5143 * dwarf2out.c: Include "tm_p.h".
5144
5145 * function.c (locate_and_pad_parm): Mark parameter with
5146 ATTRIBUTE_UNUSED.
5147 (expand_function_end): Likewise for variable `context'.
5148
5149 * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
5150
5151 2000-01-13 Nick Clifton <nickc@cygnus.com>
5152
5153 * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
5154 register to prevent compile time warnings.
5155
5156 2000-01-13 Zack Weinberg <zack@wolery.cumb.org>
5157
5158 * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
5159 to avoid -Wtraditional warning.
5160
5161 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5162
5163 * 1750a-protos.h: New file.
5164
5165 * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile
5166 time warnings.
5167
5168 * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time
5169 warnings.
5170
5171 * 1750a.md: Likewise.
5172
5173 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5174
5175 * a29k-protos.h: New file.
5176
5177 * a29k.c: Include tm_p.h. Add static prototypes. Fix compile
5178 time warnings.
5179
5180 * a29k.h: Move prototypes to a29k-protos.h. Fix compile time
5181 warnings.
5182
5183 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5184
5185 * clipper-protos.h: New file.
5186
5187 * clipper.c: Include tm_p.h. Add static prototypes. Fix compile
5188 time warnings.
5189
5190 * clipper.h: Move prototypes to clipper-protos.h. Fix compile time
5191 warnings.
5192
5193 Thu Jan 13 16:03:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
5194
5195 * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
5196
5197 2000-01-13 Nathan Sidwell <sidwell@codesourcery.com>
5198
5199 * configure.in (--enable-new-gxx-abi): New option.
5200 * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
5201 * Makefile.in (GXX_ABI_FLAG): New variable.
5202 * configure: Regenerate.
5203
5204 2000-01-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5205
5206 * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
5207 * tm.texi (FORCE_STRUCT_BLK): Document.
5208 * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
5209
5210 Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson <hp@axis.com>
5211
5212 * config/ns32k/ns32k.md: Revert Jan 9 change.
5213
5214 * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
5215 to a mode-test, if the predicate is address_operand.
5216
5217 Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com)
5218
5219 * combine.c (if_then_else_cond): Be careful about what kinds
5220 of RTL expressions are passed to operand_subword.
5221
5222 * flow.c (split_edge): If we have to insert a new jump, make
5223 sure to associate it with a basic block.
5224
5225 * flow.c (commit_one_edge_insertion): A block with one successor
5226 can end in a JUMP_INSN that is not a simplejump.
5227
5228 2000-01-12 Robert Lipe <robertl@sco.com>
5229
5230 * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
5231 (BUILD_VA_LIST_TYPE): Define.
5232 (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
5233 with crtstuff.c.
5234
5235 2000-01-12 Jason Merrill <jason@casey.cygnus.com>
5236
5237 * cccp.c (do_pragma): Add cast to (char *).
5238
5239 2000-01-12 Richard Henderson <rth@cygnus.com>
5240 Fred Fish <fnf@be.com>
5241 Jason Merrill <jason@cygnus.com>
5242
5243 * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
5244 * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
5245 * i386/beos-elf.h, i386/beos-pe.h: New files.
5246
5247 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
5248 * cross-make (SYSTEM_HEADER_DIR): Define using
5249 CROSS_SYSTEM_HEADER_DIR.
5250
5251 * gcc.c (LIBRARY_PATH_ENV): Provide default.
5252 (process_command): Use it.
5253 (main): Likewise. Kill trailing = from env vars.
5254 (build_search_list): Put it back.
5255 * collect2.c (main): Use LIBRARY_PATH_ENV.
5256
5257 * configure.in (GCC_NEED_DECLARATIONS): Add environ.
5258 * toplev.c: Use NEED_DECLARATION_ENVIRON.
5259
5260 * tm.texi (Frame Layout): Document SMALL_STACK.
5261 * c-common.c (c_common_nodes_and_builtins): Check it.
5262
5263 * system.h: Undef alloca after including glibc's <stdlib.h>,
5264 if USE_C_ALLOCA is defined.
5265
5266 * gcc.c (set_input): New fn.
5267 (main): After all input files are compiled, reset the input file
5268 info to the first.
5269
5270 * aclocal.m4 (rindex, index): If already defined, don't attempt
5271 to redefine.
5272
5273 * ginclude/varargs.h: (__va_list__): Define ifndef.
5274 * ginclude/stdarg.h: Likewise.
5275
5276 * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
5277 instead of unsigned char.
5278
5279 * hash.h (true, false, boolean): Undef before enum.
5280
5281 * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
5282 proper type of "HOST_WIDE_INT *", rather than their natural type of
5283 "unsigned HOST_WIDE_INT *".
5284
5285 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5286
5287 * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
5288
5289 * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
5290
5291 * regclass.c (choose_hard_reg_mode): Likewise.
5292
5293 * reload.c (find_valid_class, strict_memory_address_p): Likewise.
5294
5295 * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
5296
5297 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5298
5299 * c-common.c: PROTO -> PARAMS.
5300 * c-common.h: Likewise.
5301 * c-decl.c: Likewise.
5302 * c-iterate.c: Likewise.
5303 * c-lang.c: Likewise.
5304 * c-lex.c: Likewise.
5305 * c-lex.h: Likewise.
5306 * c-parse.in: Likewise.
5307 * c-pragma.c: Likewise.
5308 * c-pragma.h: Likewise.
5309 * c-tree.h: Likewise.
5310 * c-typeck.c: Likewise.
5311 * objc/objc-act.c: Likewise.
5312 * objc/objc-act.h: Likewise.
5313
5314 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5315
5316 * m88k-protos.h: New file.
5317
5318 * m88k.c: Include tm_p.h. Add static prototypes. Fix compile
5319 time warnings.
5320
5321 * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings.
5322
5323 * m88k.md: Likewise.
5324
5325 * tekXD88.h: Likewise.
5326
5327 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5328
5329 * m68k-protos.h: New file.
5330
5331 * m68k.c: Include tm_p.h. Add static prototypes. Fix compile
5332 time warnings.
5333
5334 * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings.
5335
5336 * mot3300.h: Likewise.
5337
5338 2000-01-12 Richard Earnshaw <rearnsha@arm.com>
5339
5340 * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
5341 extract_bitlst.
5342 (extract_bitlist): Declare bitlen.
5343
5344 2000-01-12 Zack Weinberg <zack@wolery.cumb.org
5345
5346 * cccp.c: Accept and ignore -lang-fortran.
5347
5348 * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
5349 qualifiers don't match at any level of pointerness.
5350
5351 2000-01-12 Robert Lipe <robertl@sco.com>
5352
5353 * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
5354
5355 2000-01-12 Bernd Schmidt <bernds@cygnus.co.uk>
5356
5357 * reload1.c (reload_reg_unavailable): New static variable.
5358 (reload_reg_free_p): Test it.
5359 (reload_reg_free_for_value_p): Test it instead of
5360 reload_reg_used.
5361 (choose_reload_regs_init): Compute it.
5362
5363 Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com)
5364
5365 * reorg.c (fill_slots_from_thread): Check modified_in_p
5366 before replacing.
5367
5368 Wed Jan 12 03:20:31 2000 John Marshall <john_w_marshall@palm.com>
5369
5370 * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
5371 these nodes even if INTERNALS is not set.
5372
5373 Wed Jan 12 09:39:22 2000 Nick Burrett <nick.burrett@btinternet.com>
5374
5375 * gcse.c (delete_null_pointer_checks_1): Cope when
5376 get_condition cannot determine the condition.
5377
5378 2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com>
5379
5380 * toplev.h (set_message_length): Declare.
5381
5382 * diagnostic.c (obstack_chunk_alloc): Define macro.
5383 (obstack_chunk_free): Likewise.
5384 (struct output_buffer): New data structure.
5385 (vmessage): Remove.
5386 (output_maximum_width): New variable.
5387 (doing_line_wrapping, set_message_length, init_output_buffer,
5388 get_output_prefix, output_space_left, emit_output_prefix,
5389 output_newline, output_append, output_puts, dump_output,
5390 vbuild_message_string, build_message_string, build_location_prefix,
5391 voutput_notice, output_printf, line_wrapper_printf,
5392 vline_wrapper_message_with_location): New functions. Implement
5393 automatic line wrapping.
5394 (v_message_with_decl): Make it handle automatic line wrapping.
5395 (v_error_with_file_and_line): Likewise.
5396 (v_warning_with_file_and_line): Likewise.
5397 (announce_function): Likewise.
5398 (default_print_error_function): Likewise.
5399
5400 2000-01-11 16:24 -0800 Zack Weinberg <zack@wolery.cumb.org>
5401
5402 * cpplib.h (struct cpp_options): Change lang_asm to char.
5403 Add lang_fortran.
5404 * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
5405 done in cpp_handle_option now.
5406 (initialize_builtins): Take out special case code used only by
5407 __STDC_VERSION__.
5408 (cpp_handle_option): Turn off trigraphs and trigraph warnings
5409 if -traditional. Recognize -lang-fortran and set
5410 lang_fortran, also turn off cplusplus_comments.
5411 (print_help): Document -lang-fortran.
5412 * cpplib.c (handle_directive): Ignore `# 123 "file"' if
5413 lang_asm. Ignore all directives other than `# 123 "file"' if
5414 CPP_PREPROCESSED.
5415 (cpp_get_token): If -traditional, don't recognize directives
5416 unless the # is in column 1.
5417 (parse_string): If lang_fortran or lang_asm, silently
5418 terminate strings ('' or "") at end of line.
5419 Remove unnecessary braces.
5420
5421 2000-01-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
5422 Richard Henderson <rth@cygnus.com>
5423
5424 * resource.c (mark_referenced_resources): Mark a set strict_low_part
5425 as used.
5426 * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
5427 strict_low_part when possible.
5428
5429 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5430
5431 * alias.c: PROTO -> PARAMS.
5432 * basic-block.h: Likewise.
5433 * bitmap.c: Likewise.
5434 * bitmap.h: Likewise.
5435 * builtins.c: Likewise.
5436 * c-aux-info.c: Likewise.
5437 * caller-save.c: Likewise.
5438 * calls.c: Likewise.
5439
5440 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5441
5442 * Makefile.in (toplev.o): Depend on regs.h.
5443
5444 * output.h (tdesc_section): Prototype.
5445
5446 * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
5447
5448 * sdbout.c: Include "tm_p.h".
5449
5450 * toplev.c: Include "regs.h".
5451
5452 Tue Jan 11 11:37:58 2000 Mike Stump <mrs@wrs.com>
5453
5454 * unroll.c (unroll_loop): Add EH support.
5455
5456 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5457
5458 * pa-protos.h: New file.
5459
5460 * pa.c: Include recog.h and tm_p.h.
5461 (compute_zdepwi_operands, compute_movstrsi_length,
5462 remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
5463 find_addr_reg, import_milli): Add static prototypes.
5464 (pa_cpu_string, pa_arch_string): Constify a char*.
5465 (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
5466 (read_only_operand): Add argument `mode'.
5467 (singlemove_string, output_move_double, output_fp_move_double,
5468 output_block_move, output_and, output_ior, output_ascii,
5469 remove_useless_addtr_insns, milli_names, output_mul_insn,
5470 output_div_insn, output_mod_insn, output_arg_descriptor,
5471 output_cbranch, output_bb, output_bvb, output_dbra, ,
5472 output_millicode_call, output_call, hppa_encode_label,
5473 output_parallel_movb, output_parallel_addb): Constify a char*.
5474 (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
5475 (output_parallel_addb): Remove extra arg to `constrain_operands'
5476
5477 * pa.h: Move all prototypes to pa-protos.h.
5478 (pa_cpu_string, pa_arch_string): Constify a char*.
5479 (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
5480
5481 * pa.md: Call `function_label_operand' with mode argument.
5482 Likewise for `read_only_operand'.
5483 Fix nesting of parens in call to `symbolic_operand'.
5484
5485 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5486
5487 * i860-protos.h: New file.
5488
5489 * i860.c: Include tm_p.h. Add static prototypes. Fix compile
5490 time warnings.
5491
5492 * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings.
5493
5494 * i860.md: Likewise.
5495
5496 Tue Jan 11 18:59:35 MET 2000 Jan Hubicka <jh@suse.cz>
5497
5498 * i386.md (movstrsi expander): Rewrite.
5499 (movstrsi_1 insn): Deleted.
5500 (strmovhi, strmovqi expander): New expanders.
5501 (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
5502 * i386.c (x86_single_stringop): New global variable.
5503 * i386.h (x86_single_stringop): Declare.
5504 (TARGET_SINGLE_STRINGOP): New macro.
5505
5506 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
5507
5508 * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
5509 integer vararg POSTINCREMENT before the destination of the jump
5510 for the hard fp case.
5511 (function_arg_pass_by_reference): Pass a copy of CUM to
5512 FUNCTION_ARG.
5513
5514 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
5515 for CONSTANT_ADDRESS_P above while loop for subreg.
5516
5517 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
5518
5519 * flow.c (propagate_block): When a prologue/epilogue insn
5520 is marked dead, unconditionally clear libcall_is_dead and
5521 insn_is_dead, and only dump rtl if warnings aren't being
5522 suppressed.
5523
5524 Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz>
5525
5526 * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
5527 * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
5528 (FIXED_REGISTERS): Set dirflag as fixed.
5529 (CALL_USED_REGISTERS): Set dirflag as used.
5530 (REG_ALLOC_ORDER): Set dirflag as last one.
5531 (DIRFLAG_REG): New macro.
5532 (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
5533 (HI_REGISTER_NAMES): Add dirflag.
5534 (DEBUF_PRINT_REG): Handle dirflag.
5535 * i386.md (type attribute): New cld and str types.
5536 (length_opcode attribute): Set cld and str to 1.
5537 (memory attribute): Set str to unknown - it is not clear from the
5538 patterns.
5539 (pent_np function unit): Prefixed string operations takes 12 cycles
5540 minimally; cld takes 2 cycles.
5541 (ppro_uops attribute): Str is "many" and cld is "few".
5542 (ppro_p0 unit): Handle cld here.
5543 (k6_alux unit): Handle cld and str types.
5544 (k6_load unit): It is ocupied by str opcodes.
5545 (k6_store unit): It is ocupied by str opcodes.
5546 (athlon_decode): Str is vector decoded.
5547 (athlon_ieu): Handle str and cld.
5548 (cld pattern): New.
5549 (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
5550 (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
5551 cmpstrsi_nz_1 insn): Do not output cld instruction
5552
5553 Tue Jan 11 06:14:39 2000 David Starner <dstarner98@aasaa.ofe.org>
5554
5555 * gcc.texi (G++ and GCC): Add Java and Chill.
5556 (Bug Critera): Don't list languages.
5557
5558 * gcc.texi (Incompatibilities): No longer claim most C compilers
5559 are K&R.
5560
5561 * gcc.texi (G++ and GCC): Update other front-ends list.
5562
5563 Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com)
5564
5565 * i386.c (ix86_expand_setcc): Fix typo.
5566 (ix86_expand_movcc): Similarly.
5567
5568 * Band-aid until haifa's bitset implementation is nuked.
5569 * haifa-sched.c (extract_bitlst): New parameter for size of the
5570 bitset in bits. All callers changed. Avoid looking at undefined
5571 bits in the bitset.
5572 (edgeset_bitsize): New variable.
5573 (schedule_region): Initialize edgeset_bitsize.
5574
5575 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5576
5577 * Makefile.in (optabs.o): Depend on real.h
5578 (resource.o): Depend on insn-attr.h
5579
5580 * builtins.c (result_vector): Wrap prototype in macro conditions
5581 governing definition and use.
5582
5583 * c-common.c: Include tm_p.h.
5584
5585 * c-lex.c: Likewise.
5586
5587 * elfos.h: Constify a char*.
5588
5589 * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
5590 (get_attr_length, shorten_branches, profile_after_prologue): Mark
5591 parameter with ATTRIBUTE_UNUSED.
5592
5593 * fold-const.c (exact_real_inverse): Wrap variable `i' in
5594 CHECK_FLOAT_VALUE.
5595
5596 * haifa-sched.c (schedule_insns): Mark parameter with
5597 ATTRIBUTE_UNUSED.
5598
5599 * optabs.c: Include real.h.
5600
5601 * real.h (ereal_atof): Add prototype arguments.
5602
5603 * resource.c: Include insn-attr.h.
5604
5605 * sdbout.c (sdbout_queue_anonymous_type,
5606 sdbout_dequeue_anonymous_types): Wrap in macro
5607 SDB_ALLOW_FORWARD_REFERENCES.
5608 (sdbout_init, sdbout_start_new_source_file): Mark parameter with
5609 ATTRIBUTE_UNUSED.
5610
5611 * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
5612
5613 * stupid.c: Include tm_p.h.
5614
5615 * tree.c (real_value_from_int_cst): Mark parameter with
5616 ATTRIBUTE_UNUSED.
5617
5618 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5619
5620 * i960-protos.h: New file.
5621
5622 * i960.c: Include tm_p.h. Add static prototypes. Fix compile
5623 time warnings.
5624
5625 * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings.
5626
5627 2000-01-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
5628
5629 * combine.c (expand_field_assignment): Do not discard SUBREGs
5630 while computing nonzero_bits.
5631
5632 2000-01-09 Nick Clifton <nickc@cygnus.com>
5633
5634 * config/arm/arm.c: Fix compile time warnings about signed vs
5635 unsigned constants.
5636 * config/arm/arm.h: Fix compile time warnings about signed vs
5637 unsigned constants.
5638
5639 2000-01-09 Philip Blundell <philb@gnu.org>
5640
5641 * config/arm/arm.c (output_return_instruction): Use `ldr' rather
5642 than `ldm' with only one register.
5643 * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
5644 only one register.
5645
5646 * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
5647 clobbered.
5648
5649 Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson <hp@axis.com>
5650
5651 * config/ns32k/ns32k.md (load or push effective address): Operand 1
5652 must have SImode.
5653
5654 2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5655
5656 * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
5657 assignment used as truth value.
5658
5659 * function.c (assign_temp): Mark parameter `dont_promote' with
5660 ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro
5661 PROMOTE_FOR_CALL_ONLY.
5662
5663 * genrecog.c (write_subroutine): Mark variable `operands' with
5664 ATTRIBUTE_UNUSED.
5665
5666 * optabs.c (prepare_cmp_insn): Mark parameter `align' with
5667 ATTRIBUTE_UNUSED.
5668
5669 * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
5670 (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
5671
5672 * toplev.c (note_deferral_of_defined_inline_function): Likewise
5673 for `decl'.
5674
5675 2000-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5676
5677 * config/c4x.h: Tidy up comments.
5678 * config/c4x.c: Likewise.
5679
5680 Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com)
5681
5682 * fold-const.c (lshift_double, rshift_double): Handle
5683 shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
5684
5685 2000-01-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
5686
5687 * toplev.c (rest_of_compilation): Initialize cse_not_expected as
5688 in prepare_function_start().
5689
5690 Sat Jan 8 12:12:46 2000 Nick Clifton <nickc@cygnus.com>
5691
5692 * config/v850/v850.c (expand_epilogue): Interrupt functions no
5693 longer allocate extra stack for function calls.
5694
5695 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5696
5697 * config/c4x/c4x.md (*subqf3_set): Fix typo.
5698
5699 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5700
5701 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
5702
5703 2000-01-07 David Edelsohn <edelsohn@gnu.org>
5704
5705 * rs6000.c (processor_target_table): Add power3 as alias for 630.
5706 * aix43.h: Revert Aug 2 change.
5707 (HAS_INIT_SECTION): Define, not visible yet.
5708 (LD_INIT_SWITCH): Define, not visible yet.
5709 * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
5710
5711 * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
5712
5713 * collect2.c (main): Expand ld2 size further.
5714 (export_object_lst): Cast assignment to avoid warning.
5715 (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
5716 (scan_prog_file, COFF): Do not collect initialization or
5717 finalization functions generated for entire shared object if
5718 init/fini support present.
5719
5720 2000-01-07 Nick Clifton <nickc@cygnus.com>
5721
5722 * config/elfos.h: Tidy up formatting of marcos. Make sure
5723 that .section directives are always prefixed by a tab.
5724
5725 * config/svr4.h: Add #include "elfos.h" and remove duplicate
5726 definitions.
5727
5728 2000-01-07 Matt Austern <austern@sgi.com>
5729
5730 * fold-const.c (real_hex_to_f): Remove duplicate declaration of
5731 expon.
5732
5733 Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com)
5734
5735 * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
5736 crtstuff.c.
5737 (crtbegin.o, s-crtS): Likewise.
5738
5739 2000-01-06 Richard Henderson <rth@cygnus.com>
5740
5741 * alpha.md (adddi_2+1): Limit offset such that it will be
5742 loadable with a single ldah+lda pair.
5743 (adddi_2+2): Explicitly fail split if we can't make it work.
5744
5745 2000-01-06 Mumit Khan <khan@xraylith.wisc.edu>
5746
5747 * protoize.c: Conditionally include unistd.h.
5748 (IS_SAME_PATH_CHAR): New macro.
5749 (IS_SAME_PATH): New macro.
5750 (CPLUS_FILE_SUFFIX): New macro.
5751 (cplus_suffix): New static variable.
5752 (is_abspath): New static function.
5753 (in_system_include_dir): Handle DOS style pathnames.
5754 (file_could_be_converted): Likewise.
5755 (file_normally_convertible): Likewise.
5756 (directory_specified_p): Likewise.
5757 (file_excluded_p): Likewise.
5758 (abspath): Likewise.
5759 (shortpath): Likewise.
5760 (referenced_file_is_newer): Likewise.
5761 (save_def_or_dec): Likewise.
5762 (do_processing): Likewise.
5763 (main): Likewise.
5764 (edit_file): Likewise. Use rename instead of link.
5765 (rename_c_file): Likewise. Don't rename syscalls file.
5766 (munge_compile_params): Define null device for DOS based systems.
5767 (process_aux_info_file): Use binary mode if appliable.
5768 (edit_file): Likewise.
5769 * invoke.texi (Running Protoize): Document C++ suffixes used.
5770
5771 * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
5772 IS_DIR_SEPARATOR macros.
5773 * collect2.c: Likewise.
5774 * cppinit.c: Likewise.
5775 * dwarf2out.c: Likewise.
5776 * gcc.c: Likewise.
5777 * gcov.c: Likewise.
5778 * prefix.c: Likewise.
5779 * rtl.c: Likewise.
5780 * toplev.c: Likewise.
5781 * system.h: And move to here.
5782
5783 * prefix.c (update_path): Fix typo in variable name.
5784
5785 2000-01-06 Richard Henderson <rth@cygnus.com>
5786
5787 * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
5788 (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
5789 (count_reg_sets_1, count_reg_references): Likewise.
5790 (flow_loops_level_compute): Start counting actual loop depth at 1.
5791 (flow_loops_find): Likewise.
5792 * local-alloc.c (update_equiv_regs): Likewise.
5793 * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
5794
5795 2000-01-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
5796
5797 * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
5798 FIRST_PSEUDO_REGISTER
5799 * dwarf2out.c: Don't include frame.h
5800 * dwarfout.c: Likewise
5801 * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
5802 frame.h
5803
5804 Thu Jan 6 13:44:59 CET 2000 Jan Hubicka <jh@suse.cz>
5805
5806 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
5807 dead registers.
5808
5809 * i386.c (movsf splitter): Fix typo in my last checkin.
5810
5811 2000-01-05 Nick Clifton <nickc@cygnus.com>
5812
5813 * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
5814 own definition of this macro.
5815 (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
5816 flag_data_sections or UNIQUE_SECTION_P are true.
5817
5818 * tm.texi (UNIQUE_SECTION): Document that it can be called for
5819 unitialised data decls.
5820
5821 * config/i386/winnt.c (i386_pe_unique_section): Cope with
5822 being called for uninitialised data.
5823
5824 * config/i386/interix.c (i386_pe_unique_section): Cope with
5825 being called for uninitialised data.
5826
5827 * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
5828 for uninitialised data.
5829
5830 * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
5831 for uninitialised data.
5832
5833 * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
5834 for uninitialised data.
5835
5836 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
5837 (UNIQUE_SECTION_P): Always generate a unique section if
5838 flag_data_sections is true.
5839 (UNIQUE_SECTION): Also generate unique sections for
5840 uninitialised data.
5841 (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
5842 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
5843 named_section().
5844
5845 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5846
5847 * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
5848 SI, or DI.
5849
5850 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5851
5852 * config/c4x/c4x.md (udivqi3, divqi3): Delete.
5853 (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
5854 (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
5855 (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
5856 (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
5857
5858 * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
5859
5860 2000-01-05 11:25 -0800 Zack Weinberg <zack@rabi.columbia.edu>
5861
5862 * c-decl.c (finish_enum): Simplify code to determine minimum and
5863 maximum values of the enum, and calculate the type. Remove check
5864 for FUNCTION_DECLs in the values list, which cannot happen. Replace
5865 the DECL_INITIAL of each enumeration constant with a copy converted
5866 to the enumeration type. When updating variant types, don't bother
5867 updating the type itself.
5868
5869 * c-typeck.c (build_binary_op): Simplify conditional expressions
5870 when weeding out spurious signed-unsigned warnings. Add new
5871 spurious warning category: if the unsigned quantity is an enum
5872 and its maximum value fits in signed_type(result_type). Update
5873 commentary.
5874 (build_conditional_expr): Warn here if one alternative is signed
5875 and the other is unsigned.
5876
5877 2000-01-05 Nick Clifton <nickc@cygnus.com>
5878
5879 * config/fr30/fr30.h: Remove extraneous comments.
5880
5881 2000-01-05 Bernd Schmidt <bernds@cygnus.co.uk>
5882
5883 * reload1.c (choose_reload_regs): When disabling a reload, also
5884 set reload_spill_index to -1.
5885
5886 2000-01-04 Joel Sherrill (joel@OARcorp.com>
5887
5888 * configure.in (m68*-*-rtemscoff*): New target, formal name for
5889 old m68*-*-rtems*.
5890 (m68*-*-rtemself*): New target.
5891 (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
5892 (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
5893 (sparc*-*-rtemself*): New target.
5894 (sparc*-*-rtems*): Now elf not a.out.
5895 * config/i386/rtems.h: Include config/rtems.h.
5896 * config/i386/rtemself.h: Include config/rtems.h.
5897 * config/i960/rtems.h: Include config/rtems.h.
5898 * config/m68k/rtems.h: Include config/rtems.h.
5899 * config/m68k/rtemself.h: Include config/rtems.h.
5900 * config/mips/rtems64.h: Include config/rtems.h.
5901 * config/pa/rtems.h: Include config/rtems.h.
5902 * config/rs6000/rtems.h: Include config/rtems.h.
5903 * config/sh/rtems.h: Include config/rtems.h.
5904 * config/sh/rtemself.h: Include config/rtems.h.
5905 * config/sparc/rtems.h: Include config/rtems.h.
5906 * config/sparc/rtemself.h: Include config/rtems.h
5907
5908 Tue Jan 4 23:59:26 2000 Denis Chertykov <denisc@overta.ru>
5909
5910 * final.c (shorten_branches): Correctly compute length of
5911 asms without operands.
5912
5913 Tue Jan 4 22:55:41 2000 Steve Chamberlain <sac@pobox.com>
5914
5915 * configure.in: Add pj target.
5916 * configure: Regenerate.
5917 * config/pj: New directory.
5918 * config/pj/lib1funcs.S: New file.
5919 * config/pj/linux.h: New file.
5920 * config/pj/pj.c: New file.
5921 * config/pj/pj.md: New file.
5922 * config/pj/pjl.h: New file.
5923 * config/pj/t-pj: New file.
5924 * config/pj/xm-pj.h: New file
5925
5926 Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com)
5927
5928 * toplev.c (rest_of_compilation): Run shorten-branches before
5929 reg-stack for now.
5930
5931 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5932
5933 * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
5934 macros so that they're consistent with their names.
5935 * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
5936 * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
5937
5938 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5939
5940 * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
5941 modified inadvertently.
5942
5943 2000-01-04 Joel Sherrill <joel@OARcorp.com>
5944
5945 * configure.in (v850*-*-rtems*): New target.
5946 * configure: Regenerate.
5947 * config/v850/rtems.h: New file.
5948
5949 2000-01-04 Mumit Khan <khan@xraylith.wisc.edu>
5950
5951 * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
5952 (__gthread_key_create): Likewise.
5953 (__gthread_key_dtor): Likewise.
5954 (__gthread_once): Fix logic.
5955 (__gthread_key_delete): Cast away constness.
5956
5957 * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
5958 * invoke.texi: Document.
5959 * i386/mingw32.h (CPP_SPEC): Use.
5960 (LIBGCC_SPEC): Likewise.
5961 * i386/crtdll.h (LIBGCC_SPEC): Likewise.
5962
5963 2000-01-04 David Edelsohn <edelsohn@gnu.org>
5964
5965 * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
5966 (HANDLE_PRAGMA_PACK): Undefine.
5967 (SLOW_UNALIGNED_ACCESS): Define.
5968
5969 2000-01-04 David Edelsohn <edelsohn@gnu.org>
5970
5971 * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
5972 to default definition.
5973 (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
5974 (store_fixed_bit_field): Call macro with word_mode and alignment.
5975 (extract_bit_field): Call macro with relevant mode and alignment.
5976 * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
5977 to default definition.
5978 (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
5979 and alignment.
5980 (move_by_pieces_ninsns): Likewise.
5981 (clear_by_pieces): Likewise.
5982 (emit_push_insn): Likewise.
5983 (store_field): Call macro with relevant mode and alignment.
5984 (expand_expr): Likewise.
5985 (expand_expr_unaligned): Likewise.
5986
5987 * rs6000.h (HANDLE_PRAGMA_PACK): Define.
5988 (SLOW_UNALIGNED_ACCESS): Define.
5989 (CASE_VECTOR_MODE): Always use 32-bit offsets.
5990 (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
5991 (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
5992 (toc_section): Likewise and .toc pseudo-op.
5993 (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
5994 64-bit mode.
5995 (TEXT_SECTION_ASM_OP): Likewise.
5996 (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
5997 32-bit offsets.
5998
5999 * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
6000 * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
6001 * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
6002 * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
6003 * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
6004
6005 Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com)
6006
6007 * regclass.c: Revert my Jan 4 change to loop cost computation.
6008
6009 Tue Jan 4 19:22:39 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
6010
6011 * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
6012 compilation.
6013
6014 2000-01-04 Stan Cox <scox@cygnus.com>
6015
6016 * haifa-sched.c (build_control_flow): Change unreachable simple
6017 loop test to check if current block has only one predecessor.
6018 (find_rgns): Initialize degree. Use dest as degree index, not src.
6019
6020 2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6021
6022 * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
6023
6024 * calls.c (expand_call): Likewise for
6025 `old_stack_arg_under_construction'.
6026
6027 * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
6028
6029 * function.c (pad_to_arg_alignment): Likewise for `save_var' and
6030 `save_constant'.
6031
6032 * gcc.c (execute): Likewise for `ut' and `st'.
6033
6034 * genattrtab.c (attr_rtx): Likewise for `rt_val'.
6035
6036 * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
6037
6038 * jump.c (jump_optimize_1): Likewise for `temp2'.
6039
6040 * local-alloc.c (block_alloc): Likewise for `r1'.
6041
6042 * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
6043
6044 * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
6045 (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
6046
6047 * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
6048 and `set2'.
6049
6050 * reload.c (find_reloads): Likewise for `goal_alternative_number'
6051 and `goal_earlyclobber'.
6052
6053 * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
6054
6055 * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
6056
6057 * stupid.c (stupid_life_analysis): Likewise for `chain'.
6058
6059 * unroll.c (copy_loop_body): Likewise for `copy'.
6060
6061 * varasm.c (output_constructor): Likewise for `byte'.
6062
6063 Tue Jan 4 15:34:34 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
6064
6065 * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
6066 all FP constants for constant->reg moves.
6067 (ix86_split_to_parts): Try to convert memory address into immediate
6068 when available in the constant pool.
6069 * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
6070 moves.
6071 (LEGITIMATE_CONSTANT_P): Return 1.
6072 * i386.md (pushsf): New splitter to convert constant pool memory
6073 reference to immediate.
6074 (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
6075 reload.
6076
6077 2000-01-04 Bernd Schmidt <bernds@cygnus.co.uk>
6078
6079 * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
6080 (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
6081 ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
6082 (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
6083 rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
6084
6085 2000-01-04 Martin von Löwis <loewis@informatik.hu-berlin.de>
6086
6087 * ginclude/stdbool.h: Support compilation as C++.
6088
6089 Tue Jan 4 01:35:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
6090
6091 * fold-const.c (make_range): Don't try to reverse an unbounded range.
6092
6093 Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com)
6094
6095 * regclass.c (regclass): Properly compute loop_cost. Adjust
6096 comments.
6097
6098 * regclass.c: Fix minor whitespace problems.
6099
6100 2000-01-03 Anthony Green <green@cygnus.com>
6101
6102 * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
6103 Restore the pic register if required.
6104
6105 2000-01-03 Ulrich Drepper <drepper@cygnus.com>
6106
6107 * c-common.c (format_char_info): Update comment.
6108 (check_format_info): Recognize 'z' modifier in the same way 'Z'
6109 was recognized. Emit warning for formats new in ISO C99 only
6110 if flag_isoc9x is not set.
6111
6112 Mon Jan 3 12:59:54 2000 Mark P. Mitchell <mark@codesourcery.com>
6113
6114 * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
6115
6116 Mon Jan 3 15:33:37 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
6117
6118 * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
6119 SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
6120 (make_compound_operation): Choose cheaper alternative between
6121 ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
6122
6123 * regclass.c (op_costs): Remove global variable.
6124 (record_reg_classes): New parameter "op_costs" and "reg_pref".
6125 (record_operand_costs): Break out from ...
6126 (scan_one_insn): ... here.
6127 (dump_regclass): Make dumps nicer.
6128 (regclass): Dump preferrences choosed and changes done during passes.
6129
6130 2000-01-03 Jakub Jelinek <jakub@redhat.com>
6131
6132 * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
6133
6134 2000-01-03 Jakub Jelinek <jakub@redhat.com>
6135
6136 * config/sparc/sparc.c (gen_df_reg): New function.
6137 * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
6138 * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
6139 movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
6140 movtf_cc_reg_sp64+1): Use it.
6141
6142 2000-01-02 Mark Mitchell <mark@codesourcery.com>
6143
6144 * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
6145 copied LABEL_DECLs.
6146
6147 Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
6148
6149 * config/i386/i386.c (ix86_expand_unary_operator): Function
6150 definition made void.
6151 (ix86_expand_binary_operator): Update outdated preceding comment.
6152 * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
6153 prototype.
6154
6155 * config/i386/i386.c (override_options): Fix option-name typo.
6156
6157 2000-01-02 Mark Mitchell <mark@codesourcery.com>
6158
6159 * system.h (CEIL): Define.
6160 * builtins.c (CEIL): Remove.
6161 * expmed.c (CEIL): Likewise.
6162 * expr.c (CEIL): Likewise.
6163 * stor-layout.c (CEIL): Likewise.
6164
6165 2000-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6166
6167 * expr.c (store_constructor_field): Fix typo introduced with last
6168 gcc2 merge.
6169
6170 2000-01-01 Mark Mitchell <mark@codesourcery.com>
6171
6172 * tree.h (BINFO_N_BASETYPES): New macro.
6173
6174 2000-01-01 Bernd Schmidt <bernds@cygnus.co.uk>
6175
6176 * expmed.c (emit_store_flag): Prevent losing a pending stack
6177 adjust the same way we prevent losing queued increments.
6178
6179 Fri Dec 31 19:10:31 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6180
6181 * function.c (update_temp_slot_address): Handle case where sum of
6182 temporary address plus offset in register is a valid address.
6183
6184 1999-12-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6185
6186 * genrecog.c (change_state) Corrected typo.
6187
6188 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6189
6190 * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
6191 getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
6192 strerror, getrlimit, setrlimit, abort): Add prototype arguments.
6193
6194 1999-12-30 Bernd Schmidt <bernds@cygnus.co.uk>
6195
6196 * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
6197 case, expand GT comparisons correctly. Fix a comment before this
6198 part of the code.
6199
6200 1999-12-30 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
6201
6202 * dwarfout.c: Include "frame.h"
6203 * dwarf2out.c: Likewise.
6204 * Makefile.in (dwarfout.o): Depend on frame.h
6205 (dwarf2out.o): Likewise.
6206
6207 1999-12-29 "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
6208
6209 Restore i386 binary compatibility in Dwarf EH info.
6210 * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
6211 value of FIRST_PSEUDO_REGISTER.
6212 * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
6213 (struct frame_state): Use DWARF_FRAME_REGISTERS.
6214 * dwarfout.c (output_reg_number): Ditto.
6215 * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
6216 (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
6217
6218 1999-12-29 Bruce Korb <autogen@linuxbox.com>
6219
6220 * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
6221 * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
6222 (<hack>_RE_CT): not needed
6223 * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
6224 rewritten to scan the file text once only
6225 "template<..." test added
6226 * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
6227 (is_cxx_header): declaration added
6228 * fixinc/fixtests.c(is_cxx_header): removed
6229 (apply_fix_p_t): removed
6230 (double_slash_test): is_cxx_header is only called once now
6231 * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
6232 * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
6233 within the templates.
6234 The borken spelling of "broken" was fixed.
6235 * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
6236 The default level depends on FIXINC_DEBUG.
6237
6238 1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6239
6240 * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
6241 Otherwise provide a declaration for atexit.
6242 (init_dummy): Make sure dummy call to atexit is nevertheless
6243 called with correct number of args.
6244
6245 * frame.c: Update comments referring to other files.
6246
6247 * libgcc2.c: Likewise.
6248
6249 1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6250
6251 * cse.c (free_element, get_element): Remove unused prototypes.
6252
6253 * fold-const.c (extract_muldiv): Initialize variables `op0' and
6254 `op1'.
6255
6256 * jump.c (invert_exp): Add explicit braces to avoid ambiguous
6257 `else' clauses.
6258
6259 Wed Dec 29 12:44:54 1999 Donald Lindsay <dlindsay@cygnus.com>
6260
6261 * configure.in,configure: case arm for mn10200-*-* now sets
6262 float_format=i32 so that float.h will correctly claim "double"
6263 to be 32 bits. Ran autoconf to generate configure from .in file.
6264
6265 Wed Dec 29 10:53:21 1999 Jeffrey A Law (law@cygnus.com)
6266
6267 * pa.md (conditional zero): If op1 is a register, force it into
6268 the same register as op0.
6269
6270 1999-12-28 Mark Mitchell <mark@codesourcery.com>
6271
6272 * tree.h (BINFO_BASETYPES): Improve documentation.
6273
6274 1999-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6275
6276 * configure.in (--enable-checking): Use a more portable `for'
6277 loop syntax.
6278
6279 1999-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6280
6281 * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
6282 arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
6283
6284 * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
6285 Delete files.
6286
6287 * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
6288 Delete descriptions.
6289
6290 * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
6291 m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
6292 m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
6293 pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
6294 xm-svr4.h: Remove all instances of sys_siglist handling.
6295
6296 1999-12-27 Jakub Jelinek <jakub@redhat.com>
6297
6298 * config/sparc/sparc.md (cmp_zero_qi,
6299 cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
6300 cmp_zero_extendqidi2_andcc_set): New patterns.
6301
6302 1999-12-28 Manfred Hollstein <mhollstein@cygnus.com>
6303
6304 * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
6305 (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
6306 (fpgnulib.c, xfgnulib.c): Add rules.
6307 * m68k/t-mot3300-gas: Likewise.
6308
6309 1999-12-27 Ian Lance Taylor <ian@zembu.com>
6310
6311 * configure.in: Avoid [[ by using test and changequote. Add
6312 changequote required by 1999-12-14 change.
6313 * configure: Rebuild.
6314
6315 1999-12-27 Clinton Popetz <cpopetz@cygnus.com>
6316
6317 * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
6318
6319 1999-12-27 Christophe Jaillet <jaillet.christophe@caramail.com>
6320
6321 * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
6322 * flow.c (find_use_as_address): Likewise.
6323 * function.c (fixup_var_refs_1): Likewise.
6324 (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
6325 * jump.c (invert_exp, redirect_exp): Likewise.
6326 * loop.c (replace_call_address): Likewise.
6327 (count_nonfixed_reads): Likewise.
6328 * rtlanal.c (modified_between_p): Likewise.
6329 (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
6330 (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
6331 * unroll.c (remap_split_bivs): Likewise.
6332
6333 1999-12-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6334
6335 * diagnostic.c (v_message_with_decl): Use .* format specifier
6336 instead of building the format specifier width manually.
6337
6338 * system.h (strsignal): Don't check HAVE_STRSIGNAL when
6339 determining whether to provide a prototype. Remove the
6340 sys_siglist clause in the conditional.
6341
6342 1999-12-23 Martin v. Löwis <loewis@informatik.hu-berlin.de>
6343
6344 * fold-const.c (operand_equal_p): Use memcmp to compare string
6345 constants.
6346 Suggested by D. J. Bernstein
6347
6348 1999-12-17 Jakub Jelinek <jakub@redhat.com>
6349
6350 * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
6351 UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
6352 compiling libgcc2.
6353 * config/mips/mips.h (TARGET_64BIT): Likewise.
6354 * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
6355 * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
6356 of {SI,DI}type and DIunion. Define these types to QI/HI modes on
6357 dsps. Give routines proper names if SI/DI modes are not used.
6358 * longlong.h: Use DWunion instead of DIunion.
6359
6360 1999-12-26 Zack Weinberg <zack@wolery.cumb.org>
6361
6362 * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
6363 GC_CHECKING, GC_ALWAYS_COLLECT.
6364 * configure.in: Allow --enable-checking with an argument
6365 listing check modes to enable.
6366 * config.in, configure: Rebuilt.
6367 * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
6368 GGC_ALWAYS_VERIFY for ggc-simple.c) only if
6369 ENABLE_GC_CHECKING. Define GGC_ALWAYS_COLLECT only if
6370 ENABLE_GC_ALWAYS_COLLECT.
6371 * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
6372 throughout.
6373 * tree.h, tree.c: Change ENABLE_CHECKING to
6374 ENABLE_TREE_CHECKING throughout.
6375
6376 Sun Dec 26 07:48:20 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6377
6378 * fold-const.c (fold_truthop): Properly check for FP RHS.
6379
6380 1999-12-24 Mark Mitchell <mark@codesourcery.com>
6381
6382 * toplev.h (note_deferall_of_defined_inline_function): Declare.
6383 * toplev.c (note_deferral_of_defined_inline_function): New
6384 function, split out from ...
6385 (rest_of_compilation): ... here. Use it.
6386
6387 Fri Dec 24 12:34:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6388
6389 * expr.c (store_constructor): Don't call clear_storage if size is
6390 variable.
6391
6392 1999-12-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6393
6394 * Makefile.in (toplev.o): Depend on loop.h.
6395
6396 * dwarfout.c: Include tm_p.h.
6397
6398 * emit-rtl.c (restore_emit_status): Mark parameter with
6399 ATTRIBUTE_UNUSED.
6400
6401 * final.c (final_scan_insn): Likewise.
6402
6403 * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
6404 flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
6405 flow_depth_first_order_compute, flow_loop_pre_header_find,
6406 flow_loop_tree_node_add, flow_loops_tree_build,
6407 flow_loop_level_compute, flow_loops_level_compute,
6408 flow_loop_outside_edge_p): Add prototypes.
6409 (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
6410
6411 * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
6412 Mark with ATTRIBUTE_NORETURN.
6413
6414 * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
6415
6416 * local-alloc.c (no_conflict_p): Likewise.
6417
6418 * loop.c (insert_bct): Hide definitions of variables with hidden
6419 usage.
6420 (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
6421
6422 * regclass.c (memory_move_secondary_cost): Mark variable `mem'
6423 with ATTRIBUTE_UNUSED.
6424 (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
6425 (reg_scan): Likewise.
6426
6427 * reload.c (find_reloads): Remove unused variables `changed'.
6428
6429 * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
6430 away const-ness.
6431 (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
6432 Remove unused variable `insn'.
6433
6434 * toplev.c: Include loop.h.
6435 (report_file_and_line): Remove unnecessary prototype.
6436
6437 * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
6438
6439 * unroll.c (biv_total_increment): Likewise.
6440
6441 Thu Dec 23 23:15:22 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6442
6443 * reload1.c (emit_input_reload_insns): Restore old behaviour
6444 wrt. 'special' reloads.
6445
6446 1999-12-23 Zack Weinberg <zack@wolery.cumb.org>
6447
6448 * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
6449 hash.h. (cse.c): Don't depend on hashtab.h.
6450
6451 * cse.c: Don't include hashtab.h.
6452 (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
6453 of dead functions.
6454 * ggc-simple.c: Don't include hash.h.
6455
6456 1999-12-22 Jason Merrill <jason@casey.cygnus.com>
6457
6458 * dwarf2out.c (add_abstract_origin_attribute): Call
6459 gen_abstract_function on our function context.
6460
6461 Thu Dec 23 03:57:10 1999 Hans-Peter Nilsson <hp@bitrange.com>
6462
6463 * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
6464
6465 1999-12-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6466
6467 * config/c4x/c4x.c (c4x_address_cost): Add statement to default
6468 case in switch.
6469
6470 1999-12-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6471
6472 * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
6473 constraints to "a!r".
6474
6475 1999-12-21 Mark Mitchell <mark@codesourcery.com>
6476
6477 * Makefile.in (calls.o): Depend on function.h.
6478 (alias.o): Likewise.
6479
6480 1999-12-21 Bernd Schmidt <bernds@cygnus.co.uk>
6481
6482 * reload1.c (emit_reload_insns): Break out code and variables into...
6483 (input_reload_insns, other_input_address_reload_insns,
6484 other_input_reload_insns, input_address_reload_insns,
6485 inpaddr_address_reload_insns, output_reload_insns,
6486 output_address_reload_insns, outaddr_address_reload_insns,
6487 operand_reload_insns, other_operand_reload_insns,
6488 other_output_reload_insns): ... new static variables, and...
6489 (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
6490 do_output_reload): ... new functions.
6491
6492 Tue Dec 21 07:06:36 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6493
6494 * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
6495
6496 1999-12-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6497
6498 * md.texi: Add c4x constraints documentation.
6499
6500 1999-12-21 Martin v. Löwis <loewis@informatik.hu-berlin.de>
6501
6502 * config/i386/dgux.c (struct option): Rename to
6503 lang_independent_option.
6504 (struct m_options): Add description field.
6505 (output_options): Rename option type, add sep declaration, output
6506 ix86_cpu_string and ix86_arch_string only if set.
6507 (output_file_start): Rename option type.
6508
6509 Mon Dec 20 23:15:36 1999 Mike Stump <mrs@wrs.com>
6510
6511 * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
6512 stmp-int-hdrs.
6513 (libgcc2.a): Similarly.
6514
6515 Mon Dec 20 23:06:47 1999 David Edelsohn <edelsohn@gnu.org>
6516
6517 * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
6518 with W_TYPE_SIZE == 32. Do not fall through to POWER architecture
6519 for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
6520
6521 Mon Dec 20 23:02:03 1999 Jeffrey A Law (law@cygnus.com)
6522
6523 * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
6524 Remove redundant initialization of "frexpon" and "expon".
6525
6526 Mon Dec 20 15:00:04 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6527
6528 * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
6529
6530 * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
6531 (store_constructor_field, expand_expr): Pass new arg.
6532
6533 1999-12-20 Mark Mitchell <mark@codesourcery.com>
6534
6535 * Makefile.in (explow.o): Depend on function.h.
6536
6537 * stor-layout.c (set_sizetype): Fix typo.
6538
6539 1999-12-20 Bernd Schmidt <bernds@cygnus.co.uk>
6540
6541 * function.c (cfun): Renamed from current_function. All users
6542 changed.
6543 * function.h (cfun): Rename declaration as well.
6544
6545 * reload.h (struct insn_chain): Change live_throughout and dead_or_set
6546 to be of type regset_head, not regset. All users changed by adding
6547 address operator.
6548 * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
6549
6550 1999-12-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6551
6552 * config/c4x/rtems.h: New file.
6553
6554 1999-12-19 Bernd Schmidt <bernds@cygnus.co.uk>
6555
6556 * reload1.c (spill_failure): Take class of failed reload as argument
6557 and print it. Caller changed.
6558
6559 Sun Dec 19 07:50:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6560
6561 * rs6000.h (SUBTARGET_DEFAULT): New macro.
6562 (TARGET_SWITCHES): Allow subtargets to default switches.
6563 * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
6564
6565 1999-12-18 Mark Mitchell <mark@codesourcery.com>
6566
6567 * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
6568 in a main program.
6569
6570 Sat Dec 18 20:42:43 1999 Richard Henderson <rth@cygnus.com>
6571
6572 * cccp.c (main): Define __STDC_VERSION__ as necessary.
6573 * cppinit.c (cpp_handle_option): Likewise.
6574
6575 * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
6576 determine when to define.
6577
6578 Sat Dec 18 20:34:00 1999 Richard Henderson <rth@cygnus.com>
6579
6580 * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
6581 cmove with mismatched test and data modes.
6582
6583 Sat Dec 18 20:30:15 1999 Richard Henderson <rth@cygnus.com>
6584
6585 * c-typeck.c (c_expand_start_case): Don't warn for long switch
6586 in system headers.
6587
6588 Sat Dec 18 16:28:43 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6589
6590 * alias.c: Minor reformatting.
6591 * flow.c: Likewise.
6592 * regs.h: Likewise.
6593 * stor-layout.c: Likewise.
6594 * fold-const.c: Likewise.
6595 (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
6596 (struct cb_args, const_binop_1, const_binop): Pass type of arg,
6597 not arg itself.
6598 (size_int_wide): Cache nodes even if garbage collecting.
6599 (twoval_comparison_p): Reenable SAVE_EXPR case if operand
6600 of SAVE_EXPR has no side effects.
6601 * cse.c: Move a comment.
6602 * tree.c: Minor reformatting.
6603 (int_size_in_bytes): Return -1 if constant overflows.
6604
6605 Sat Dec 18 18:30:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6606
6607 * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
6608
6609 1999-12-18 10:42 -0800 Zack Weinberg <zack@wolery.cumb.org>
6610
6611 * objc/objc-parse.c: Regenerate. This file must be rebuilt
6612 after any change to c-parse.in, even if objc-parse.y didn't
6613 change. Oops.
6614
6615 1999-12-18 David S. Miller <davem@redhat.com>
6616
6617 * toplev.c (rest_of_compilation): Restore BLOCK tree
6618 reconstruction and branch shortening changes lost in
6619 December 18th change.
6620
6621 Sat Dec 18 05:29:29 1999 Scott Bambrough <scottb@netwinder.org>
6622
6623 * config/arm/linux-elf.h: Change all instances of
6624 ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
6625 * config/arm/uclinux-elf.h: Likewise.
6626
6627 1999-12-18 Gabriel Dos Reis <gdr@codesourcery.com>
6628
6629 * toplev.c (notice, vmessage, v_message_with_file_and_line,
6630 v_message_with_decl, file_and_line_for_asm,
6631 v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
6632 verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
6633 v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
6634 v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
6635 pfatal_with_name, fatal_io_error, need_error_newline,
6636 last_error_function, last_error_tick, announce_function,
6637 default_print_error_function, print_error_function,
6638 report_error_function, fnotice, error_with_file_and_line,
6639 error_with_decl, error_for_asm, error, set_fatal_function, fatal,
6640 _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
6641 warning_with_decl, warning_for_asm, warning, pedwarn,
6642 pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
6643 diagnostic.c
6644 (compile_file): Use fnotice instead of notice. Adjust call.
6645
6646 * diagnostic.c: New file.
6647
6648 * Makefile.in (OBJS): Include diagnostic.o
6649 (diagnostic.o): Define dependence.
6650
6651 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6652
6653 * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
6654 Tweak formatting.
6655
6656 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6657
6658 * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
6659
6660 1999-12-17 13:21 -0800 Zack Weinberg <zack@rabi.columbia.edu>
6661
6662 * fixtests.c (is_cxx_header): New fn, split out of
6663 double_slash_test.
6664 (else_endif_label): Allow "#endif // comment" in C++ headers,
6665 as determined by is_cxx_header.
6666 * fixfixes.c (else_endif_label_fix): Update comment.
6667 * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
6668 a tty.
6669 * genfixes: Correct double thinko in commandline parsing.
6670 * hackshell.tpl: Generate correct sh syntax for bypass
6671 entries.
6672
6673 * inclhack.def (all): Whenever an inserted preprocessor
6674 conditional is split over multiple lines, use double
6675 backslashes in this file so the fixed header will be readable.
6676
6677 (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
6678 and add bypass entry for correct version of this header.
6679 (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
6680 (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
6681
6682 (hpux8_bogus_inlines): New fix, split from...
6683 (ultrix_atof_param) ... here.
6684 (math_expression): Add bypass entry keyed to glibc comment
6685 indicating the problem has been dealt with; disable
6686 unnecessary sed operations; update commentary.
6687 (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
6688 add select and bypass entries, simplify shell operation.
6689 (math_huge_val_ifndef): Split from math_gcc_ifndefs.
6690
6691 (ip_missing_semi, rs6000_param, tinfo_cplusplus,
6692 ultrix_atof_param): Add select entry.
6693 (stdio_va_list, sunos_mather_decl): Add bypass entry.
6694 (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
6695 comments with the fixes they describe.
6696
6697 * c-parse.in (string action): Do not warn about ANSI string
6698 concatenation in system headers. Affects C parser only.
6699 * c-parse.y, c-parse.c, c-parse.h: Rebuild.
6700
6701 1999-12-16 Jakub Jelinek <jakub@redhat.com>
6702
6703 * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
6704 compiling libgcc2 the macro depends always on arch cpp defines.
6705
6706 Fri Dec 17 10:34:16 1999 Richard Earnshaw <rearnsha@arm.com>
6707
6708 * loop.c (insert_loop_mem): Don't record MEMs from inside
6709 EXPR_LISTs.
6710
6711 Fri Dec 17 12:08:11 MET 1999 Jan Hubicka <hubicka@freesoftr.cz>
6712
6713 * regclass.c (regclass): Do not use flowgraph when not optimizing.
6714
6715 * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
6716 notes too, create one when replacement failed, attempt to simplify
6717 resulting notes.
6718 (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
6719 or REG_EQUIV notes.
6720
6721 1999-12-16 Mark Mitchell <mark@codesourcery.com>
6722
6723 * crtstuff.c (__dso_handle): Declare.
6724 (__cxa_finalize): Likewise.
6725 (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
6726 non-NULL.
6727
6728 * invoke.texi: Document -fuse-cxa-atexit.
6729
6730 * tree.h (ptr_type_node): Document.
6731 (const_ptr_type_node): Likewise.
6732
6733 Fri Dec 17 01:32:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6734
6735 * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
6736 (optimize_reg_copy_2): Likewise.
6737 (optimize_reg_copy_3): Likewise.
6738 (fixup_match_2): Likewise.
6739 (regmove_optimize): Likewise.
6740 (fixup_match_1): Liekwise.
6741
6742 * i386.md (HI to SImode promoting splitters): Rewrite.
6743 (pushsf mem peep2): New.
6744 (testhi to andhi peep2): Remove.
6745 * i386.h (x86_promote_QImode): New.
6746 (TARGET_PROMOTE_QImode): New.
6747 (PREDICATE_CODES): Add promotable_binary_operator.
6748 * i386.c (x86_promote_QImode0: New.
6749 (promotable_binary_operator): New.
6750 * i386-protos.h (promotable_binary_operator): New.
6751
6752 * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
6753 condition.
6754 (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
6755
6756 1999-12-16 Mark Mitchell <mark@codesourcery.com>
6757
6758 * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
6759 * function.c (insert_block_after_note): Remove.
6760 (retrofit_block): Likewise.
6761 (identify_blocks): Fix indentation.
6762 (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
6763 NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
6764 * function.h (insert_block_after_note): Remove prototype.
6765 (retrofit_block): Likewise.
6766 * integrate.c (expand_inline_function): Don't call
6767 find_loop_tree_blocks. Use expand_start_bindings_and_block, not
6768 just expand_start_bindings. Use the block_map to remap old
6769 NOTE_BLOCKs to new ones.
6770 (integrate_decl_tree): Keep track of remapped blocks.
6771 * integrate.h (struct inline_remap): Add block_map.
6772 * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set
6773 NOTE_BLOCK on the notes.
6774 (expand_start_bindings): Rename to ...
6775 (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK.
6776 (expand_end_bindings): Set NOTE_BLOCK.
6777 * toplev.c (rest_of_compilation): In function-at-a-time-mode,
6778 reconstruct the BLOCK tree.
6779 * tree.h (expand_start_bindings): Macroize. Call ...
6780 (expand_start_bindings_and_block): New function.
6781
6782 1999-12-16 Jakub Jelinek <jakub@redhat.com>
6783
6784 * config/sparc/sparc.c (print_operand): Cast fprintf arguments
6785 to match the format.
6786
6787 1999-12-16 David S. Miller <davem@redhat.com>
6788
6789 * expr.c (emit_move_insn_1): Only emit clobbers if one of
6790 the outputs is a SUBREG.
6791 * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
6792 change.
6793
6794 * config/sparc/sparc.c (epilogue_renumber): Add default case
6795 to switch stmt.
6796
6797 Thu Dec 16 11:33:57 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6798
6799 * toplev.c (rest_of_compilation): Run branch shortening after
6800 reg-stack.
6801
6802 * regclass.c (loop_depth): Remove
6803 (scan_one_insn): Do not handle LOOP_NOTE insns.
6804 (regclass): Go through basic blocks and set loop_cost
6805
6806 Thu Dec 16 02:56:25 1999 Zack Weinberg <zack@bitmover.com>
6807
6808 * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
6809
6810 Thu Dec 16 10:43:35 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6811
6812 * i386.md (movqi): Use "nonimmediate_operand" for output operand.
6813 (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
6814 (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
6815
6816 Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com)
6817
6818 * loop.c (insert_loop_mem): Ignore memory clobbers.
6819
6820 * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
6821 to (OP A B).
6822
6823 Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com)
6824
6825 * profile.c: Remove redundant #include "output.h".
6826
6827 * h8300.md (HImode preinc peephole): Fix typo.
6828
6829 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
6830
6831 * function.c (retrofit_block): Abort if we don't find a suitable insn.
6832 (insert_block_after_note): Abort if we don't have a previous block.
6833 Remove FN parameter.
6834 * function.h: Adjust.
6835
6836 1999-12-15 Mark Mitchell <mark@codesourcery.com>
6837
6838 * builtins.c (expand_builtin_mathfn): Make sure not to expand the
6839 argument more than once.
6840
6841 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
6842
6843 * stmt.c (expand_decl): Expand upper bound of a dynamic array.
6844
6845 1999-12-15 Jakub Jelinek <jakub@redhat.com>
6846
6847 * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
6848
6849 Wed Dec 15 16:11:55 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6850
6851 * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
6852 (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
6853 update stack_alignment_needed.
6854 (prepare_function_start): Initialize stack_alignment_needed
6855 * function.h (struct function): Add field stack_alignment_needed.
6856
6857 Wed Dec 15 14:55:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6858
6859 * caller-save.c (insert_one_insn): Returns struct insn_chain *.
6860 Handle live_throughout / dead_or_set instead of live_before /
6861 live_after.
6862 (save_call_clobbered_regs): Get register livenessinformation from
6863 chain->live_throughout.
6864 (add_stored_regs): New function.
6865 (insert_restore, insert_save): Add restored / saved registers to
6866 dead_or_set.
6867 * global.c (reg_dies): New parameter chain.
6868 (reg_becomes_live): Third parameter is regs_set now.
6869 Changed all callers.
6870 (reg_dies): New parameter chain. Changed all callers.
6871 (build_insn_chain): Set live_throughout instead of
6872 live_before / live_after.
6873 * reload.h (struct insn_chain): Replace members live_before /
6874 live_after with live_throughout / dead_or_set.
6875 * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
6876 instead of live_before / live_after.
6877 (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
6878 (order_regs_for_reload, find_reg, finish_spills): Likewise.
6879 (choose_reload_regs_init): Likewise.
6880 * stupid.c (current_chain, find_clobbered_regs): Delete.
6881 (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
6882 instead of chain->live_before / chain->live_after.
6883 (mark_hard_ref): New function.
6884 (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
6885
6886 1999-12-15 David S. Miller <davem@redhat.com>
6887
6888 * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
6889
6890 Wed Dec 15 15:05:30 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6891
6892 * flow.c (calculate_loop_depth): Make global, remove prototype,
6893 rewrite to use new loop infrastructure.
6894 (find_basic_block): Remove calculate_loop_depth call.
6895 * toplev.c (rest_of_compilation): Call find_basic_block.
6896 * output.h (calculate_loop_depth): Declare.
6897
6898 * flow.c (dump_flow_info): Dump loop_depth.
6899 (flow_loops_nodes_find): Increase loop_depth for basic block in the
6900 body.
6901 (flow_loops_find): Initialize the loop_depth for each basic block.
6902
6903 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
6904
6905 * tree.c (decl_function_context): Handle virtual functions.
6906
6907 * tlink.c (scan_linker_output): Don't look in demangled name when
6908 looking for linker output keywords.
6909
6910 * dwarfout.c (output_type): We can defer namespace-scope classes.
6911
6912 Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com)
6913
6914 * regclass.c (record_reg_classes): Update comment for merging
6915 register class preferences in reg->reg copies. Tighten conditions
6916 for merging register class preferences in reg->reg copies.
6917
6918 Wed Dec 15 02:19:32 1999 David Edelsohn <edelsohn@gnu.org>
6919
6920 * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
6921
6922 1999-12-14 Geoff Keating <geoffk@cygnus.com>
6923
6924 * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
6925 (INIT_SECTION_ASM_OP): Delete.
6926 (FINI_SECTION_ASM_OP): Delete.
6927 (STARTFILE_SPEC): Define to hold just crtbegin.o.
6928
6929 1999-12-14 Jason Merrill <jason@casey.cygnus.com>
6930
6931 * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
6932 the abstract origin wasn't emitted.
6933
6934 * dwarf2out.c (class_scope_p): New fn.
6935 (gen_subprogram_die): Use it.
6936 (gen_variable_die): Use it. Tweak logic.
6937 (gen_struct_or_union_type_die): Check context_die to determine
6938 if we're function-local.
6939 (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
6940
6941 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
6942
6943 * loop.c (check_dbra_loop): Can't reverse a biv that has
6944 maybe_multiple set.
6945
6946 1999-12-14 Nick Clifton <nickc@cygnus.com>
6947
6948 * config/arm/arm.c: Add support for -mcpu=arm720 command line
6949 switch.
6950
6951 Tue Dec 14 18:13:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6952
6953 * loop.c (strength_reduce): Fix sign of giv lifetime calculation
6954 for givs made from biv increments.
6955
6956 Tue Dec 14 08:11:27 1999 Richard Henderson <rth@cygnus.com>
6957
6958 * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
6959 * alpha.c (override_options): Recognize -mcpu=ev67.
6960 * alpha.h (CPP_CPU_EV67_SPEC): New.
6961 (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
6962 (EXTRA_SPECS): Update.
6963
6964 Tue Dec 14 08:04:28 1999 Richard Henderson <rth@cygnus.com>
6965
6966 * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
6967 appropriate for -lang-c89 and -std=*.
6968 * cppinit.c (cpp_handle_option): Likewise.
6969 (new_pending_define): New, split out from cpp_handle_option.
6970 * gcc.c (default_compilers): Don't define __STRICT_ANSI__
6971 or enable trigraphs for -ansi/-std=*.
6972
6973 * ginclude/stdarg.h (__va_copy): New.
6974 (va_copy): Don't define for C89.
6975
6976 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz <cpopetz@cygnus.com>
6977
6978 * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
6979 for long long multiply-accumulate.
6980
6981 Tue Dec 14 13:51:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6982
6983 * regclass.c (scan_one_insn): Set loop_cost to 1 when
6984 optimizing for size.
6985
6986 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
6987
6988 * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
6989 if something changed. Back out that part of yesterday's changes.
6990
6991 * loop.c (loop_max_reg): New static variable.
6992 (loop_optimize): Initialize it. Eliminate one unnecessary call to
6993 max_reg_num.
6994 (scan_loop): Call reg_scan_update whenever we may have added new
6995 registers, and update loop_max_reg.
6996
6997 Tue Dec 14 12:07:29 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
6998
6999 * regclass.c (record_reg_classes): Do not do the copying preferrencing
7000 when source does not die.
7001
7002 * regclass.c (record_reg_classes): Handle INOUT operands propertly.
7003
7004 1999-12-14 Jakub Jelinek <jakub@redhat.com>
7005
7006 * config/sparc/linux64.h (TARGET_LIVE_G0,
7007 TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
7008 variants on Linux.
7009 * config/sparc/linux.h (TARGET_LIVE_G0,
7010 TARGET_BROKEN_SAVERESTORE): Likewise.
7011 * config/sparc/linux-aout.h (TARGET_LIVE_G0,
7012 TARGET_BROKEN_SAVERESTORE): Likewise.
7013
7014 * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
7015 (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
7016 not %g2.
7017 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
7018 as sparc64 block profiling register.
7019 * config/sparc/sparc.c (sparc_override_options): Allow block
7020 profiling with -m32.
7021 (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
7022 profiling register.
7023 * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
7024 macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
7025 * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
7026
7027 * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
7028 for sparc64.
7029 * config/sparc/sparc.h: Likewise.
7030 * config/sparc/xm-sysv4-64.h: Likewise.
7031 * config/float-sparc.h: Likewise.
7032 * glimits.h: Likewise.
7033 * longlong.h: Likewise.
7034
7035 * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
7036 (ASM_IDENTIFY_GCC): Remove.
7037
7038 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
7039
7040 * combine.c (combine_simplify_rtx): Don't make shared rtl.
7041 (simplify_logical): Likewise.
7042
7043 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
7044
7045 * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
7046 * cppfiles.c (INO_T_EQ): Likewise.
7047
7048 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
7049
7050 * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
7051 * i386/mingw32.h (LIB_SPEC): Likewise.
7052 (STARTFILE_SPEC): Likewise.
7053 * i386/uwin.h (LIB_SPEC): Likewise.
7054 (STARTFILE_SPEC): Likewise.
7055
7056 * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
7057 * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
7058
7059 Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com)
7060
7061 * combine.c (combine_simplify_rtx): Fix order of checks for
7062 (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
7063
7064 1999-12-13 Clinton Popetz <cpopetz@cygnus.com>
7065
7066 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out
7067 12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
7068
7069 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
7070
7071 * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
7072 defined.
7073 * regclass.c (inv_reg_alloc_order): New array.
7074 (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
7075
7076 * reload.h (struct insn_chain): Delete fields group_size, group_mode,
7077 counted_for_groups, counted_for_nongroups. Add fields rld and
7078 n_reloads.
7079 * reload.c (push_secondary_reload): Don't set nongroup field of
7080 new reloads.
7081 (push_reload): Likewise.
7082 (find_reloads): Delete code to compute nongroup fields.
7083 * reload1.c (reload_insn_firstobj): New static variable.
7084 (pseudos_counted, spilled_pseudos): Now of type regset_head. All
7085 users changed.
7086 (calculate_needs, find_tworeg_group, find_group, possible_group_p,
7087 count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
7088 dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
7089 functions.
7090 (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
7091 functions.
7092 (struct hard_reg_n_uses): Deleted.
7093 (potential_reload_regs): Deleted.
7094 (init_reload): Initialize spilled_pseudos and pseudos_counted.
7095 (reload): Don't try to allocate reload registers if we already know
7096 we have to make another pass. Call select_reload_regs. Free memory
7097 starting with reload_firstobj when starting another pass.
7098 Don't allocate spilled_pseudos.
7099 (calculate_needs_all_insns): Call copy_reloads for an insn that
7100 needs reloads; don't call calculate_needs.
7101 (spill_cost): New static array.
7102 (used_spill_regs_local): New static variable.
7103 (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
7104 to compute potential_reload_regs.
7105 (find_reload_regs): Completely rewritten to use find_reg.
7106 (allocate_reload_reg): Don't test counted_for_groups or
7107 counted_for_nongroups. Lose NOERROR arg and code to give an error;
7108 all cllers changed.
7109 (choose_reload_regs): Add fallback code that uses the existing
7110 register allocation from find_reload_regs.
7111
7112 Mon Dec 13 00:54:14 1999 Philippe De Muyter <phdm@macqel.be>
7113
7114 * flow.c (create_edge_list): Cast xmalloc return value.
7115
7116 Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com)
7117
7118 * doprnt.c: Remove incorrect comment closure.
7119
7120 * cse.c: Fix a few minor whitespace goofs.
7121
7122 1999-12-13 Don Bowman <don@pixstream.com>
7123
7124 * mips/vxworks.h: Fix problem with comment termination.
7125 (EXTRA_SECTIONS): Add in_sbss.
7126 (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
7127
7128 1999-12-12 David S. Miller <davem@redhat.com>
7129
7130 * cse.c (struct cse_reg_info): Add hash_next member,
7131 reorder rest of struct for better packing on 64-bit
7132 hosts.
7133 (cse_reg_info_tree): Kill.
7134 (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
7135 REGHASH_FN): New custom pow2 hash mechanism.
7136 (NBUCKETS): Kill.
7137 (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
7138 use a pow2 hash table.
7139 (get_cse_reg_info): Rework to use new REGHASH.
7140 (new_basic_block): Likewise, use HASH_SIZE, and inline
7141 free_element call.
7142 (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
7143 and inline free_element call.
7144 (lookup_as_function, insert, flush_hash_table, invalidate,
7145 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
7146 invalidate_for_call, use_related_value, find_comparison_args,
7147 fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
7148 (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
7149 get_element): Kill.
7150
7151 Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com)
7152
7153 * cse.c (cse_basic_block): Free qty_table consistently.
7154
7155 1999-12-12 David S. Miller <davem@redhat.com>
7156 Jakub Jelinek <jakub@redhat.com>
7157
7158 * config/sparc/sparc.md (movtf reg/reg split): Don't generate
7159 SUBREGs by hand, gen the appropriate hard reg directly.
7160 (movtf reg/mem split): Likewise and alter_subreg on destination
7161 if necessary.
7162 (movtf mem/reg split): Similarly.
7163 (movdf_cc_sp64): Rename from hidden pattern.
7164 (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
7165 (movtf_cc_sp64, following split): New pattern and splitter.
7166 (movdf_cc_reg_sp64): Rename from hidden pattern.
7167 (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
7168 TARGET_HARD_QUAD.
7169 (movtf_cc_reg_sp64, following split): New pattern and splitter.
7170
7171 1999-12-12 Stephen L Moshier <moshier@mediaone.net>
7172
7173 * loop.c (load_mems): Don't hoist written floating point mem
7174 if -ffloat-store.
7175
7176 1999-12-12 Mark Mitchell <mark@codesourcery.com>
7177
7178 * except.h (struct eh_queue): Add `next' pointer.
7179 (struct eh_status): Make x_ehqueue a pointer.
7180 (push_ehqueue): Declare.
7181 (pop_ehqueue): Likewise.
7182 * except.c (expand_eh_region_end): Adjust now that ehqueue is a
7183 pointer.
7184 (expand_fixup_region_end): Likewise.
7185 (expand_leftover_cleanups): Likewise.
7186 (push_ehqueue): Define.
7187 (pop_ehqueue): Likewise.
7188 (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
7189 than doing it inline.
7190 (expand_start_all_catch): Adjust now that ehqueue is a
7191 pointer.
7192 (mark_eh_queue): Mark all level of the queue.
7193 (mark_eh_status): Adjust now that ehqueue is a
7194 pointer.
7195 (init_eh_for_function): Allocate ehqueue.
7196 (free_eh_status): Free it.
7197 * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
7198 expansion for a fixup.
7199
7200 1999-12-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7201
7202 * gthr-single.h (__gthread_active_p): Add prototype arguments.
7203
7204 * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
7205 (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
7206 __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
7207 function_ptr, getpagesize, __enable_execute_stack,
7208 __enable_execute_stack, __clear_insn_cache,
7209 __enable_execute_stack, __do_global_dtors, __do_global_ctors,
7210 _cleanup, _exit, __default_terminate, __terminate_func,
7211 __terminate, __empty, __throw, new_eh_context,
7212 eh_context_initialize, eh_context_static, eh_context_specific,
7213 get_eh_context, __get_eh_context, __get_eh_info,
7214 init_reg_size_table, eh_threads_initialize,
7215 __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
7216 __unwinding_cleanup, throw_helper, __throw, __rethrow,
7217 __pure_virtual): Add prototype arguments.
7218 (__bb_exit_func): Cast a sizeof to long when comparing against one.
7219 Cast a signed value to unsigned long when comparing against one.
7220 (new_eh_context): Wrap in _GTHREADS macro.
7221 (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
7222 declaration.
7223 (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
7224 (throw_helper): Initialize variables `handler_p' and `pc_p'.
7225
7226 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7227
7228 * combine.c (record_promoted_value): Remove unused variable
7229 `links2'.
7230
7231 * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
7232
7233 * global.c (record_conflicts): Likewise for `j'.
7234
7235 * genoutput.c (output_insn_data): Don't unnecessarily cast away
7236 const-ness.
7237
7238 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7239
7240 * i386-protos.h (output_387_binary_op, output_fix_trunc,
7241 output_fp_compare): Constify a char*.
7242
7243 * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
7244 static prototypes.
7245 (override_options, ix86_comp_type_attributes, print_operand,
7246 output_387_binary_op, output_fix_trunc, output_fp_compare):
7247 Constify a char*.
7248 (ix86_sched_reorder): Mark parameter `clock_var' with
7249 ATTRIBUTE_UNUSED.
7250
7251 * i386.h (DEBUG_PRINT_REG): Constify a char*.
7252
7253 Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
7254
7255 * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
7256 operand, for use in the Java front-end.
7257
7258 1999-12-10 Ben Collins <bcollins@debian.org>
7259
7260 * configure.in: Fix typo for "-64" in 64bit as check.
7261 * configure: Rebuilt.
7262
7263 1999-12-10 Jakub Jelinek <jakub@redhat.com>
7264
7265 * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
7266 appropriate.
7267
7268 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7269
7270 * c-parse.in (string): With -Wtraditional, warn if ANSI string
7271 concatenation is utilized.
7272
7273 * invoke.texi (-Wtraditional): Document it.
7274
7275 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7276
7277 * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
7278 Cast a ptrdiff_t to long and pass it to printf with %ld.
7279
7280 1999-12-10 Geoff Keating <geoffk@cygnus.com>
7281
7282 * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
7283 68881, we have no 68881 registers at all.
7284 (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
7285 value in a 68881 register if it is available.
7286
7287 1999-12-10 Clinton Popetz <cpopetz@cygnus.com>
7288
7289 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
7290 for long long multiply-accumulate.
7291
7292 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
7293
7294 * loop.c (insert_loop_mem): Undo last change.
7295
7296 1999-12-10 David S. Miller <davem@redhat.com>
7297
7298 * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
7299 New functions.
7300 * config/sparc/sparc-protos.h: Add them.
7301 * config/sparc/sparc.h: Add them to PREDICATE_CODES.
7302 (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
7303 constraints which use those helpers.
7304 (EXTRA_CONSTRAINT): Use this new macro.
7305 * md.texi: Update sparc target constraints documentation.
7306 * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
7307 movsf_const_high, movsf_const_lo, movsf_insn): Delete.
7308 (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
7309 movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
7310 (movsf high/lo_sum split): Rework for new patterns.
7311 (movsf expander): Allow storing fp_zero to memory if ! live_g0.
7312
7313 1999-12-09 Gavin Romig-Koch <gavin@cetus.cygnus.com>
7314
7315 * c-common.c (c_common_nodes_and_builtins):
7316 Create __builtin_ptrdiff_t and __builtin_size_t.
7317
7318 Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com)
7319
7320 * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
7321
7322 Fri Dec 10 00:53:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
7323
7324 * regclass.c (globalize_reg): Re-instate test that allows
7325 fixed registers to be declared as a variable even after functions
7326 are defined.
7327
7328 Fri Dec 10 00:52:13 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
7329
7330 * i386.md (cpu attribute): Add "athlon".
7331 (athlon_decode): New attribute.
7332 (Athlon scheduling units definitions): New.
7333 (fcmp and shld patterns): Set athlon_decode to "vector".
7334 * i386.c (athlon_cost): New.
7335 (m_ATHLON): New.
7336 (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
7337 x86_use_sahf): Set for Athlon.
7338 (x86_use_fiop): Unset for Athlon.
7339 (override_options): Define Athlon alignments and "athlon" name.
7340 (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
7341 * i386.h (TARGET_ATHLON): New.
7342 (enum processor_type): Add PROCESSOR_ATHLON.
7343 (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
7344 for CPU_DEFAULT==5
7345 (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
7346
7347 1999-12-09 Andreas Jaeger <aj@suse.de>
7348
7349 * loop.c (record_biv): Declare parameter as int.
7350
7351 * config/i386/i386-protos.h: Declare long_memory_operand.
7352
7353 1999-12-09 Mark Mitchell <mark@codesourcery.com>
7354
7355 * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
7356 EXPR_WITH_FILE_LOCATION.
7357
7358 Thu Dec 9 11:36:24 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
7359
7360 * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
7361 in expander.
7362
7363 * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
7364
7365 * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
7366 updating code.
7367
7368 1999-12-09 Jakub Jelinek <jakub@redhat.com>
7369
7370 * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
7371 default on linux64 again.
7372 * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
7373 models for multilibing.
7374 * genmultilib: Accept | as alternative separator within a set in
7375 MULTILIB_OPTIONS.
7376
7377 * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
7378
7379 * calls.c (precompute_arguments): Make sure initial_value contains
7380 value pseudo which CSE expects.
7381 * cse.c (struct set): New entry orig_src.
7382 (cse_insn): Set it early on entry, use it for libcall EQUIV note
7383 replacement.
7384
7385 Wed Dec 8 22:24:15 1999 Richard Henderson <rth@cygnus.com>
7386
7387 * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
7388
7389 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
7390
7391 * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
7392
7393 1999-12-08 Jakub Jelinek <jakub@redhat.com>
7394
7395 * config/sparc/sparc.c (ultra_cmove_results_ready_p,
7396 ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
7397
7398 * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
7399 if TARGET_ARCH32.
7400
7401 * longlong.h: Merge in changes from glibc.
7402 Also don't clobber %g2 register in 32bit SPARC assembly, so that
7403 -mno-app-regs libgcc can be compiled.
7404 * libgcc2.c: Add defines so that the updated longlong.h
7405 can be used in libgcc2.a. Also, make sure on most architectures
7406 (at least on all which have optimized code in longlong.h defined
7407 for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
7408
7409 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
7410
7411 * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
7412 `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
7413 * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
7414 is GNU ld.
7415 * configure: Rebuilt.
7416
7417 Wed Dec 8 03:45:40 1999 Richard Henderson <rth@cygnus.com>
7418
7419 * alpha.c (secondary_reload_class): For !BWX, sub-simode
7420 outputs require a register.
7421
7422 1999-12-08 Brendan Kehoe <brendan@cygnus.com>
7423
7424 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
7425 _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to
7426 functions like dptoul will be resolved.
7427 (libgcc2.a): Make sure that the object files from DPBIT are named
7428 differently (prefix `_dp') from those that would be coming from
7429 FPBIT.
7430
7431 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>, Jakub Jelinek <jakub@redhat.com>
7432
7433 * configure.in: When target is sparc* and tm_file contains 64,
7434 test for 64bit support in assembler. If not supported, remove
7435 sparc/t-sol2-64 from target-dependent Makefile fragments.
7436 (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
7437 (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
7438 (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
7439 * acconfig.h (AS_SPARC64_FLAG): Added.
7440 * configure, config.in: Rebuilt.
7441 * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
7442 support. Use AS_SPARC64_FLAG.
7443
7444 1999-12-07 Jakub Jelinek <jakub@redhat.com>
7445
7446 * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
7447 suitable for holding OFmode values so that gcc works with complex
7448 quad long doubles.
7449 (hard_64bit_mode_classes): Likewise.
7450
7451 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
7452 so that it is actually matched.
7453 (sethi_di_medlow): Likewise.
7454
7455 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
7456 as legitimate constant if -mvis.
7457 * config/sparc/sparc.md (movtf): Likewise.
7458 (clear_sf): Use const_double_operand.
7459 (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
7460
7461 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
7462 * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
7463 * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
7464 routines, _Qp_* cannot be handled like that now.
7465 (INIT_TARGET_OPTABS): Likewise.
7466 * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
7467 (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
7468 sparc_emit_float_lib_cmp if ARCH64 and soft float.
7469 (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
7470 floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
7471 divtf3, sqrttf3): New expanders.
7472 (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
7473 floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
7474 addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
7475 non-_hq patterns.
7476
7477 * configure.in (sparc64-*-linux*): Use posix threads if enabled.
7478 * configure: Rebuilt.
7479 * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
7480 -mcpu is given and we're doing 64bit compiles.
7481
7482 Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
7483
7484 * loop.h (struct induction): Add multi_insn_incr.
7485 * loop.c (basic_induction_var): New multi_insn_incr argument.
7486 Set it if we search back through previous insns for the biv.
7487 (record_biv): New multi_insn_incr argument; fill in struct induction.
7488 (strength_reduce): Discard an iv with multiple bivs, any of
7489 which require multiple insns to increment.
7490
7491 1999-12-07 Martin v. Löwis <loewis@informatik.hu-berlin.de>
7492
7493 * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
7494 documentation.
7495
7496 1999-12-06 David S. Miller <davem@redhat.com>
7497
7498 * combine.c (check_promoted_subreg): Do not conditionalize this upon
7499 PROMOTE_FUNCTION_RETURN.
7500
7501 Mon Dec 6 15:12:14 1999 Jim Wilson <wilson@cygnus.com>
7502
7503 * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
7504 and handle REG_UNUSED note on insn.
7505
7506 * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask. Set
7507 inner_mask instead of mask.
7508
7509 1999-12-06 Brendan Kehoe <brendan@cygnus.com>
7510
7511 * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
7512 zero if there was an error.
7513
7514 1999-12-06 Jakub Jelinek <jakub@redhat.com>
7515
7516 * config/sparc/sparc.md (return_losum_di): Fix typo in asm
7517 output string.
7518
7519 * longlong.h: Fix clobbers in SPARC asm statements.
7520
7521 * config/sparc/sparc.c (input_operand): Allow HImode and QImode
7522 valid sethi operations when TARGET_ARCH64.
7523
7524 * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
7525 always use move_by_pieces to avoid infinite recursion.
7526 (restore_fixed_argument_area): Likewise.
7527
7528 * combine.c (check_promoted_subreg, record_promoted_value): New
7529 functions.
7530 (combine_instructions): Use them to retain nonzero and sign bit
7531 information after SUBREGs are eliminated by optimizations in
7532 this pass if PROMOTE_FUNCTION_RETURN.
7533
7534 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
7535 .register declaration. Don't use variables with __ prefixes.
7536
7537 Mon Dec 6 12:24:52 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7538
7539 * fold-const.c (optimize_bit_field_compare): Only use one mode
7540 for both RHS and LHS in non-constant case.
7541
7542 1999-12-06 Nathan Sidwell <nathan@acm.org>
7543
7544 * frame.c (start_fde_sort): Only allocate erratic array, if
7545 linear one was allocated. Return allocated flag.
7546 (fde_insert): Only insert, if there's a valid array.
7547 (fde_end_sort): Split, sort and merge if linear and erratic
7548 arrays exist, else just sort linear one.
7549 (search_fdes): New function. Linear search through original fde
7550 structure.
7551 (frame_init): Permit multiple initializations. Cope with
7552 memory shortages.
7553 (find_fde): Fallback on linear search, if failed to sort array.
7554 (__deregister_frame_info): Only free sorted array, if we
7555 allocated it.
7556
7557 1999-12-06 Jakub Jelinek <jakub@redhat.com>
7558
7559 * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
7560
7561 1999-12-05 Jakub Jelinek <jakub@redhat.com>
7562
7563 * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
7564
7565 1999-12-05 Mark Mitchell <mark@codesourcery.com>
7566
7567 * tree.h (special_function_p): Declare.
7568 * calls.c (special_function_p): Make it global. Don't take `name'
7569 as a parameter. Fix typo in 1999-11-28 change.
7570 (expand_cal): Adjust.
7571
7572 1999-12-04 Mark Mitchell <mark@codesourcery.com>
7573
7574 * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
7575 * tree.h (EXPR_WFL_FILENAME): Define in terms of
7576 EXPR_WFL_FILENAME_NODE.
7577 (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
7578 the TREE_CHAIN.
7579 * print-tree.c (print_note): Print TREE_PRIVATE and
7580 TREE_PROTECTED.
7581
7582 * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
7583 the original die cannot be found.
7584
7585 * varray.h (varray_head_tag): Add elements_used.
7586 (VARRAY_PUSH): New macro.
7587 (VARRAY_POP): Likewise.
7588 (VARRAY_TOP): Likewise.
7589 Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
7590 types.
7591 * varray.c (varray_init): Initialize elements_used.
7592 * Makefile.in (BASIC_BLOCK_H): Add varray.h.
7593 (INTEGRATE_H): New variable.
7594 (integrate.o): Depend on INTEGRATE_H.
7595 (unroll.o): Likewise.
7596
7597 * function.h (insert_block_after_note): Declare.
7598 * function.c (insert_block_after_note): Split out from ...
7599 (retrofit_block): ... here.
7600
7601 * stmt.c (expand_fixup): Fix typo in comment.
7602
7603 Sat Dec 4 14:13:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
7604
7605 * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
7606 (optimize_reg_copy_1): Remove REG_N_REFS updating code.
7607 (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
7608 (regmove_optimize, fixup_match_1): Likewise.
7609
7610 1999-12-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7611
7612 * flow.c (flow_loops_dump): Add missing argument when calling
7613 flow_loop_nested_p.
7614
7615 1999-12-04 Geoffrey Keating <geoffk@cygnus.com>
7616 Greg McGary <gkm@gnu.org>
7617
7618 * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
7619 (init_attributes): Add A_NO_LIMIT_STACK.
7620 (decl_attributes): Handle A_NO_LIMIT_STACK.
7621 * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
7622 * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
7623 Handle stack bounds checking.
7624 * flags.h (flag_stack_check): Use the word 'probe' rather than
7625 'check', because the flag doesn't actually cause any checking to
7626 be done.
7627 * function.c (expand_function_start): Set
7628 current_function_limit_stack.
7629 * function.h (struct function): Add limit_stack.
7630 (current_function_limit_stack): Define.
7631 * invoke.texi (Code Gen Options): Document new options.
7632 * rtl.h: Declare stack_limit_rtx.
7633 * toplev.c (stack_limit_rtx): New variable.
7634 (decode_f_option): Handle new options -fstack-limit-register=REG,
7635 -fstack-limit-symbol=IDENT, -fno-stack-limit.
7636 (main): Add stack_limit_rtx as GC root.
7637 * tree.h (DECL_NO_LIMIT_STACK): New macro.
7638 (struct tree_decl): New member no_limit_stack.
7639
7640 * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
7641 stack_limit_rtx.
7642 * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
7643 (conditional_trap+1): Get new mnemonic correct.
7644 (conditional_trap+2): New pattern for DImode traps.
7645
7646 * config/m68k/m68k.c (output_function_prologue): Handle
7647 stack_limit_rtx.
7648 * config/m68k/m68k.md (trap): New insn.
7649 (conditional_trap): New insn.
7650 * md.texi (Standard Names): Document `trap' and
7651 `conditional_trap'.
7652 * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
7653 so a cc0 setter doesn't get emitted at some random place in the
7654 function.
7655
7656 * config/i960/i960.md (trap): New insn.
7657 (conditional_trap): New expander.
7658 (conditional_trap+1, conditional_trap+2): New insns for signed
7659 and unsigned cases.
7660 * config/i960/i960.c (i960_function_prologue): Use
7661 STARTING_FRAME_OFFSET. Handle stack_limit_rtx.
7662
7663 Thu Dec 2 21:22:45 1999 Greg McGary <gkm@gnu.org>
7664 Geoffrey Keating <geoffk@cygnus.com>
7665
7666 * flags.h (warn_padded, warn_packed): Add global var decls.
7667 * toplev.c (warn_padded, warn_packed): Add global var defns.
7668 (W_options): Add warnings `-Wpacked' and `-Wpadded'.
7669 * stor-layout.c (layout_record): Add local variable `type'
7670 to hold often-used TREE_TYPE (field). Add local variable
7671 `unpacked_align' to hold alignment that would be in force
7672 if no `packed' attribute were present. Warn if `packed' attribute
7673 is unnecessary, or even harmful. Warn when gcc inserts padding
7674 to satisfy alignment requirements of members. Use NULL_TREE
7675 when checking whether var_size is set.
7676 * invoke.texi: Document new flags.
7677
7678 1999-12-03 Nathan Sidwell <nathan@acm.org>
7679
7680 * frame.c (fde_split): Reimplement to avoid variable sized array.
7681
7682 Thu Dec 2 18:59:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
7683
7684 * combine.c (try_combine): Before fixing up LOG_LINKS for the
7685 i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
7686
7687 1999-12-02 Gavin Romig-Koch <gavin@cygnus.com>
7688
7689 * invoke.texi: Document the mips option -mno-crt0
7690
7691 1999-12-02 Mike Karr <mkarr@mathworks.com>
7692
7693 * cccp.c (argdata): Added free_ptr member.
7694 (macroexpand): Initialize free_ptr of each argument. When an
7695 argument's buffers are freed, if the argument's free_ptr corresponds
7696 to a buffer on the input stack, then return the free_ptr to that stack
7697 frame, otherwise, free it.
7698 (macarg): If an argument begins and ends on the same input stack level,
7699 then transfer the free_ptr of that buffer to the argument in case
7700 the stack is popped during the processing of a subsequent argument.
7701
7702 1999-12-02 Bernd Schmidt <bernds@cygnus.co.uk>
7703
7704 * loop.c (note_reg_stored): New function.
7705 (struct note_reg_stored_arg): New structure.
7706 (try_copy_prop): Change to be more conservative; only replace within
7707 one extended basic block and stop replacing if a store to the
7708 replacement reg is seen.
7709
7710 1999-12-02 Nick Clifton <nickc@cygnus.com>
7711
7712 * config/fp-bit.c: Initialise all fields of the NAN
7713 constants.
7714
7715 * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
7716 to HANDLE_PRAGMA.
7717
7718 Wed Dec 1 18:16:38 1999 Jan Hubicka <hubicka@freesoft.cz>
7719
7720 * i386.md (extend?f?f2): Force the input into a register, not
7721 the output.
7722
7723 1999-12-01 Jakub Jelinek <jakub@redhat.com>
7724
7725 * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
7726 regclass' sake.
7727 (movdf_const_intreg_sp32): Likewise. Prefer the memory load
7728 alternative because setting up 64bit constant is usually costly,
7729 especially when reload is in progress or completed.
7730 (movdf_const_intreg_sp64): Likewise.
7731 (movdf_const_intreg split): Fix building up constants when
7732 HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
7733
7734 Wed Dec 1 16:51:22 1999 Jeffrey A Law (law@cygnus.com)
7735
7736 * combine.c (if_then_else_cond): Use const_true_rtx instead of
7737 const1_rtx for return values in EQ/NE comparison against (const_int 0)
7738 case.
7739
7740 * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
7741 (asm_file_start): Emit .am33 into assembly file when compiling for
7742 the AM33.
7743 (print_operand_address): Handle POST_INC addresses.
7744 (can_use_return_insn, initial_offset): Check AM33 registers too.
7745 (expand_prologue): Check & save AM33 registers too.
7746 (expand_epilogue): Similarly.
7747 (secondary_reload_class): Handle AM33 specific secondary reloads.
7748 (output_tst): Emit efficient code for the AM33 too.
7749 * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
7750 (TARGET_SWITCHES): Add -mam33 switch.
7751 (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
7752 (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
7753 (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
7754 (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
7755 (enum reg_class, REG_CLASS_NAMES): Likewise.
7756 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
7757 (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
7758 (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
7759 (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
7760 (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
7761 (HAVE_POST_INCREMENT): Define.
7762 (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
7763 (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
7764 * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
7765 (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
7766 (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
7767 (zero_extend to SI from QI/HI): Likewise.
7768 (sign_extend to SI from QI/HI): Likewise.
7769 (mulsidi3, umulsidi3): New patterns for the AM33.
7770 (tstsi with zero extension from QI/HI): Add AM33 variants.
7771 (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
7772 (return_internal_regs, store_movm): Handle new AM33 registers.
7773 * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
7774 (LIBGCC, INSTALL_LIBGCC): Likewise.
7775 * invoke.texi: Document new flags.
7776
7777 Fri Nov 26 10:59:12 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
7778
7779 * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
7780 (addsi3_carry): Likewise.
7781 (sbbsi3_cc): Add "binary_operator_ok" to the condition.
7782 (sbbsi3_carry): Likewise.
7783 (mulsi3): Rewrite to expander, ensure that only one operand is memory.
7784 (mulhi3): Likewise.
7785 (test?i_1): Ensure that only one operand is memory.
7786 (conditional move patterns): likewise.
7787 (shift and rotate patterns): Rewrite to expander, add
7788 "binary_operator_ok" to the condition.
7789
7790 * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
7791 * i386.h (procesor_costs): Add movzbl_load field.
7792 (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
7793 non-Q registers, accept DImode registers anywhere.
7794 (Q_CLASS_P): New.
7795 (MEMORY_MOVE_COST): Calculate QImode moves correctly.
7796 * i386.c (*_cost): Set value for movxbl_load field.
7797
7798 * (addsi): New add to lea splitter.
7799 (ashlsi): Likewise.
7800 (lea to add/shift peep2): New.
7801
7802 1999-12-01 Mark Salter <msalter@cygnus.com>
7803
7804 * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
7805 * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
7806 * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
7807
7808 Tue Nov 30 15:20:52 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
7809
7810 * i386.c (ix86_expand_move): Never add clobbers to move patterns.
7811 * i386.md (movsi_xor): New.
7812 (movsi_or): New.
7813 (movsi_1, movhi_1, movqi_1): Remove.
7814 (movsi_2): Rename to movsi_1.
7815 (movhi_2): Rename to movhi_1.
7816 (movqi_2): Rename to movqi_1.
7817 (movdi_1): Remove; remove splitter.
7818 (movdi_2): Rename to movdi_1.
7819 (divmodsi4 splitter): Do not emit clobbers for move patterns.
7820 (long move peep2): Do not create QI or HI mode mov0s
7821 (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
7822
7823 * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
7824 rewrite splitters.
7825
7826 * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
7827 (abs?f2_if): Likewise.
7828
7829 1999-11-30 Alex Samuel <samuel@codesourcery.com>
7830
7831 * ggc.h (ggc_test_and_set_mark): New macro.
7832 (ggc_mark_rtx): Use ggc_test_and_set_mark.
7833 (ggc_mark_tree): Likewise.
7834 (ggc_mark_rtvec): Likewise.
7835 * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
7836
7837 1999-11-30 Jason Merrill <jason@casey.cygnus.com>
7838
7839 * dwarf2out.c (scope_die_for): Only handle types. Only search for
7840 containing types.
7841 (decl_scope_table): Just an array of trees now.
7842 (push_decl_scope): Simplify.
7843 (dwarf2out_init): Adjust.
7844 (local_scope_p): New fn.
7845 (gen_inlined_enumeration_type_die): Don't call scope_die_for.
7846 (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
7847 (gen_typedef_die): Likewise.
7848 (gen_lexical_block_die): Don't call push/pop_decl_scope.
7849 (gen_inlined_subroutine_die): Likewise.
7850 (gen_abstract_function): Set current_function_decl temporarily.
7851 (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
7852 Handle block extern declarations. Don't call push/pop_decl_scope.
7853 (gen_decl_die): Fix logic for block externs.
7854
7855 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7856
7857 * calls.c (special_function_p): Remove `realloc' and add `strdup'
7858 to the list of functions which have attribute malloc by default.
7859
7860 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7861
7862 * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
7863 integer constant does not match the traditional type, limit the
7864 warnings to cases where the base of the type is ten.
7865
7866 * invoke.texi (-Wtraditional): Document it.
7867
7868 Tue Nov 30 15:18:35 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7869
7870 * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
7871 * rs6000.md: Only access a CONST_INT with INTVAL
7872
7873 Tue Nov 30 14:21:00 1999 Richard Henderson <rth@cygnus.com>
7874
7875 * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
7876 (compute_nearerout): Likewise.
7877 * ggc-page.c (ggc_page_print_statistics): Explicitly cast
7878 size_t to unsigned long for formatting.
7879
7880 1999-11-30 Jakub Jelinek <jakub@redhat.com>
7881
7882 * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
7883 Allow the user to override call-used/fixed state of %g2-5
7884 registers from the command line (with the exception of %g4 for
7885 embedded model).
7886 (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
7887 there is a higher chance of having a leaf function.
7888 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
7889 for ARCH64 which has %ccr register.
7890 * config/sparc/sparc.md (return_losum_si, return_losum_di): New
7891 patterns.
7892 * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
7893 insn accept into delay slot any insn which does not use %[ol]
7894 registers. Accept some LO_SUM and shift left by 1 for the normal
7895 restore case.
7896 (output_function_epilogue): Likewise.
7897 (epilogue_renumber): Added argument which inhibits any renumbering
7898 and just tests if the rtx does not use any %[ol] registers.
7899 (output_return): Reflect above change.
7900
7901 1999-11-30 Jakub Jelinek <jakub@redhat.com>
7902
7903 * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
7904 aggregate passing for sizes <= 16 bytes.
7905
7906 1999-11-30 Bernd Schmidt <bernds@cygnus.co.uk>
7907
7908 * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
7909 * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
7910 * reload.c (find_dummy_reload): Likewise.
7911 (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
7912 * reload1.c (reload_as_needed): Likewise.
7913 * stupid.c (stupid_find_reg): Likewise.
7914 * tm.texi (Obsolete Register Macros): Delete section.
7915 * gmicro.h: Remove all traces of the two macros.
7916 * i386.h: Likewise.
7917 * m88k.h: Likewise.
7918 * mips.h: Likewise.
7919
7920 1999-11-30 Brendan Kehoe <brendan@cygnus.com>
7921
7922 * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
7923 (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
7924 (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
7925 * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
7926 units for the sparclite86x chip.
7927 (flush): Revert October 14th change; add SImode specifically.
7928 (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
7929 * invoke.texi: Document it.
7930
7931 Tue Nov 30 14:58:14 1999 Nick Clifton <nickc@cygnus.com>
7932
7933 * config/mn10200/mn10200.h (PREDICATE_CODES): Add
7934 psimode_truncation_operand.
7935
7936 * config/mn10200/mn10200.c (psimode_truncation_operand): New
7937 function. Return true if the operand is either a MEM valid
7938 for a PSImode address or not a MEM at all.
7939
7940 * config/mn10200/mn10200.md (truncsipsi2): Use
7941 psimode_truncation_operand.
7942
7943 1999-11-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7944
7945 * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
7946 (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
7947 (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
7948 (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
7949 (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
7950 (flow_loop_level_compute, low_loops_level_compute): Likewise.
7951 (flow_loops_find, flow_loop_outside_edge_p): Likewise.
7952 * basic-block.h: Protect from multiple inclusion.
7953 (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
7954 (struct loops, struct loop): Define structures.
7955 * sbitmap.c (sbitmap_a_subset_b_p): New function.
7956 * sbitmap.h: Protect from multiple inclusion.
7957 (sbitmap_a_subset_b_p): Add prototype.
7958 * Makefile.in (LOOP_H): New macro.
7959 (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
7960
7961 Tue Nov 30 01:34:47 1999 Philippe De Muyter <phdm@macqel.be>
7962
7963 * cppinit.c (CAT): The argument list of this macro may not contain
7964 spaces !
7965
7966 1999-11-29 David S. Miller <davem@redhat.com>
7967
7968 Move quantity tables and register equivalence chains into
7969 per-qty and per-register structure arrays respectively.
7970 * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
7971 qty_const_insn, qty_comparison_code, qty_comparison_const,
7972 qty_comparison_qty): Delete, replace with...
7973 (qty_table): this structure table.
7974 (reg_next_eqv, reg_prev_eqv): Delete, replace with...
7975 (reg_eqv_table): this structure table.
7976 (make_new_qty): Add argument MODE. Caller updated.
7977 Update to use qty_table and reg_eqv_table.
7978 (make_regs_eqv, delete_reg_equiv, insert_regs,
7979 insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
7980 fold_rtx, equiv_constant, record_jump_cond, cse_insn,
7981 cse_process_notes, cse_main, cse_basic_block): Likewise.
7982
7983 Mon Nov 29 16:56:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7984
7985 * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
7986 operation if C is negative.
7987 (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
7988 (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
7989 law for some divisions if constant is negative and change other
7990 divisions to the opposite rounding.
7991
7992 * expr.c (store_constructor_field): If bit position is not multiple
7993 of alignment of TARGET's mode, use BLKmode.
7994
7995 * expr.c (expand_expr_unaligned): Add more code from full case
7996 that is needed when OP0 is in a register.
7997
7998 Mon Nov 29 18:09:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
7999
8000 * dwarfout.c (field_byte_offset): Size can be zero if there was
8001 an error.
8002
8003 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
8004
8005 * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
8006 (associate_trees): Delete unused var TEM.
8007 (extract_muldiv): Delete unused var CANCEL_P.
8008
8009 * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
8010 (target_isinf, target_isnan, target_negative): Add return types to
8011 function definitions.
8012
8013 1999-11-29 Bruce Korb <autogen@linuxbox.com>
8014
8015 * fixinc/fixincl.c(process): don't skip GLIBC files any more.
8016 * fixinc/hackshell.tpl: ditto
8017 * fixinc/fixtests.c(double_slash_test): more C++ header testing
8018 * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
8019
8020 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
8021
8022 * reload.c (push_reload): When looking for a register to put into
8023 reg_rtx, make sure all hard regs in a multi-reg register are in the
8024 right class and nonfixed.
8025
8026 * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
8027 pending_read_insns, pending_write_insns, pending_read_mems,
8028 pending_write_mems, pending_list_length, last_pending_memory_flush,
8029 last_function_call, sched_before_next_call): Move static variables
8030 into a structure.
8031 (bb_ prefixed versions): Replace with single array bb_deps.
8032 (struct deps): New structure.
8033 (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
8034 sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
8035 argument of type "struct deps *"; use that instead of global
8036 variables. All callers changed.
8037 (init_rgn_data_dependencies): Delete function.
8038 (init_rtx_vector): Delete function.
8039 (init_deps): New function.
8040
8041 (free_pending_lists): Simplify, we always use the bb_deps array even
8042 if only one basic block.
8043 (compute_block_backward_dependences): Likewise.
8044 (schedule_region): Likewise.
8045
8046 (propagate_deps): New function, broken out of
8047 compute_block_backward_dependences.
8048 (compute_block_backward_dependences): Use it.
8049
8050 * alpha.md: Delete useless patterns that tried to work around
8051 register elimination problems.
8052
8053 * unroll.c (loop_iterations): Don't abort if iteration variable
8054 was made by loop.
8055
8056 From Joern Rennecke:
8057 * reload1.c (reloads_conflict): Reverse test comparing operand
8058 numbers when testing for conflict between output/outaddr reloads.
8059
8060 1999-11-29 David S. Miller <davem@redhat.com>
8061
8062 * config/sparc/sparc.c (init_cumulative_args): Fix type of third
8063 arg.
8064 * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
8065
8066 1999-11-28 Robert Lipe <robertl@cygnus.com>
8067
8068 * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
8069 table from .fini into .dtor.
8070
8071 1999-11-28 Anthony Green <green@cygnus.com>
8072
8073 * tree.h (struct tree_decl): Add malloc_flag.
8074 (DECL_IS_MALLOC): Define.
8075 * c-common.c (attrs): Add A_MALLOC attribute.
8076 (init_attributes): Add this attribute to the table.
8077 (decl_attributes): Handle malloc attribute.
8078 * calls.c (special_function_p): Check for the malloc attribute.
8079 * extend.texi (Function Attributes): Document malloc attribute.
8080
8081 Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com)
8082
8083 * pa.md (reload shift-add patterns): Remove.
8084
8085 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8086
8087 * reorg.c (dbr_schedule) Print more statistics. Corrected
8088 problem when printing info when 3 delay slots are filled.
8089
8090 1999-11-28 Jakub Jelinek <jakub@redhat.com>
8091
8092 * combine.c (setup_incoming_promotions): Pass an outgoing
8093 regno to FUNCTION_ARG_REGNO_P which it expects.
8094
8095 1999-11-28 Andreas Jaeger <aj@suse.de>
8096
8097 * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
8098
8099 Sun Nov 28 00:48:15 1999 Philippe De Muyter <phdm@macqel.be>
8100
8101 * cccp.c (do_include): Avoid initialization of automatic variable.
8102
8103 * integrate.c (mark_stores): Function definition made void, to match
8104 previous declaration.
8105 * regclass.c (dump_regclass): Ditto.
8106 * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
8107
8108 Sat Nov 27 08:38:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8109
8110 * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
8111 known to be multiple of divisor.
8112
8113 * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
8114
8115 * combine.c (try_combine): Add code to try to merge a set of a
8116 two-word pseudo to a constant with a setting of one of those words
8117 to a constant.
8118
8119 * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
8120 (split_tree): Completely rework to make more general.
8121 (make_range, fold): Call negate_expr.
8122 (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
8123 (fold, associate): Call new split_tree and associate_trees.
8124 (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
8125
8126 1999-11-26 Bernd Schmidt <bernds@cygnus.co.uk>
8127
8128 * loop.c (try_copy_prop): Avoid GNU C extension.
8129
8130 1999-11-25 Mark Mitchell <mark@codesourcery.com>
8131
8132 * except.c (init_eh_for_function): Still zero eh_return_context,
8133 eh_return_stack_adjust, and eh_return_handler.
8134
8135 * except.h (eh_status): Adjust documentation for x_protect_list.
8136 (begin_protect_partials): New function.
8137 * except.c (enqueue_eh_entry): Fix formatting.
8138 (get_first_handler): Add consistency check.
8139 (add_partial_entry): Adjust usage of protect_list.
8140 (emit_cleanup_handler): Save and restore ehqueue.
8141 (expand_start_all_catch): Add comment.
8142 (begin_protect_partials): New function.
8143 (end_protect_partials): Adjust usage of protect_list.
8144 (init_eh_for_function): Use xcalloc.
8145
8146 1999-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8147
8148 * c-common.c (check_format_info): Don't call a variadic function
8149 with a non-literal format string.
8150
8151 * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
8152
8153 * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
8154 pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
8155 Likewise.
8156
8157 * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
8158 Likewise.
8159
8160 * collect2.c (collect_wait): Likewise.
8161
8162 * dbxout.c (dbxout_type): Likewise.
8163
8164 * gcc.c (do_spec_1): Likewise.
8165
8166 * genemit.c (gen_insn, gen_expand): Likewise.
8167
8168 * genrecog.c (write_switch, write_subroutine): Likewise.
8169
8170 * mips-tfile.c (catch_signal, botch): Likewise.
8171
8172 * print-rtl.c (print_rtx): Likewise.
8173
8174 * toplev.c (default_print_error_function, report_error_function,
8175 _fatal_insn): Likewise.
8176
8177 1999-11-25 Mark Mitchell <mark@codesourcery.com>
8178
8179 * tree.c (unsave_expr_now): Handle NULL_TREE as input.
8180
8181 Wed Nov 24 17:08:09 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
8182
8183 * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
8184 operations when needed.
8185 * i386.md (fop_?f_comm): New.
8186 (fop_?f_1): Do not accept commutative operands.
8187
8188 1999-11-25 Andreas Jaeger <aj@suse.de>
8189
8190 * config/mips/mips.md (casesi_internal): Add missing brace.
8191
8192 1999-11-25 Jason Merrill <jason@casey.cygnus.com>
8193
8194 * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
8195 (splice_child_die): Handle moving a child DIE from the declaration
8196 DIE of a class to its specification.
8197 (gen_struct_or_union_type_die): Use 'complete' consistently.
8198 (gen_decl_die): Generate the virtual context DIE first.
8199 Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
8200
8201 1999-11-24 Gavin Romig-Koch <gavin@cygnus.com>
8202
8203 * config/mips/mips.md (call_value_multiple_interanal1): New.
8204
8205 1999-11-24 Jason Merrill <jason@casey.cygnus.com>
8206
8207 * dwarf2out.c (free_AT, free_die): New fns.
8208 (remove_children): Call them.
8209 (output_line_info): Disable removal of duplicate notes.
8210
8211 Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
8212 * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
8213 means pretend the type isn't defined.
8214 Don't defer emitting types.
8215 (gen_type_die_for_member): New fn.
8216 (gen_decl_die): Call it.
8217 (splice_child_die): New fn.
8218 (gen_member_die): Call it rather than generate duplicate dies.
8219
8220 Defer emitting information for the abstract instance of an inline
8221 until we either inline it or emit an out-of-line copy.
8222 * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
8223 from output_inline_function if DECL_ABSTRACT is also set.
8224 (block_ultimate_origin): Likewise.
8225 (gen_abstract_function): New fn.
8226 (gen_decl_die, gen_inlined_subroutine_die): Call it.
8227 (gen_subprogram_die): An abstract instance is not a declaration
8228 just because it doesn't match current_function_decl. Don't abort
8229 because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration
8230 has an abstract origin.
8231 * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
8232 abstract instance here.
8233
8234 Wed Nov 24 18:39:18 1999 Andrew Haley <aph@cygnus.com>
8235
8236 * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
8237 where we need to reload fpul from a system register.
8238
8239 1999-11-24 Andreas Jaeger <aj@suse.de>
8240
8241 * config/mips/linux.h (CPP_PREDEFINES): Added.
8242 (LINK_SPEC): Remove -Y since this is only needed on sparc.
8243
8244 1999-11-24 Andreas Jaeger <aj@suse.de>
8245
8246 * config/mips/linux.h (TARGET_VERSION): Added.
8247 (HANDLE_SYSV_PRAGMA): Added.
8248 (DEFAULT_VTABLE_THUNKS): Added.
8249
8250 Wed Nov 24 14:12:15 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
8251
8252 * local-alloc.c (qty): New structure and static variable.
8253 (qty_phys_reg): Remove, all references changed to qty.
8254 (qty_n_refs): Likewise.
8255 (qty_min_class): Likewise.
8256 (qty_birth): Likewise.
8257 (qty_death): Likewise.
8258 (qty_size): Likewise.
8259 (qty_mode): Likewise.
8260 (qty_n_calls_crossed): Likewise.
8261 (qty_alternate_class): Likewise.
8262 (qty_changes_size): Likewise.
8263 (qty_first_reg): Likewise.
8264 (alloc_qty): Rename variable QTY to QTYNO.
8265 (finf_free_reg): Likewise.
8266 (local_alloc): Allocate qty, do not allocate the removed variables.
8267
8268 Wed Nov 24 17:26:05 1999 Geoffrey Keating <geoffk@cygnus.com>
8269
8270 * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
8271 when -membedded-pic is passed.
8272
8273 * config/mips/mips.md (casesi): Handle 64-bit case too.
8274 (casesi_internal_di): New insn.
8275
8276 * config/mips/mips.c (embedded_pic_offset): Always make the
8277 embedded-pic subtractions relative to the name of the current
8278 function by use of the magic string "..CURRENT_FUNCTION".
8279 * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
8280
8281 1999-11-24 Geoffrey Keating <geoffk@cygnus.com>
8282
8283 * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
8284 of (const_int 0), when what we really care about is
8285 whether it's a zero constant anyway.
8286 (div_trap_mips16): Likewise.
8287
8288 1999-11-23 Mark Mitchell <mark@codesourcery.com>
8289
8290 * loop.c (loop_optimize): Always find_loop_tree_blocks and
8291 unroll_block_trees when generating debuggable code.
8292
8293 * tree.h (unsave_expr_1): New function.
8294 (lang_unsave): New variable.
8295 (get_callee_fndecl): New function.
8296 * tree.c (unsave_expr_now_r): New function.
8297 (lang_unsave): Define.
8298 (unsave_expr_1): Likewise.
8299 (unsave_expr_now_r): Split out from unsave_expr_now.
8300 (unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise,
8301 call unsave_expr_now_r.
8302 (get_callee_fndecl): Define.
8303
8304 * Makefile.in (gencheck): Don't depend on lang_tree_files.
8305 (gencheck.o): Do depend on lang_tree_files.
8306
8307 * integrate.h (copy_decl_for_inlining): New declaration.
8308 * integrate.c (copy_and_set_decl_abstract_origin): Remove.
8309 (copy_decl_for_inlining): New function.
8310 (integrate_parm_decls): Use it.
8311 (integrate_decl_tree): Likewise.
8312
8313 1999-11-23 Gavin Romig-Koch <gavin@cygnus.com>
8314
8315 * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
8316 the second two from the first.
8317 (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
8318 * config/mips/mips.md (movcc,reload_incc,reload_outcc,
8319 conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
8320 ISA_HAS_FP4.
8321 * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
8322 override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
8323 ISA_HAS_FP4.
8324
8325 Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com)
8326
8327 * pa.md (call_internal_symref, call_value_internal_symref): No mode
8328 needed on the address operand.
8329 * pa.c (call_operand_address): Check for the correct mode.
8330
8331 1999-11-23 Bernd Schmidt <bernds@cygnus.co.uk>
8332
8333 * loop.c: Include "basic-block.h".
8334 (try_copy_prop, replace_loop_reg): New functions.
8335 (load_mems): Detect registers that just hold copies of the hoisted
8336 mem, and call try_copy_prop to eliminate them.
8337 * Makefile.in (loop.o): Update dependencies.
8338
8339 Tue Nov 23 01:03:29 1999 Hans-Peter Nilsson <hp@axis.com>
8340
8341 * Makefile.in (gencheck.o): Depend on gencheck.h.
8342 (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
8343 (insn-peep.o): Depend on except.h and function.h.
8344 (insn-attrtab.o): Depend on RECOG_H.
8345 (insn-output.o): Depend on toplev.h and flags.h.
8346 (gengenrtl.o): Depend on real.h.
8347 (gen-protos.o): Depend on cpplib.h and cpphash.h.
8348 Unify all dependencies to be on RECOG_H rather than recog.h.
8349
8350 Tue Nov 23 00:57:10 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8351
8352 From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
8353 * configure.in: Try building a bi-arch 32/64-bit compiler on
8354 sparc-*-solaris2.7 and higher.
8355 * configure: Rebuild.
8356
8357 Mon Nov 22 23:09:44 1999 David O'Brien <obrien@FreeBSD.org>
8358
8359 * config/freebsd.h: New, FreeBSD architecture independent file.
8360 * config/i386/freebsd-elf.h: removed FreeBSD architecturally
8361 independent pieces.
8362 * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
8363 directly by i386/freebsd.h.
8364 * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
8365 independent configuration file.
8366 (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
8367 directly by i386/freebsd.h.
8368 * configure: Rebuilt.
8369
8370 * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
8371 which is in the user's namespace.
8372 * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
8373 `i386' which is not in our namespace.
8374
8375 Mon Nov 22 22:58:01 1999 "R. Kelley Cook" <KelleyCook@attglobal.net>
8376
8377 * invoke.texi (ARM Options): Add in -mno-alignment-traps
8378
8379 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
8380
8381 * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
8382 (add_dwarf_attr, add_child_die): Just push onto the front.
8383 (reverse_die_lists): New fn.
8384 (add_sibling_attributes): Use it.
8385 (push_decl_scope): Reorganize.
8386 (add_name_and_src_coords_attributes): Don't set file and line for
8387 an artificial decl.
8388 (gen_subprogram_die): An artificial function doesn't need to match
8389 file and line.
8390 (gen_compile_unit_die): Return the generated die. Only add
8391 AT_comp_dir if the filename is relative.
8392 (remove_AT): Simplify loop. Also free string values.
8393 (output_die): A DIE ref can't be null.
8394 (output_value_format, value_format): Take a dw_attr_ref.
8395 (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
8396 (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
8397 AT_addr, AT_lbl): New fns.
8398 (various): Use them.
8399 (various): Constify.
8400
8401 Mon Nov 22 23:53:50 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
8402
8403 * combine.c (combine_simplify_rtx): When handling a SUBREG,
8404 take SUBREG_WORD into account.
8405 (if_then_else_cond): Likewise.
8406
8407 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
8408
8409 * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
8410 clause from BSD license, pursuant with
8411
8412 ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
8413
8414 1999-11-22 Bernd Schmidt <bernds@cygnus.co.uk>
8415
8416 * loop.c (load_mems): Reformat slightly.
8417 * basic-block.h (regset_head): New typedef.
8418 (INIT_REG_SET): New macro.
8419
8420 1999-11-22 Bruce Korb <autogen@linuxbox.com
8421
8422 * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
8423 (mips-dec-bsd*): non-functional code
8424 (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
8425
8426 * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
8427 added three replacement fixes
8428 (no_double_slash): removed comments that are not (any longer) pertinent
8429 (bad_lval): this fix currently runs against many files.
8430 The comment seems to indicate that we should select for files
8431 containing 'pragma extern_prefix'.
8432
8433 * fixinc/fixinc.x86-linux-gnu: deleted
8434 * fixinc/inclhack.sh: regen
8435 * fixinc/fixincl.x: regen
8436 * fixinc/fixincl.sh: regen
8437
8438 Fri Nov 12 14:08:40 1999 Andrew Haley <aph@cygnus.com>
8439
8440 * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
8441 its code is INSN and it has no notes.
8442
8443 1999-11-22 Andrew Haley <aph@cygnus.com>
8444
8445 * varasm.c (function_defined): Remove.
8446 (make_function_rtl): Don't set function_defined.
8447 (make_decl_rtl): Remove global register warning.
8448 * regclass.c (no_global_reg_vars): New variable.
8449 (globalize_reg): Warn if function has already been defined.
8450 (regclass_init): Set no_global_reg_vars.
8451
8452 Mon Nov 22 14:42:22 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
8453
8454 * regclass.c (reg_pref): New structure and static variable
8455 (prefclass): Delete.
8456 (altclass): Delete.
8457 (all uses of prefclass and altclass): Use reg_pref instead.
8458
8459 1999-11-21 Nick Clifton <nickc@cygnus.com>
8460
8461 * invoke.texi (ARM Options): Replace -mshort-load-bytes with
8462 -malignment-traps.
8463 (arm.h): Replace -mshort-load-bytes with -malignment-traps.
8464 (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
8465 (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
8466
8467 Sun Nov 21 17:11:13 1999 Geoffrey Keating <geoffk@cygnus.com>
8468
8469 * varasm.c (output_constructor): Solve problem with long long
8470 bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
8471
8472 Fri Nov 19 05:48:45 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
8473
8474 * global.c (allocno): New structure and static variable.
8475 (allocno_reg): Remove, all references replaced by allocno.
8476 (allocno_size): Likewise.
8477 (hard_reg_conflicts): Likewise.
8478 (hard_reg_preferences): Likewise.
8479 (hard_reg_copy_preferences): Likewise.
8480 (hard_reg_full_preferences): Likewise.
8481 (regs_someone_prefers): Likewise.
8482 (allocno_calls_crossed): Likewise.
8483 (allocno_n_refs): Likewise.
8484 (allocno_live_length): Likewise.
8485 (find_reg): Rename ALLOCNO to NUM.
8486
8487 * regclass.c (may_move_in_cost): Rename from may_move_cost, all
8488 references updated.
8489 (may_move_out_cost): New variable.
8490 (init_reg_sets_1): Initialize may_move_out_cost.
8491 (record_reg_classes): Use may_move_out_cost.
8492
8493 * regclass.c (dump_regclass): New function.
8494 (regclass): New parameter DUMP, call DUMP_REGCLASS.
8495 * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
8496 pass rtl_dump_file to regclass.
8497 * rtl.h (regclass): Update prototype.
8498
8499 Fri Nov 19 06:32:19 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
8500
8501 * i386.md (neg, not and abs patterns): Revmap to use
8502 ix86_expand_unary_operator and ix86_unary_operator_ok.
8503 (add?f and sub?f expanders): Force operand 1 to register.
8504 * i386.c (ix86_expand_unary_operator): Rewrite.
8505 (ix86_unary_operator_ok): Ensure that memory operands
8506 match real opcode.
8507 (ix86_binary_operator_ok): Do not allow operand 1 to
8508 come into memory and operand 0 not.
8509 (ix86_expand_binary_operator): Ensure that
8510 src1 is not non-matching memory.
8511
8512 * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
8513 to support integer registers and memory.
8514 (abss?2_integer): Likewise.
8515
8516 * i386.h (enum reg_class): Add FLOAT_INT_REGS.
8517 (REG_CLASS_NAMES): Likewise.
8518 (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
8519 and GENERAL_REGS.
8520 * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
8521 (movsf): Likewise; unify 4th and 5th alternative.
8522 (pushdf): Likewise.
8523 (movdf_1): Likewise; rename to movdf_integer.
8524 (pushxf): Likewise; rename to pushxf_integer; fix output template;
8525 remove redundant splitter.
8526 (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
8527 (movdf_nointeger): New.
8528 (movxf_nointeger): New.
8529 (pushxf_nointeger): New.
8530
8531 * i386.md (extend?f?f): Split to expander and pattern, refuse two
8532 memory operands in patterns.
8533 (fop*): Refuse two memory operands.
8534
8535 * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
8536 on !TARGET_USE_CLTD CPUs.
8537
8538 Fri Nov 19 10:41:15 GMT 1999 Nathan Sidwell <nathan@acm.org>
8539
8540 * extend.texi: Document C++ restricted pointers and references.
8541
8542 1999-11-19 Bernd Schmidt <bernds@cygnus.co.uk>
8543
8544 * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
8545 (invalidate_skipped_set): Call it unconditionally.
8546 (cse_set_around_loop): Likewise.
8547
8548 Thu Nov 18 17:29:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
8549
8550 * rtl.texi (mem): Add documentation for alias-set argument
8551 to RTX `mem'.
8552
8553 Fri Nov 18 13:39:22 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
8554
8555 * i386.h (struct_processor_costs): New fields int_load, int_store,
8556 fp_move, fp_load and fp_store
8557 (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
8558 fp->int moves
8559 (MEMORY_MOVE_COST): New macro.
8560 * i386.c (386_cost): Define new fields.
8561 (i486_cost): Likewise.
8562 (pentium_cost): Likewise.
8563 (pentiumpro_cost): Likewise.
8564 (k6_cost): Likewise.
8565
8566 Fri Nov 19 11:11:55 1999 Greg McGary <gkm@gnu.org>
8567 Geoffrey Keating <geoffk@cygnus.com>
8568
8569 * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
8570
8571 * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
8572 MASK_ALIGN_INT.
8573
8574 * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
8575 (TARGET_STRICT_ALIGNMENT): New macro.
8576 (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
8577 (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
8578 * invoke.texi (M680x0 Options): Document -mstrict-align.
8579
8580 Thu Nov 18 11:10:03 1999 Jan Hubicka <hubicka@freesoft.cz>
8581 Richard Henderson <rth@cygnus.com>
8582
8583 * i386-protos.h (split_xf, ix86_split_movdi): Remove.
8584 (ix86_split_long_move): Declare.
8585 * i386.c (split_xf, ix86_split_movdi): Remove.
8586 (ix86_split_to_parts, ix86_split_long_move): New.
8587 * i386.md (dimode move splitters): Use ix86_split_long_move.
8588 (dfmode move splitters): Likewise.
8589 (xfmode move splitters): Likewise.
8590 (movsf_1): Allow F->r.
8591 (movdf_1, movxf_1): Allow F->ro.
8592
8593 1999-11-17 Mark Mitchell <mark@codesourcery.com>
8594
8595 * except.h (struct eh_entry): Add goto_entry_p.
8596 (eh_region_from_symbol): Remove prototype.
8597 * except.c (find_func_region_from_symbol): New function.
8598 (emit_cleanup_handler): Likewise.
8599 (eh_region_from_symbol): Make it static.
8600 (add_new_handler): Verify the argument.
8601 (find_func_region): Update comment.
8602 (expand_eh_region_end): Expand handlers here, rater than waiting
8603 until expand_leftover_cleanups or start_all_catch.
8604 (expand_leftover_cleanups): Don't expand here.
8605 (expand_start_all_catch): Or here.
8606 (expand_rethrow): Check the return value from find_func_region.
8607 * function.c (expand_function_end): Emit the catch_clauses.
8608
8609 1999-11-18 Gavin Romig-Koch <gavin@cygnus.com>
8610
8611 * integrate.c (expand_inline_function): Add necessary check for NULL.
8612
8613 1999-11-18 Nick Clifton <nickc@cygnus.com>
8614
8615 * toplev.c (main): Correctly detect an unrecognised option.
8616
8617 * cppinit.c (cpp_handle_option): Do not claim to have consumed
8618 a -f option if it has not been recognised.
8619
8620 Thu Nov 18 00:59:11 1999 Michael Gschwind <mikeg@alagoas.watson.ibm.com>
8621
8622 * basic-block.h (update_life_extent): Remove trailing comma on
8623 enumeration type list.
8624
8625 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8626
8627 * varasm.c (output_constructor) Solved problem with long long
8628 bitfields. Corrected calculating this_time and shift. Also
8629 corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
8630
8631 Wed Nov 17 23:46:14 1999 Jeffrey A Law (law@cygnus.com)
8632
8633 * flow.c (split_edge): Take looping structure into account when
8634 determining where to put the new block note.
8635
8636 Wed Nov 17 20:42:43 1999 Jeff Holcomb <jeffh@cygnus.com>
8637
8638 * Makefile.in (ggc-none.o): Provide host specific version if
8639 needed.
8640
8641 Wed Nov 17 16:51:23 1999 Richard Henderson <rth@cygnus.com>
8642
8643 * cse.c (delete_trivially_dead_insns): Identify no-op insns
8644 containing subregs too.
8645
8646 Wed Nov 17 17:39:48 MST 1999 Diego Novillo <dnovillo@cygnus.com>
8647
8648 * invoke.texi: Add documentation for -muninit-const-in-rodata.
8649 * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
8650 (TARGET_UNINIT_CONST_IN_RODATA): Define.
8651 (text_section): Add switches -munint-const-in-rodata and
8652 -mno-uninit-const-in-rodata.
8653 (ASM_OUTPUT_COMMON): Remove.
8654 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
8655 const objects should be placed in read-only data. Otherwise declare
8656 them in common.
8657
8658 Wed Nov 17 16:38:32 1999 Richard Henderson <rth@cygnus.com>
8659
8660 * jump.c (jump_optimize_1): Revert last change.
8661
8662 Wed Nov 17 15:18:30 1999 Richard Henderson <rth@cygnus.com>
8663
8664 * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
8665 test if optimizing for size.
8666
8667 1999-11-17 Mark Mitchell <mark@codesourcery.com>
8668
8669 * Makefile.in (toplev.o): Depend on except.h.
8670 (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
8671
8672 Mon Nov 15 22:45:39 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
8673
8674 * i386.md (divmodsi4): Rewrite to expander.
8675 (*divmodsi4_nocltd): New.
8676 (*divmodsi4_cltd): New.
8677 (divmodsi4 splitter): Handle the case when input comes in edx.
8678 (udivmodhi4): Do not use constraints in exander.
8679 (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
8680
8681 1999-11-17 Jason Merrill <jason@yorick.cygnus.com>
8682
8683 * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
8684 for the common case.
8685
8686 1999-11-16 Jakub Jelinek <jakub@redhat.com>
8687
8688 * explow.c (hard_function_value): Add outgoing argument.
8689 * expr.h (hard_function_value): Declare it.
8690 * calls.c (expand_call, emit_library_call_value): Update callers.
8691 * function.c (aggregate_value_p): Ditto.
8692 (diddle_return_value): Must look at the outgoing registers
8693 on archs with register windows.
8694
8695 Mon Nov 15 20:46:45 1999 Richard Henderson <rth@cygnus.com>
8696
8697 * alpha.c (alpha_build_va_list): Use make_lang_type and
8698 initialize TYPE_NAME for the va_list record.
8699
8700 * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
8701
8702 * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
8703 for printing.
8704 * ggc.h (struct ggc_statistics): Rearrange elements for better
8705 packing on 64-bit hosts.
8706 * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
8707 (compute_nearerout): Likewise.
8708
8709 Tue Nov 16 14:37:52 1999 Geoffrey Keating <geoffk@cygnus.com>
8710
8711 * config/rs6000/rs6000.c (first_reg_to_save): Save
8712 PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
8713
8714 1999-11-15 Jason Merrill <jason@casey.cygnus.com>
8715
8716 * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
8717 notion of nesting to find the DIE for a type or function.
8718 DIEs can go in limbo even if we got a context_die.
8719 (push_decl_scope): Our context doesn't need to be in decl_scope_table.
8720 (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
8721 for local type.
8722 (gen_decl_die): Ignore NAMESPACE_DECLs for now.
8723 (gen_type_die): Writing out the context doesn't cause member class
8724 template instantiations to be written out as well.
8725
8726 Mon Nov 15 15:33:18 1999 Richard Henderson <rth@cygnus.com>
8727
8728 * rs6000.h (ASM_OUTPUT_DEF): New.
8729 Based on proposed addition from David Edelsohn.
8730
8731 1999-11-15 Robert Lipe <RobertLipe@usa.net>
8732 Bruce Korb <autogen@linuxbox.com>
8733
8734 * fixinc/inclhack.def
8735 (AAB_svr4_replace_byteorder): added. Takes advantage of GCC features
8736 (unixware7_byteorder_fix): added. Removes conflicts for new defs
8737 in net/inet.h.
8738 (svr5_mach_defines): added. Like svr4_mach_defines, with new syntax
8739 (svr4_endian): enabled with SVR5
8740 (svr4_mkdev): simplified syntax and enabled with SVR5
8741
8742 Sun Nov 14 18:49:37 1999 David O'Brien <obrien@FreeBSD.org>
8743
8744 * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
8745 * configure: Rebuilt.
8746 * config/t-freebsd-thread: New file.
8747
8748 Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com)
8749
8750 * i386.c (ix86_decompose_address): Verify the base is a REG
8751 before trying to examine its register number.
8752
8753 * basic-block.h: Remove all #defines and prototypes related to
8754 integer lists.
8755 (free_bb_mem, compute_preds_succs): Remove prototype.
8756 * rtl.h (free_bb_mem): Remove prototype.
8757 * flow.c (alloc_int_list_node); Remove function.
8758 (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
8759 (compute_preds_succs, free_bb_mem): Likewise.
8760 * gcse.c (gcse_main): Do not call free_bb_mem anymore.
8761 * toplev.c (rest_of_compilation): Likewise.
8762 * haifa-sched.c (build_control_flow): Use flow generated edge
8763 list to build the haifa specific edge list.
8764 (find_rgns): Use new CFG data structures instead of pred/succ lists.
8765 (schedule_insns): Do not build pred/succ lists anymore. Instead
8766 build the edge table.
8767
8768 * basic-block.h (dump_bb_data): Remove declaration.
8769 * flow.c (dump_bb_data): Remove function.
8770 * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
8771 (sbitmap_union_of_predsucc): Likewise.
8772
8773 * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
8774 argument. All callers changed.
8775 (delete_null_pointer_checks_1): No longer need to compute the
8776 pred/succ lists.
8777
8778 * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
8779 All callers changed.
8780 (pre_expr_reaches_here_p_work): Likewise.
8781 (pre_edge_insert): No longer call pre_expr_reaches_here_p.
8782 * lcm.c (compute_laterin): Fix initialization of LATER.
8783 (compute_nearerout): Similarly for NEARER.
8784
8785 Sun Nov 14 12:41:57 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8786
8787 * cse.c (set_nonvarying_address_components): Delete unused function.
8788 (refers_to_p): Likewise.
8789
8790 Fri Nov 12 20:53:22 1999 Jeffrey A Law (law@cygnus.com)
8791
8792 * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
8793 needed.
8794
8795 Sat Nov 13 16:20:09 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8796
8797 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
8798 definition in do while (0).
8799
8800 Fri Nov 12 16:26:25 1999 Jim Wilson <wilson@cygnus.com>
8801
8802 * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
8803
8804 Fri Nov 12 12:43:49 1999 Richard Henderson <rth@cygnus.com>
8805
8806 * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
8807
8808 Fri Nov 12 15:14:19 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
8809
8810 * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
8811 (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
8812 (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
8813 (INITIAL_FRAME_POINTER_OFFSET): Remove it.
8814
8815 * i960.c (i960_function_prologue): Don't allocate space for g8-g11
8816 saved on the stack. Output more accurate stack frame statistics
8817 into assembler file.
8818
8819 1999-11-12 11:47 -0800 Zack Weinberg <zack@bitmover.com>
8820
8821 * genextract.c (record_insn_name): New function.
8822 (get_insn_name): No longer a stub.
8823 (main): Call record_insn_name for each insn. After each label
8824 written, print the insn name in a comment.
8825
8826 Fri Nov 12 13:45:02 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8827
8828 * output.h (const_section, init_section, fini_section): Add
8829 prototypes.
8830
8831 * alpha/elf.h (const_section): Delete declaration.
8832
8833 * svr4.h (const_section): Likewise.
8834
8835 Fri Nov 12 08:54:22 1999 Mark Mitchell <mark@codesourcery.com>
8836
8837 * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
8838 * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
8839 (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
8840 expressions.
8841 * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
8842 variable-sized array bounds.
8843
8844 Fri Nov 12 08:04:45 1999 Catherine Moore <clm@cygnus.com>
8845
8846 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Use
8847 ASM_OUTPUT_LABEL.
8848
8849 Fri Nov 12 13:31:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8850
8851 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
8852 addresses the same way GO_IF_LEGITIMATE_INDEX does.
8853
8854 Fri Nov 12 12:36:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8855
8856 * cse.c (hash_arg_in_struct): Delete.
8857 (struct table_elt): Delete elt in_struct.
8858 (struct set): Delete elt src_in_struct.
8859 (merge_equiv_classes): Don't set either hash_arg_in_struct or
8860 the corresponding in_struct elts.
8861 (canon_hash): Likewise.
8862 (safe_hash): Likewise.
8863 (find_best_addr): Likewise.
8864 (record_jump_cond): Likewise.
8865 (cse_insn): Likewise.
8866
8867 Thu Nov 11 19:45:24 1999 Jim Wilson <wilson@cygnus.com>
8868
8869 * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
8870
8871 * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
8872 unsigned types.
8873
8874 Thu Nov 11 18:54:24 1999 Jeffrey A Law (law@cygnus.com)
8875
8876 * function.c (diddle_return_value): Put back check that the DECL_RTL
8877 for the function is a register.
8878
8879 * function.c (diddle_return_value): Use hard_function_value to
8880 get an rtx suitable for use in the USE/CLOBBER insn.
8881
8882 * global.c (global_conflicts): Update comments.
8883 (record_conflicts): No need to record conflicts between pseudos here.
8884
8885 1999-11-11 Bruce Korb <autogen@linuxbox.com>
8886
8887 * fixinc/fixincl.c: Added verbose levels for status messages
8888
8889 Thu Nov 11 13:23:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8890
8891 * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
8892 operand as argument to expand_and or expand_binop.
8893
8894 Thu Nov 11 02:21:16 1999 Rodney Brown <RodneyBrown@pmsc.com>
8895
8896 * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
8897 gcc_add_string_root.
8898
8899 Wed Nov 10 21:24:19 1999 Jason Eckhardt <jle@cygnus.com>
8900
8901 * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
8902
8903 Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com)
8904
8905 * flow.c (compute_flow_dominators): Initially put all blocks on
8906 the worklist.
8907 * lcm.c (compute_antinout_edge, compute_available): Similarly.
8908 * gcse.c (compute_cprop_avinout): Remove.
8909 (compute_cprop_data): Use compute_available.
8910 (delete_null_pointer_checks_1): Use compute_available.
8911
8912 * basic-block.h (compute_available): Returns a void now.
8913 * gcse.c (one_classic_gcse_pass): Do not expect compute_available
8914 to return a value anymore.
8915 * lcm.c (compute_available, compute_antinout_edge): Revamp to use
8916 worklists. Fix boundary cases. Compute maximal solutions.
8917 (compute_laterin, compute_nearerout): Similarly.
8918
8919 * dwarf2out.c (add_AT_location_description): Allow
8920 (mem (plus (pseudo) (...)) too.
8921
8922 Wed Nov 10 10:52:42 1999 Tom Tromey <tromey@cygnus.com>
8923
8924 * gcc.c (do_spec_1): Support text between `%u' and `%O'.
8925
8926 Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
8927 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8928
8929 * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
8930
8931 * gansidecl.h: Likewise.
8932
8933 * rtl.c: Likewise.
8934
8935 * rtl.h: Likewise.
8936
8937 * toplev.h: Likewise.
8938
8939 * tree.c: Likewise.
8940
8941 * tree.h: Likewise.
8942
8943 * varray.c: Likewise.
8944
8945 * varray.h: Likewise.
8946
8947 Wed Nov 10 10:57:22 1999 Clinton Popetz <cpopetz@cygnus.com>
8948
8949 * gcov.c (struct arcdata): Add hits and total, remove prob.
8950 (output_branch_counts): New.
8951 (process_args): Set output_branch_counts if -c.
8952 (calculate_branch_probs): Store hits and total instead of
8953 percentage.
8954 (output_data): Emit counts if output_branch_counts is true.
8955 * gcov.texi (Invoking Gcov): Document -c switch..
8956
8957 Wed Nov 10 01:10:41 1999 Philippe De Muyter <phdm@macqel.be>
8958
8959 * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
8960 `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
8961
8962 Wed Nov 10 00:51:41 1999 Hans-Peter Nilsson <hp@axis.se>
8963
8964 * invoke.texi (C Dialect Options): Add missing builtins from
8965 c-common.c to list.
8966 * extend.texi (Other Builtins): Copy to this list.
8967
8968 Wed Nov 10 04:58:09 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
8969
8970 * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
8971 (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise. Remove
8972 redundant bitmap.h.
8973
8974 Wed Nov 10 00:02:53 1999 Jeffrey A Law (law@cygnus.com)
8975
8976 * flow.c (compute_flow_dominators): No longer treat basic block 0
8977 or (n_basic_blocks - 1) specially. Clear the AUX field before
8978 starting computation of doms/pdoms. Fix initial state for pdoms.
8979
8980 Wed Nov 10 03:58:08 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
8981
8982 * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
8983 match rtl.o's: added ggc.h and toplev.h
8984 ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
8985 ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
8986 ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
8987
8988 Tue Nov 9 10:30:08 1999 Tom Tromey <tromey@cygnus.com>
8989
8990 * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
8991 from HAVE_DOS_BASED_FILESYSTEM.
8992 * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
8993 HAVE_DOS_BASED_FILESYSTEM.
8994 (main): Likewise.
8995 (split_directories): Only special-case DOS file names if
8996 HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR
8997 instead of explicit tests. Conditionalize on !VMS.
8998 (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
8999 tests. Conditionalize on !VMS.
9000 (process_command): Only use make_relative_prefix if !VMS.
9001 (free_split_directories): Conditionalize on !VMS.
9002 (DIR_UP): Conditionalize on !VMS.
9003
9004 Wed Jun 9 16:57:11 1999 Mumit Khan <khan@xraylith.wisc.edu>
9005
9006 * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
9007
9008 Fri Feb 5 14:22:01 1999 Mumit Khan <khan@xraylith.wisc.edu>
9009
9010 * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
9011 case.
9012
9013 Mon Nov 8 14:16:57 1999 Michael Meissner <meissner@cygnus.com>
9014
9015 * invoke.texi (Environment Variables): Document relative path
9016 lookup.
9017 * gcc.c (DIR_UP): If not defined, define as "..".
9018 (standard_bindir_prefix): New static, holds target location to
9019 install binaries.
9020 (split_directories): New function to split a filename into
9021 component directories.
9022 (free_split_directories): New function, release memory allocated
9023 by split_directories.
9024 (make_relative_prefix): New function, make a relative pathname if
9025 the compiler is not in the expected location.
9026 (process_command): If GCC_EXEC_PREFIX was not specified, see if we
9027 can figure out an appropriate prefix from argv[0].
9028 * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
9029 STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define
9030 STANDARD_BINDIR_PREFIX.
9031
9032 Wed Nov 10 11:47:54 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9033
9034 * config/c4x/c4x-protos.h: New file. Prototypes for functions defined
9035 in c4x.c.
9036 * config/c4x/c4x.h: Moved prototypes to c4x.h.
9037 * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
9038 c4x_secondary_memory_needed) Delete.
9039 (fp_zero_operand): Add mode argument.
9040
9041 Thu Nov 4 15:52:35 1999 Andrew Haley <aph@cygnus.com>
9042
9043 * reload1.c (reload_reg_free_for_value_p): Don't use a register
9044 that is in reload_reg_used.
9045
9046 Tue Nov 9 16:43:00 1999 Nick Clifton <nickc@cygnus.com>
9047
9048 * config/arm/arm-protos.h: New file: Prototypes for functions
9049 defined in arm.c and pe.c.
9050 * config/arm/arm.h: Fix compile time warnings.
9051 * config/arm/arm.c: Fix compile time warnings.
9052 * config/arm/pe.h: Fix compile time warnings.
9053 * config/arm/aout.h: Fix compile time warnings.
9054
9055 Tue Nov 9 14:55:44 1999 Nick Clifton <nickc@cygnus.com>
9056
9057 * config/m32r/m32r-protos.h: New file: Prototypes for functions
9058 defined in m32r.c
9059
9060 * config/m32r/m32r.h: Move prototypes to m32r-protos.h
9061 Add support for subtargets.
9062 Add prototypes for new predicates.
9063 Add scheduling macros.
9064
9065 * config/m32r/m32r.c: Fix compile time warnings.
9066 (int8_operand): New predicate function.
9067 (reg_or_cmp_int16_operand): New predicate function.
9068 (extend_operand): New predicate function.
9069 (m32r_adjust_code): New scheduling function.
9070 (m32r_adjust_priorty): New scheduling function.
9071 (m32r_sched_init): New scheduling function.
9072 (m32r_sched_reorder): New scheduling function.
9073 (m32r_sched_variable_issue): New scheduling function.
9074 (direct_return): New codegen function.
9075 (m32r_not_same_reg): New rtl testsing function.
9076
9077 * config/m32r/m32r.md: Fix compile time warnings.
9078 Add support for pre decrement and post increment memory
9079 references.
9080 Add S<cc> patterns.
9081 Add fabs patterns.
9082
9083 Mon Nov 8 22:20:13 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
9084
9085 * global.c (EXECUTE_IF_CONFLICT): Don't define.
9086 (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
9087 (find_reg): Likewise.
9088
9089 Mon Nov 8 13:16:46 1999 Jason Eckhardt <jle@cygnus.com>
9090
9091 * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
9092 to avoid assembler errors.
9093
9094 Mon Nov 8 15:38:41 1999 Nick Clifton <nickc@cygnus.com>
9095
9096 * config/v850/v850-protos.h: New file: Prototypes for functions
9097 defined in v850.c
9098 * config/v850/v850.h: Move prototypes to v850-protos.h
9099 * config/v850/v850.c: Move prototypes to v850-protos.h
9100 * config/v850/v850.md: Fix compile time warnings.
9101
9102 * config/fr30/fr30-protos.h: New file: Prototypes for functions
9103 defined in fr30.c
9104 * config/fr30/fr30.h: Move prototypes to fr30-protos.h
9105 * config/fr30/fr30.c: Fix compile time warnings.
9106 * config/fr30/fr30.md: Fix compile time warnings.
9107
9108 Mon Nov 8 07:25:37 1999 Mark Mitchell <mark@codesourcery.com>
9109
9110 * tree.h (get_containing_scope): Declare it.
9111 * tree.c (get_containing_scope): New fucntion.
9112 (decl_function_context): Use it.
9113 * toplev.c (rest_of_compilation): Use get_containing_scope.
9114
9115 aMon Nov 8 03:03:07 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
9116
9117 * Makefile.in (rtl.o): Depend on toplev.h.
9118
9119 Sun Nov 7 20:55:14 1999 Mark Mitchell <mark@codesourcery.com>
9120
9121 * cse.c (delete_trivially_dead_insns): Replace alloca with
9122 xmalloc/xcalloc.
9123 * except.c (update_rethrow_references): Likewise.
9124 (init_eh_nesting_info): Likewise.
9125 * function.c (identify_blocks): Likewise.
9126 * gcse.c (dump_hash_table): Likewise.
9127 * graph.c (print_rtl_graph_with_bb): Likewise.
9128 * loop.c (combine_movables): Likewise.
9129 (move_movables): Likewise.
9130 (count_loop_regs_set): Likewise.
9131 (strength_reduce): Likewise.
9132 * profile.c (compute_branch_probabilities): New function, split
9133 out from ...
9134 (branch_prob): Here. Replace alloca with xmalloc/xcalloc.
9135 * regclass.c (regclass): Likewise.
9136 * regmove.c (regmove_optimize): Likewise.
9137 * toplev.c (compile_file): Likewise.
9138 (main): Don't mess with the stack rlimit.
9139
9140 Sun Nov 7 19:41:17 1999 Catherine Moore <clm@cygnus.com>
9141
9142 * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
9143 (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
9144
9145 Sun Nov 7 10:23:28 1999 Mark P. Mitchell <mark@codesourcery.com>
9146
9147 * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
9148
9149 Sun Nov 7 02:58:48 1999 Jeffrey A Law (law@cygnus.com)
9150
9151 * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
9152 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
9153 macro expansion.
9154
9155 Sat Nov 6 23:48:30 1999 Robert Lipe (robertlipe@usa.net)
9156
9157 * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
9158
9159 Sat Nov 6 17:34:39 1999 Jeffrey A Law (law@cygnus.com)
9160
9161 * gcse.c (post_dominators): Kill.
9162 (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
9163 (compute_code_hoist_data): Use compute_flow_dominators. Do not
9164 pass in a pdom array since we do not need pdoms.
9165 * haifa-sched.c (schedule_insns): Similarly.
9166 * flow.c (compute_dominators): Remove dead function.
9167 (compute_flow_dominators): Do not compute doms or pdoms if the
9168 caller does not request them. Split up loop to build doms and
9169 pdoms. Use a worklist to compute doms and pdoms.
9170 * basic-block.h (compute_dominators): Remove prototype.
9171
9172 Sat Nov 6 11:38:39 1999 Richard Henderson <rth@cygnus.com>
9173
9174 * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
9175 (insn_luid, insn_priority, insn_costs, insn_units): Remove.
9176 (insn_reg_weight, insn_depend, insn_dep_count): Remove.
9177 (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
9178 (cant_move, fed_by_spec_load, is_load_insn): Remove.
9179 (schedule_region): Remove unused variable.
9180 (schedule_insns): Allocate h_i_d, and not all the separate arrays.
9181
9182 Sat Nov 6 10:00:34 1999 Mark Mitchell <mark@codesourcery.com>
9183
9184 * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
9185 (update_equiv_regs): Likewise.
9186 (block_alloc): Likewise.
9187 * reg-stack.c (reg_to_stack): Likewise.
9188 (convert_regs_2): Likewise.
9189 * reload1.c (reload_as_needed): Likewise.
9190
9191 Sat Nov 6 09:57:59 1999 Mark Mitchell <mark@codesourcery.com>
9192
9193 * Makefile.in (dbxout.o): Depend on ggc.h.
9194 (dwarf2out.o): Likewise.
9195 (xcoffout.o): Likewise.
9196 * dbxout.c: Include ggc.h.
9197 (dbxout_init): Register lastfile as a root.
9198 * dwarf2out.c: Include ggc.h.
9199 (dwarf2out_line): Register lastfile as a root.
9200 * xcoffout.c: Include ggc.h.
9201 (xcoffout_source_line): Register xcoff_lastfile as a root.
9202
9203 Sat Nov 6 09:52:09 1999 Richard Henderson <rth@cygnus.com>
9204
9205 * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
9206
9207 Sat Nov 6 07:48:59 1999 Catherine Moore <clm@cygnus.com>
9208
9209 * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
9210 defined.
9211 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
9212
9213 Fri Nov 5 18:33:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
9214
9215 * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
9216 (EXECUTE_IF_CONFLICT): Likewise.
9217 (ALLOCNO_LIVE_P): Avoid signed division.
9218 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
9219 (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
9220 (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
9221
9222 Fri Nov 5 12:04:02 1999 Richard Henderson <rth@cygnus.com>
9223
9224 * haifa-sched.c (schedule_block): Don't crash if there's no
9225 next insn for an interblock movement.
9226 (add_branch_dependences): Don't allow clobber insns to move either.
9227
9228 Fri Nov 5 10:18:11 1999 Richard Henderson <rth@cygnus.com>
9229
9230 * i386.c (split_xf): New.
9231 * i386-protos.h: Declare it.
9232 * i386.md (movxf_1): Add general regs alternatives.
9233 (movxf_1+1): New splitter for same.
9234
9235 Fri Nov 5 12:05:52 1999 Nick Clifton <nickc@cygnus.com>
9236
9237 * function.c (purge_addressof_1): Add missing return values.
9238
9239 Fri Nov 5 10:07:25 1999 Nick Clifton <nickc@cygnus.com>
9240
9241 * function.c (is_addressof): New function. Returns true if
9242 the given piece of RTL is an ADDRESSOF.
9243 (purge_addressof_1): Make boolean. Return false if the
9244 ADDRESSOFs could not be purged.
9245 (purge_addressof): If ADDRESSOFs could not be purged from the
9246 notes attached to an insn, remove the offending note(s),
9247 unless they are attached to a libcall.
9248
9249 1999-11-05 Andreas Jaeger <aj@suse.de>
9250
9251 * genoutput.c (null_operand =): Initialize all fields.
9252
9253 * errors.h: Add extern to prototypes.
9254
9255 Fri Nov 5 01:44:09 1999 Jeffrey A Law (law@cygnus.com)
9256
9257 * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
9258 * configure: Rebuilt.
9259
9260 Fri Nov 5 01:24:37 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
9261
9262 * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
9263 (mirror_conflicts): New function.
9264 (global_alloc): Call it.
9265 (expand_preferences): Remove redundant CONFLICTP test.
9266 (find_reg, dump_conflicts): Likewise.
9267 (prune_preferences): Process conflicts one word at a time.
9268
9269 Fri Nov 5 01:05:21 1999 Richard Henderson <rth@cygnus.com>
9270
9271 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
9272 instead of an explicit loop.
9273
9274 Thu Nov 4 23:07:14 1999 Jim Wilson <wilson@cygnus.com>
9275
9276 * cse.c (cse_insn): Revert Oct 31 change. When computing src_elt,
9277 if REG_RETVAL check succeeds, then put classp in src_elt.
9278
9279 Thu Nov 4 23:48:14 1999 Jeffrey A Law (law@cygnus.com)
9280
9281 * function.c (pad_to_arg_alignment): Only update argument_pad
9282 if the argument's alignment is greater than STACK_BOUNDARY.
9283
9284 Thu Nov 4 16:44:53 1999 Richard Henderson <rth@cygnus.com>
9285
9286 * bitmap.h (BITMAP_XFREE): New.
9287 * flow.c (life_analysis): Use it.
9288 (life_analysis_1): Free blocks.
9289
9290 * combine.c (undo_commit): New.
9291 (try_combine): Use it. Don't zap undobuf.undos.
9292 (combine_instructions): Don't zap undobuf.undos; free the
9293 undobuf.frees list.
9294
9295 * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
9296
9297 * stmt.c (cost_table_): New.
9298 (estimate_case_costs): Use it instead of xmalloc.
9299
9300 * toplev.c (compile_file): Reuse dumpname memory instead
9301 of strdup'ing it.
9302
9303 Thu Nov 4 16:36:44 1999 Richard Henderson <rth@cygnus.com>
9304
9305 * reg-stack.c (convert_regs_1): Initialize target_stack->top
9306 after verifying an EH edge.
9307
9308 * haifa-sched.c (init_rgn_data_dependences): Correctly
9309 size bb_pending_lists_length when zeroing.
9310
9311 Thu Nov 4 16:36:36 1999 Richard Henderson <rth@cygnus.com>
9312
9313 * function.c (diddle_return_value): New.
9314 (expand_function_end): Use it.
9315 * stmt.c (expand_null_return): Likewise.
9316 (expand_value_return): Likewise.
9317
9318 * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
9319
9320 * reload1.c (reload): Don't remove return value clobbers.
9321
9322 Thu Nov 4 13:33:46 1999 Richard Henderson <rth@cygnus.com>
9323
9324 * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
9325
9326 Thu Nov 4 12:49:52 1999 Richard Henderson <rth@cygnus.com>
9327
9328 * cse.c (cse_main): Use xmalloc, not alloca.
9329 (cse_basic_block): Likewise.
9330 * local-alloc.c (local_alloc): Likewise.
9331
9332 Thu Nov 4 14:22:12 1999 David Billinghurst <David.Billinghurst@riotinto.com.au>
9333 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
9334
9335 * rtl.c: Include toplev.h.
9336 (fatal): Remove declaration.
9337
9338 Thu Nov 4 06:39:47 1999 Jeffrey A Law (law@cygnus.com)
9339
9340 * haifa-sched.c (schedule_block): Fix thinko.
9341
9342 1999-11-03 James McKelvey <mckelvey@fafnir.com>
9343
9344 * fixinc/fixincl.c(create_file): Allow for systems that do not have
9345 S_IR* defined values
9346
9347 1999-11-03 Philippe De Muyter <phdm@macqel.be>
9348
9349 * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
9350 call `malloc' instead.
9351
9352 Wed Nov 3 23:05:14 1999 Mark Mitchell <mark@codesourcery.com>
9353
9354 * flags.h (flag_renumber_insns): Declare.
9355 * emit-rtl.c (renumber_insns): Check flag_renumber_insns. Print
9356 renumbering table.
9357 * rtl.h (renumber_insns): Change prototype.
9358 * toplev.c (flag_renumber_insns): Define.
9359 (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
9360
9361 Wed Nov 3 15:11:27 1999 David S. Miller <davem@redhat.com>
9362
9363 * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
9364 and fpsqrtd. Use them and create fdiv function unit to more
9365 accurately represent fpu sqrt pipeline semantics on UltraSparc.
9366 * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
9367
9368 Wed Nov 3 15:11:27 1999 Matteo Frigo <athena@fftw.org>
9369
9370 * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
9371 3 on UltraSparc.
9372 * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
9373 insn into ready list, do not use just a raw swap.
9374
9375 Wed Nov 3 14:51:59 1999 Mark P. Mitchell <mark@codesourcery.com>
9376
9377 * rtl.h (renumber_insns): New function.
9378 (remove_unnecessary_notes): Likewise.
9379 * emit-rtl.c (renumber_insns): Define.
9380 (remove_unncessary_notes): Likewise.
9381 * toplev.c (rest_of_compilation): Remove dead code.
9382 Use renumber_insns and remove_unncessary_notes.
9383
9384 * gcse.c (struct null_pointer_info): New type.
9385 (get_bitmap_width): New function.
9386 (current_block): Remove.
9387 (nonnull_local): Likewise.
9388 (nonnull_killed): Likewise.
9389 (invalidate_nonnull_info): Take a null_pointer_info as input.
9390 (delete_null_pointer_checks_1): New function.
9391 (delete_null_pointer_checks): Use it.
9392
9393 * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
9394 (split_edges): Likewise.
9395 (schedule_block): Likewise.
9396 (compute_block_backward_dependencies): Likewise.
9397 (schedule_region): Likewise.
9398 (schedule_insns): Likewise.
9399
9400 Wed Nov 3 15:40:23 1999 Catherine Moore <clm@cygnus.com>
9401
9402 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
9403 * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
9404 * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
9405 * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
9406 * jump.c (delete_unreferenced_labels): Don't delete if
9407 LABEL_ALTERNATE_NAME is set.
9408 * print-rtl.c (print_rtx): Dump alternate name.
9409 * rtl.def (CODE_LABEL): Change format to "iuuis00s".
9410 * rtl.h (LABEL_ALTERNATE_NAME): Define.
9411 * rtl.texi (LABEL_ALTERNATE_NAME): Document.
9412 * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
9413
9414 Wed Nov 3 15:39:19 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9415
9416 * fix-header.c (recognized_extern, recognized_function): Constify
9417 a char*.
9418
9419 * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
9420 (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
9421 (compute_available): Remove unused variable `last'.
9422 (compute_nearerout): Remove unused variable `temp_bitmap'.
9423 (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
9424 Remove unused variable `x'.
9425
9426 * scan.h (recognized_function, recognized_extern): Constify a
9427 char*.
9428
9429 * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
9430
9431 Wed Nov 3 10:40:53 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
9432
9433 * varasm.c (decode_rtx_const): Use XSTR to access the string
9434 of a SYMBOL_REF.
9435
9436 Wed Nov 3 10:10:58 1999 Richard Henderson <rth@cygnus.com>
9437
9438 * c-decl.c (duplicate_decls): Copy DECL_MODE too.
9439
9440 Wed Nov 3 12:12:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9441
9442 * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
9443
9444 Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com)
9445
9446 * pa.c (ireg_operand): New function.
9447 * pa.h (PREDICATE_CODES): Handle ireg_operand.
9448 * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
9449 Fix out of date comment.
9450
9451 * pa.md (negdi2): Turn into expander + anonymous pattern.
9452
9453 * reload.c (find_reloads): Fix typos in recent change.
9454
9455 * dwarf2out.c: Do not include ctype.h.
9456
9457 Tue Nov 2 21:53:44 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9458
9459 * regclass.c (record_reg_classes): Always use may_move_cost when
9460 seeing how operand fits with various register classes.
9461
9462 Tue Nov 2 15:38:17 1999 Richard Henderson <rth@cygnus.com>
9463
9464 * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
9465 * toplev.c: Revert Nov 1 13:22 change.
9466
9467 Tue Nov 2 14:21:37 1999 Jason Eckhardt <jle@cygnus.com>
9468
9469 * config/pa/pa.md (height reduction patterns): Add checks for
9470 overlapping operands to avoid semantic-destroying splits for
9471 height reduction patterns.
9472
9473 Tue Nov 2 15:27:31 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
9474
9475 * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
9476 have been an hyphen, fixed.
9477 * configure: Rebuilt.
9478
9479 Tue Nov 2 17:04:36 1999 Nick Clifton <nickc@cygnus.com>
9480
9481 * config/arm/tpe.h: Add prototypes for exported functions.
9482 * config/arm/pe.c: Fix compile time warnings.
9483 * config/arm/semi.h: Fix compile time warnings.
9484 * config/arm/arm.c: Fix compile time warnings.
9485 * config/arm/arm.h: Fix compile time warnings.
9486 * config/arm/arm.md: Fix compile time warnings.
9487 * config/arm/thumb.c: Fix compile time warnings.
9488 * config/arm/thumb.h: Fix compile time warnings.
9489 * config/arm/thumb.md: Fix compile time warnings.
9490
9491 Tue Nov 2 04:10:24 1999 Jan Hubicka <hubicka@freesoft.cz>
9492
9493 * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
9494 detection code
9495
9496 * unroll.c (unroll_loop): Remove LOOP notes when loop is
9497 completely unrolled.
9498
9499 Tue Nov 2 16:57:22 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9500
9501 * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
9502
9503 Tue Nov 2 09:43:00 1999 Catherine Moore <clm@cygnus.com>
9504
9505 * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
9506 * rtl.h (rtx_equal_p): Move prototype.
9507 * rtl.c (rtx_equal_function_value_matters): Move from
9508 rtlanal.c
9509 (rtx_equal_p): Likewise.
9510 * rtlanal.c (rtx_equal_function_value_matters): Delete.
9511 (rtx_equal_p): Likewise.
9512
9513 Mon Nov 1 23:21:17 1999 Jason Merrill <jason@yorick.cygnus.com>
9514
9515 * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
9516 ! HAS_INIT_SECTION.
9517
9518 Mon Nov 1 23:37:38 1999 Jeffrey A Law (law@cygnus.com)
9519
9520 * gcc.1 (PA options): Remove obsolete -mshared-libs options.
9521
9522 * pa.h (ADDR_VEC_ALIGN): Define.
9523
9524 * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
9525 notes when presented with "if (foo) break; end_of_loop" and
9526 the break sequence gets moved out of the loop.
9527
9528 * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
9529 Remove explicit zero initializations of entries within MAP.
9530
9531 Mon Nov 1 18:09:14 1999 Richard Henderson <rth@cygnus.com>
9532
9533 * reg-stack.c (convert_regs_1): Handle EH edges specially.
9534
9535 Mon Nov 1 15:41:01 1999 Mark P. Mitchell <mark@codesourcery.com>
9536
9537 * bitmap.h (BITMAP_XMALLOC): New macro.
9538 * flow.c (CLEAN_ALLOCA): Remove.
9539 (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
9540 (life_analysis): Likewise.
9541 (update_life_info): Don't use CLEAN_ALLOCA.
9542 (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
9543 (calculate_global_regs_live): Likewise.
9544 (print_rtl_with_bb): Likewise.
9545 (verify_flow_info): Likewise.
9546 * global.c (global_alloc): Likewise.
9547 (global_conflicts): Likewise.
9548 * integrate.c (save_for_inline_nocopy): Likewise.
9549 (expand_inline_function): Likewise.
9550 * jump.c (jump_optimize_1): Likewise.
9551 (duplicate_loop_exit_test): Likewise.
9552 (thread_jumps): Likewise.
9553 * loop.c (loop_optimize): Likewise.
9554 (combine_givs): Likewise.
9555 (recombine_givs): Likewise.
9556 * reorg.c (dbr_schedule): Likewise.
9557 * unroll.c (unroll_loop): Likewise.
9558
9559 * combine.c (combine_instructions): Use xmalloc instead of alloca.
9560
9561 Mon Nov 1 13:22:30 1999 Richard Henderson <rth@cygnus.com>
9562
9563 * toplev.c (rest_of_compilation): Don't optimize the CFG
9564 when rebuilding, just before dbr.
9565
9566 Mon Nov 1 14:35:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9567
9568 * output.h (assemble_end_function, assemble_destructor,
9569 assemble_constructor, assemble_gc_entry, assemble_global,
9570 assemble_label, output_constant_pool) Constify a char*.
9571
9572 * varasm.c (assemble_destructor, assemble_constructor,
9573 assemble_gc_entry, assemble_end_function, assemble_global,
9574 assemble_label, output_constant_pool): Likewise.
9575
9576 Mon Nov 1 14:22:51 1999 Nick Clifton <nickc@cygnus.com>
9577
9578 * config/arm/thumb.c (thumb_expand_prologue): Add comments
9579 explaining what is goin on in this function.
9580
9581 Mon Nov 1 08:03:15 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9582
9583 * regclass.c (record_reg_classes): In matching case, recompute
9584 costs since the direction of movement is different.
9585
9586 Sun Oct 31 21:59:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
9587
9588 * resource.c (mark_target_live_regs): For unconditional branches,
9589 the resources found at the branch target should be added to the
9590 resources found so far, not intersected.
9591
9592 Sun Oct 31 15:48:49 1999 Philippe De Muyter <phdm@macqel.be>
9593
9594 * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
9595 old cpp's.
9596 * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
9597 (sys/mman.h): Include this file only if #HAVE_MMAP.
9598 (run_compiles): Initialize `esac_fmt' with one old KR string, not
9599 with automatically concatenated ANSI strings.
9600
9601 Sun Oct 31 23:57:07 1999 Mark Mitchell <mark@codesourcery.com>
9602
9603 * ggc-page.c (struct page_entry): Remove save_num_free_objects.
9604 (DIV_ROUND_UP): Robustify.
9605 (ggc_recalculate_in_use_p): New function.
9606 (release_pages): Don't inline it.
9607 (ggc_alloc_obj): Don't refuse to allocate objects on pages for
9608 outer contexts.
9609 (ggc_pop_context): Use ggc_recalculate_in_use_p.
9610 (clear_marks): Always save in_use_p.
9611 (sweep_pages): Use ggc_recalculate_in_use_p.
9612 (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
9613 Release pages before counting statistics.
9614
9615 Sun Oct 31 23:42:37 1999 Mark Mitchell <mark@codesourcery.com>
9616
9617 * toplev.c (rest_of_compilation): Fix thinko in this change:
9618
9619 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
9620
9621 (rest_of_compilation): If inside an inlined external function,
9622 pretend we are just being declared.
9623
9624 Sun Oct 31 23:03:25 1999 Jeffrey A Law (law@cygnus.com)
9625
9626 * flow.c (calculate_global_regs_live): Fix thinko.
9627
9628 * integrate.c (expand_inline_function): Fix bugs in previous
9629 change from Oct 28, 1999.
9630
9631 Sun Oct 31 20:27:45 1999 Mark Mitchell <mark@codesourcery.com>
9632
9633 * stmt.c (expand_value_return): Fix typo in this change:
9634
9635 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9636 (expand_value_return): Correctly convert VAL when promoting function
9637 return; support RETURN_REG being a PARALLEL.
9638
9639 Sun Oct 31 20:25:42 1999 Mark P. Mitchell <mark@codesourcery.com>
9640
9641 * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
9642
9643 Sun Oct 31 20:42:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9644
9645 * hard-reg-set.h (reg_names): Constify a char*.
9646
9647 * regclass.c (reg_names): Likewise.
9648
9649 * regs.h (reg_names): Likewise
9650
9651 * a29k/a29k.c (reg_names): Delete declaration.
9652
9653 * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
9654
9655 * arc/arc.c (arc_save_restore, arc_output_function_prologue,
9656 arc_output_function_epilogue): Likewise.
9657
9658 * elxsi/elxsi.c (reg_names): Likewise.
9659
9660 * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
9661
9662 * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
9663 Likewise.
9664
9665 * m88k/m88k.c (output_function_profiler): Likewise.
9666
9667 * sparc/sparc.c (sparc_flat_output_function_prologue,
9668 sparc_flat_output_function_epilogue): Likewise.
9669
9670 Sun Oct 31 13:32:15 CET 1999 Marc Lehmann <pcg@goof.com>
9671
9672 * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
9673 warning from -Wuninitialized and put it under -W.
9674 * function.c (uninitialized_vars_warning): Warn only when the
9675 corresponding flag is set.
9676
9677 Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com)
9678
9679 * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
9680 is nonzero and the single set does not have an elt, then assign
9681 it an elt.
9682
9683 * simplify-rtx.c: New file.
9684 * Makefile.in (OBJS): Add simplify-rtx.o
9685 (simplify-rtx.o): Add dependencies.
9686 * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
9687 * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
9688 (cse_gen_binary, simplify_unary_operation): Delete.
9689 (simplify_binary_operation, simplify_plus_minus): Likewise.
9690 (check_fold_consts, simplify_relation_operation): Likewise.
9691 (simplify_ternary_operation): Likewise.
9692 (delete_trivially_dead_insns): Simplify the contents of the
9693 REG_EQUAL note before trying to substitute it into the source
9694 of the reg-reg copy at the end of a libcall sequence.
9695
9696 * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All
9697 references/callers changed.
9698
9699 * mn10200.c (mn10200_va_arg): Force the return value into a
9700 register.
9701
9702 * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
9703
9704 * cccp.c (macroexpand): Avoid out of range accesses for omitted
9705 arguments.
9706
9707 Sat Oct 30 22:42:50 1999 Stephen L Moshier <moshier@mediaone.net>
9708
9709 * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
9710
9711 Sat Oct 30 22:19:26 1999 Jeffrey A Law (law@cygnus.com)
9712
9713 * fold-const.c (fold): Fix thinko when optimizing comparisons
9714 against -0.0.
9715
9716 Sat Oct 30 21:32:17 1999 David Starner <dstarner98@aasaa.ofe.org>
9717
9718 * gcc.texi (Passes): Update front-end files to their current
9719 location.
9720
9721 Sat Oct 30 14:41:40 1999 Richard Henderson <rth@cygnus.com>
9722
9723 * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
9724 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
9725 (PREDICATE_CODES): Add addition_operation.
9726 * alpha-protos.h (addition_operation): Declare.
9727 (secondary_reload_class): Likewise.
9728 * alpha.c (addition_operation): New.
9729 (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
9730 * alpha.md (adddi3): Turn into expander.
9731 (*lda, *adddi_2): New.
9732 (movsf, movdf patterns): Don't preference integer regs.
9733 (movsi, movdi patterns): Don't preference fp regs.
9734
9735 Sat Oct 30 14:38:22 1999 Richard Henderson <rth@cygnus.com>
9736
9737 * genrecog.c (write_switch): Check for duplicate CODE cases.
9738
9739 Sat Oct 30 14:31:48 1999 Richard Henderson <rth@cygnus.com>
9740
9741 * ggc-common.c: Update pre-function commentary.
9742 * ggc-page.c: Likewise.
9743 (poison): Remove.
9744 (poison_pages): Use memset directly.
9745 (ggc_alloc_obj): Likewise. Use a different pattern than poison_pages.
9746 (ggc_collect): Poison before sweeping.
9747 * ggc-simple.c: Update pre-function commentary.
9748 (ggc_alloc_obj): Poison non-zeroed memory.
9749
9750 Sat Oct 30 14:28:52 1999 Mark Mitchell <mark@codesourcery.com>
9751
9752 * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
9753 match format string, even on 64-bit hosts.
9754 * gcc-page.c (ggc_page_print_statistics): Likewise.
9755
9756 Sat Oct 30 14:38:04 1999 Catherine Moore <clm@cygnus.com>
9757
9758 * config/i386/i386.c (ix86_cpu): Revert last patch.
9759 * config/i386/i386.h (ix86_cpu): Ditto.
9760
9761 Fri Oct 29 17:00:42 1999 Jim Wilson <wilson@cygnus.com>
9762
9763 * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
9764 TYPE_SIZE, convert type of result to sizetype.
9765
9766 Fri Oct 29 14:34:17 1999 Richard Henderson <rth@cygnus.com>
9767
9768 * flow.c (count_or_remove_death_notes): Equate NULL with the
9769 universal set.
9770
9771 * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
9772 * toplev.c (rest_of_compilation): Rebuild CFG immediately before
9773 dbr_schedule.
9774
9775 * i386.c (pic_label_no): Delete.
9776 (ix86_attr_length_default): Don't use single_set to peek
9777 inside a parallel.
9778
9779 * recog.c (peephole2_optimize): Allow recog_next_insn to index
9780 the first insn after bb->end.
9781 * i386.md (push mem peeps): Scratch is live after evaluation
9782 of the memory.
9783 (cmp mem peep): Similarly.
9784
9785 Fri Oct 29 11:50:11 1999 Catherine Moore <clm@cygnus.com>
9786
9787 * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
9788 * function.c (pad_to_arg_alignment): Add missing braces.
9789
9790 Fri Oct 29 13:53:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9791
9792 * alpha/alpha-protos.h (literal_section): Add prototype.
9793 (alpha_need_linkage, alpha_start_function,alpha_end_function):
9794 Constify a char*.
9795
9796 * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
9797 prototype.
9798 (alpha_start_function, alpha_end_function, float_strings,
9799 alpha_need_linkage): Constify a char*
9800
9801 * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
9802
9803 * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
9804
9805 * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
9806
9807 * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
9808
9809 Fri Oct 29 13:49:39 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9810
9811 * flow.c (debug_flow_info): Add prototype.
9812
9813 * gcc.c (main): Likewise.
9814
9815 * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
9816 Likewise.
9817
9818 * reload1.c (failed_reload, set_reload_reg): Likewise.
9819
9820 * mips-tfile.c (main): Likewise.
9821 (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
9822 with ATTRIBUTE_NORETURN.
9823
9824 Fri Oct 29 18:16:03 1999 Andrew Haley <aph@cygnus.com>
9825
9826 * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
9827 DECL is not a memory ref.
9828
9829 Fri Oct 29 09:05:34 1999 Catherine Moore <clm@cygnus.com>
9830
9831 * config/i386/i386.h (ix86_cpu): Remove extern attribute.
9832 * config/i386/i386.c (ix86_cpu): Add extern attribute.
9833
9834 Fri Oct 29 16:30:04 1999 Andrew Haley <aph@cygnus.com>
9835
9836 * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
9837 * config/mips/elf64.h: ditto.
9838
9839 Fri Oct 29 08:03:57 1999 Catherine Moore <clm@cygnus.com>
9840
9841 * expr.c (emit_push_insn): New argument alignment_pad.
9842 Update all callers. Adjust stack pointer based on alignment pad.
9843 * function.c (pad_to_arg_alignment): New argument alignment_pad.
9844 Update all callers. Track alignment_pad if boundary > PARM_BOUNDARY.
9845 (locate_and_pad_parm): New argument alignment_pad. Update all
9846 callers.
9847 * expr.h (emit_push_insn): Update prototype.
9848 (locate_and_pad_parm): Update prototype.
9849 * calls.c (arg_data): Add new field alignment_pad.
9850 (initialize_argument_information): Initialize alignment_pad.
9851
9852 Fri Oct 29 02:51:35 1999 Mark Mitchell <mark@codesourcery.com>
9853
9854 * except.c (free_eh_nesting_info): Free the info itself.
9855 * function.c (free_after_compilation): Don't free NULL.
9856 * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
9857 (pre_edge_insert): Free inserted.
9858 * stmt.c (free_stmt_status): Don't free NULL.
9859
9860 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
9861
9862 * gcov.c (DIR_SEPARATOR): Provide default.
9863 (output_data): Add test for MS-DOS format absolute filename.
9864 (fancy_abort): Correct program name.
9865 (open_files): Open all files in binary mode.
9866 * libgcc2.c (__bb_exit_func): Likewise.
9867
9868 * profile.c (init_branch_prob): Specify binary when opening files.
9869
9870 * flags.h (flag_unwind_tables): New decl.
9871 * toplev.c (flag_unwind_table): New definition.
9872 (f_options): Add -funwind-tables.
9873 (decode_g_option): Clarify warning when unknown -g option is given.
9874 (rest_of_compilation): If inside an inlined external function,
9875 pretend we are just being declared.
9876
9877 * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
9878 (dwarf2out_frame_finish): Likewise.
9879
9880 Fri Oct 29 07:44:26 1999 Vasco Pedro <vp@di.fct.unl.pt>
9881
9882 * fold-const.c (merge_ranges): If not in0, but in1, handle
9883 upper bounds equal like subset case.
9884
9885 Thu Oct 28 19:22:24 1999 Douglas Rupp <rupp@gnat.com>
9886
9887 * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
9888 passed in a register but moved to the stack.
9889
9890 Thu Oct 28 19:12:57 1999 Sam Tardieu <tardieu@act-europe.fr>
9891
9892 * gcc.c (pass_exit_codes, greatest_status): New variables.
9893 (struct option_map): Add entry for "--pass-exit-codes".
9894 (execute): Update greatest_status if error.
9895 (display_help): Add documentation for -pass-exit-codes.
9896 (process_command): Handle -pass-exit-codes.
9897 (main): Look at pass_exit_codes and greatest_status on call to exit.
9898
9899 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9900
9901 * reload.c (find_reloads): Refine test for no input reload
9902 case to not includes reloads emitted after insn.
9903
9904 * function.c (find_temp_slots_from_address): Handle sum involving
9905 a register that points to a temp slot.
9906 (update_temp_slot_address): Make recursive call if both old and
9907 new are PLUS with a common operand.
9908 * calls.c (expand_call): Mark temp slot for result as having
9909 address taken.
9910
9911 * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
9912
9913 * gcc.c (process_command): Add standard_exec_prefix with "GCC"
9914 component as well as "BINUTILS".
9915
9916 * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
9917 * integrate.c (copy_rtx_and_substitute): Likewise.
9918 (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
9919 All callers changed.
9920 * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
9921
9922 * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
9923 gdb extensions, write size of type; also be more consistent
9924 in using references when this is a subtype.
9925
9926 * pa.md (extv, extzv, insv): Use define_expand to reject constant
9927 that is out of range.
9928
9929 * loop.c (unknown_constant_address_altered): New variable.
9930 (prescan_loop): Initialize it.
9931 (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
9932 (invariant_p, case MEM): Remove handling for volatile and readonly;
9933 check new variable if readonly.
9934 (check_dbra_loop): Chdeck unknown_constant_address_altered.
9935
9936 * cse.c (canon_hash, case MEM): Do not record if BLKmode.
9937 (addr_affects_sp_p): Removed from note_mem_written and only
9938 define #ifdef AUTO_INC_DEC.
9939
9940 * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
9941
9942 * regclass.c (record_reg_classes): Properly handle register move
9943 directions.
9944
9945 * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
9946 Don't think valid if both operands are invalid.
9947 (struct constant_descriptor): New field RTL.
9948 (mark_const_hash_entry): Mark it.
9949 (record_constant{,_rtx}): Initialize it.
9950 (output_constant_def): Allocate RTL in permanent obstack and
9951 save in table.
9952 ({record,compare}_constant_1): Modes must match for
9953 CONSTRUCTOR of ARRAY_TYPE.
9954
9955 * c-common.h (initializer_constant_valid_p): Delete decl from here.
9956 * output.h (initializer_constant_valid_p): Move decl to here.
9957 * c-common.c (initializer_constant_valid_p): Delete function from here.
9958 * varasm.c (initializer_constant_valid_p): Move function to here.
9959
9960 * tree.h (STRIP_SIGN_NOPS): New macro.
9961 * fold-const.c (optimize_minmax_comparison): New function.
9962 (invert_truthvalue, case WITH_RECORD_EXPR): New case.
9963 (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
9964 (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
9965 cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
9966 widening conversions.
9967 (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
9968 to look at size of mode, not precision of type; also add missing cases.
9969 (optimize_bit_field_compare, decode_field_reference): Don't try to
9970 optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
9971
9972 * dwarf2out.c (ctype.h): Include.
9973 (dwarf2out_set_demangle_name_func): New function.
9974 (size_of_line_info): Deleted.
9975 (output_line_info): Compute size of line info table from difference
9976 of labels.
9977 (base_type_die, add_name_attribute): Call demangle function, if any.
9978 (field_byte_offset): Use bits per word for variable length fields.
9979 (gen_array_type_die): Add array name.
9980 (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
9981 (dwarf2out_add_library_unit_info): New function.
9982
9983 * explow.c (set_stack_check_libfunc): New function.
9984 (stack_check_libfunc): New static variable.
9985 (probe_stack_range): Allow front-end to set up a libfunc to call.
9986
9987 * combine.c (simplify_comparison): When making comparison in wider
9988 mode, check for having commuted an AND and a SUBREG.
9989 (contains_muldiv): New function.
9990 (try_combine): Call it when dividing a PARALLEL.
9991 (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
9992 (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
9993 a PLUS.
9994 (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
9995 use one of the CLOBBERs instead.
9996 (if_then_else_cond): If comparing against zero, just return thing
9997 being compared.
9998
9999 * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
10000 Don't generate shifts and subtract if have conditional arithmetic.
10001
10002 * rtl.h (delete_barrier): New declaration.
10003 * jump.c (jump_optimize): Set up to handle conditional call.
10004 In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
10005 (delete_barrier): New function.
10006
10007 * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
10008
10009 * recog.c (nonmemory_operand): Accept ADDRESSOF.
10010
10011 * tree.c (build_type_attribute_variant): Push to obstack of
10012 ttype around type_hash_canon call.
10013
10014 * expr.c (placeholder_list): Move decl to file scope.
10015 (expand_expr): Don't force access to volatile just because its
10016 address is taken.
10017 If ignoring reference operations, just expand the operands.
10018 (expand_expr, case COMPONENT_REF): Propagate
10019 EXPAND_CONST_ADDRESS to recursive call when expanding inner.
10020 Refine test for using bitfield operations vs pointer punning.
10021 (expand_expr, case CONVERT_EXPR): If converting to
10022 BLKmode UNION_TYPE from BLKmode, just return inner object.
10023 Use proper mode in store_field call.
10024 Properly set sizes of object to store and total size in store_field
10025 call for convert to union.
10026 (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
10027 memory (like for ADDR_EXPR). Also, don't put constant in register if
10028 we'll want it in memory.
10029 (readonly_fields_p): New function.
10030 (expand_expr, case INDIRECT_REF): Call it if LHS.
10031 (expand_assignment): Handle a RESULT_DECL where
10032 DECL_RTL is a PARALLEL.
10033 (do_jump, case WITH_RECORD_EXPR): New case.
10034 (get_inner_reference): Always go inside a CONVERT_EXPR
10035 and NOP_EXPR if both modes are the same.
10036 (store_field): Use bitfield operations if size of bitsize is not same
10037 as size of RHS's type.
10038 Check for bitpos not a multiple of alignment in BLKmode case.
10039 Do block move in largest possible alignment.
10040 (store_constructor): Set BITSIZE to -1 for variable size and properly
10041 in case of array of BLKmode.
10042 (expand_expr_unaligned): New function.
10043 (do_compare_and_jump): Call it.
10044
10045 * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
10046 * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
10047 does not include 'o'.
10048
10049 * function.c (instantiate_virtual_regs_1, case SET): Handle case where
10050 both SET_DEST and SET_SRC reference a virtual register.
10051 (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
10052
10053 * integrate.c (expand_inline_function): Handle case of setting
10054 virtual stack vars register (from built in setjmp); when parameter
10055 lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
10056 (subst_constant): Add new parm, MEMONLY.
10057 (expand_inline_function, integrate_parm_decls): Pass new parm.
10058 (integrate_decl_tree): Likewise.
10059 (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
10060 (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
10061 (copy_rtx_and_substitute, case SET): Add explicit calls to
10062 copy_rtx_and_substitute for both sides.
10063
10064 * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
10065 constraints.
10066 (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
10067 within INDEX_TYPE, instead of before.
10068 (fixup_gotos): Use f->target_rtl, not the next insn,
10069 since latter may be from a later fixup.
10070 (expand_value_return): Correctly convert VAL when promoting function
10071 return; support RETURN_REG being a PARALLEL.
10072 (expand_return): When checking for result in regs and having
10073 cleanup, consider PARALLEL in DECL_RTL as being in regs.
10074
10075 1999-10-28 21:27 -0700 Zack Weinberg <zack@bitmover.com>
10076
10077 * cpplib.h (struct cpp_buffer: fname, nominal_fname,
10078 last_nominal_fname): Mark const.
10079 (struct include_hash: name, nshort, control_macro): Mark
10080 const.
10081 (struct macrodef: symnam): Mark const.
10082 (struct if_stack: fname): Mark const.
10083 (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
10084 (IStable): New character-syntax array which encompasses all
10085 the old is_foo arrays.
10086 (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
10087 is_space): New macros for interrogating IStable.
10088 (check_macro_name): Kill last argument. All callers changed.
10089
10090 * cppinit.c (initialize_char_syntax): Delete.
10091 (is_idchar, is_idstart, is_hor_space, is_space,
10092 trigraph_table): Delete.
10093 (IStable): New. Initialize with clever macros to avoid
10094 information duplication.
10095 (builtin_array): Table of builtins to get rid of explicit list
10096 in initialize_builtins.
10097 (initialize_builtins): Use builtins_array.
10098 (cpp_start_read): Call init_IStable, and set IStable['$'] if
10099 opts->dollars_in_ident.
10100
10101 * cppexp.c: Change all refs to is_xyz[] arrays to use new
10102 is_xyz() macros.
10103 (cpp_parse_expr): Avoid 'format string is not constant'
10104 warning. Use ISGRAPH to identify printable chars.
10105 * cppfiles.c: Change all refs to is_xyz[] arrays to use new
10106 is_xyz() macros.
10107 (read_and_prescan): Map trigraphs to chars with open-coded
10108 if-else-if-... sequence, not a lookup table.
10109 * cpphash.c: Change all refs to is_xyz[] arrays to use new
10110 is_xyz() macros.
10111 * cpplib.c: Change all refs to is_xyz[] arrays to use new
10112 is_xyz() macros. Kill SKIP_ALL_WHITE_SPACE (unused).
10113 (check_macro_name): Remove ability to report an invalid
10114 assertion name, which is never used.
10115 (do_line): Constify a couple of char *'s.
10116 * cppmain.c (main): Call cpp_cleanup before returning.
10117
10118 Thu Oct 28 21:16:35 1999 Mark Mitchell <mark@codesourcery.com>
10119
10120 * ggc.h (struct ggc_statistics): New type.
10121 (ggc_get_size): New function.
10122 (ggc_print_statistics): Likewise.
10123 * ggc-common.c (ggc_stats): New variable.
10124 (ggc_mark_rtx_children): Keep statistics.
10125 (ggc_mark_tree_children): Likewise.
10126 (ggc_print_statistics): New function.
10127 * ggc-page.c (struct globals): Add bytes_mapped field.
10128 (alloc_anon): Update it.
10129 (release_pages): Likewise.
10130 (ggc_get_size): New function.
10131 (ggc_page_print_statistics): New function.
10132 * ggc-simple.c (ggc_get_size): New function.
10133
10134 Fri Oct 29 06:32:44 1999 Geoffrey Keating <geoffk@cygnus.com>
10135
10136 * flow.c (propagate_block): When the last reference to a label
10137 before an ADDR_VEC is deleted because the reference is a dead
10138 store, delete the ADDR_VEC.
10139
10140 Thu Oct 28 12:28:50 1999 Richard Henderson <rth@cygnus.com>
10141
10142 * resource.c (find_free_register): Don't use the frame pointer
10143 if frame_pointer_needed.
10144
10145 Thu Oct 28 10:02:00 1999 Jim Wilson <wilson@cygnus.com>
10146
10147 * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
10148 (function_arg_pass_by_reference): Check for a NULL pointer in cum.
10149
10150 * config/i960/i960.c (i960_va_start): New locals base, num.
10151 Use INDIRECT_REF instead of ARRAY_REF on valist.
10152 (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
10153
10154 Thu Oct 28 09:45:48 1999 Mark Mitchell <mark@codesourcery.com>
10155
10156 * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
10157
10158 Thu Oct 28 03:37:50 1999 Peter Gerwinski <peter@gerwinski.de>
10159
10160 * tree.def (PLACEHOLDER_EXPR): Update comments.
10161
10162 Thu Oct 28 06:47:32 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10163
10164 * c-common.c (check_format_info): Avoid non-literal format string
10165 warnings when `first_arg_num' is zero.
10166
10167 Thu Oct 28 12:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10168
10169 * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
10170
10171 Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com>
10172
10173 * arm.md (casesi_insn): Add a clobber of the condition code
10174 register.
10175
10176 Mon Oct 18 21:16:06 1999 Fred Fish <fnf@be.com>
10177
10178 * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
10179 used by both cc1 and cc1plus.
10180
10181 Thu Oct 28 10:00:48 1999 Nick Clifton <nickc@cygnus.com>
10182
10183 * config/arm/arm.c: Initialise arm_structure_size_boundary to
10184 DEFAULT_STRUCTURE_SIZE_BOUNDARY.
10185 * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
10186 to the value 32 if it has not already been defined.
10187 * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
10188 Override definition in arm.h with a value of 8.
10189
10190 Thu Oct 28 03:12:02 1999 David Starner <dstarner98@aasaa.ofe.org>
10191
10192 * c-pragma.c (push_alignment): Don't check the return value
10193 of xmalloc.
10194
10195 Thu Oct 28 03:08:38 1999 Matteo Frigo <athena@fftw.org>
10196
10197 * sparc.h (ADJUST_COST): Fix thinko.
10198
10199 Thu Oct 28 02:44:03 1999 Glen Nakamura <glen.nakamura@usa.net>
10200
10201 * cccp.c (rescan): Fixed obp pointer handling around call to
10202 check_expand subroutine.
10203
10204 Thu Oct 28 02:15:22 1999 Jeffrey A Law (law@cygnus.com)
10205
10206 * gcse.c (delete_null_pointer_checks): Only record non-null info
10207 for pseudos when examining stores.
10208
10209 * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
10210 splitters for these patterns. Use "#" for output templates.
10211 (addsi3_carryin_shift): New pattern.
10212
10213 Thu Oct 28 10:20:02 1999 Geoffrey Keating <geoffk@cygnus.com>
10214
10215 * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
10216 of the function return register into a plain REG until
10217 after function inlining is done.
10218
10219 Wed Oct 27 15:21:46 1999 Richard Henderson <rth@cygnus.com>
10220
10221 * jump.c (jump_optimize_1): If we did cross-jumping, and
10222 the data will matter, rebuild the CFG.
10223 * reg-stack.c (reg_to_stack): Only (re)build the CFG if
10224 not optimizing. Don't run shorten_branches.
10225 * toplev.c (rest_of_compilation): Run shorten_branches after
10226 reg_to_stack.
10227
10228 Wed Oct 27 12:33:40 1999 Mark Mitchell <mark@codesourcery.com>
10229
10230 * rtl.h (note_stores): Add additional paramter.
10231 * rtlanal.c (reg_set_p_1): Take additional paramter.
10232 (reg_set_last_1): Likewise.
10233 (reg_set_p): Adjust call to note_stores.
10234 (reg_set_last): Likewise.
10235 (note_stores): Pass data parameter to worker function.
10236 * alias.c (record_set): Take additional parameter.
10237 (init_alias_analysis): Pass it.
10238 * caller-save.c (mark_set_regs): Take additional parameter.
10239 (save_call_clobbered_regs): Pass NULL to note_stores.
10240 * combine.c (set_nonzero_bits_and_sign_copies): Take additional
10241 parameter.
10242 (record_dead_and_set_regs_1): Likewise.
10243 (reg_dead_at_p_1): Likewise.
10244 (combine_instructions): Adjust calls to note_stores.
10245 (try_combine): Likewise.
10246 (record_dead_insn): Remove.
10247 (record_dead_and_set_regs): Adjust calls to note_stores.
10248 (reg_dead_at_p): Likewise.
10249 * cse.c (invalidate_skipped_set): Take additional parameter.
10250 (cse_check_loop_start): Likewise.
10251 (cse_check_loop_start_value): Remove.
10252 (cse_set_around_loop): Adjust calls to note_stores.
10253 * flow.c (notice_stack_pointer_modification): Take additional
10254 parameter. Remove duplicate declaration.
10255 (record_volatile_insns): Adjust calls to note_stores.
10256 * gcse.c (record_set_info): Take additional parameter.
10257 (record_last_set_info): Likewise.
10258 (invalidate_nonnull_info): Likewise.
10259 (record_set_insn): Remove.
10260 (compute_sets): Adjust calls to note_stores.
10261 (last_set_insn): Remove.
10262 (compute_hash_table): Adjust calls to note_stores.
10263 (insert_insn_end_bb): Likewise.
10264 (delete_null_pointer_checks): Likewise.
10265 * global.c (mark_reg_store): Take additional parameter.
10266 (mark_reg_clobber): Likewise.
10267 (reg_becomes_live): Likewise.
10268 (global_conflicts): Adjust calls to note_stores.
10269 (build_insn_chain): Likewise.
10270 * integrate.c (note_modified_parmregs): Take additional parameter.
10271 (mark_stores): Likewise. Make it static.
10272 (save_for_inline_nocopy): Adjust calls to note_stores.
10273 (try_constants): Likewise.
10274 * integrate.h (mark_stores): Remove declaration.
10275 * jump.c (mark_modified_reg): Take additional parameter.
10276 (thread_jumps): Adjust calls to note_stores.
10277 * local-alloc.c (validate_equiv_mem_from_store): Take additional
10278 parameter.
10279 (no_equiv): Likewise.
10280 (reg_is_set): Likewise.
10281 (validate_equiv_mem): Adjust calls to note_stores.
10282 (update_equiv_regs): Likewise.
10283 (block_alloc): Likewise.
10284 * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
10285 (note_addr_stored): Take additional parameter.
10286 (note_set_pseudo_multiple_uses): Likewise.
10287 (record_initial): Likewise.
10288 (prescan_loop): Adjust calls to note_stores.
10289 (strength_reduce): Likewise.
10290 (check_dbra_loop): Likewise.
10291 * regmove.c (flags_set_1): Take additional paramter.
10292 (mark_flags_life_zones): Adjust calls to note_stores.
10293 * reload1.c (mark_not_eliminable): Take additional parameter.
10294 (forget_old_reloads_1): Likewise.
10295 (reload_cse_invalidate_rtx): Likewise.
10296 (reload_cse_check_clobber): Likewise.
10297 (reload_combine_note_store): Likewise.
10298 (move2add_note_store): Likewise.
10299 (reload): Adjust calls to note_stores.
10300 (reload_as_needed): Likewise.
10301 (emit_reload_insns): Likewise.
10302 (reload_cse_regs_1): Likewise.
10303 (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
10304 (reload_combine): Adjust calls to note_stores.
10305 * resource.c (update_live_status): Take additional paramter.
10306 (mark_target_live_regs): Adjust calls to note_stores.
10307 * stupid.c (find_clobbered_regs): Take additional parameter.
10308 (stupid_life_analysis): Adjust calls to note_stores.
10309
10310 Wed Oct 27 19:26:12 1999 Nick Clifton <nickc@cygnus.com>
10311
10312 * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
10313 definition.
10314
10315 * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
10316 definition.
10317
10318 * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
10319 of the variable arm_structure_size_boundary.
10320
10321 Wed Oct 27 02:05:58 1999 Mark P. Mitchell <mark@codesourcery.com>
10322
10323 * alias.c (init_alias_analysis): Allocate reg_known_value and
10324 reg_known_equiv_p on the heap. Likewise for new_reg_base_value
10325 and reg_seen.
10326 (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
10327 * cse.c (cse_main): Call end_alias_analysis.
10328 * haifa-sched.c (schedule_insns): Likewise.
10329 * local-alloc. (update_equiv_regs): Likewise.
10330 * reload1.c (reload_cse_regs): Likewise.
10331
10332 Wed Oct 27 01:49:17 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10333
10334 * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
10335 * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
10336 mapping from MASK_FPU.
10337
10338 Wed Oct 27 01:42:26 1999 Scott Christley <scottc@net-community.com>
10339
10340 * sparc.md (call): Don't bound structure return size to 0xfff.
10341
10342 Wed Oct 27 00:56:59 1999 Richard Henderson <rth@cygnus.com>
10343
10344 * resource.c (mark_target_live_regs): Check that the target
10345 insn wasn't created after compute_bb_for_insn.
10346
10347 Tue Oct 26 23:15:03 1999 Mark Mitchell <mark@codesourcery.com>
10348
10349 * ggc-page.c (poison_pages): Don't be overzealous.
10350
10351 Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com)
10352
10353 * alias.c: Update comments for ADDRESS.
10354 (nonlocal_reference_p): Look inside the ADDRESS to determine if
10355 it is a local memory reference.
10356
10357 * c-typeck.c (build_function_call): Check that the built-in
10358 function is of class BUILT_IN_NORMAL before trying to recongize
10359 it as BUILT_IN_ABS.
10360 * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
10361 * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
10362
10363 Wed Oct 27 00:14:13 1999 Robert Lipe <robertlipe@usa.net>
10364
10365 * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
10366 of alloca.
10367 (pre_gcse): Likewise.
10368 (hoist_expr_reaches_here_p): Likewise.
10369 (hoist_code): Likewise.
10370 (pre_expr_reaches_here_p): Replace alloca with xcalloc. Move core
10371 code to ...
10372 (pre_expr_reaches_here_p_work): ... here.
10373 (expr_reaches_here_p): Replace alloca with xcalloc. Move core
10374 code to ...
10375 (expr_reaches_here_p_work): ... here.
10376
10377 Tue Oct 26 20:42:45 1999 Richard Henderson <rth@cygnus.com>
10378
10379 * resource.c (find_basic_block): Delete.
10380 (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
10381 (init_resource_info): Call compute_bb_for_insn.
10382
10383 Tue Oct 26 20:21:02 1999 Richard Henderson <rth@cygnus.com>
10384
10385 * flow.c (merge_blocks_move_predecessor_nojumps): Cope
10386 with already adjacent blocks, but no fallthru.
10387 (merge_blocks_move_successor_nojumps): Simplify.
10388 (debug_flow_info): New.
10389
10390 * toplev.c (rest_of_compilation): Open jump1 dump file before
10391 jump and close after, as opposed to just using dump_rtl.
10392
10393 Wed Oct 27 03:09:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
10394
10395 * reload.h (earlyclobber_operand_p): Declare.
10396 * reload.c (earlyclobber_operand_p): Don't declare. No longer static.
10397 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
10398 an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
10399 case where the RELOAD_OTHER reload is new. Use earlyclobber_operand_p.
10400
10401 Tue Oct 26 18:23:38 1999 Jan Hubicka <hubicka@freesoft.cz>
10402 Richard Henderson <rth@cygnus.com>
10403
10404 * emit-rtl.c (emit_block_insn_before): New.
10405 (emit_block_insn_after): New.
10406 * basic-block.h: Declare them.
10407
10408 * bitmap.h: Protect from multiple inclusion.
10409
10410 * recog.c (scratch_operand): Handle VOIDmode correctly.
10411
10412 * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
10413
10414 * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
10415 * function.c (assign_parms): Likewise.
10416 * global.c (global_conflicts): Clarify STACK_REGS commentary.
10417
10418 * reg-stack.c (max_uid): Remove.
10419 (blocks, block_begin, block_end, block_drops_in): Remove.
10420 (block_stack_in, block_out_reg_set, block_number): Remove.
10421 (struct block_info_def, BLOCK_INFO): New.
10422 (enum emit_where): New.
10423 (current_block): New.
10424 (BLOCK_NUM): Remove.
10425 (mark_regs_pat, record_label_references): Remove.
10426 (record_reg_life_pat, record_reg_life, find_blocks): Remove.
10427 (nan): New.
10428 (goto_block_pat, print_blocks, dump_stack_info): Remove.
10429 (reg_to_stack): Simplified test for existance of fp code. Use
10430 flow.c code. Call shorten_branches after cross-jump opt.
10431 (check_asm_stack_operands): Renamed from record_asm_reg_life.
10432 Return false if the asm doesn't use stack regs. Don't do life
10433 analysis on the asm.
10434 (emit_pop_insn): Replace function pointer arg `when' with
10435 enum `where'. Update all callers.
10436 (change_stack): Likewise. Update basic block end.
10437 (emit_swap_insn): Use current_block->head to limit reverse search
10438 for start of block. Use emit_block_insn_after.
10439 (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
10440 (subst_asm_stack_regs): Use check_asm_stack_operands. Use direct
10441 structure assignment instead of bcopy.
10442 (print_stack): New.
10443 (convert_regs_entry, convert_regs_exit): New.
10444 (convert_regs_1, convert_regs_2): Split out from convert_regs.
10445 Work on basic blocks and the CFG.
10446 (convert_regs): Use them.
10447
10448 * i386.c (output_fix_trunc): Remove code for DImode input operand
10449 not at top-of-stack.
10450 * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
10451 appropriate mode.
10452 (fix_truncdi_1): Allow any mode scratch.
10453
10454 Tue Oct 26 13:30:35 1999 Richard Henderson <rth@cygnus.com>
10455
10456 * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
10457 * linux.h, netbsd.h, vms.h: Not here.
10458
10459 1999-10-26 Gavin Romig-Koch <gavin@cygnus.com>
10460
10461 * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
10462 ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
10463 (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
10464 CONDITIONAL_REGISTER_USEAGE): Use them.
10465 * config/mips/mips.c (mips_move_1word,mips_move_2words,
10466 gen_conditional_branch,override_options) : Use them.
10467 * config/mips/mips.md : Use them.
10468
10469 Tue Oct 26 13:09:23 1999 Richard Henderson <rth@cygnus.com>
10470
10471 * i386.md (zero_extendqihi2): Use SImode register name with andl.
10472
10473 Tue Oct 26 12:35:38 1999 Richard Henderson <rth@cygnus.com>
10474
10475 * integrate.c (function_cannot_inline_p): Don't allow inlining
10476 if setjmp is used.
10477
10478 Tue Oct 26 14:10:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10479
10480 * c-parse.in (cast_expr): Constify.
10481
10482 * cccp.c (special_symbol): Likewise.
10483
10484 * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
10485
10486 * dwarf2out.c (base_type_die): Likewise.
10487
10488 * global.c (allocno_compare): Likewise.
10489
10490 * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
10491
10492 * regclass.c (fix_register): Likewise.
10493
10494 * rtl.h (fix_register): Likewise.
10495
10496 * stupid.c (stupid_reg_compare): Likewise.
10497
10498 * toplev.c (decode_f_option): Likewise.
10499
10500 * tree.c (build_complex_type): Likewise.
10501
10502 Tue Oct 26 18:35:25 1999 Richard Earnshaw <rearnsha@arm.com>
10503
10504 * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
10505
10506 Tue Oct 26 15:42:56 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10507
10508 * reload.c (find_reloads): Compute mode and nregs fields of all
10509 reloads.
10510 * reload1.c (calculate_needs_all_insns): Simplify a bit.
10511 (calculate_needs): Use precomputed mode/nregs values.
10512 (allocate_reload_reg): Likewise.
10513 Break out two...
10514 (failed_reload, set_reload_reg): ... new functions.
10515 (choose_reload_regs_init): New function, mostly broken out from...
10516 (choose_reload_regs): ... here. Lose all the save_xxx nonsense.
10517 Also lose one #if 0 block.
10518
10519 Tue Oct 26 02:48:32 1999 Marc Espie <espie@cvs.openbsd.org>
10520
10521 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET): Fix target name
10522 substitution.
10523
10524 Tue Oct 26 01:27:32 1999 Mark Mitchell <mark@codesourcery.com>
10525
10526 * tree.h (BLOCK_TYPE_TAGS): Remove.
10527 (BLOCK_END_NOTE): Likewise.
10528 (BLOCK_LIVE_RANGE_FLAG): Likewise.
10529 (BLOCK_LIVE_RANGE_START): Likewise.
10530 (BLOCK_LIVE_RANGE_END): Likewise.
10531 (tree_block): Remove live_range_flag, live_range_var_flag, and
10532 type_tags. Remove end_note, live_range_start, and live_range_end.
10533 (remember_end_note): Remove prototype.
10534 * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
10535 * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
10536 remember_end_note.
10537 * ggc-common.c (ggc_mark_tree_children): Don't mark
10538 BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
10539 * integrate.c (adjust_copied_decl_tree): Remove.
10540 * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
10541 * stmt.c (last_block_end_note): Remove.
10542 (init_stmt): Don't add a GC root for it.
10543 (expand_fixup): Don't set it.
10544 (remember_end_note): Remove.
10545 (expand_end_bindings): Don't set last_block_end_note.
10546
10547 Tue Oct 26 00:41:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10548
10549 * reload1.c (reload_reg_free_for_value_p): Show
10550 RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
10551 reloads.
10552
10553 Mon Oct 25 23:54:45 1999 Geoff Keating <geoffk@cygnus.com>
10554
10555 * expmed.c (extract_bit_field): Allow for the case of non-integer
10556 objects that are smaller than a word (like SFmode on a 64-bit
10557 machine).
10558
10559 * loop.c (basic_induction_var): A non-integer variable which is
10560 being set by a paradoxical subreg is probably not a biv.
10561
10562 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10563
10564 * prefix.c (translate_name) Check for empty prefix string.
10565
10566 Mon Oct 25 23:10:45 1999 Andreas Schwab <schwab@suse.de>
10567
10568 * Makefile.in (CPP_CROSS_NAME): New variable.
10569 (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
10570 xcpp.
10571 (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
10572 names of the files to be uninstalled.
10573
10574 Mon Oct 25 23:03:09 1999 Jeffrey A Law (law@cygnus.com)
10575
10576 * collect2.c (IS_DIR_SEPARATOR): Define.
10577 (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
10578
10579 * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
10580 functions too.
10581
10582 * haifa-sched.c (add_dependence): Update the true dependency
10583 cache the first time we add a true dependence to the LOG_LINKS chain.
10584
10585 Mon Oct 25 22:27:40 1999 Jim Kingdon <http://developer.redhat.com/>
10586
10587 * fold-const.c (fold): Fix comment.
10588
10589 Mon Oct 25 22:49:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10590
10591 * dbxout.c (lastfile, cwd, dbxout_type_method_1,
10592 dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
10593 dbxout_start_new_source_file, dbxout_source_file,
10594 dbxout_source_line, dbxout_finish, dbxout_type_fields,
10595 dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
10596 Constify a char*.
10597 (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
10598 (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
10599 (dbxout_block): Initialize variable `blocknum'.
10600
10601 * dbxout.h (dbxout_init, dbxout_finish,
10602 dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
10603 dbxout_args, dbxout_source_line): Constify a char*.
10604
10605 * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
10606 dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
10607 dwarf_fund_type_name, name_attribute, stmt_list_attribute,
10608 low_pc_attribute, high_pc_attribute, body_begin_attribute,
10609 body_end_attribute, comp_dir_attribute, sf_names_attribute,
10610 src_info_attribute, mac_info_attribute, producer_attribute,
10611 lookup_filename, generate_macinfo_entry, fundamental_type_code,
10612 dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
10613 dwarfout_undef): Constify a char*.
10614 (add_incomplete_type, retry_incomplete_types): Add prototypes.
10615
10616 * dwarfout.h (dwarfout_define, dwarfout_undef,
10617 dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
10618
10619 1999-10-25 Gavin Romig-Koch <gavin@cygnus.com>
10620
10621 * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
10622 (MULTILIB_ISA_DEFAULT): New.
10623 (MULTILIB_DEFAULTS): Use it.
10624 * config/mips/mips.c (): Remove the now unnecessary definition
10625 of MIPS_ISA_DEFAULT.
10626 * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
10627 unnecessary definition.
10628
10629 Mon Oct 25 22:08:35 1999 Richard Earnshaw (rearnsha@arm.com)
10630
10631 * arm.md (pic_load_addr): Add constraints to operand 1.
10632
10633 1999-10-25 Bruce Korb <autogen@linuxbox.com>
10634
10635 * fixinc/genfixes: Provide a means for specifying -D options to
10636 AutoGen
10637
10638 Mon Oct 25 00:42:35 1999 Jeffrey A Law (law@cygnus.com)
10639
10640 * arm.c (arm_override_options): Correct initialization of
10641 arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
10642 arm_is_strong, and arm_is_6_or_7.
10643
10644 * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
10645 (note_set_pseudo_multiple_uses): New function.
10646 (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
10647 if a pseudo set in the loop exit is used elsewhere.
10648
10649 Sun Oct 24 20:52:40 1999 Mark Mitchell <mark@codesourcery.com>
10650
10651 * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
10652
10653 Sun Oct 24 21:02:46 1999 Richard Henderson <rth@cygnus.com>
10654
10655 * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
10656 a single load-address pattern.
10657
10658 Sun Oct 24 19:33:24 1999 Mark P. Mitchell <mark@codesourcery.com>
10659
10660 * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
10661 depending on whether or not line-number notes are present.
10662
10663 Sun Oct 24 20:29:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10664
10665 * cccp.c (progname, file_buf, default_include, include_file,
10666 macrodef, definition, hashval, wchar_type, user_label_prefix,
10667 directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
10668 expand_to_temp_buffer, is_system_include, base_name,
10669 absolute_filename, read_name_map, open_include_file,
10670 record_control_macro, check_precompiled, check_preconditions,
10671 pcfinclude, pass_thru_directive, create_definition,
10672 check_macro_name, comp_def_part, collect_expansion,
10673 check_assertion, read_token_list, assertion_install,
10674 assertion_lookup, eval_if_expression, conditional_skip,
10675 validate_else, skip_quoted_string, quote_string, macarg1,
10676 error_from_errno, install, lookup, hashf, dump_defn_1,
10677 perror_with_name, pfatal_with_name, main, trigraph_pcp,
10678 check_white_space, rescan, handle_directive, monthnames,
10679 special_symbol, do_include, remap_include_file, write_output,
10680 arglist, do_assert, do_unassert, do_line, do_error, do_once,
10681 do_ident, do_sccs, do_xifdef, skip_if_group,
10682 output_line_directive, macroexpand, macarg, change_newlines,
10683 initialize_builtins, make_definition): Constify a char*.
10684
10685 * pcp.h (stringdef): Likewise.
10686
10687 Sun Oct 24 13:29:28 1999 Richard Henderson <rth@cygnus.com>
10688
10689 * unroll.c (copy_loop_body): Examine SET_DEST of single_set
10690 not of pattern.
10691
10692 Sun Oct 24 13:14:20 1999 Graham <grahams@rcp.co.uk>
10693 Richard Henderson <rth@cygnus.com>
10694
10695 * alias.c: Include ggc.h.
10696 (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
10697 (record_set): Verify enough room in reg_base_value.
10698 (init_alias_analysis): Allocate reg_base_value with xcalloc.
10699 Register it as a GC root.
10700 (end_alias_analysis): Free reg_base_value. Remove it as a GC root.
10701 * Makefile.in (alias.o): Depend on ggc.h.
10702
10703 * unroll.c (unroll_loop): Verify the insn before a barrier
10704 is a JUMP_INSN before checking JUMP_LABEL.
10705
10706 Sun Oct 24 15:46:44 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10707
10708 * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
10709 * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
10710 * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
10711 * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
10712 * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
10713 * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
10714
10715 Sun Oct 24 15:35:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10716
10717 * output.h (ctors_section, dtors_section, bss_section): Prototype.
10718
10719 * alpha/alpha-interix.h (text_section): Delete prototype.
10720 * alpha/elf.h (text_section): Likewise.
10721 * arm/linux-elf.h (text_section): Likewise.
10722 * arm/linux-telf.h (text_section): Likewise.
10723 * c4x/c4x.h (text_section): Likewise.
10724 * dsp16xx/dsp16xx.h (bss_section): Likewise.
10725 * elfos.h (text_section): Likewise.
10726 * i386/aix386ng.h (text_section): Likewise.
10727 * i386/i386-interix.h (text_section): Likewise.
10728 * i386/sco5.h (text_section): Likewise.
10729 * i386/svr3gas.h (text_section): Likewise.
10730 * nextstep.h (text_section): Likewise.
10731 * psos.h (text_section): Likewise.
10732 * ptx4.h (text_section): Likewise.
10733 * svr3.h (text_section): Likewise.
10734 * svr4.h (text_section, ctors_section, dtors_section): Likewise.
10735
10736 Sun Oct 24 15:20:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10737
10738 * final.c (peephole): Delete prototype.
10739
10740 * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
10741 (pre_insert_copies): Remove unused variable `bb'.
10742
10743 * genrecog.c (debug_decision_0, debug_decision_list, main): Add
10744 prototypes.
10745
10746 * output.h (peephole): Add prototype.
10747
10748 Sun Oct 24 11:35:30 1999 Mark P. Mitchell <mark@codesourcery.com>
10749
10750 * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
10751 -O0.
10752
10753 Sat Oct 23 21:13:00 1999 Mark Mitchell <mark@codesourcery.com>
10754
10755 * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
10756 for inlined declarations.
10757
10758 Fri Oct 22 18:05:43 1999 Jeffrey A Law (law@cygnus.com)
10759
10760 * arm.c (logical_binary_operator): New fucntion.
10761 * arm.h (logical_binary_operator): Declare it.
10762 (PREDICATE_CODES): Handle logical_binary_operator.
10763 * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
10764 output constraints. Add appropriate splitters.
10765 (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
10766 (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
10767 (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
10768
10769 Fri Oct 22 23:46:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10770
10771 * genoutput.c (struct operand_data): New elt eliminable.
10772 (output_operand_data): Write it.
10773 (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
10774 (compare_operands): Take it into account.
10775 * recog.h (struct insn_operand_data): New elt eliminable.
10776 * reload1.c (check_eliminable_occurrences, elimination_effects): New
10777 functions.
10778 (old_asm_operands_vec, new_asm_operands_vec): Delete.
10779 (eliminate_regs): Move code that detects changes to elimination
10780 target regs into new function elimination_effects.
10781 Delete one #if 0 block.
10782 Abort for USE, CLOBBER, ASM_OPERANDS and SET.
10783 (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
10784 ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
10785 Only call eliminate_regs for real operands of the insn, not for parts
10786 of its structure or parts matched by things like match_operator.
10787 Use elimination_effects and check_eliminable_occurrences. Use
10788 copy_insn to duplicate the pattern when not in the final pass.
10789
10790 Fri Oct 22 09:03:44 1999 Mark Mitchell <mark@codesourcery.com>
10791
10792 * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
10793 and fld.
10794
10795 1999-10-22 Bruce Korb <autogen@linuxbox.com>
10796
10797 * fixinc/README: document the "mach" machine matching test
10798 * fixinc/fixfixes.c: Implement the #else/#endif label fix
10799 * fixinc/fixtests.c: Implement the #else/#endif label test
10800 * fixinc/inclhack.def: utilize these tests and fixes
10801 * fixinc/inclhack.sh: regen
10802 * fixinc/fixincl.x: regen
10803 * fixinc/fixincl.sh: regen
10804
10805 Thu Oct 21 20:37:19 1999 Jeffrey A Law (law@cygnus.com)
10806
10807 * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h. Also
10808 depend on ggc.h.
10809
10810 Thu Oct 21 20:30:19 1999 Matthias Klose <doko@debian.org>
10811
10812 * gcc.1: Document exit codes.
10813
10814 Thu Oct 21 12:49:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10815
10816 * calls.c: Include tm_p.h later, so everything we need is defined.
10817 * expr.c: Likewise.
10818 * function.c: Likewise.
10819
10820 * except.c: Include tm_p.h.
10821
10822 * sparc.c: Likewise.
10823 (dwarf2out_cfi_label): Don't prototype.
10824 (check_return_regs, epilogue_renumber,
10825 ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
10826 ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
10827 ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
10828 ultra_schedule_insn): Add static prototype.
10829 (data_segment_operand, text_segment_operand): Call itself with the
10830 proper number of arguments.
10831 (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
10832
10833 * sparc.h: Move all declarations to sparc-protos.h.
10834 (SELECT_RTX_SECTION): Pass a missing MODE argument to
10835 symbolic_operand.
10836
10837 * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
10838
10839 * config/svr4.h (text_section, ctors_section, dtors_section): Add
10840 Prototypes.
10841 (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
10842 ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
10843 ASM_OUTPUT_ASCII): Constify a char*.
10844
10845 * sparc-protos.h: New file for sparc prototypes.
10846
10847 Thu Oct 21 12:23:40 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10848
10849 * function.c (record_insns, contains): Always declare and define.
10850 (record_insns): Mark with ATTRIBUTE_UNUSED.
10851
10852 Thu Oct 21 13:03:49 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
10853
10854 * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
10855 to .section when outputting a .bss section to deal with multiple
10856 .bss input sections (as happens with -fdata-sections)
10857 Also output %progbits, not @progbits so the assembler doesn't treat as
10858 a comment.
10859 * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
10860
10861 * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
10862 thumb parts even when building with non-thumb CPUs, by forcing
10863 thumb mode.
10864
10865 Wed Oct 20 22:57:58 1999 Jeffrey A Law (law@cygnus.com)
10866
10867 * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
10868 (movdf_const_intreg_sp64): Similarly.
10869
10870 * local-alloc.c (update_equiv_regs): Check the correct insn
10871 for pre-existing REG_EQUIV notes.
10872
10873 Wed Oct 20 20:41:46 1999 Mark Mitchell <mark@codesourcery.com>
10874
10875 * cse.c (cse_end_of_basic_block): Don't return the end of a basic
10876 block reached by a branch if we're not going to actually process
10877 this block.
10878
10879 Wed Oct 20 15:18:42 1999 Jim Wilson <wilson@cygnus.com>
10880
10881 * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
10882 a local extern function declaration.
10883
10884 Wed Oct 20 13:56:01 1999 Richard Henderson <rth@cygnus.com>
10885
10886 * i386.c (ix86_expand_prologue): Properly wrap USE around
10887 reg for CALL_INSN_FUNCTION_USAGE.
10888
10889 Thu Oct 14 18:51:37 1999 Andrew Haley <aph@cygnus.com>
10890
10891 * config/mips/mips.md (movdf_internal1a): Allow floating-point
10892 move between GP_REGs.
10893
10894 Wed Oct 20 15:36:11 1999 Andrew Haley <aph@cygnus.com>
10895
10896 * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
10897 the mode size when finding out if an offset is legal.
10898
10899 Wed Oct 20 06:26:58 1999 Richard Henderson <rth@cygnus.com>
10900
10901 * basic-block.h (PROP_*): Move constants from ...
10902 * flow.c: ... here.
10903 (compute_bb_for_insn): Free the array before reallocating.
10904 (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
10905 (allocate_reg_life_data): Reset all reg variables collected by
10906 propagate_block.
10907 (get_block_head_tail): Don't convert from bb to block.
10908 (get_bb_head_tail): New. Update all callers of get_block_head_tail.
10909 (find_insn_reg_weight): Take block not bb.
10910 (schedule_block): Don't set block num for moved insns.
10911 (schedule_region): Don't update_life_info or find_insn_reg_weight.
10912 (schedule_insns): Do it here instead.
10913 * combine.c (combine_instructions): Invoke compute_bb_for_insn
10914 before update_life_info.
10915 * recog.c (split_all_insns, peephole2_optimize): Update for
10916 new arg to update_life_info.
10917 * rtlanal.c (remove_note): Cope with NULL note.
10918 * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
10919 if we did sched1.
10920
10921 Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com)
10922
10923 * jump.c (jump_optimize_1): More accurately detect casesi insns.
10924
10925 * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
10926 block records so that merge_blocks_nomove will clean up correctly.
10927 (split_edge): Handle casesi insns.
10928
10929 * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
10930
10931 Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com)
10932
10933 * pa.md (call, call_value): Do not emit a blockage after restoring
10934 the PIC register.
10935
10936 Tue Oct 19 17:22:39 1999 Mark Mitchell <mark@codesourcery.com>
10937
10938 * c-typeck.c (c_expand_asm_operands): Fix typo.
10939
10940 Tue Oct 19 18:42:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10941
10942 * arm.c (fpu_rhs_operand): Verify modes.
10943 (fpu_add_operand): Likewise.
10944 (di_operand): Likewise.
10945 (soft_df_operand): Likewise.
10946
10947 Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com)
10948
10949 * arm.c (arm_return_in_memory): APCS rules state that the elements
10950 of a structure returned in a register must be 'integer-like'.
10951
10952 1999-10-19 Bruce Korb <autogen@linuxbox.com>
10953
10954 * fixinc/Makefile.in: Change the generation rules to run `genfixes'
10955 in the source tree when the generated targets are out of date
10956 * fixinc/genfixes: Alter it to run individual fixes for make.
10957 * fixinc/README: rewrite
10958 * fixinc/inclhack.def: moved initial comments to README
10959
10960 Tue Oct 19 14:01:34 1999 Nick Clifton <nickc@cygnus.com>
10961
10962 * toplev.c (main): Do not generate an error message if an
10963 unrecognised command line switch is recognisable by another
10964 language. If extra_warnings are enabled, then generate a
10965 warning message instead.
10966
10967 Tue Oct 19 11:41:12 1999 Mumit Khan <khan@xraylith.wisc.edu>
10968
10969 * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
10970 (insert_pack_attributes): Delete prototype.
10971
10972 * c-pragma.c (default_alignment): New static variable.
10973 (push_alignment): Initialize to current effective alignment.
10974 (pop_alignment): Use to set new alignment.
10975 (insert_pack_attributes): Delete function.
10976 (handle_pragma_token): Set default_alignment as well each time
10977 a #pragma pack(<n>) is encountered.
10978
10979 Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com)
10980
10981 * reg-stack.c (stack_result): Aggregates are not returned in
10982 stack registers.
10983
10984 Tue Oct 19 01:26:48 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
10985
10986 * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
10987
10988 Mon Oct 18 15:19:41 1999 Richard Henderson <rth@cygnus.com>
10989
10990 * basic-block.h (set_block_num): Declare.
10991 * flow.c (update_life_info): Don't call compute_bb_for_insn
10992 or free_basic_block_vars.
10993 * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
10994 (insn_orig_block): Remove.
10995 (INSN_BLOCK): Remove. Update all callers to use BLOCK_NUM.
10996 (schedule_block): Keep BLOCK_NUM up-to-date.
10997 (schedule_insns): Use compute_bb_for_insn.
10998 * recog.c (split_all_insns): Likewise.
10999 (peephole2_optimize): Likewise.
11000
11001 Mon Oct 18 18:50:51 1999 Andreas Schwab <schwab@suse.de>
11002
11003 * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
11004 if the pic register is used.
11005
11006 Mon Oct 18 02:38:46 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11007
11008 * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
11009 (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
11010 if that tests TREE_PERMANENT.
11011
11012 Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com)
11013
11014 * cse.c (invalidate_for_call): Do not remove memory references from
11015 the table here. It's handled elsewhere.
11016
11017 * haifa-sched.c (add_dependence): Protect references to the
11018 true dependency cache with #ifdef INSN_SCHEDULING.
11019 (remove_dependence): Similarly.
11020
11021 * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
11022 to the cfg code that this is a return instruction.
11023 * mn10300.md (return_internal): Similarly.
11024
11025 * combine.c (get_last_value): If the last set of a register
11026 is after subst_low_cuid, then we can not use it to determine
11027 the register's last value.
11028
11029 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
11030
11031 * Makefile.in: Back out previous change.
11032
11033 Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com)
11034
11035 * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
11036
11037 * haifa-sched.c (add_dependence): Only check/update the cache
11038 if it exists.
11039 (remove_dependence): Likewise.
11040 (schedule_insns): Only create the true_dependency_cache if the
11041 average number of instructions in a basic block is very large.
11042
11043 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
11044
11045 * Makefile.in (ggc-common.o): Depend on genrtl.h.
11046 (ggc-simple.o): Likewise.
11047 (ggc-page.o): Likewise.
11048
11049 Sun Oct 17 02:09:50 1999 Andrew MacLeod <amacleod@cygnus.com>
11050
11051 * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
11052 Prototype for exported functions.
11053 (pre_lcm, pre_rev_lcm): Remove prototypes.
11054 * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
11055 (compute_available): Move to lcm.c, and change parameter order.
11056 (one_classic_gcse_pass): Call compute_ae_kill with parameters.
11057 (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
11058 (gcse_main): No longer call compute_preds_succs. Rebuild the
11059 set table after reach pre pass.
11060 (pre_insert_map, pre_delete_map, edge_list): New.
11061 (alloc_pre_mem): Allocate edge vectors.
11062 (free_pre_mem): Delete edge vectors.
11063 (compute_pre_data): Call new edge based lcm routines.
11064 (process_insert_insn): New function.
11065 (insert_insn_end_bb): Use it.
11066 (pre_edge_insert): New function.
11067 (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as
11068 needed.
11069 (pre_insert_copies): Revamp using new edge based lcm outputs.
11070 (pre_delete): Likewise.
11071 (one_pre_gcse_pass): Insert & remove fake edges to the exit
11072 block.
11073 (compute_code_hoist_vbeinout): New new edge based routines.
11074 * lcm.c: Remove all the old LCM functions. Replace with new ones
11075 that work with the new cfg datastructures and work with edges
11076 instead of blocks.
11077
11078 Sun Oct 17 00:44:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11079
11080 * reload.h (struct reload): Add new fields "mode" and "nregs".
11081 * reload1.c: Change all occurrences of reload_mode and reload_nregs
11082 to reference the "mode" and "nregs" field within struct reload.
11083
11084 Sat Oct 16 21:50:28 1999 Jeffrey A Law (law@cygnus.com)
11085
11086 * haifa-sched.c (true_dependency_cache): New.
11087 (add_dependence): Use the true dependency cache to avoid expensive
11088 walks down the LOG_LINKS dependency list. Add entries to the
11089 cache as necessary.
11090 (remove_dependence): Remove entries from the true dependency cache
11091 as needed.
11092 (schedule_insns): Allocate and initialize and free the true
11093 dependency cache.
11094
11095 * haifa-sched.c (schedule_insns): Do not remove inter-block
11096 dependencies anymore.
11097
11098 Sat Oct 16 11:19:52 1999 Richard Henderson <rth@cygnus.com>
11099
11100 * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
11101 * i386/t-winnt: Likewise.
11102
11103 Sat Oct 16 11:11:54 1999 Richard Henderson <rth@cygnus.com>
11104
11105 * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
11106
11107 1999-10-16 Manfred Hollstein <mhollstein@cygnus.com>
11108
11109 * Makefile.in (LANGUAGES): Omit "proto".
11110 (clean): Remove stale comment about removing unprotoize.c.
11111
11112 Sat Oct 16 11:29:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11113
11114 * protoize.c (safe_read, safe_write): Avoid the gcc extension of
11115 using arithmetic on void pointers.
11116
11117 Sat Oct 16 02:48:22 1999 Jeffrey A Law (law@cygnus.com)
11118
11119 * haifa-sched.c (compute_block_forward_dependencies): Only check
11120 for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
11121
11122 Sat Oct 16 00:07:01 1999 Richard Henderson <rth@cygnus.com>
11123
11124 * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
11125 (expr_equiv_p): Reject memories with different alias sets.
11126
11127 Fri Oct 15 15:17:29 1999 Greg McGary <gkm@gnu.org>
11128
11129 * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
11130 * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
11131 (f_options): Add "bounded-pointers" and "bounds-check" entries.
11132 * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
11133 (lang_init): Set default for flag_bounds_check if still "unspecified".
11134
11135 Sat Oct 16 13:42:29 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11136
11137 * config/c4x/c4x.md (HF mode patterns): Add missing modes.
11138
11139 Sat Oct 16 13:37:46 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11140
11141 * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
11142 instructions.
11143
11144 Sat Oct 16 13:26:47 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11145
11146 * config/c4x/c4x.md (*db_noclobber,
11147 *decrement_and_branch_until_zero_noclobber): New patterns and
11148 associated splitters.
11149
11150 Sat Oct 16 13:13:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11151
11152 * config/c4x/c4x.md (parallel instruction patterns): Rework
11153 constraints to keep reload happy.
11154
11155 Sat Oct 16 13:03:16 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11156
11157 * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
11158 *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
11159 *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
11160 Add new patterns and associated post-reload splitters.
11161
11162 Sat Oct 16 12:42:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11163
11164 * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
11165
11166 Sat Oct 16 12:34:44 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11167
11168 * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
11169 if appropriate.
11170 * config/c4x/c4x.md (rpts_top): New pattern and splitter.
11171
11172 Sat Oct 16 12:26:30 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11173
11174 * config/c4x/c4x.c (src_operand): Check SYMBOL_REF and LABEL_REF
11175 memory mode.
11176
11177 Fri Oct 15 17:02:09 1999 Jeffrey A Law (law@cygnus.com)
11178
11179 * pa.c (move_operand): Rely on memory_address_p to determine the
11180 validity of non-indexed memory addresses.
11181 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
11182 operand in DFmode and SFmode when generating PA2.0 code.
11183
11184 Fri Oct 15 14:25:19 1999 Richard Henderson <rth@cygnus.com>
11185
11186 * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
11187
11188 Fri Oct 15 13:48:45 1999 Richard Henderson <rth@cygnus.com>
11189
11190 * mips.c (function_prologue): Fix argument types.
11191 * mips.md (casesi): Use emit_jump_insn for casesi_internal.
11192 (casesi_internal): Write to the scratch register.
11193
11194 1999-10-15 11:16 -0700 Zack Weinberg <zack@bitmover.com>
11195
11196 * cppexp.c (cpp_parse_escape): Make static. Change second arg
11197 to U_CHAR **.
11198 (parse_charconst): Delete unnecessary cast when calling
11199 cpp_parse_escape.
11200 (cpplib.h): Kill prototype of cpp_parse_escape.
11201
11202 Fri Oct 15 11:02:46 1999 Richard Henderson <rth@cygnus.com>
11203
11204 Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
11205 * unroll.c (unroll_loop): Cast return value of alloca.
11206 * i370/i370.c: Include function.h and toplev.h.
11207 (i370_label_scan): Remove c++ commented abort.
11208 * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
11209 (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
11210 * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
11211 * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
11212
11213 Fri Oct 15 03:01:01 1999 Loren Rittle <ljrittle@acm.org>
11214
11215 * config/t-freebsd: Do not override USER_H.
11216 * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
11217
11218 Fri Oct 15 02:37:28 1999 Alastair J. Houghton <ajh8@doc.ic.ac.uk>
11219 Mumit Khan <khan@xraylith.wisc.edu>
11220
11221 * c-parse.in (component_decl): Support anonymous struct/union.
11222 (%expect): Update.
11223 * c-parse.y: Regenerate.
11224 * c-parse.c: Likewise.
11225 * objc/objc-parse.y: Likewise.
11226 * objc/objc-parse.c: Likewise.
11227 * c-decl.c (finish_struct): Don't sort the fields.
11228 (field_decl_cmp): Delete unused function.
11229
11230 Fri Oct 15 01:20:52 1999 Richard Henderson <rth@cygnus.com>
11231
11232 * sparc.md (movsf_const_intreg): Revert last constraint change.
11233 (movdf_const_intreg_sp32): Likewise.
11234
11235 Fri Oct 15 01:47:51 1999 Vladimir Makarov <vmakarov@loony.cygnus.com>
11236
11237 * cse.c: Include hashtab.h instead of splay-tree.h
11238 (struct cse_reg_info): No longer use variant union. Add new
11239 field "regno". All references changed to avoid union.
11240 (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
11241 (free_cse_reg_info): Remove.
11242 (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
11243 (get_cse_reg_info): Revamp to use expandable hash tables instead
11244 of splay trees. Initialize new fields in cse_reg_info structure.
11245 (new_basic_block): Similarly.
11246
11247 Thu Oct 14 23:51:56 1999 Richard Henderson <rth@cygnus.com>
11248
11249 * genrecog.c (message_with_line): Prototype.
11250 (validate_pattern): Pass along the set for the dest, not a flag.
11251 Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL.
11252 Check for PC/CC0 as sources.
11253 (nodes_identical): Check for children position match before
11254 allowing the combination.
11255
11256 * rtl.c (read_rtx): Track line number across \\\n.
11257
11258 Thu Oct 14 23:50:25 1999 Richard Henderson <rth@cygnus.com>
11259
11260 * mips.h (SPECIAL_MODE_PREDICATES): New.
11261 * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
11262 (movdi+1, movsi+1): Add output reload constraint.
11263 (casesi_internal): Likewise. Fix commentary.
11264 (return_internal): Use pmode_register_operand.
11265
11266 Thu Oct 14 23:19:34 1999 Richard Henderson <rth@cygnus.com>
11267
11268 * 1750a.md (movstrqi): Add missing output reload constraint.
11269 (call_value): Likewise.
11270 * a29k.md (cpxxx patterns): Add missing match_operator mode.
11271 (jmpfdec): Add missing inout reload constraint.
11272 * elxsi.md (addsi patterns): Add missing output reload constraint.
11273 (move from sp): Use @ alternates.
11274 (call_value): No constraint on output.
11275 * fr30.md (movsi_pop): Add missing output reload constraint.
11276 (movsf_constant_store): Likewise.
11277 (splits): Remove constraints.
11278 (subsi3): Add missing mode.
11279 * i370.md (cmpstrsi+1): Add missing output reload constraint.
11280 (call_value): Likewise.
11281 * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
11282 * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
11283 * m32r.md (movsicc_internal): Add output reload constraint.
11284 (movstrsi_internal): Add inout reload constraints.
11285 * m88k.h (reg_names): Don't declare.
11286 (SPECIAL_MODE_PREDICATES): New.
11287 * m88k.md (*): Use register_operand not reg_or_0_operand
11288 on destinations.
11289 * mn10200.h (PREDICATE_CODES): New.
11290 * ns32k.md (ffs pattern): Add output reload constraint.
11291 * pdp11.md (sob pattern): Add inout reload constraint.
11292 * sh.md (splits): Remove constraints.
11293 (indirect_jump_scratch, fpu_switch): Add output reload constraint.
11294 * v850.md (pattern_is_ok_for_epilogue): Likewise.
11295 * vax.md (jgequ pattern): Add inout reload constraint.
11296
11297 Fri Oct 15 00:05:00 1999 Jeffrey A Law (law@cygnus.com)
11298
11299 * configure.in (djgpp): Revert previous patch.
11300 * configure: Rebuit.
11301 * config/i386/djgpp.h: Revert previous patch.
11302
11303 Fri Oct 15 00:00:24 1999 Loren J. Rittle <ljrittle@acm.org>
11304
11305 * fixinc/inclhack.def: Restore patch lost during last merge of
11306 "no_bogosity" branch.
11307 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
11308
11309 Thu Oct 14 23:57:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
11310
11311 * fixincludes: Add a HPUX 11 fix for inttypes.h.
11312 * fixinc/inclhack.def: Same.
11313 * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
11314
11315 Thu Oct 14 22:51:55 1999 Richard Henderson <rth@cygnus.com>
11316
11317 * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
11318 as the base of a PLUS.
11319
11320 Fri Oct 15 18:36:07 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11321
11322 * config/c4x/c4x.md: Define mode for remaining unspec operators.
11323 * config/c4x/c4x.c (dst_operand): Use nonimmediate_operand.
11324
11325 Thu Oct 14 22:14:23 1999 Richard Henderson <rth@cygnus.com>
11326
11327 * pa.md (post_stw+1): Use pmode_register_operand.
11328 (dcacheflush, icacheflush): Likewise.
11329
11330 * i386.md (movstricthi_1): Allow r/r.
11331
11332 Thu Oct 14 19:44:08 1999 Jan Hubicka <hubicka@freesoft.cz>
11333
11334 * fold-const.c (fold): Convert (or (not arg0) (not arg1))
11335 to (not (and (arg0) (arg1))). Similary for and.
11336
11337 * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
11338 fallthrough to associate code.
11339 Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
11340 bits in common.
11341
11342 * combine.c (simplify_logical): Convert XOR to IOR if operands have
11343 no bits in common; remove XOR to ROTATE conversion.
11344
11345 Fri Oct 15 17:40:11 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11346
11347 * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
11348
11349 Fri Oct 15 17:27:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11350
11351 * config/c4x/c4x.c (dst_operand): New.
11352 (PREDICATE_CODES): Update.
11353 * config/c4x/c4x.h (dst_operand): Declare it.
11354 * config/c4x/c4x.md: Define mode for each unspec usage.
11355 (move patterns): Use dst_operand predicate instead of src_operand.
11356 (movqi_update, movqf_update): Delete.
11357
11358 Thu Oct 14 18:48:54 1999 Richard Henderson <rth@cygnus.com>
11359
11360 * recog.c (pmode_register_operand): New.
11361 * recog.h: Declare it.
11362 * genrecog.c (pred_codes): Likewise.
11363 (special_mode_pred_table): Likewise.
11364 (validate_pattern): Don't warn no mode for address_operand.
11365
11366 * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
11367 if the operand is not insn-like.
11368
11369 Thu Oct 14 19:38:42 1999 Jeffrey A Law (law@cygnus.com)
11370 Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
11371
11372 * fold-const.c (fold): Handle more simplifications allowed by IEEE.
11373
11374 Thu Oct 14 17:30:14 1999 Richard Henderson <rth@cygnus.com>
11375
11376 * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
11377 instead of general_operand in a SET_DEST. Use const_double_operand
11378 instead of an explicit test against CONST_DOUBLE.
11379 (movsf_const_lo): Add missing register mode.
11380 (goto_handler_and_restore): Add auxiliary test for Pmode.
11381 (flush): Adjust to use address_operand.
11382 (return_sf_no_fpu): Add missing output constraint.
11383
11384 Thu Oct 14 17:21:26 1999 Richard Henderson <rth@cygnus.com>
11385
11386 * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
11387 for call return value.
11388 (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
11389
11390 Thu Oct 14 13:54:25 1999 Jason Merrill <jason@yorick.cygnus.com>
11391
11392 * toplev.c (main): Only warn about options for other languages.
11393 * collect2.c (main): Pass -w to sub-gcc.
11394
11395 Thu Oct 14 16:27:50 1999 Richard Henderson <rth@cygnus.com>
11396
11397 * flow.c (propagate_block): Add call-clobbered registers to
11398 significant too.
11399
11400 * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
11401 zapping mem_set_list.
11402 (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
11403 (mark_set_1, mark_used_regs): Likewise.
11404
11405 Thu Oct 14 10:51:49 1999 Richard Henderson <rth@cygnus.com>
11406
11407 * m68k.md (zero_extendsidi2): Add missing output reload constraint.
11408
11409 Wed Oct 13 00:09:18 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
11410
11411 * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
11412 -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
11413 options. Also add a new item "C-only Warning Options" to the
11414 option summary.
11415
11416 1999-10-14 Gavin Romig-Koch <gavin@cygnus.com>
11417
11418 * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
11419 from multiple calls.
11420
11421 Thu Oct 14 04:54:54 1999 Richard Henderson <rth@cygnus.com>
11422
11423 * i386.md (call value patterns): Move to the end of the file.
11424 (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
11425
11426 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
11427
11428 * configure.in (djgpp configuration): Define extra_objects..
11429 * configure: Rebuilt.
11430 * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
11431 (DTORS_SECTION_ASM_OP): Define.
11432 (INIT_SECTION_ASM_OP): Define.
11433 (FINI_SECTION_ASM_OP): Define.
11434 (DATA_SECTION_ASM_OP): Define.
11435 (TEXT_SECTION_ASM_OP): Define.
11436 (EH_FRAME_SECTION_ASM_OP): Define.
11437 (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
11438 (STARTFILE_SPEC): Add crtbegin.o.
11439 (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
11440 to here from LINK_COMMAND_SPEC.
11441 (DO_GLOBAL_CTORS_BODY): Define.
11442 (CRTSTUFF_USE_FINI_SECTION): Define
11443 (HAS_INIT_SECTION): Delete.
11444
11445 Thu Oct 14 05:08:14 1999 Andreas Schwab <schwab@suse.de>
11446
11447 * Makefile.in (all.cross): Depend on xcpp$(exeext).
11448
11449 Thu Oct 14 04:00:40 1999 Richard Henderson <rth@cygnus.com>
11450
11451 * pa.h (PREDICATE_CODES): New.
11452
11453 * genrecog.c (validate_pattern): Condense the destination
11454 non-lvalue message.
11455
11456 Thu Oct 14 03:23:08 1999 Richard Henderson <rth@cygnus.com>
11457
11458 * alpha.md (call-1): Supply missing mode for operator.
11459 (*): Add missing output reload constraints. Remove constraints
11460 from define_splits.
11461
11462 * i386.h (SPECIAL_MODE_PREDICATES): New.
11463 * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
11464 (movqi_1, movdi_1, movdi_2, some splits): Likewise.
11465 (addsi_lea_3): Add missing mode for op 3.
11466 (prologue_set_got, prologue_get_pc): Add missing modes.
11467 (*) Add missing output reload constraints.
11468
11469 Thu Oct 14 03:59:57 1999 Stephane Carrez <stcarrez@worldnet.fr>
11470
11471 * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
11472 check for member bit-size overflow and use var_size if it occurs.
11473 (layout_record): Use bitsize_int() to define the type size in bits.
11474 Likewise for computation and assignment to DECL_FIELD_BITPOS.
11475 (layout_decl): Likewise when assigning to DECL_SIZE.
11476
11477 Thu Oct 14 02:57:05 1999 Richard Henderson <rth@cygnus.com>
11478
11479 * genrecog.c (validate_pattern): Typo last change. Verify
11480 that output operands have output reloads.
11481
11482 Thu Oct 14 01:49:54 1999 Richard Henderson <rth@cygnus.com>
11483
11484 * genrecog.c (special_mode_pred_table): New.
11485 (NUM_SPECIAL_MODE_PREDS): New.
11486 (find_operand): New.
11487 (validate_pattern): New argument `insn'. Warn for assignment to
11488 any predicate accepting non-lvalues. Conditionaly warn for
11489 match_operand without a mode. Try much harder to match source
11490 and destination modes on a set.
11491 * tm.texi (SPECIAL_MODE_PREDICATES): Document.
11492
11493 Thu Oct 14 02:54:13 1999 Jeffrey A Law (law@cygnus.com)
11494
11495 * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
11496
11497 Thu Oct 14 02:18:19 1999 Marc Espie <espie@cvs.openbsd.org>
11498
11499 * combine.c (simplify_logical): Recognize xor pattern that encodes
11500 rotation.
11501
11502 Wed Oct 13 23:23:45 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11503
11504 * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
11505 alignment.
11506
11507 Wed Oct 13 21:47:18 1999 Richard Henderson <rth@cygnus.com>
11508
11509 * ggc-page.c (MAP_FAILED): Provide default.
11510
11511 Wed Oct 13 21:41:59 1999 Richard Henderson <rth@cygnus.com>
11512
11513 * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
11514 * sparc.h (PREDICATE_CODES): Update.
11515
11516 Wed Oct 13 21:18:17 1999 Richard Henderson <rth@cygnus.com>
11517
11518 * alpha.c (some_ni_operand): New.
11519 * alpha-protos.h: Declare it.
11520 * alpha.h (PREDICATE_CODES): Update.
11521 * alpha.md (sXaddq reload insns): Use some_ni_operand
11522 for SET_DEST instead of some_operand.
11523
11524 Wed Oct 13 21:04:45 1999 Richard Henderson <rth@cygnus.com>
11525 Jim Wilson <wilson@cygnus.com>
11526
11527 * genrecog.c (maybe_both_true_2): Don't compare modes of
11528 two DT_pred tests.
11529 (process_tree): Elide peephole2_insns. Invoke simplify_tests
11530 after find_afterward.
11531 (debug_decision_1): Dump next and afterward codes.
11532
11533 Wed Oct 13 20:35:16 1999 Richard Henderson <rth@cygnus.com>
11534
11535 * rtl.c (dump_and_abort): Remove.
11536 (fatal_with_file_and_line): New.
11537 (fatal_expected_char): New.
11538 (read_rtx_lineno, read_rtx_filename): New.
11539 (read_skip_spaces): Track line number.
11540 (read_name): Use fatal_with_file_and_line.
11541 (read_rtx): Use fatal_expected_char. Track line number.
11542 * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
11543
11544 * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
11545 if it isn't a CODE_LABEL.
11546
11547 * genattr.c (main): Set read_rtx_filename.
11548 * genattrtab.c (main): Likewise.
11549 * gencodes.c (main): Likewise.
11550 * genconfig.c (main): Likewise.
11551 * genemit.c (main): Likewise.
11552 * genextract.c (main): Likewise.
11553 * genflags.c (main): Likewise.
11554 * genopinit.c (main): Likewise.
11555 * genoutput.c (main): Likewise.
11556 * genpeep.c (main): Likewise.
11557
11558 * genrecog.c (decision_test.u.insn): Add `lineno'.
11559 (pattern_lineno, error_count): New variables.
11560 (message_with_line): New.
11561 (add_to_sequence): Break out checking code to ...
11562 (validate_pattern): ... here. Detect SET_DEST matching CONST_INT.
11563 (merge_insn): Use message_with_line.
11564 (make_insn_sequence): Use validate_pattern. Record insn lineno.
11565 (main): Set read_rtx_filename, pattern_lineno. Exit early on error.
11566
11567 Wed Oct 13 22:01:35 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11568
11569 * expr.c (store_constructor): Clear union if constructor is empty.
11570
11571 Wed Oct 13 15:19:04 1999 Jim Wilson <wilson@cygnus.com>
11572
11573 * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
11574 Add !endian checks. Change %{...} to %(...).
11575
11576 Wed Oct 13 13:30:34 1999 Richard Henderson <rth@cygnus.com>
11577
11578 * i386.md (*addsi3_cc): Renamed from addcsi3.
11579 (*addsi3_carry): Renamed from addxsi3.
11580 (*subsi3_cc): Renamed from subcsi3.
11581 (*subsi3_carry): Renamed from subxsi3.
11582 (*xorqi_cc_1): Renamed from xorcqi_1.
11583 (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
11584 * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
11585
11586 Wed Oct 13 13:10:46 1999 Richard Henderson <rth@cygnus.com>
11587
11588 * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
11589 (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
11590
11591 1999-10-13 Brendan Kehoe <brendan@cygnus.com>
11592
11593 * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
11594 climb up the chain of insns.
11595
11596 Wed Oct 13 10:20:58 1999 Richard Henderson <rth@cygnus.com>
11597
11598 * genrecog.c (write_subroutine): Careful for null trees.
11599 (process_tree): Don't elide empty functions.
11600
11601 Wed Oct 13 10:07:54 1999 Richard Henderson <rth@cygnus.com>
11602
11603 * Makefile.in (genrtl.o): Depend on ggc.h.
11604 * configure.in (valloc): Probe for it.
11605 (with-gc): Use ggc-page if valloc present.
11606 * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
11607 (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
11608 (ggc_alloc_string): Moved from ggc-page.c.
11609 * ggc-none.c (ggc_alloc_obj): New.
11610 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
11611 * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
11612 (struct globals): Likewise for dev_zero_fd.
11613 (init_ggc): Likewise for it's initialization.
11614 (ggc_allocated_p): Move careful dereference from ...
11615 (ggc_lookup_page_table): ... here. Delete.
11616 (lookup_page_table_entry): Don't use ggc_lookup_page_table.
11617 (alloc_anon): Use valloc if no mmap.
11618 (release_pages): Use free if using valloc.
11619 (ggc_alloc_obj): Renamed from alloc_obj.
11620 (ggc_set_mark): Renamed from mark_obj.
11621 (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
11622 (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
11623 (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
11624 (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
11625 (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
11626 (ggc_collect): Use fp printing instead of our own rounding.
11627 * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
11628 (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
11629 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
11630 (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
11631 (struct ggc_string, struct ggc_any): Delete.
11632 (offsetof): Provide default definition.
11633 (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
11634 (PTR_KEY): New.
11635 (struct ggc_mem): New, from corpse of ggc_any.
11636 (struct ggc_status): Delete.
11637 (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
11638 (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
11639 (n_strings_collected, n_anys_collected): Delete.
11640 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
11641 (ggc_alloc_string, ggc_alloc): Delete.
11642 (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
11643 (ggc_free_string, ggc_free_any): Delete.
11644 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
11645 (ggc_compare_addresses, ggc_mark_string): Delete.
11646 (ggc_mark_string_if_gcable, ggc_mark): Delete.
11647 (search_data): Delete.
11648 (struct globals): New.
11649 (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
11650 (tree_insert, tree_lookup): New.
11651 (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
11652 (clear_marks, sweep_objs): New.
11653 (ggc_collect): Gut. Use clear_marks, sweep_objs.
11654 (init_ggc): Set allocated_last_gc.
11655 (ggc_push_context): Gut. Use G.context.
11656 (ggc_pop_context): Likewise.
11657 (ggc_pop_context_1): New.
11658 (debug_ggc_tree): New.
11659 (debug_ggc_balance, tally_leaves): New.
11660 * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
11661 (ggc_mark_string_if_gcable): Remove decl.
11662 (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
11663 (ggc_mark_rtvec_children): New.
11664 (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
11665 (ggc_mark_if_gcable): New decl.
11666 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
11667 (ggc_alloc_tree, ggc_alloc): Likewise.
11668 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
11669 (ggc_alloc_obj): New decl.
11670 (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
11671 (ggc_alloc_tree, ggc_alloc): Likewise.
11672 (ggc_set_mark): New decl.
11673 * rtl.h (struct rtx_def): Remove gc_mark.
11674 (struct rtvec_def): Likewise.
11675 * tree.h (struct tree_common): Likewise.
11676
11677 Wed Oct 13 01:44:29 1999 Carol LePage <carolo@hal.com>
11678
11679 * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
11680 float_format and thread_file definitions.
11681 * configure: Rebuilt.
11682
11683 Wed Oct 13 09:25:03 1999 Niels Möller <nisse@lysator.liu.se>
11684
11685 * extend.texi (Function Names): Document types of function names.
11686
11687 Wed Oct 13 00:45:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11688
11689 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
11690 an earlyclobbered output conflict with RELOAD_INPUT reloads.
11691
11692 Tue Oct 12 23:28:28 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11693
11694 * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
11695
11696 Tue Oct 12 23:19:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11697
11698 * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
11699
11700 Tue Oct 12 17:09:38 1999 David Edelsohn <edelsohn@gnu.org>
11701
11702 * collect2.c (main): Do prelimnary link on AIX if rflag.
11703
11704 Tue Oct 12 09:45:19 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
11705
11706 * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
11707 __CTOR_LIST__ in opposite order, which is the correct order for sorted
11708 constructors.
11709 (__do_global_dtors): similarly for __DTOR_LIST__.
11710
11711 Fri Oct 8 19:46:03 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11712 Diego Novillo <dnovillo@cygnus.com>
11713
11714 * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
11715 FPUL_REGS.
11716
11717 Tue Oct 12 07:38:41 1999 Bruce Korb <autogen@linuxbox.com>
11718
11719 * fixincl/*: Merged "no_bogosity" branch
11720 * fixincl/fixlib.h: protect against doubly defining t_bool
11721 * fixincl/server.h: protect against doubly defining t_bool
11722
11723 Mon Oct 11 20:18:41 1999 Jim Wilson <wilson@cygnus.com>
11724
11725 * genoutput.c: Include toplev.h.
11726
11727 Mon Oct 11 18:56:14 1999 Jim Wilson <wilson@cygnus.com>
11728
11729 * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
11730 Undef.
11731 * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
11732 * configure: Regenerate.
11733
11734 Mon Oct 11 16:07:49 1999 Richard Henderson <rth@cygnus.com>
11735
11736 * gcse.c (delete_null_pointer_checks): Returns void.
11737
11738 Mon Oct 11 20:31:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11739
11740 * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
11741 * emit-rtl.c (copy_insn_1): Likewise.
11742
11743 Mon Oct 11 13:29:06 1999 Geoffrey Keating <geoffk@cygnus.com>
11744
11745 * config/mips/mips.c (mips_build_va_list): Correct
11746 TREE_CHAIN setting when hard-float.
11747 (mips_va_start): Use corrected setting.
11748 (mips_va_arg): Likewise. Also pass a tree to build of
11749 POSTINCREMENT_EXPR rather than a naked 'int'.
11750
11751 Sun Oct 10 18:27:27 1999 Mark Mitchell <mark@codesourcery.com>
11752
11753 * ggc.h (ggc_push_context): Fix comment.
11754 (ggc_pop_context): Likewise.
11755 (mark_string_if_gcable): Likewise.
11756 * ggc-common.c (ggc_mark_rtx_children): Use
11757 ggc_mark_string_if_gcable.
11758 * ggc-page.c (ggc_lookup_page_table): New function.
11759 (ggc_allocated_p): Likewise.
11760 (mark_obj): Fix formatting.
11761 (ggc_mark_string_if_gcable): New function.
11762 * ggc-simple.c (ggc_allocated_strings): New variable.
11763 (ggc_strings_used): Likewise.
11764 (ggc_compare_addresses): New function.
11765 (ggc_pop_context): Pop the `any' memory too.
11766 (ggc_mark_string_if_gcable): New function.
11767 (ggc_collect): Initialize and tear down ggc_allocated_strings.
11768
11769 Sun Oct 10 20:05:21 1999 David Edelsohn <edelsohn@gnu.org>
11770
11771 * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
11772 (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
11773 * rs6000.c (expand_block_move): Match movstrsi_?reg register
11774 changes.
11775
11776 Sun Oct 10 16:37:01 1999 Richard Henderson <rth@cygnus.com>
11777
11778 * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
11779 (sched_reg_live_length, sched_reg_basic_block): Delete.
11780 (current_block_num, bb_live_regs, old_live_regs): Delete.
11781 (dead_notes, struct sometimes): Delete.
11782 (sched_note_set, birthing_insn_p): Delete.
11783 (adjust_priority): Gut useless reg lifetime code.
11784 (create_reg_dead_note, attach_deaths): Delete.
11785 (attach_deaths_insn, new_sometimes_live): Delete.
11786 (finish_sometimes_live): Delete.
11787 (find_pre_sched_live, find_post_sched_live): Delete.
11788 (update_reg_usage): Delete.
11789 (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
11790 (schedule_insns): Delete reg lifetime code.
11791 (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
11792 (unlink_other_notes): Adjust REG_NOTE commentary.
11793 (reemit_notes): Use REG_SAVE_NOTE.
11794 (schedule_block): Likewise.
11795 (schedule_region): Allocate bitmap of blocks in region. Use
11796 count_or_remove_death_notes. Use update_life_info.
11797
11798 * rtl.h (REG_SAVE_NOTE): New.
11799 * rtl.c (reg_note_name): Update.
11800
11801 Sun Oct 10 16:14:16 1999 Richard Henderson <rth@cygnus.com>
11802
11803 * combine.c (refresh_blocks, need_refresh): New.
11804 (combine_instructions): Allocate refresh_blocks. Invoke
11805 update_life_info if needed.
11806 (distribute_notes): Mark refresh_blocks instead of installing
11807 USE insns.
11808 * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
11809 * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
11810
11811 * Makefile.in (recog.o): Depend on basic-block.h.
11812
11813 Sun Oct 10 12:03:21 1999 Richard Henderson <rth@cygnus.com>
11814
11815 * genrecog.c (add_to_sequence): Thinko last change: delete
11816 shadowing allow_const_int variable.
11817
11818 Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11819
11820 * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
11821 __GNUC__ and __GNUC_MINOR__.
11822
11823 * gansidecl.h: Likewise.
11824
11825 * rtl.c: Likewise.
11826
11827 * rtl.h: Likewise.
11828
11829 * toplev.h: Likewise.
11830
11831 * tree.c: Likewise.
11832
11833 * tree.h: Likewise.
11834
11835 * varray.c: Likewise.
11836
11837 * varray.h: Likewise.
11838
11839 Sun Oct 10 13:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11840
11841 * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
11842 use one before a jump table.
11843
11844 * rtl.def (ADDRESS): Change documentation to match reality.
11845 * md.texi: Don't document it.
11846 * gmicro.md (load address pattern): Use 'p' constraint, delete use
11847 of ADDRESS rtx.
11848
11849 * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
11850
11851 Sun Oct 10 02:41:41 1999 Richard Henderson <rth@cygnus.com>
11852
11853 * genrecog.c (add_to_sequence): Move allow_const_int test outside
11854 known predicate block; default allow_const_int true.
11855 (debug_decision_list): New.
11856
11857 Sun Oct 10 00:43:08 1999 Richard Henderson <rth@cygnus.com>
11858
11859 * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
11860
11861 Sat Oct 9 23:26:55 1999 Jeffrey A Law (law@cygnus.com)
11862
11863 * gcse.c (gcse_main): Avoid global optimizations if we have a
11864 large number of basic blocks and the ratio of edges to blocks
11865 is high.
11866 (delete_null_pointer_checks): Likewise.
11867
11868 Sat Oct 9 23:16:01 1999 Ken Raeburn <raeburn@mit.edu>
11869
11870 * c-common.c (check_format_info): Warn if format string isn't a
11871 string literal.
11872
11873 Sat Oct 9 23:04:02 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
11874
11875 * configure.in (arm*-*-*): Don't let autoconf remove brackets
11876 * configure: regenerate
11877
11878 Sat Oct 9 13:15:53 1999 Richard Henderson <rth@cygnus.com>
11879
11880 * alpha.md (extendsidi2): Turn into a splitter. Allow f/f.
11881 If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern.
11882 (peepholes): Re-enable.
11883
11884 Sat Oct 9 12:18:16 1999 Richard Henderson <rth@cygnus.com>
11885
11886 * Makefile.in (flow.o): Depend on TREE_H.
11887 * basic-block.h (REG_SET_EQUAL_P): New.
11888 (XOR_REG_SET): New.
11889 (n_edges): Declare.
11890 (free_regset_vector): Remove declaration.
11891 (flow_delete_insn_chain): Declare.
11892 (enum update_life_extent): New.
11893 (update_life_info, count_or_remove_death_notes): Declare.
11894 * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
11895 Verify register live at bb->global_live_at_start before adding USE.
11896 * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
11897 (CLEAN_ALLOCA): New.
11898 (n_edges): New.
11899 (PROP_*): New flags.
11900 (find_basic_blocks_1): Use alloc_EXPR_LIST.
11901 (clear_edges): Zero n_edges.
11902 (make_edge): Increment n_edges.
11903 (split_edge): Don't allocate bb->local_set. Increment n_edges.
11904 (flow_delete_insn_chain): Export.
11905 (delete_block): Decrement n_edges.
11906 (merge_blocks_nomove): Likewise.
11907 (life_analysis): Give life_analysis_1 PROP flags.
11908 (verify_wide_reg_1, verify_wide_reg): New.
11909 (verify_local_live_at_start): New.
11910 (update_life_info): Rewrite to call into propogate_block.
11911 (mark_reg): New.
11912 (mark_regs_live_at_end): After reload, if epilogue as rtl,
11913 always mark stack pointer. Conditionally mark PIC register.
11914 After reload, mark call-saved registers, return regsiters.
11915 (life_analysis_1): Accept PROP flags not remove_dead_code.
11916 Call mark_regs_live_at_end before zeroing regs_ever_live.
11917 Use calculate_global_regs_live. Copy global_live_at_end before
11918 calling final propagate_block. Zero reg_next_use on exit.
11919 (calculate_global_regs_live): New.
11920 (allocate_bb_life_data): Don't allocate bb->local_set.
11921 (init_regset_vector, free_regset_vector): Remove.
11922 (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
11923 Test flags before every operation. Warn if prologue/epilogue insn
11924 would have been deleted.
11925 (mark_set_regs, mark_set_1): Accept and use FLAGS.
11926 Use alloc_EXPR_LIST.
11927 (mark_used_regs): Accept and use FLAGS, not FINAL.
11928 Remove special handling for RETURN.
11929 (try_pre_increment): Use alloc_EXPR_LIST.
11930 (dump_flow_info): Dump n_edges.
11931 (unlink_insn_chain, split_hard_reg_notes): Remove.
11932 (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
11933 (find_insn_with_note, new_insn_dead_notes): Remove.
11934 (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
11935 (maybe_remove_dead_notes, prepend_reg_notes): Remove.
11936 (replace_insns): Remove.
11937 (count_or_remove_death_notes): New.
11938 (verify_flow_info): Abort on error after all checks.
11939 (remove_edge): Decrement n_edges.
11940 (remove_fake_edges): Tweek format.
11941 * haifa-sched.c (schedule_insns): Use split_all_insns.
11942 * output.h (update_life_info): Remove declaration.
11943 * recog.c (split_all_insns): From the corpse of split_block_insns,
11944 do the whole function block by block. Use update_life_info.
11945 (recog_last_allowed_insn): New.
11946 (recog_next_insn): Mind it.
11947 (peephole2_optimize): Set it. Walk backwards through blocks.
11948 Use update_life_info.
11949 * rtl.h (update_flow_info, replace_insns): Remove declarations.
11950 (split_all_insns): Declare.
11951 * toplev.c (rest_of_compilation): Thread prologue before flow2.
11952 Use split_all_insns.
11953
11954 * i386.md (or -1 peep2s): Disable.
11955
11956 Fri Oct 8 17:49:08 1999 Richard Henderson <rth@cygnus.com>
11957
11958 * config/mips/mips.md (movstrsi+[123]) : Combine these into
11959 a single pattern. Scrap the 'd' versions as unnecessary.
11960
11961 * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
11962 tablejump_mips162,tablejump_internal4): The operands to a
11963 label_ref must be VOIDmode.
11964
11965 Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11966
11967 * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
11968
11969 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
11970
11971 * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
11972
11973 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
11974
11975 * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
11976 cache every function if ggc_p.
11977
11978 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11979
11980 * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
11981 instead of copy_rtx. Accept sequences that contain asm statements.
11982 * emit-rtl.c (copy_insn_1, copy_insn): New functions.
11983 (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
11984 orig_asm_operands_vector, copy_asm_operands_vector,
11985 orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
11986 variables.
11987 * rtl.h (copy_insn, copy_insn_1): Declare.
11988
11989 Fri Oct 8 13:08:12 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11990
11991 * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
11992
11993 * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
11994 arguments to `current_file_function_operand'.
11995
11996 * genrecog.c: Include hard-reg-set.h and resource.h in the
11997 generated output file.
11998
11999 * real.c: Include tm_p.h.
12000
12001 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12002
12003 * i386.md (prologue_allocate_stack): Add '=' constraint letter on
12004 output operand.
12005
12006 Thu Oct 7 23:06:50 1999 Richard Henderson <rth@cygnus.com>
12007
12008 * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
12009 before the fctiwz insn.
12010
12011 Thu Oct 7 22:53:00 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12012 Mark Mitchell <mark@codesourcery.com>
12013
12014 * tree.c (make_lang_type_fn): New funtion pointer.
12015 (make_lang_type): Call it.
12016 * tree.h (make_lang_type): Declare.
12017 (make_lang_type_fn): Likewise.
12018 * rs6000.c (rs6000_build_va_list): Use make_lang_type.
12019
12020 Thu Oct 7 00:36:17 1999 Diego Novillo <dnovillo@cygnus.com>
12021
12022 * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
12023 make sure that HIGH instructions are copied into BASE_REGS.
12024
12025 Thu Oct 7 17:02:34 1999 Jason Merrill <jason@yorick.cygnus.com>
12026
12027 * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
12028
12029 Thu Oct 7 17:01:58 1999 Greg McGary <gkm@gnu.org>
12030
12031 * c-decl.c (finish_struct): Use simpler method of
12032 removing elements of a singly-linked list.
12033
12034 Thu Oct 7 15:23:28 1999 Michael Meissner <meissner@cygnus.com>
12035
12036 * alpha.md (peephole2's): Comment out peephole2's that generate
12037 buggy code.
12038
12039 Thu Oct 7 12:00:53 1999 Richard Henderson <rth@cygnus.com>
12040
12041 * genrecog.c (add_to_sequence): Disable mode check for
12042 wildcard matches.
12043
12044 Thu Oct 7 20:14:16 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12045
12046 * ggc-simple.c (init_ggc): Set empty_string.
12047
12048 Thu Oct 7 01:13:15 1999 Richard Henderson <rth@cygnus.com>
12049
12050 * configure.in: Detect mmap. Add --with-gc=foo to select
12051 garbage collector; default to page if mmap available.
12052 * Makefile.in (GGC): Substitute.
12053
12054 Wed Oct 6 23:56:30 1999 Richard Henderson <rth@cygnus.com>
12055
12056 * c-decl.c (ggc_p): Enable.
12057
12058 Wed Oct 6 17:17:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12059
12060 * flow.c (verify_flow_info): Make it extern & unconditionally define.
12061
12062 1999-10-06 Brendan Kehoe <brendan@cygnus.com>
12063
12064 * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
12065 string for little-endian-data.
12066
12067 Wed Oct 6 16:10:35 1999 Michael Meissner <meissner@cygnus.com>
12068
12069 * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
12070 case somebody tries to compile --enable-checking code with gcc
12071 1.34 or such.
12072
12073 Wed Oct 6 12:22:50 1999 Richard Henderson <rth@cygnus.com>
12074
12075 * genrecog.c (add_to_sequence): Verify operand to label_ref is
12076 VOIDmode.
12077
12078 Wed Oct 6 10:21:15 1999 Richard Henderson <rth@cygnus.com>
12079
12080 * genconfig.c (main): Disable HAVE_conditional_arithmetic.
12081 * jump.c (jump_optimize_1): Document why.
12082
12083 Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12084
12085 * collect2.c (scan_prog_file, scan_libraries): Prototype function
12086 pointers and casts for `int_handler' and `quit_handler'.
12087
12088 * flow.c (verify_flow_info, split_hard_reg_notes,
12089 find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
12090 remove_edge, remove_fake_successors): Add static prototypes.
12091 (verify_flow_info): Wrap with macro ENABLE_CHECKING.
12092 (mark_set_1): Initialize variable `regno'.
12093 (unlink_insn_chain): Likewise for variable `curr'.
12094 (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
12095
12096 * loop.c (strength_reduce): Initialize variable
12097 `unrolled_insn_copies'.
12098 (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
12099 prototypes. Change these functions to take const PTR parameters
12100 to avoid prototype conflict when used as the comparson argument
12101 for qsort.
12102 (check_dbra_loop): Initialize variable `comparison_val'.
12103
12104 * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
12105 (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
12106 (find_valid_class): Initialize variable `best_class'.
12107 (find_reloads): Call memcpy, not bcopy.
12108
12109 * reload1.c (gen_mode_int, dump_needs): Add prototypes.
12110 (hard_reg_use_compare): Don't needlessly cast away const.
12111 (reload_reg_class_lower): Likewise.
12112 (choose_reload_regs): Initialize variable `regno'.
12113
12114 Tue Oct 5 16:34:12 1999 Paul Burchard <burchard@pobox.com>
12115
12116 * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
12117
12118 Tue Oct 5 16:14:40 1999 Michael Meissner <meissner@cygnus.com>
12119
12120 * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
12121 ({,d}discard): Add forward declarations. Declare parameter as
12122 unused.
12123 (main_without_main): Explicitly declare return type to be int.
12124 (memcpy): Properly declare.
12125
12126 * libgcc2.c (toplevel): If inhibit_libc is defined and not
12127 building the trampoline support, declare malloc, free, and
12128 atexit.
12129 (__clear_cache): Mark arguments as potentially unused.
12130
12131 * frame.c (toplevel): If inhibit_libc is defined, declare
12132 malloc and free.
12133
12134 Tue Oct 5 12:00:32 1999 Richard Henderson <rth@cygnus.com>
12135
12136 * flow.c (make_edge): Accept an optional 2D bitmap in which
12137 to cache edge existence. Update all callers.
12138 (make_label_edge, make_eh_edge): Pass through the edge cache.
12139 (make_edges): Provide the cache.
12140
12141 Tue Oct 5 12:16:49 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12142
12143 * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
12144 a char*.
12145 (local_mbtowc): Change the type of variable `i' from int to size_t.
12146
12147 * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
12148 (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
12149
12150 Tue Oct 5 11:34:52 1999 Michael Meissner <meissner@cygnus.com>
12151
12152 * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
12153 after other includes that define the appropriate types. Include
12154 tm_p.h for getting user prototypes.
12155 * ggc-callbacks.c (toplevel): Ditto.
12156 * ggc-none.c (toplevel): Ditto.
12157 * gcc-page.c (toplevel): Ditto.
12158 * ggc-simple.c (toplevel): Ditto.
12159
12160 Mon Oct 4 16:48:16 1999 Diego Novillo <dnovillo@cygnus.com>
12161 Jonathan Larmour <jlarmour@cygnus.co.uk>
12162
12163 * config/mips/mips.c (mips_move_2words): Split doubles if
12164 ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
12165
12166 Mon Oct 4 21:47:31 1999 Richard Henderson <rth@cygnus.com>
12167
12168 * genrecog.c (struct decision_test): New.
12169 (struct decision): Remove test-related members, sort the rest by size.
12170 (IS_SPLIT): Simplify.
12171 (new_decision, new_decision_test): New.
12172 (add_to_sequence): Use them. No special handling for args of
12173 non-MATCH codes.
12174 (maybe_both_true): Renamed from not_both_true; return sense changed.
12175 (maybe_both_true_1, maybe_both_true_2): New. Broken out
12176 of maybe_both_true and adjusted for decision_test.
12177 (position_merit): Remove.
12178 (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
12179 (merge_accept_insn): New, broken out of merge_trees.
12180 (merge_trees): Use them. No special case for c_test; no node
12181 splitting; use test type instead of position_merit.
12182 (factor_tests): New.
12183 (simplify_tests): New.
12184 (break_out_subroutines): Don't write code now.
12185 (find_afterward): New.
12186 (write_afterward, write_switch, write_cond): New.
12187 (write_action, is_unconditional): New.
12188 (write_node): New. Use them.
12189 (write_tree_1): Rewrite. Use the new functions above.
12190 (write_tree): Remove afterward processing.
12191 (write_subroutine): Simplify function variant emission.
12192 (write_subroutines): New.
12193 (same_codes, clear_codes): Remove.
12194 (same_modes, clear_modes): Remove.
12195 (write_header): New, broken out of main.
12196 (make_insn_sequence): Use new_decision and new_decision_test.
12197 (process_tree): New, broken out of main.
12198 (main): Adjust for merge_trees interface change.
12199 Don't #define operands in the output file.
12200 (record_insn_name): New, broken out of make_insn_sequence.
12201 (debug_decision_2, debug_decision_1, debug_decision_0): New.
12202 (debug_decision): New.
12203
12204 1999-10-04 21:58 -0700 Zack Weinberg <zack@bitmover.com>
12205
12206 * resource.c (find_free_register): Mark class_str argument const.
12207 * resource.h: Update prototype to match.
12208
12209 * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
12210 * i386.md: Give all anonymous insns names.
12211
12212 Mon Oct 4 21:12:02 1999 Jeffrey A Law (law@cygnus.com)
12213
12214 * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
12215 blocks.
12216
12217 Mon Oct 4 21:01:39 1999 Richard Henderson <rth@cygnus.com>
12218
12219 * toplev.c (dbr_sched_time): Unconditional.
12220 (peephole2_time): New.
12221 (compile_file): Add pass numbers to all of the dump file suffixes.
12222 Dump peephole2_time. Don't dump times for non-applicable passes.
12223 (rest_of_compilation): Add pass numbers to dump file suffixes.
12224 Conditionalize calls to the scheduler.
12225 * invoke.texi: Update.
12226
12227 Mon Oct 4 20:25:13 1999 Anthony Green <green@cygnus.com>
12228
12229 * flow.c (make_edges): Fix insn iteration.
12230 (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
12231 (find_basic_blocks_1): Fix spelling mistake.
12232
12233 Mon Oct 4 16:56:11 1999 Richard Henderson <rth@cygnus.com>
12234
12235 * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
12236 always have side-effects. Use memset not bzero.
12237 (make_node): Likewise.
12238
12239 Mon Oct 4 16:22:20 1999 Mark Mitchell <mark@codesourcery.com>
12240
12241 * stmt.c (expand_anon_union_decl): When any of the elements of the
12242 union is addressable, so is the entire union.
12243
12244 Mon Oct 4 11:38:33 1999 Richard Henderson <rth@cygnus.com>
12245
12246 * sbitmap.c (sbitmap_ones): Don't set too many bits.
12247
12248 * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
12249 * bitmap.c (bitmap_operation): Return true iff TO changed.
12250 (bitmap_equal_p): New.
12251 (bitmap_bit_p): Tidy arithmetic.
12252 (debug_bitmap_file): Likewise.
12253
12254 Mon Oct 4 11:28:37 1999 Richard Henderson <rth@cygnus.com>
12255
12256 * toplev.c (rest_of_compilation): Turn on cse_not_expected
12257 before cse2 instead of after.
12258
12259 Mon Oct 4 09:55:17 1999 Stan Cox <scox@cygnus.com>
12260
12261 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
12262 register offsets.
12263
12264 Mon Oct 4 08:54:12 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12265
12266 * cppinit.c (is_idchar initializer): Loosen tests to accept
12267 gcc 2.>6 and >2.
12268
12269 Mon Oct 4 02:31:20 1999 Mark Mitchell <mark@codesourcery.com>
12270
12271 * mips.md: Define conditional move patterns for floating point
12272 operands and DI mode conditions.
12273
12274 Mon Oct 4 02:12:41 1999 Mark Mitchell <mark@codesourcery.com>
12275
12276 * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
12277 always have side-effects.
12278
12279 Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com)
12280
12281 * mn10200.c (asm_file_start): Fix typo.
12282
12283 * cppinit.c (is_idchar initializer): Tighten tests for when
12284 to put the table into initialized memory.
12285
12286 * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
12287 not an array of rtunion.
12288 * gcc-page.c (ggc_alloc_rtvec): Similarly.
12289 * gcc-simple (ggc_free_rtvec): Similarly.
12290
12291 * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
12292 of rtunions.
12293
12294 * mbchar.h: Add missing #endif.
12295
12296 * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
12297 (FPBIT, DPBIT): Define.
12298
12299 Sun Oct 3 12:44:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12300
12301 * print-tree.c (print_node, indent_to): Remove redundant prototypes.
12302
12303 * profile.c (instrument_arcs, output_gcov_string,
12304 tablejump_entry_p): Add static prototypes.
12305 (output_gcov_string): Constify a char*.
12306
12307 * regmove.c (replacement_quality, fixup_match_2): Add static
12308 prototypes.
12309
12310 * resource.h (reg_dead_p): Add extern prototype.
12311
12312 * rtl.c (trim_filename): Add static prototype.
12313
12314 * scan-decls.c (skip_to_closing_brace): Likewise.
12315
12316 * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
12317 (expand_end_case): Initialize variable `range'.
12318 (emit_case_nodes): Remove unused prototype `rtx_fn'.
12319
12320 * varasm.c (asm_emit_uninitialised): Add static prototype.
12321 (asm_emit_uninitialised, assemble_variable): Mark parameter with
12322 ATTRIBUTE_UNUSED.
12323
12324 Sun Oct 3 12:24:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12325
12326 * cpplib.c (if_directive_nameo): Add static prototype.
12327
12328 * cse.c (cse_insn): Remove unused variable `p'.
12329
12330 * except.c (create_rethrow_ref, push_entry,
12331 receive_exception_label, new_eh_region_entry, find_func_region,
12332 clear_function_eh_region, process_nestinfo): Add static prototypes.
12333 (get_reg_for_handler): Hide definition.
12334 (process_nestinfo): Initialize variable `extra_handlers'.
12335
12336 * expr.h (expand_builtin_longjmp): Add extern prototype.
12337
12338 * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
12339
12340 * function.c (prepare_function_start): Likewise.
12341 (pop_function_context_from): Mark parameter `context' with
12342 ATTRIBUTE_UNUSED.
12343 (push_temp_slots_for_block, flush_addressof): Hide definition.
12344
12345 * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
12346 solve_program_flow_graph, calculate_branch_probs,
12347 function_summary, main, fancy_abort): Add prototypes.
12348
12349 * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
12350 (add_hash): Constify a char*.
12351
12352 * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
12353 ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
12354 ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
12355
12356 * integrate.c (expand_inline_function_eh_labelmap): Likewise.
12357
12358 * lists.c (free_list, zap_lists): Likewise.
12359
12360 Sun Oct 3 12:05:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12361
12362 * alias.c (nonlocal_reference_p): Add static prototype.
12363
12364 * bitmap.c (bitmap_element_allocate): Prototype args in function
12365 pointer cast.
12366
12367 * builtins.c (stabilize_va_list): Add static prototype.
12368 (expand_builtin_va_arg): Constify a char*.
12369
12370 * c-lex.c (getch, put_back, extend_token_buffer_to,
12371 read_line_number, token_getch, token_put_back): Add static
12372 prototypes.
12373
12374 * c-parse.gperf (hash, is_reserved_word): Likewise.
12375
12376 * cccp.c (is_dir_separator): Likewise.
12377
12378 Sat Oct 2 16:07:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12379
12380 * graph.h: New file to prototype functions exported by graph.c.
12381
12382 * Makefile.in (graph.o, toplev.o): Depend on graph.h.
12383
12384 * graph.c: Include graph.h.
12385
12386 * toplev.c: Likewise. Remove redundant prototypes.
12387
12388 Sat Oct 2 11:28:33 1999 Krister Walfridsson <cato@df.lth.se>
12389
12390 * invoke.texi: Removed duplicated description for -Q.
12391
12392 Sat Oct 2 11:16:00 1999 Jim Kingdon <http://developer.redhat.com>
12393
12394 * extend.texi: Grammar fix in __extension__ text.
12395
12396 Sat Oct 2 11:06:31 1999 Richard Henderson <rth@cygnus.com>
12397
12398 * md.texi (define_peephole2): New section.
12399
12400 Sat Oct 2 10:57:56 1999 Jan Hubicka <hubicka@freesoft.cz>
12401
12402 * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
12403 (mov $-1 to or peepholer): Enable for pentium when optimizing for
12404 speed.
12405
12406 Sat Oct 2 10:55:25 1999 Jan Hubicka <hubicka@freesoft.cz>
12407
12408 * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
12409
12410 Sat Oct 2 10:53:22 1999 Jan Hubicka <hubicka@freesoft.cz>
12411
12412 * i386.md (ffs expander): Emit Pentium friendly code for
12413 TARGET_PENTIUM.
12414
12415 Sat Oct 2 02:48:21 1999 Mark P. Mitchell <mark@codesourcery.com>
12416
12417 * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
12418 for non-trees.
12419 (build1): Likewise.
12420
12421 Fri Oct 1 18:01:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12422
12423 * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
12424
12425 Fri Oct 1 12:42:53 1999 Andreas Schwab <schwab@suse.de>
12426
12427 * config/m68k/m68k.c (use_return_insn): Return false if the pic
12428 register is in use.
12429
12430 Fri Oct 1 10:56:06 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12431
12432 * md.texi (No Constraints): Delete section.
12433 * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
12434 * final.c (final_scan_insn): We always have register constraints.
12435 * genattrtab.c: Don't include "insn-config.h".
12436 (write_attr_case): We always have register constraints.
12437 * genconfig.c (register_constraint_flag): Delete.
12438 (walk_insn_part): Don't check whether we have register constraints.
12439 (main): Don't write out "#define REGISTER_CONSTRAINTS".
12440 * genoutput.c (have_constraints): Delete.
12441 (main): Don't set it.
12442 (output_operand_data): We always have constraints.
12443 (scan_operands): Likewise.
12444 (compare_operands): Likewise.
12445 * local-alloc.c (block_alloc): We always have constraints.
12446 (requires_inout): Always compile this function.
12447 * recog.c (extract_insn): We always have constraints.
12448 (constrain_operands, reg_fits_class_p): Always compile these
12449 functions.
12450 * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
12451 fields.
12452 (struct insn_operand_data): Likewise.
12453 * regclass.c (regclass): We always have constraints.
12454 (record_reg_classes, copy_cost, record_address_regs,
12455 auto_inc_dec_reg_p): Always compile these functions.
12456 * regmove.c (regmove_optimize): We always have constraints.
12457 * reload.c (find_reloads): Likewise.
12458 * reload1.c (reload): Likewise.
12459 (reload_cse_simplify_operands): Likewise.
12460 * i860.c (output_delay_insn): Likewise.
12461
12462 Thu Sep 30 23:04:41 1999 Mark P. Mitchell <mark@codesourcery.com>
12463
12464 * iris6.h (BUILD_VA_LIST_TYPE): Define.
12465
12466 Thu Sep 30 18:44:50 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12467
12468 * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
12469 for the va_list record.
12470
12471 Thu Sep 30 18:34:54 1999 Jan Hubicka <hubicka@freesoft.cz>
12472
12473 * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
12474 prologues.
12475
12476 Thu Sep 30 18:31:36 1999 Jan Hubicka <hubicka@freesoft.cz>
12477
12478 * alias.c: Include insn-flags.h.
12479 * Makefile.in (alias.o): Update.
12480
12481 Thu Sep 30 18:21:30 1999 Jan Hubicka <hubicka@freesoft.cz>
12482
12483 * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
12484 to LTU and GEU. Handle more cases using sbb.
12485
12486 Thu Sep 30 18:18:39 1999 Jan Hubicka <hubicka@freesoft.cz>
12487
12488 * i386.md (truncatexfdf splitters): Do not use subreg.
12489 (fop XFmode patterns): Fix mode in operand testing.
12490
12491 Thu Sep 30 18:04:13 1999 Richard Henderson <rth@cygnus.com>
12492
12493 * jump.c (jump_optimize_1): Amend last change to test only the
12494 form of the operand, not the insn.
12495
12496 * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
12497 not register_operand to determine when B may need preloading.
12498
12499 Thu Sep 30 17:39:16 1999 Richard Henderson <rth@cygnus.com>
12500
12501 * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
12502 (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
12503 (call-value patterns): Move to end of file.
12504 (*): Remove mode from label_ref in (pc) context.
12505 (movstrqi): Use memory not general_operand for BLKmode operands.
12506 (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
12507 to register_operand operands.
12508 (peep2 patterns): Convert from commented-out peephole patterns.
12509
12510 Thu Sep 30 14:39:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12511
12512 * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
12513 to BUILT_IN_INIT_DWARF_REG_SIZES.
12514 * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
12515 Renamed from BUILT_IN_DWARF_REG_SIZE; call
12516 expand_builtin_init_dwarf_reg_sizes.
12517 * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
12518 with __builtin_init_dwarf_reg_size_table.
12519 * dwarf2out.c (struct reg_size_range): Delete.
12520 (expand_builtin_init_dwarf_reg_sizes): New function.
12521 (expand_builtin_dwarf_reg_size): Delete.
12522 * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
12523 (expand_builtin_dwarf_reg_size): Don't declare.
12524 * libgcc2.c (dwarf_reg_size_table_initialized): New.
12525 (dwarf_reg_size_table): New.
12526 (init_reg_size_table): New function.
12527 (copy_reg): Use dwarf_reg_size_table.
12528 (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
12529 before use.
12530
12531 Thu Sep 30 05:40:34 1999 Richard Earnshaw <rearnsha@arm.com>
12532
12533 * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
12534 Correctly build argument list to constructor and destructor functions.
12535
12536 Thu Sep 30 00:13:27 1999 Dirk Zoller <duz@rtsffm.com>
12537
12538 * c-tree.h (warn_float_equal): Declare.
12539 * c-decl.c (warn_float_equal): Define.
12540 (c_decode_option): Recognize -W[no-]float-equal.
12541 * c-typeck.c (build_binary_op): Conditionally warn
12542 about equality tests of floating point types.
12543 * toplev.c (documented_lan_options): Add -W[no-]float-equal.
12544 * invoke.texi: Add docs for -Wfloat-equal warning.
12545
12546 Wed Sep 29 23:43:39 1999 Jeffrey A Law (law@cygnus.com)
12547
12548 * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
12549 generating RTL directly.
12550 * mips.h (INIT_TARGET_OPTABS): Likewise.
12551 * mn10200.h (INIT_TARGET_OPTABS): Likewise.
12552
12553 * expr.h (init_mov_optab): Delete declaration
12554
12555 * h8300.c (WORD_REG_USED): Update to avoid useless register
12556 saves in interrupt functions and functions which never return.
12557
12558 * cse.c (struct set): Delete inner_dest_loc field.
12559 (cse_insn): Remove assignments to inner_dest_loc field.
12560
12561 Wed Sep 29 16:06:20 1999 Richard Henderson <rth@cygnus.com>
12562
12563 * ggc-page.c: Don't include <unistd.h> etc taken care of
12564 by "system.h". Include <sys/mman.h> afterward.
12565
12566 Wed Sep 29 16:05:18 1999 Richard Henderson <rth@cygnus.com>
12567
12568 * rs6000.c (rs6000_encode_section_info): If ggc_p, use
12569 ggc_alloc_string.
12570
12571 Tue Sep 28 16:45:40 1999 David Edelsohn <edelsohn@gnu.org>
12572
12573 * xcoffout.c (xcoffout_declare_function): Add documentation.
12574 * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
12575 TARGET_64BIT. Compare constant to -1, not bit pattern.
12576 (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
12577 (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix
12578 gen_movsi typos.
12579
12580 Tue Sep 28 16:43:14 1999 Nick Clifton <nickc@cygnus.com>
12581
12582 * dwarf2out.c (add_abstract_origin_attribute): Abort if
12583 origin_die is NULL.
12584 (gen_inlined_enumeration_type_die): Do not abort if the type has
12585 not been writeen out.
12586 (gen_inlined_structure_type_die): Do not abort if the type has
12587 not been writeen out.
12588 (gen_inlined_union_type_die): Do not abort if the type has
12589 not been writeen out.
12590 (gen_tagged_type_instantiation_die): Do not abort if the type
12591 has not been written out.
12592
12593 Tue Sep 28 14:33:47 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12594
12595 * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
12596 call it.
12597 * reg-stack.c (straighten_stack): Copy hard reg set with
12598 COPY_HARD_REG_SET.
12599
12600 Tue Sep 28 01:11:05 1999 Richard Henderson <rth@cygnus.com>
12601
12602 * builtins.c (stabilize_va_list): Stabilize array type va_list
12603 to a pointer type, not the base record type.
12604 (expand_builtin_va_copy): Dereference the pointers explicitly;
12605 use the correct size for the copy.
12606
12607 * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
12608 (rs6000_va_arg): Likewise.
12609
12610 Mon Sep 27 23:27:21 1999 Richard Henderson <rth@cygnus.com>
12611
12612 * rtl.h (struct rtx_def): Move gc_mark to align mode field.
12613
12614 Mon Sep 27 23:20:29 1999 Mark Mitchell <mark@codesourcery.com>
12615
12616 * tree.h (struct tree_decl): Use `bclass', not `class', in name of
12617 field.
12618 (DECL_BUILT_IN_CLASS): Adjust accordingly.
12619
12620 Mon Sep 27 23:03:16 1999 Richard Henderson <rth@cygnus.com>
12621
12622 * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
12623 (init_ggc): Use it instead of a constant.
12624 (ggc_collect): Bound allocated_last_gc by it.
12625
12626 Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com)
12627
12628 * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
12629 with va_list.
12630
12631 Mon Sep 27 19:40:17 CEST 1999 Marc Espie <espie@cvs.openbsd.org>
12632
12633 * configure.in (mips*el-*-openbsd*): Don't duplicate default settings.
12634 (mips*-*-openbsd*): Let big endian configuration be a fragment.
12635 * configure: Regen.
12636 * config/mips/openbsd.h: New, OpenBSD little endian target.
12637 * config/mips/openbsd-be.h: New, OpenBSD big endian target fragment.
12638 * config/mips/xm-openbsd.h: New, OpenBSD host.
12639
12640 Mon Sep 27 10:28:48 1999 Andreas Schwab <schwab@suse.de>
12641
12642 * config/m68k/m68k.c (output_function_prologue,
12643 output_function_epilogue): Use
12644 current_function_uses_pic_offset_table instead of regs_ever_live
12645 to decide whether to save/restore pic register.
12646 (legitimize_pic_address): Don't modify regs_ever_live any more.
12647
12648 Sun Sep 26 10:55:36 1999 Mark Mitchell <mark@codesourcery.com>
12649
12650 * function.h (struct function): Add x_dont_save_pending_sizes_p.
12651 * stor-layout.c (variable_size): Don't add sizes to the pending
12652 sizes list if x_dont_save_pending_sizes_p is set.
12653
12654 Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net)
12655
12656 * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
12657 for symbolic_operand().
12658 * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
12659
12660 Sun Sep 26 07:37:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12661
12662 * combine.c (gen_rtx_combine): Add missing call to va_end().
12663
12664 * final.c (asm_fprintf): Likewise.
12665
12666 * genattrtab.c (attr_rtx): Likewise.
12667
12668 Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com)
12669
12670 * cse.c: Update comments.
12671 (cse_insn): When converting a conditional/computed jump into
12672 an unconditional jump, always make sure a BARRIER immediately
12673 follows the converted jump. Do not delete unreachable code.
12674 (cse_basic_block): Do not delete unreachable code.
12675 * toplev.c (rest_of_compilation): Move call to
12676 delete_trivially_dead_insns after the conditional call to
12677 jump_optimize.
12678
12679 Sat Sep 25 09:03:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12680
12681 * collect2.c (make_temp_file): Don't prototype.
12682
12683 * gcc.c (make_temp_file): Likewise.
12684
12685 * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
12686
12687 Sat Sep 25 13:42:15 1999 Nick Clifton <nickc@cygnus.com>
12688
12689 * varasm.c (asm_emit_uninitialised): New function: Generate
12690 the assembler statements necessary to declare an uninitialised
12691 variable.
12692 (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
12693 variable.
12694 (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
12695 (ASM_EMIT_COMMON): New macro: Emit an entry in the common
12696 section.
12697 (assemble_variable): Use asm_emit_uninitialised to emit an
12698 uninitialised variable.
12699
12700 Fri Sep 24 17:10:56 1999 Nick Clifton <nickc@cygnus.com>
12701
12702 * combine.c (simplify_comparison): Cope with downshifting a 32 bit
12703 constant on a 64 bit host. Patch supplied by Geoffrey Keating
12704 <geoffk@cygnus.com>.
12705
12706 Fri Sep 24 10:48:10 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12707
12708 * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
12709 * c-common.h (builtin_function): Don't declare.
12710
12711 * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
12712 DECL_BUILT_IN.
12713 (pushdecl): Likewise.
12714 (finish_decl): Likewise.
12715 (builtin_function): New arg CLASS. Arg FUNCTION_CODE now of type
12716 int. All callers changed.
12717 Set the builtin's DECL_BUILT_IN_CLASS.
12718 * tree.h (enum built_in_class): New.
12719 (enum built_in_function): Delete NOT_BUILT_IN.
12720 (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
12721 in a union.
12722 (DECL_SET_FUNCTION_CODE): Likewise.
12723 (DECL_BUILT_IN_CLASS): New macro.
12724 (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
12725 (struct tree_decl): Split builtin function code field into a
12726 struct.
12727 (builtin_function): Declare.
12728
12729 Fri Sep 24 01:45:05 1999 Mark Mitchell <mark@codesourcery.com>
12730
12731 * optabs.c (init_traps): Fix typo in last change.
12732
12733 Fri Sep 24 01:10:11 1999 Mark Mitchell <mark@codesourcery.com>
12734
12735 * toplev.c (rest_of_decl_compilation): Update comment.
12736
12737 Fri Sep 24 11:57:06 1999 Geoffrey Keating <geoffk@cygnus.com>
12738
12739 * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
12740 in .sbss if appropriate.
12741 (EXTRA_SECTION_FUNCTIONS): Add sbss.
12742 (SBSS_SECTION_ASM_OP): New macro.
12743 * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
12744 (EXTRA_SECTIONS): Add in_sbss.
12745 * config/mips/mips.h: Prototype sbss_section.
12746
12747 Thu Sep 23 18:18:55 1999 Mark Mitchell <mark@codesourcery.com>
12748
12749 * stmt.c (expand_start_bindings): Don't allow cleanup instructions
12750 to disappear.
12751
12752 Thu Sep 23 18:07:01 1999 Mark Mitchell <mark@codesourcery.com>
12753
12754 * optabs.c (init_traps): Register trap_rtx as a GC root.
12755
12756 Thu Sep 23 17:41:47 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
12757
12758 * config/mips/mips.c (function_arg_pass_by_reference): Define
12759 unconditionally, since it's called unconditionally.
12760
12761 Thu Sep 23 13:40:02 1999 Jason Merrill <jason@yorick.cygnus.com>
12762
12763 * toplev.c (documented_lang_options): Add -fshort-wchar.
12764 * c-decl.c (c_decode_option): Likewise.
12765 (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
12766 for wchar_t.
12767 * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
12768 * gcc.c (default_compilers): If -fshort-wchar,
12769 override __WCHAR_TYPE__.
12770 * tm.texi (C Dialect Options): Add -fshort-wchar.
12771
12772 * dwarf2out.c (output_aranges): Use DW_AT_location to find the
12773 symbol for a variable.
12774
12775 * cpplib.h (CPP_PREPROCESSED): New macro.
12776 * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
12777 we're seeing this input for a second time.
12778
12779 Thu Sep 23 12:54:49 1999 Alex Samuel <samuel@codesourcery.com>
12780
12781 * emit-rtl.c (init_emit_once): Initialize modes first.
12782
12783 Sun Sep 19 01:23:23 1999 Alex Samuel <samuel@codesourcery.com>
12784
12785 * config/i386/i386.c (pic_label_name): Change to char pointer.
12786 (global_offset_table): New variable.
12787 (load_pic_register): Fill global_offset_table if it hasn't
12788 already been done. Allocate pic_label_name dynamically.
12789 * ggc.h (empty_string): New variable.
12790 * ggc-simple.c (empty_string): Likewise.
12791 (init_ggc): Allocate empty_string and add as root.
12792 * stmt.c (digit_strings): New variable.
12793 (init_stmt): Add last_block_end_note as root. Allocate and
12794 initialize digit_strings.
12795 (expand_asm_operands): Use empty_string instead of string
12796 constant. Use digit_strings instead of string constants.
12797 * profile.c (init_arc_profiler): Allocate string with
12798 ggc_alloc_string instead of xmalloc.
12799 (output_func_start_profiler): Likewise.
12800 * c-typeck.c (digest_init): Check if init is error_mark_node.
12801
12802 Thu Sep 23 12:59:14 1999 Alex Samuel <samuel@codesourcery.com>
12803 Richard Henderson <rth@cygnus.com>
12804
12805 * ggc-page.c: New file.
12806 * Makefile.in (ggc-page.o): New.
12807
12808 Thu Sep 23 13:55:21 1999 Jeffrey A Law (law@cygnus.com)
12809
12810 * invoke.texi: Document -fdelete-null-pointer-checks
12811 * toplev.c (flag_delete_null_pointer_checks): New.
12812 (f_options): Add entry for -fdelete-null-pointer-checks.
12813 (rest_of_compilation): Conditionalize null pointer check
12814 elimination on flag_delete_null_pointer_checks.
12815 (main): If -O2 or greater, enable -fdelete-null-pointer-checks
12816
12817 1999-09-23 10:56 -0700 Zack Weinberg <zack@bitmover.com>
12818
12819 * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
12820 copyright notice and special exception to GPL.
12821
12822 Thu Sep 23 13:40:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12823
12824 * abi64.h (mips_function_value): Add prototype arguments.
12825
12826 * mips-protos.h: New file with mips prototypes.
12827
12828 * mips.c: Include "tm_p.h".
12829 (mktemp, lookup_name): Add prototype arguments.
12830 (extern_list, string_constant, mips_fill_delay_slot,
12831 mips_output_external, mips_output_external_libcall,
12832 mips_output_filename, mips_declare_object, function_prologue,
12833 mips_expand_prologue, function_epilogue, mips16_constant,
12834 build_mips16_function_stub, mips_output_conditional_branch):
12835 Constify a char*.
12836 (mips_va_start): Remove unused variable `u'.
12837 (mips_va_arg): Cast value to unsigned when comparing against one.
12838 (trace): Delete.
12839 (save_restore_insns, mips_expand_prologue): Add missing arg in
12840 call to `large_int'.
12841
12842 * mips.h: Move prototypes to mips-protos.h.
12843 (data_section, memory_address_p, rdata_section,
12844 readonly_data_section, simple_epilogue_p, text_section): Delete
12845 prototypes delcared elsewhere.
12846 (mips_epilogue_delay_slots, print_options): Delete unused decls.
12847 (trace): Delete.
12848 (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
12849
12850 * mips.md: Delete extra args in call to `mips_move_2words'.
12851
12852 * xm-iris6.h (alloca): Add prototype argument.
12853
12854 * genpeep.c: Include "tm_p.h" in generated output file.
12855
12856 Thu Sep 23 10:36:55 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
12857
12858 * basic-block.h (find_edge_index): Change parameters.
12859 * flow.c (verify_edge_list): Pass basic_block parameters to
12860 find_edge_index instead of integers.
12861
12862 Thu Sep 23 15:54:12 1999 Nick Clifton <nickc@cygnus.com>
12863
12864 * combine.c (simplify_comparison): Use an unsigned shift to adjust
12865 the constant.
12866
12867 Thu Sep 23 08:46:21 1999 Guy Harris <guy@netapp.com>
12868
12869 * gcc.1: Fix a formatting error.
12870
12871 Wed Sep 22 16:10:21 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
12872
12873 * install.texi (Configurations): Remove pyramid. Add fr30, i686,
12874 i786, mn10200, mn10300, pdp11, v850.
12875
12876 Thu Sep 23 07:37:13 1999 Dan Nicolaescu <dann@ics.uci.edu>
12877
12878 * libgcc2.c (num_digits): Add prototype with
12879 __attribute__((const)).
12880 (__terminate): Add prototype.
12881
12882 Thu Sep 23 05:32:06 1999 Richard Henderson <rth@cygnus.com>
12883
12884 * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
12885
12886 * alpha/alpha.c (print_operand): Fix type of `code'.
12887 (alpha_output_filename): Constify.
12888 * alpha/alpha.h: Move all function declarations ...
12889 * alpha/alpha-protos.h: ... here. New file.
12890 * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
12891 (SECTION_FUNCTION_TEMPLATE): Likewise.
12892
12893 Thu Sep 23 11:15:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12894
12895 * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
12896 * expr.c (expand_expr): Likewise.
12897 (do_jump): Likewise.
12898 (do_store_flag): Pass ccp_store_flag to can_compare_p.
12899 * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
12900 accessor macros.
12901 (enum can_compare_purpose): New.
12902 (can_compare_p): Adjust prototype.
12903 (prepare_cmp_insn, prepare_operand): Declare.
12904 * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
12905 * optabs.c (cmp_available_p): Deleted.
12906 (expand_abs): Pass ccp_jump to can_compare_p.
12907 (can_compare_p): New arg PURPOSE. Check for combined optabs.
12908 (prepare_cmp_insn): No longer static. Add arg PURPOSE.
12909 Call can_compare_p rather than cmp_available_p.
12910 (prepare_operand): No longer static.
12911 (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
12912 (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
12913 (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
12914 sequence to use emit_cmp_and_jump_insns.
12915 (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
12916
12917 Wed Sep 22 17:58:01 1999 Stan Cox <scox@cygnus.com>
12918
12919 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
12920 register offsets; let LEGITIMIZE_ADDRESS load it into a register.
12921 (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
12922 (plus (reg) (const_int 0))
12923 * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
12924
12925 Wed Sep 22 17:55:31 1999 David Edelsohn <edelsohn@gnu.org>
12926
12927 * rs6000.c (expand_block_move): DImode loads and stores require
12928 word-aligned displacements. Increment address registers with
12929 adddi3 on 64-bit platform. Use TARGET_POWERPC64 not TARGET_64BIT.
12930
12931 Wed Sep 22 17:35:55 1999 Michael Meissner <meissner@cygnus.com>
12932
12933 * dwarf2out.c (base_type_die): Use the name __unknown__ if there
12934 is no name for the base type, rather than segfault. If we are
12935 writing out a complex integer type, use DW_ATE_lo_user.
12936
12937 * expr.c (emit_move_insn_1): If we are copying a complex that fits
12938 in one word or less (complex char, complex short, or on 64 bit
12939 systems complex float) to/from a hard register, copy it through
12940 memory instead of dying in gen_{real,imag}part. If we have a
12941 short complex type, prevent inlining since it allocates stack
12942 memory.
12943
12944 * tree.c (build_complex_type): If we are writing dwarf2 output,
12945 generate a name for complex integer types.
12946
12947 Wed Sep 22 11:34:08 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
12948
12949 * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
12950 * flow.c (remove_edge): Remove extra whitespace.
12951 (remove_fake_edges): Fix comment.
12952 (add_noreturn_fake_exit_edges): Use the correct name.
12953
12954 Wed Sep 22 16:12:40 BST 1999 Nathan Sidwell <nathan@acm.org>
12955
12956 * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
12957 (mostlyclean): Depend on INTL_MOSTLYCLEAN.
12958 (clean): Depend on INTL_CLEAN.
12959 (maintainer-clean): Adjust.
12960
12961 Wed Sep 22 10:18:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12962
12963 * configure.in (AC_PREREQ): Bump to 2.13.
12964 (AC_C_STRINGIZE): Call this instead of using a custom macro.
12965
12966 * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
12967
12968 * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
12969
12970 * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
12971
12972 * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
12973 (HAVE_STRINGIZE): Define.
12974
12975 Wed Sep 22 06:25:15 1999 Jim Kingdon <http://developer.redhat.com>
12976
12977 * c-parse.in: save and restore warn_pointer_arith on __extension__
12978 along with pedantic.
12979 (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
12980 Set the type of extension to itype rather than $<itype>1 kludge.
12981 * extend.texi (Alternate Keywords): Adjust documentation.
12982 * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
12983
12984 Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com)
12985
12986 * pa.c, pa.h, pa.md: Support multiple assembler dialects in
12987 most assembler templates.
12988
12989 * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
12990 FP loads and stores.
12991 (following_call): Always return zero for the PA8000.
12992 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
12993 FP loads and stores.
12994 (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
12995
12996 * pa.h (BRANCH_COST): Define.
12997
12998 * pa.md (return, return_internal): Use bve for PA2.0.
12999
13000 * pa.md (fused multiply): Add variants which reduce height for the
13001 fused multiply, but which still generate 2 insns.
13002 (fnegabs): Similarly.
13003
13004 * pa.md (subsi3): Turn into an expander. Create two anonymous
13005 patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0.
13006 * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
13007
13008 * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
13009 for TARGET_PA_20.
13010 (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
13011 code generation.
13012 (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
13013 (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
13014
13015 * regclass.c (init_regs): Add "top_of_stack" as a garbage
13016 collection root.
13017
13018 * flow.c (record_active_eh_regions): Terminate loop after finding
13019 the last insn in the last basic block.
13020
13021 Wed Sep 22 20:25:00 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13022
13023 * config/c4x/c4x.md: Delete parallel instruction peepholes.
13024
13025 Wed Sep 22 19:59:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13026
13027 * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
13028
13029 Wed Sep 22 19:56:25 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13030
13031 * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
13032 splitting to not use output template.
13033
13034 Wed Sep 22 19:50:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13035
13036 * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
13037 * config/c4x/c4x.c (c4x_va_start): New function.
13038
13039 Tue Sep 21 18:40:01 1999 Jan Hubicka <hubicka@freesoft.cz>
13040
13041 * genrecog.c (not_both_true): Handle correctly cases when called for
13042 tests with different positions in the insn.
13043
13044 Tue Sep 21 18:29:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13045
13046 * machmode.h (HOST_PTR_PRINTF): Move from here ...
13047
13048 * system.h (HOST_PTR_PRINTF): ... to here.
13049
13050 * mips-tfile.c: Don't include machmode.h.
13051
13052 * Makefile.in (MACHMODE_H): New variable. Update to use it.
13053 (mips-tfile.o): Don't depend on machmode.h.
13054
13055 Tue Sep 21 18:27:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13056
13057 * haifa-sched.c (sched_analyze): Rename local variable `region' to
13058 avoid conflicts with typedef struct `region' at the top level scope.
13059
13060 Tue Sep 21 14:14:50 1999 Richard Henderson <rth@cygnus.com>
13061
13062 * basic-block.h (basic_block): Add eh_beg, eh_end.
13063 * flow.c (entry_exit_blocks): Update.
13064 (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
13065 Call new functions.
13066 (find_basic_blocks_1): Don't record eh_list at each bb. Use
13067 lists.c functions to allocate insn lists.
13068 (make_edges): Use eh_beg+eh_end, not the lists. Split out EH
13069 edge creation ...
13070 (make_eh_edge): ... here. New.
13071 (move_stray_eh_region_notes): New.
13072 (record_active_eh_regions): New.
13073 (delete_unreachable_blocks): Split out block merging ...
13074 (try_merge_blocks): ... here. New.
13075 (merge_blocks_move_predecessor_nojumps): Remove edge arg.
13076 Dump debugging data.
13077 (merge_blocks_move_successor_nojumps): Likewise.
13078 (merge_blocks): Use eh_beg+eh_end to validate block movement.
13079
13080 Tue Sep 21 11:15:03 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
13081
13082 * extend.texi (Bound member functions): Document unbound pmf
13083 conversion.
13084
13085 Tue Sep 21 14:55:11 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
13086
13087 * flow.c (split_edge): Handle insertion on a fallthrough edge which
13088 has the EXIT_BLOCK as a dest.
13089
13090 Tue Sep 21 14:51:23 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
13091
13092 * flow.c (remove_edge): New function to remove an edge from the
13093 flow graph.
13094 (remove_fake_successors): New function to remove fake successor edges.
13095 (remove_fake_edges): New function to remove all fake edges from the
13096 flow graph.
13097 (add_fake_exit_edges): New function to add fake edges from all blocks
13098 with no successors to the exit block.
13099 * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
13100 prototypes for new functions.
13101
13102 Tue Sep 21 14:49:53 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
13103
13104 * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
13105 Use Pmode to determine whether to output .dword or .word.
13106
13107 Tue Sep 21 11:04:34 1999 Alex Samuel <samuel@codesourcery.com>
13108
13109 * tree.c (built_in_filename): New variable.
13110 (BUILT_IN_FILENAME): New macro.
13111 (init_tree_codes): Allocate built_in_filename.
13112 (make_node): Use built_in_filename instead of string constant.
13113
13114 Tue Sep 21 14:13:27 1999 Nick Clifton <nickc@cygnus.com>
13115
13116 * configure.in: Add fr30 target.
13117 * configure: Regenerate.
13118 * config/fr30: New directory.
13119 * config/fr30/crti.asm: New file.
13120 * config/fr30/fr30.c: New file.
13121 * config/fr30/crtn.asm: New file.
13122 * config/fr30/fr30.h: New file.
13123 * config/fr30/fr30.md: New file.
13124 * config/fr30/lib1funcs.asm: New file.
13125 * config/fr30/t-fr30: New file.
13126 * config/fr30/xm-fr30.h: New file.
13127
13128 Tue Sep 21 06:45:31 1999 Jeffrey A Law (law@cygnus.com)
13129
13130 * flow.c (merge_blocks_move_successor_nojumps): Delete the
13131 BARRIER at the end of the successor, not the BARRIER before
13132 the successor.
13133
13134 * pa.c (pa_add_gc_roots): Fix thinko in last change.
13135
13136 Tue Sep 21 05:29:17 1999 Richard Earnshaw (rearnsha@arm.com)
13137
13138 * stmt.c (any_pending_cleanups): Don't crash when
13139 current_function->stmt is unset.
13140
13141 Tue Sep 21 00:59:49 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13142
13143 * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
13144 other initializations that may use it for relative offsets.
13145
13146 Mon Sep 20 21:43:25 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13147
13148 * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
13149 (ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas.
13150 * config/i386/sol2dbg.h: Removed.
13151 * config/i386/sol2gas.h: New file, to enable gas work-around.
13152 * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
13153 Don't use sol2dbg.h.
13154 * configure: Rebuilt.
13155
13156 Mon Sep 20 13:29:41 1999 Mark Mitchell <mark@codesourcery.com>
13157
13158 * invoke.texi (-fthis-is-variable): Remove documentation.
13159
13160 Mon Sep 20 12:59:16 1999 Richard Henderson <rth@cygnus.com>
13161
13162 * basic-block.h (compute_bb_for_insn): Declare.
13163 * flow.c (compute_bb_for_insn): Export. Don't accept the varray
13164 to use; set size of basic_block_for_insn directly.
13165 (find_basic_blocks): Update.
13166
13167 Mon Sep 20 15:11:54 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13168
13169 * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
13170
13171 Mon Sep 20 14:56:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13172
13173 * crtstuff.c (ON_EXIT): Delete empty macro definition.
13174 (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
13175
13176 Mon Sep 20 15:25:35 1999 Nick Clifton <nickc@cygnus.com>
13177
13178 * c-decl.c (c_decode_option): Extend comment.
13179
13180 Mon Sep 20 14:43:37 1999 Nick Clifton <nickc@cygnus.com>
13181
13182 * toplev.c (progname): Make 'const char *'
13183 (flag_print_mem): Move out of main.
13184 (version_flag): Move out of main.
13185 (filename): Move out of main.
13186 (debug_args): Remove g prefix from options.
13187 (documented_lang_options): Remove cpplib specific options.
13188 (display_help): Add g prefix to debug options.
13189 (check_lang_option): Delete this function.
13190 (decode_d_option): New function: Decode -d... option.
13191 (decode_f_option): New function: Decode -f... option.
13192 (decode_W_option): New function: Decode -W... option.
13193 (decode_g_option): New function: Decode -g... option.
13194 (independent_decode_option): New function: Decode a language
13195 independent command line option.
13196 (main): Invoke lang_decode_option and then
13197 independent_decode_option on each command line option in
13198 turn.
13199
13200 Mon Sep 20 05:41:36 1999 Jeffrey A Law (law@cygnus.com)
13201
13202 Revert this change. Gavin's patch to operand_equal_p is a better fix.
13203 * fold-const.c (fold_range_test): Do not try to fold the range
13204 test if the rhs or lhs has side effects.
13205
13206 * basic-block.h (compute_flow_dominators): Declare.
13207
13208 * gcse.c (alloc_code_hoist_mem): New function.
13209 (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
13210 (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
13211 (hoist_code, one_code_hoisting_pass): Likewise.
13212 (gcse_main): If optimizing for size, then hoist expressions
13213 computed in multiple dominated basic blocks.
13214
13215 * gcse.c (invalid_nonnull_info): New function.
13216 (delete_null_pointer_checks): Likewise.
13217 * rtl.h (delete_null_pointer_checks): Declare.
13218 * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
13219
13220 * flow.c (merge_blocks_move_predecessor_nojumps): New function.
13221 (merge-blocks_move_successor_nojumps): Likewise.
13222 (merge_blocks): Allow merging of some blocks, even if it requires
13223 physical movement of the blocks, but not if it requires new jumps.
13224
13225 * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
13226 Callers and prototype changed.
13227 * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
13228
13229 Mon Sep 20 06:56:32 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13230
13231 * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
13232 -YP when both -p and -pg are present. From i386/sol2.h.
13233
13234 Mon Sep 20 10:49:05 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13235
13236 * Makefile.in (distclean): Delete tm_p.h.
13237 * configure.in: Create a new file, "tm_p.h", from a list in
13238 "tm_p_file". For ix86 systems, set up "tm_p_file" to include
13239 "i386/i386-protos.h".
13240
13241 * alias.c: Include "tm_p.h".
13242 * c-typeck.c: Likewise.
13243 * calls.c: Likewise.
13244 * cse.c: Likewise.
13245 * emit-rtl.c: Likewise.
13246 * explow.c: Likewise.
13247 * expmed.c: Likewise.
13248 * expr.c: Likewise.
13249 * final.c: Likewise.
13250 * flow.c: Likewise.
13251 * fold-const.c: Likewise.
13252 * function.c: Likewise.
13253 * gcse.c: Likewise.
13254 * global.c: Likewise.
13255 * haifa-sched.c: Likewise.
13256 * integrate.c: Likewise.
13257 * jump.c: Likewise.
13258 * local-alloc.c: Likewise.
13259 * loop.c: Likewise.
13260 * optabs.c: Likewise.
13261 * recog.c: Likewise.
13262 * reg-stack.c: Likewise.
13263 * regclass.c: Likewise.
13264 * regmove.c: Likewise.
13265 * reload.c: Likewise.
13266 * reload1.c: Likewise.
13267 * reorg.c: Likewise.
13268 * resource.c: Likewise.
13269 * stmt.c: Likewise.
13270 * stor-layout.c: Likewise.
13271 * toplev.c: Likewise.
13272 * tree.c: Likewise.
13273 * unroll.c: Likewise.
13274 * genattrtab.c (main): Make generated file include "tm_p.h".
13275 * genemit.c (main): Likewise.
13276 * genoutput.c (main): Likewise.
13277 * genrecog.c (main): Likewise.
13278
13279 * i386.h: Delete all prototypes.
13280 * i386.c: Include "tm_p.h".
13281 (ix86_attr_length_default): Call constant_call_address_operand
13282 with correct number of arguments.
13283 * i386-protos.h: New file.
13284 * i386.md (unnamed patterns): Call constant_call_address_operand
13285 with correct number of arguments.
13286 (exception_receiver): Call load_pic_register with correct number
13287 of arguments.
13288
13289 Sun Sep 19 14:18:39 1999 Richard Henderson <rth@cygnus.com>
13290
13291 * c-pragma.c (mark_align_stack): Dereference the void* properly.
13292
13293 Sun Sep 19 09:03:40 1999 Mark Mitchell <mark@codesourcery.com>
13294
13295 * rtl.h (insns_safe_to_move_p): New function.
13296 * loop.c (find_and_verify_loops): Use it.
13297 * rtlanal.c (insns_safe_to_move_p): Define it.
13298
13299 Sun Sep 19 02:54:33 1999 Richard Henderson <rth@cygnus.com>
13300
13301 * c-pragma.c: Include ggc.h.
13302 * Makefile.in (c-pragma.o): Update.
13303
13304 Sat Sep 18 16:01:18 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13305
13306 * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
13307 (LIB_SPEC): Likewise.
13308 (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
13309 Reindent -YP/-p/-pg.
13310 Copied from config/sparc/sol2.h.
13311
13312 Sat Sep 18 11:52:43 1999 Richard Henderson <rth@cygnus.com>
13313
13314 * c-pragma.c (mark_align_stack): New.
13315 (init_pragma): New.
13316 * c-pragma.h (init_pragma): Declare it.
13317 * c-lex.c (init_parse): Call it.
13318
13319 Sat Sep 18 15:20:38 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13320
13321 * configure.in: Pick up thread library on Solaris/x86 just
13322 like on Solaris/sparc.
13323 * configure: Rebuilt.
13324
13325 Sat Sep 18 11:15:58 1999 Alex Samuel <samuel@codesourcery.com>
13326
13327 * rtl.h (global_rtx_index): New enum.
13328 (global_rtl): Change to array of rtx.
13329 (pc_rtx, cc0_rtx): Redefine accordingly.
13330 (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
13331 (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
13332 (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
13333 (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
13334 (const_int_rtx): Change to array of rtx.
13335 (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
13336 accordingly.
13337 * emit-rtl.c (global_rtl): Change to array of rtx.
13338 (const_int_rtx): Change to aray of rtx.
13339 (gen_rtx_CONST_INT): Redefine accordingly.
13340 (init_emit_once): Allocate and initialize global_rtl. Likewise
13341 for const_int_rtx. Add both as GC roots.
13342 * genattrtab.c (global_rtl): Update declaration.
13343
13344 1999-09-17 Ulrich Drepper <drepper@cygnus.com>
13345
13346 * Makefile (USER_H): Add iso646.h back.
13347
13348 Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com)
13349
13350 * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
13351 zapping the LOG_LINKS of sched_before_next_call.
13352
13353 * pa.h (INSN_SETS_ARE_DELAYED): Delete.
13354 * pa.c (insn_refs_are_delayed): Renamed from
13355 insn_sets_and_refs_are_delayed.
13356
13357 Fri Sep 17 15:19:01 1999 Mark Mitchell <mark@codesourcery.com>
13358
13359 * functiion.h (struct function): Add x_whole_function_mode_p.
13360 (retrofit_block): Declare.
13361 * function.c (retrofit_block): New function.
13362 (identify_blocks): Add assertions. Allow an incomplete set of
13363 block notes if we're still generating code for the function.
13364 * integrate.c: Include loop.h.
13365 (expand_inline_function): Call find_loop_tree_blocks to map block
13366 notes to blocks when in whole-function mode. Use retrofit_block
13367 to insert new BLOCKs for the inlined function, rather than
13368 insert_block.
13369 * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel.
13370 * Makefile.in (integrate.o): Depend on loop.h.
13371
13372 Fri Sep 17 15:11:20 1999 Mark Mitchell <mark@codesourcery.com>
13373
13374 * tree.h (warn_about_unused_variables): Declare.
13375 * stmt.c (warn_about_unused_variables): New function, split out
13376 from ...
13377 (expand_end_bindings): Here.
13378
13379 Fri Sep 17 15:07:37 1999 Mark Mitchell <mark@codesourcery.com>
13380
13381 * stmt.c (preserve_subexpressions_p): Don't crash when
13382 current_function->stmt is unset.
13383
13384 Fri Sep 17 15:03:16 1999 Mark Mitchell <mark@codesourcery.com>
13385
13386 * stmt.c (expand_start_bindings): Allow callers to pass a flag
13387 indicating that no NOTE_INSN_BLOCK_BEG note is required.
13388 (expand_start_target_temps): Use it.
13389 * except.c (expand_eh_region_start_for_decl): Likewise.
13390 * expr.c (expand_expr): Likewise.
13391
13392 Fri Sep 17 15:05:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
13393
13394 * fold-const.c (operand_equal_p): Pay attention to side effects.
13395
13396 Fri Sep 17 11:14:17 1999 Jason Merrill <jason@yorick.cygnus.com>
13397
13398 * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
13399 * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
13400
13401 * tlink.c (scan_linker_output): Look for keywords before accepting
13402 a mangled name in quotes.
13403
13404 Thu Sep 16 16:47:08 1999 Richard Henderson <rth@cygnus.com>
13405
13406 * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
13407 * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
13408
13409 Thu Sep 16 16:35:41 1999 Richard Henderson <rth@cygnus.com>
13410
13411 * alpha.md: Revert Thu Nov 26 change that came in through the
13412 last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
13413 Avoid earlyclobber when possible.
13414
13415 Thu Sep 16 18:44:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13416
13417 * libgcc2.c (__do_global_ctors): Call atexit with one arg.
13418
13419 * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
13420 Define HAVE_ON_EXIT.
13421
13422 Thu Sep 16 18:06:35 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13423
13424 * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use
13425 CTYPE_CONV in all ctype macros.
13426
13427 * cccp.c (initialize_char_syntax): Use uppercase ctype macro
13428 from system.h.
13429
13430 * cexp.y (initialize_random_junk): Likewise.
13431
13432 * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
13433
13434 * i370.c (handle_pragma): Likewise.
13435
13436 * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
13437
13438 * v850.c (override_options): Likewise.
13439
13440 * doprint.c (_doprnt): Likewise.
13441
13442 * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
13443 Likewise.
13444
13445 * fixinc/server.c (load_data): Likewise.
13446
13447 * fold-const.c (real_hex_to_f): Likewise.
13448
13449 * genattr.c (write_upcase, gen_attr): Likewise.
13450
13451 * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
13452 write_upcase): Likewise.
13453
13454 * genemit.c (print_code): Likewise.
13455
13456 * genopinit.c (gen_insn): Likewise.
13457
13458 * genpeep.c (print_code): Likewise.
13459
13460 * genrecog.c (print_code): Likewise.
13461
13462 * optabs.c (init_libfuncs): Likewise.
13463
13464 Thu Sep 16 14:03:32 1999 Mark Mitchell <mark@codesourcery.com>
13465
13466 * haifa-sched.c (sched_analyze): Keep the list of notes organized
13467 in pairs.
13468 (reemit_notes): Likewise.
13469
13470 Thu Sep 16 11:50:52 1999 Alex Samuel <samuel@codesourcery.com>
13471
13472 * ggc.h (ggc_root): Move to ggc-common.c.
13473 (roots): Remove.
13474 (ggc_mark_rtx, ggc_mark_tree): Change to macro.
13475 (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
13476 (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
13477 (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
13478 * ggc-common.c (ggc_root): Move from ggc.h.
13479 (roots): Declare, static.
13480 (ggc_mark_rtx, ggc_mark_tree): Renamed to...
13481 (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
13482 null or check/set mark bit.
13483 (ggc_mark_roots): New.
13484 * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
13485
13486 Thu Sep 16 11:37:32 1999 Richard Henderson <rth@cygnus.com>
13487
13488 * m32r.c: Include toplev.h.
13489 (*): Add ATTRIBUTE_UNUSED as needed to arguments.
13490 (gen_compare): Rename swap_p to must_swap to match uses.
13491 Add default abort case.
13492 (m32r_output_function_epilogue): Remove unused variables.
13493 (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
13494 * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
13495 define to empty parameter list. Update all uses.
13496 (predicate decls): Use enum machine_mode not int.
13497 * m32r.md (movsi): Call abort, not fatal_insn.
13498 (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
13499
13500 1999-09-14 Andrew Haley <aph@cygnus.com>
13501
13502 * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
13503 use $0 instead of 0.
13504
13505 Thu Sep 16 10:53:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13506
13507 * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
13508 computation out of loop over hard regs.
13509
13510 Wed Sep 15 21:37:06 1999 Mark Mitchell <mark@codesourcery.com>
13511
13512 * function.c (identify_blocks): Don't shadow a variable in an
13513 outer scope.
13514 * integrate.c (integrate_decl_tree): Don't use pushlevel,
13515 pushdecl, or poplevel to build up the new BLOCK tree.
13516 (expand_inline_function): Likewise.
13517 (integrate_parm_decls): Likewise.
13518
13519 Wed Sep 15 21:20:38 1999 Mark Mitchell <mark@codesourcery.com>
13520
13521 * c-typeck.c (qualify_type): Merge qualifiers from both types.
13522
13523 1999-09-15 Brad Lucier <lucier@math.purdue.edu>
13524
13525 * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
13526 * invoke.texi: Document this change.
13527
13528 Wed Sep 15 17:56:00 1999 Richard Henderson <rth@cygnus.com>
13529
13530 * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
13531 Free the struct.
13532 (mark_emit_status): Renamed from mark_emit_state.
13533 * except.c (mark_eh_status): Renamed from mark_eh_state.
13534 Check not null before marking.
13535 (free_eh_status): New.
13536 * expr.c (mark_expr_status, free_expr_status): New.
13537 * function.c (free_machine_status): New.
13538 (free_after_parsing): New.
13539 (free_after_compilation): Move bits to free_after_parsing; call
13540 free_eh_status, free_expr_status; zero the marked members of the
13541 function state.
13542 (prepare_function_start): No can_garbage_collect.
13543 Call init_eh_for_function.
13544 (expand_dummy_function_end): Free up current_function state.
13545 (mark_function_status): Renamed from mark_function_state.
13546 (mark_function_chain): No can_garbage_collect. Call mark_expr_status.
13547 * function.h (struct function): No can_garbage_collect.
13548 (free_machine_status, free_after_parsing): Declare.
13549 (free_eh_status, free_expr_status): Declare.
13550 * ggc.h (mark_expr_status): Declare.
13551 * stmt.c (free_stmt_status): Free the struct.
13552 (mark_stmt_status): Renamed from mark_stmt_state.
13553 (init_stmt): Don't call init_eh.
13554 (init_stmt_for_function): Don't call init_eh_for_function.
13555 * toplev.c (compile_file): Call init_eh.
13556 (rest_of_compilation): Free basic block info before ggc_collect.
13557 Call free_after_parsing; conditionally call free_after_compilation.
13558 * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
13559 Check not null before marking.
13560 (free_varasm_status): Don't check DECL_DEFER_OUTPUT. Free the struct.
13561
13562 Wed Sep 15 17:53:16 1999 Richard Henderson <rth@cygnus.com>
13563
13564 * c-lex.c (yylex): Initialize warn.
13565
13566 Wed Sep 15 18:35:38 1999 Jeffrey A Law (law@cygnus.com)
13567
13568 * pa.c (emit_move_sequence): Properly set the mode of the scratch
13569 register when performing secondary reloads for the SAR register.
13570
13571 Wed Sep 15 15:51:52 1999 Mark Mitchell <mark@codesourcery.com>
13572
13573 * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
13574 (NOTE_BLOCK): New macro.
13575 (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
13576 * function.h (identify_blocks): Change prototype.
13577 * function.c (identify_blocks): Simplify.
13578 (reorder_blocks): Likewise.
13579 * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
13580 NOTE_INSN_BLOCK_{BEG,END}.
13581 * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
13582 the list of saved notes if the note isn't a
13583 NOTE_INSN_BLOCK_{BEG,END}.
13584 (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
13585 NOTE_BLOCK_NUMBER.
13586 (reemit_notes): Adjust recreation of notes to reflect new saved
13587 note structure.
13588 * print-rtl.c (print_rtx): Print the address of the BLOCK when
13589 printing a block note.
13590 * stmt.c (block_vector): Remove.
13591 (find_loop_tree_blocks): Simplify.
13592 (unroll_block_trees): Likewise.
13593 * tree.h (reorder_block): Change prototype.
13594
13595 Wed Sep 15 14:39:35 1999 Jason Merrill <jason@yorick.cygnus.com>
13596
13597 * gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT.
13598 * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
13599 (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
13600 (__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl.
13601 (atexit, exit): Simplify.
13602 * tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT.
13603 * config/lots: Remove defns of HAVE_ATEXIT.
13604
13605 Wed Sep 15 10:25:12 1999 Mark Mitchell <mark@codesourcery.com>
13606
13607 * calls.c (precompute_arguments): Fix typo in comment.
13608 * expr.c (preexpand_calls): Don't preexpand the cleanup in a
13609 TARGET_EXPR.
13610
13611 Wed Sep 15 09:59:59 1999 Mark Mitchell <mark@codesourcery.com>
13612
13613 * dsp16xx.c (override_options): Fix typos in GC root registration.
13614
13615 Wed Sep 15 15:23:28 1999 Philip Blundell <pb@nexus.co.uk>
13616
13617 * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
13618 from config/svr4.h.
13619 (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
13620 (FUNCTION_PROFILER): Redefine appropriately for Linux.
13621 (CC1_SPEC): Likewise.
13622
13623 Wed Sep 15 10:09:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13624
13625 * genattr.c (main): Add extern prototype. Call return, not exit.
13626 * genattrtab.c (main): Likewise.
13627 * gencheck.c (main): Likewise.
13628 * gencodes.c (main): Likewise.
13629 * genconfig.c (main): Likewise.
13630 * genemit.c (main): Likewise.
13631 * genextract.c (main): Likewise.
13632 * genflags.c (main): Likewise.
13633 * gengenrtl.c (main): Likewise.
13634 * genopinit.c (main): Likewise.
13635 * genoutput.c (main): Likewise.
13636 * genpeep.c (main): Likewise.
13637 * genrecog.c (main): Likewise.
13638
13639 * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
13640 * genattrtab.c (get_insn_name): Likewise.
13641 * gencodes.c (get_insn_name): Likewise.
13642 * genconfig.c (get_insn_name): Likewise.
13643 * genemit.c (get_insn_name): Likewise.
13644 * genextract.c (get_insn_name): Likewise.
13645 * genflags.c (get_insn_name): Likewise.
13646 * genopinit.c (get_insn_name): Likewise.
13647 * genpeep.c (get_insn_name): Likewise.
13648
13649 * gencheck.c (usage): Add static prototype.
13650 * genextract.c (print_path): Constify a char*.
13651 * genopinit.c (optabs): Likewise.
13652 * genoutput.c (operand_data, data, output_predicate_decls,
13653 compare_operands): Likewise.
13654 * genrecog.c (write_tree): Add default case in switch.
13655
13656 Wed Sep 15 09:59:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13657
13658 * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
13659
13660 * print-rtl.c (get_insn_name): Remove prototype.
13661
13662 * toplev.h (progname): Declare const.
13663
13664 * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
13665 init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
13666 dump_sched_info, dump_local_alloc, regset_release_memory,
13667 print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
13668 error_with_file_and_line, error_with_decl, error_for_asm, error,
13669 fatal, warning_with_file_and_line, warning_with_decl, warning,
13670 pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
13671 Remove redundant prototypes.
13672
13673 (notice, check_lang_option, report_file_and_line, vnotice,
13674 mark_file_stack): Add static prototype.
13675 (set_fatal_function): Add prototype.
13676 (vnotice, report_file_and_line, set_fatal_function,
13677 check_lang_option): Constify a char*.
13678 (main): Prototype. Call return, not exit.
13679
13680 Wed Sep 15 09:50:18 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13681
13682 * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
13683
13684 * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
13685
13686 * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
13687
13688 * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
13689
13690 Wed Sep 15 11:04:43 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13691
13692 * function.c (assign_parms): Delete arg SECOND_TIME. Don't test it,
13693 behave as if it's zero in all cases.
13694 (expand_function_start): Adjust call to assign_parms.
13695 * tree.h (assign_parms): Adjust prototype.
13696 * objc/objc-act.c (hack_method_prototype): Adjust call to
13697 assign_parms.
13698
13699 Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com)
13700
13701 * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
13702 arg_pointer_rtx fixed if the argument pointer register is
13703 not fixed.
13704 (NONZERO_BASE_PLUS_P): Likewise.
13705
13706 Tue Sep 14 20:26:02 1999 Richard Henderson <rth@cygnus.com>
13707
13708 * rtl.def (match_insn, match_insn2): Remove match_insn; rename
13709 match_insn2 to match_insn.
13710 * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
13711
13712 Tue Sep 14 20:10:29 1999 Richard Henderson <rth@cygnus.com>
13713
13714 * Makefile.in (USER_H): Remove va-foo.h.
13715
13716 * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
13717 va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
13718 va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
13719 va-spur.h,va-v850.h}: Remove.
13720
13721 Tue Sep 14 19:43:16 1999 Richard Henderson <rth@cygnus.com>
13722
13723 * sparc/sparc.md (eligible_for_return_delay): New attribute.
13724 (in_return_delay): Use it instead of match_insn.
13725
13726 Tue Sep 14 23:05:37 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13727
13728 * config/alpha/va_list.h (va-alpha.h): Do not include.
13729 (__gnuc_va_list): Typedef as in varargs.h.
13730
13731 Tue Sep 14 18:14:03 1999 Richard Henderson <rth@cygnus.com>
13732
13733 * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
13734 DECL_LIVE_RANGE_RTL.
13735
13736 Tue Sep 14 16:47:08 1999 Mark Mitchell <mark@codesourcery.com>
13737
13738 * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
13739 not NOTE_BLOCK_NUMBER.
13740 (expand_eh_region_end): Likewise.
13741 (find_exception_handler_labels): Likewise.
13742 (scan_region): Likewise.
13743 (exception_optimize): Likewise.
13744 (update_rethrow_references): Likewise.
13745 (set_insn_eh_region): Likewise.
13746 * final.c (final_scan_insn): Likewise.
13747 * flow.c (make_edges): Likewise.
13748 * integrate.c (expand_inline_function): Likewise.
13749 * print-rtl.c (print_rtx): Likewise.
13750
13751 Tue Sep 14 16:30:16 1999 Richard Henderson <rth@cygnus.com>
13752
13753 * ginclude/stdarg.h, ginclude/varargs.h: Implement in
13754 terms of builtin functions and types.
13755
13756 * mips.c (mips_build_va_list): New.
13757 (mips_va_start, mips_va_arg): New.
13758 * mips.h (BUILD_VA_LIST_TYPE): New.
13759 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
13760
13761 * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
13762 (sh_build_va_list, sh_va_start, sh_va_arg): New.
13763 * sh.h (BUILD_VA_LIST_TYPE): New.
13764 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
13765
13766 Tue Sep 14 16:20:24 1999 Richard Henderson <rth@cygnus.com>
13767
13768 * recog.h (struct recog_data): Make dup_num, operand_address_p,
13769 n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
13770 (struct insn_data): Likewise with n_operands, n_dups,
13771 n_alternatives, output_format.
13772 * regclass.c (scan_one_insn): Cast n_operands to int before
13773 arithmetic inside comparison.
13774
13775 Tue Sep 14 15:13:36 1999 Richard Henderson <rth@cygnus.com>
13776
13777 * toplev.c (compile_function): Unconditionally emit nop.
13778
13779 Tue Sep 14 14:41:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13780
13781 * haifa-sched.c (actual_hazard): Move declaration of variable
13782 `this_cost' into the scope where it is used.
13783
13784 Tue Sep 14 14:14:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13785
13786 * c-pragma.c (handle_pragma_token): Wrap variables `name' and
13787 `value' in HANDLE_PRAGMA_WEAK. Wrap variable `align' in
13788 HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
13789
13790 * genrecog.c (make_insn_sequence): Call memset, not bzero.
13791
13792 * jump.c (find_insert_position): Don't declare or define unless
13793 !HAVE_conditional_arithmetic.
13794 (returnjump_p_1, delete_prior_computation): Add static prototypes.
13795
13796 * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
13797
13798 * recog.c (offsettable_address_p): Prototype function pointer.
13799 (preprocess_constraints): Call memset, not bzero.
13800
13801 * tree.c (tree_node_kind_names): Constify a char*. Make static.
13802 (gcc_obstack_init): Don't declare.
13803 (fix_sizetype): Add static prototype.
13804 (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
13805 (tree_cons): Call memset, not bzero.
13806
13807 * varasm.c (remove_from_pending_weak_list): Wrap declaration and
13808 definition in macro ASM_WEAKEN_LABEL.
13809 (mark_const_hash_entry): Add static prototype.
13810
13811 Tue Sep 14 12:22:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13812
13813 * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
13814
13815 * unroll.c (find_common_reg_term, subtract_reg_term,
13816 loop_find_equiv_value): Add static prototypes.
13817 (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
13818 (copy_loop_body): Remove unreachable break statement.
13819
13820 * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
13821
13822 * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
13823
13824 Tue Sep 14 15:28:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13825
13826 Undo some changes from the gcc2 merge:
13827 * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
13828 * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
13829 pointers.
13830
13831 Undo this change:
13832 Sat Oct 3 07:20:28 1998 Stephen L Moshier <moshier@world.std.com>
13833 * emit-rtl.c (gen_lowpart_common): Disable optimization of
13834 initialized float-int union if the value is a NaN.
13835
13836 Tue Sep 14 04:03:44 1999 Mumit Khan <khan@xraylith.wisc.edu>
13837
13838 * gthr-win32.h: New file.
13839
13840 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
13841 shared as a valid attribute.
13842 * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
13843 * extend.texi: Document `shared' variable attribute.
13844
13845 Tue Sep 14 04:01:46 1999 Loren Rittle <ljrittle@acm.org>
13846
13847 * configure.in: Handle --enable-threads on FreeBSD.
13848 * configure: Rebuit.
13849
13850 Tue Sep 14 03:58:44 1999 Andreas Jaeger <aj@arthur.rhein-neckar.de>
13851
13852 * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
13853 thread support.
13854 * configure: Rebuilt.
13855
13856 Tue Sep 14 03:47:23 1999 Joel Sherrill <joel@OARcorp.com>
13857 Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
13858 Rosimildo DaSilva <rdasilva@connecttel.com>
13859
13860 * configure.in (m68k-*-rtemscoff*): Added.
13861 * configure.in (mips64orion-*-rtems*): Converted to ELF.
13862 * configure.in (sparc-*-rtemsaout*): Added as alias for old
13863 sparc-rtems configuration.
13864 * configure.in (sparc-*-rtemself*): Added.
13865 * configure.in (sparc-*-rtems*): Now ELF not a.out.
13866 * config/i386/rtems.h: Added comment.
13867 * config/sparc/rtemself.h: New file.
13868
13869 * configure.in (m68k-rtemself): Added.
13870 * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
13871 and DWARF_DEBUGGING_INFO.
13872 * config/m68k/crti.s: New file.
13873 * config/m68k/crtn.s: New file.
13874 * config/m68k/t-crtstuff: New file.
13875 * config/m68k/rtemself.h: New file.
13876
13877 * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
13878 global ctor/dtor and C++ exception handling.
13879 * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
13880 for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
13881 ENDFILE_SPEC.
13882 * config/i386/t-rtems-i386: New File.
13883
13884 Tue Sep 14 09:47:41 1999 Andreas Schwab <schwab@suse.de>
13885
13886 * stmt.c (expand_end_case): Return right away if the case stack is
13887 empty.
13888
13889 Tue Sep 14 01:47:19 1999 Jeffrey A Law (law@cygnus.com)
13890
13891 * Makefile.in (version.c): Remove rule incorrectly brought in from
13892 the gcc2 merge.
13893
13894 Tue Sep 14 01:42:27 1999 Marc Espie <espie@cvs.openbsd.org>
13895
13896 * Makefile.in: Prepend $(SHELL) to move-if-change calls.
13897 * msdos/top.sed: Take into account a prepended $(SHELL) to
13898 move-if-change.
13899 * winnt/config-nt.sed: Likewise. Kill bogus substitution.
13900
13901 * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
13902
13903 Tue Sep 14 01:38:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
13904
13905 * regmove.c (fixup_match_1): Don't change an unchanging register.
13906 (stable_but_for_p): Renamed to:
13907 (stable_and_no_regs_but_for_p). Reject unchanging registers too.
13908 Changed all callers.
13909
13910 Tue Sep 14 01:33:15 1999 Andreas Schwab <schwab@suse.de>
13911
13912 * loop.c (strength_reduce): Don't call reg_used_between_p if the
13913 insn from BL2 is after the insn from BL.
13914
13915 Mon Sep 13 21:06:01 1999 Richard Henderson <rth@cygnus.com>
13916
13917 * recog.h (INSN_OUTPUT_FORMAT_*): New.
13918 (struct insn_data): Merge `template' and `outfun' into `output'.
13919 Add `output_format'.
13920 * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
13921 (struct data): Remove `outfun'; add `output_format'.
13922 (name_for_index): Remove declaration.
13923 (output_insn_data): Handle output formats.
13924 (process_template): Emit the bare array for @.
13925 (gen_expand, gen_split): Set output_format to NONE.
13926 * output.h (get_insn_template): Declare.
13927 * final.c (get_insn_template): New.
13928 (final_scan_insn): Use it.
13929 * toplev.c (compile_file): Likewise.
13930
13931 * c4x/c4x.c (c4x_process_after_reload): Likewise.
13932 * i860/i860.c (output_delayed_branch): Likewise.
13933 (output_delay_insn): Likewise.
13934
13935 1999-09-13 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
13936
13937 * rtl.c (obstack_alloc_rtx): Removed.
13938
13939 1999-09-13 17:03 -0700 Zack Weinberg <zack@bitmover.com>
13940
13941 * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
13942
13943 Mon Sep 13 15:21:46 1999 Richard Henderson <rth@cygnus.com>
13944
13945 * i386.c (call_insn_operand): Reject const_int.
13946 (expander_call_insn_operand): Use call_insn_operand.
13947
13948 Mon Sep 13 17:44:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13949
13950 * gcc.c (getrusage): Wrap prototype arguments in PROTO().
13951
13952 1999-09-13 12:18 -0700 Zack Weinberg <zack@bitmover.com>
13953
13954 * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
13955 Use DImode operation.
13956
13957 1999-09-13 12:13 -0700 Zack Weinberg <zack@bitmover.com>
13958
13959 * gcc.c: Include sys/resource.h.
13960 (report_times): New flag.
13961 (execute): If report_times is set, calculate and report the
13962 CPU time consumed by each subprocess.
13963
13964 (rus, prus): New globals.
13965 (option_map): Add --time.
13966 (display_help): Document -time.
13967 (process_command): Set report_times if -time is given.
13968 Turn off -pipe if -time is given.
13969
13970 * invoke.texi: Document new option -time.
13971
13972 * configure.in: Check for getrusage. Check if we have to
13973 prototype getrusage.
13974 * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
13975 * configure: Regenerate.
13976 * config.in: Regenerate.
13977
13978 Mon Sep 13 12:57:06 1999 Dave Brolley <brolley@cygnus.com>
13979
13980 * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
13981 fields.
13982
13983 Mon Sep 13 10:01:33 1999 Nick Clifton <nickc@cygnus.com>
13984
13985 * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
13986 appropriate) if FINE_GRAINED_LIBRARIES is not defined.
13987 (nan): Return _thenan_sf or _thenan_df as appropriate.
13988 (L_thenan_sf): Define _thenan_sf.
13989 (L_thenan_df): Define _thenan_df.
13990
13991 * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
13992 (DPBIT_FUNCS): Add _thenan_df.
13993
13994 Mon Sep 13 09:38:53 1999 Andreas Schwab <schwab@suse.de>
13995
13996 * tree.c (fix_sizetype): Exchange the types for TYPE_SIZE and
13997 TYPE_SIZE_UNIT.
13998
13999 Sun Sep 12 23:28:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14000
14001 * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
14002
14003 * gcc.h: New file.
14004 (lang_specific_driver): Don't take a function pointer parameter.
14005 All callers changed.
14006
14007 * gcc.c: Include gcc.h.
14008 (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
14009 lang_specific_extra_outfiles, fatal): Don't declare.
14010 (multilib_defaults_raw): Constify.
14011 (read_specs): Call memset, rather than bzero.
14012 (main): Call return, not exit.
14013 (lookup_compiler): Call memcpy, not bcopy.
14014 (fatal): Make extern.
14015
14016 * cppspec.c: Include gcc.h.
14017 (lang_specific_driver): Initialize variable `quote'. Constify a
14018 char*. All calls to the function pointer parameter now
14019 explicitly call `fatal'.
14020
14021 * gccspec.c (lang_specific_driver): Include gcc.h.
14022
14023 Sun Sep 12 19:52:10 1999 Richard Earnshaw <rearnsha@arm.com>
14024
14025 * arm.c (note_invalid_constants): Use recog_data.operand_type
14026 for recog_op_type.
14027
14028 Sun Sep 12 15:53:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14029
14030 * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
14031 Declare.
14032
14033 * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
14034 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
14035 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
14036 reload_secondary_in_reload, reload_secondary_out_reload,
14037 reload_secondary_in_icode, reload_secondary_out_icode,
14038 reload_reg_rtx, reload_when_needed): Delete declarations.
14039 (struct reload): New structure.
14040 (rld): Declare new array.
14041 * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
14042 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
14043 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
14044 reload_secondary_in_reload, reload_secondary_out_reload,
14045 reload_secondary_in_icode, reload_secondary_out_icode,
14046 reload_reg_rtx, reload_when_needed): Delete definitions.
14047 (rld): New array.
14048 (whole file): Replace uses of the deleted arrays with uses of rld.
14049 * reload1.c (whole file): Replace uses of the deleted arrays with
14050 uses of rld.
14051 (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
14052 explicit loops, not with bcopy.
14053
14054 Sun Sep 12 05:00:24 1999 Richard Henderson <rth@cygnus.com>
14055
14056 * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
14057 insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
14058 insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
14059 insn_name): Delete and consolidate into new structures.
14060 (insn_operand_predicate_fn): New.
14061 (insn_output_fn): New.
14062 (insn_gen_fn): New.
14063 (struct insn_operand_data): New.
14064 (struct insn_data): New.
14065 (insn_data): New.
14066 (OUT_FCN): Update for insn_data change.
14067 * builtins.c (expand_builtin_strlen): Likewise.
14068 (expand_builtin_memcmp): Likewise.
14069 * combine.c (make_extraction, simplify_comparison): Likewise.
14070 * cse.c (canon_reg, cse_insn): Likewise.
14071 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
14072 * expmed.c (store_bit_field, extract_bit_field): Likewise.
14073 (emit_store_flag): Likewise.
14074 * expr.c (convert_move, emit_block_move): Likewise.
14075 (clear_storage, emit_push_insn, expand_increment): Likewise.
14076 (do_store_flag): Likewise.
14077 * expr.h (GEN_FCN): Likewise.
14078 (insn_gen_function): Die.
14079 * final.c (final_scan_insn): Update for insn_data change.
14080 (output_asm_name): Likewise.
14081 * function.c (fixup_var_refs_1): Likewise.
14082 * loop.c (check_dbra_loop): Likewise.
14083 * optabs.c (expand_binop, expand_twoval_binop): Likewise.
14084 (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
14085 (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
14086 (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
14087 * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
14088 * regmove.c (gen_add3_insn): Likewise.
14089 * reload.c (push_secondary_reload, combine_reloads): Likewise.
14090 (find_reloads, find_reloads_address_1): Likewise.
14091 (debug_reload_to_stream): Likewise.
14092 * reload1.c (emit_reload_insns, gen_reload): Likewise.
14093 * stmt.c (expand_end_case): Likewise.
14094 * toplev.c (compile_file): Likewise.
14095
14096 * c4x/c4x.c (c4x_process_after_reload): Likewise.
14097 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
14098
14099 * print-rtl.c (insn_name_ptr): Remove declaration.
14100 (get_insn_name): Declare.
14101 (print_rtx): Use it.
14102 * genoutput.c (insn_name_ptr): Remove.
14103 (next_operand_number): New.
14104 (struct operand_data): New.
14105 (null_operand, odata, odata_end): New.
14106 (struct data): Use struct operand_data.
14107 (idata, idata_end): Renamed from insn_data and end_of_insn_data.
14108 (get_insn_name): Renamed from name_for_index.
14109 (output_prologue): Define NO_MD_PROTOTYPES.
14110 (output_predicate_decls): Break out from output_epilogue.
14111 Iterate over the operands list.
14112 (output_operand_data): Break out from output_epilogue. Emit
14113 just the operands list.
14114 (output_insn_data): Break out from output_epilogue. Emit just
14115 the insn data.
14116 (output_epilogue): Remove.
14117 (output_get_insn_name): New.
14118 (constraints, op_n_alternatives, predicates, address_p): Die.
14119 (modes, strict_low, seen): Die.
14120 (scan_operands): Take new param `d' instead of writing to
14121 seven global variables.
14122 (compare_operands): New.
14123 (place_operands): New.
14124 (validate_insn_alternatives): Update for struct data change.
14125 (gen_insn): Don't zero or copy 7 global arrays. Update for
14126 scan_operands; call place_operands.
14127 (gen_peephole, gen_expand, gen_split): Likewise.
14128 (main): Update for new output routines.
14129
14130 * genattr.c (insn_name_ptr): Remove.
14131 (get_insn_name): New function.
14132 * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
14133 * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
14134 * genrecog.c: Likewise.
14135
14136 * alpha.md (adddi3): Make `pattern' array static.
14137
14138 Sun Sep 12 22:05:21 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14139
14140 * config/c4x/c4x.h (c4x_rpts_cycles_string,
14141 c4x_cpu_version_string): Constify char *.
14142 * config/c4x/c4x.c (c4x_rpts_cycles_string,
14143 c4x_cpu_version_string): Likewise.
14144
14145 Sat Sep 11 23:28:33 1999 Richard Henderson <rth@cygnus.com>
14146
14147 * tree.c (save_tree_status): Revert 10 Sep change.
14148 (restore_tree_status): Likewise. Call obstack_free with NULL
14149 before freeing the obstack proper.
14150
14151 Sat Sep 11 23:23:46 1999 Richard Henderson <rth@cygnus.com>
14152
14153 * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
14154
14155 * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
14156 surrounding context.
14157
14158 Sat Sep 11 19:52:43 1999 Mark Mitchell <mark@codesourcery.com>
14159
14160 * tree.c (type_hash_canon): Put all types in the hash-table, when
14161 GC'ing.
14162
14163 Sat Sep 11 18:37:04 1999 Richard Henderson <rth@cygnus.com>
14164
14165 * recog.h (struct recog_data, recog_data): New.
14166 (recog_foo variables): Kill.
14167 * recog.c (recog_operand, recog_operand_loc): Kill.
14168 (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
14169 (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
14170 (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
14171 (recog_data): Define.
14172 (extract_insn): Update all recog_foo references to use recog_data.
14173 (preprocess_constraints, constrain_operands): Likewise.
14174 * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
14175 * genattrtab.c (main): Likewise.
14176 * genextract.c (main): Likewise.
14177 * genoutput.c: Likewise.
14178 * genrecog.c (write_subroutine, main): Likewise.
14179 * local-alloc.c (block_alloc): Likewise.
14180 * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
14181 * regclass.c (scan_one_insn, record_reg_classes): Likewise.
14182 * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
14183 * reload.c (find_reloads, find_reloads_toplev): Likewise.
14184 * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
14185 (reload_cse_simplify_operands): Likewise.
14186
14187 * arc/arc.c (arc_final_prescan_insn): Likewise.
14188 * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
14189 * h8300/h8300.c (notice_update_cc): Likewise.
14190 * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
14191 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
14192 * mn10200/mn10200.c (notice_update_cc): Likewise.
14193 * mn10300/mn10300.c (notice_update_cc): Likewise.
14194 * romp/romp.c (update_cc): Likewise.
14195 * sparc/sparc.c (check_pic): Likewise.
14196 * v850/v850.c (notice_update_cc): Likewise.
14197
14198 * genemit.c (main): Don't declare recog_operand.
14199
14200 Sat Sep 11 12:41:55 1999 Alex Samuel <samuel@codesourcery.com>
14201
14202 * ggc.h (rtvec_def): Forward declare.
14203 (tree_node): Likewise.
14204 (ggc_root): Define.
14205 (roots): Declare.
14206 (ggc_set_mark_rtx): Add prototype.
14207 (ggc_set_mark_rtvec): Likewise.
14208 (ggc_set_mark_tree): Likewise.
14209 * ggc-simple.c (ggc_root): Don't define.
14210 (roots): Don't declare.
14211 (ggc_mark_rtx): Remove.
14212 (ggc_mark_rtvec): Likewise.
14213 (ggc_mark_tree): Likewise.
14214 (ggc_mark_varray): Likewise.
14215 (ggc_mark_tree_hash_table_entry): Likewise.
14216 (ggc_mark_tree_hash_table): Likewise.
14217 (ggc_set_mart_rtx): New function.
14218 (ggc_set_mark_rtvec): Likewise.
14219 (ggc_set_mark_tree): Likewise.
14220 (ggc_add_root): Remove.
14221 (ggc_add_rtx_root): Likewise.
14222 (ggc_remove_tree_root): Likewise.
14223 (ggc_add_string_root): Likewise.
14224 (ggc_add_tree_varray_root): Likewise.
14225 (ggc_add_tree_hash_table_root): Likewise.
14226 (ggc_del_root): Likewise.
14227 (ggc_mark_rtx_ptr): Likewise.
14228 (ggc_mark_tree_ptr): Likewise.
14229 (ggc_mark_string_ptr): Likewise.
14230 (ggc_mark_tree_varray_ptr): Likewise.
14231 (ggc_mark_tree_hash_table_ptr): Likewise.
14232 * ggc-common.c: New file.
14233 * Makefile.in (OBJS): Add ggc-common.o.
14234 (ggc-common.o): List dependencies.
14235
14236 1999-09-10 22:37 -0700 Zack Weinberg <zack@bitmover.com>
14237
14238 * cppalloc.c (xstrdup): Use memcpy.
14239 * cpperror.c (cpp_print_containing_files): Don't use
14240 cpp_notice.
14241 * cpplib.c (conditional_skip): Set temp->lineno.
14242 (do_endif): Make error message less obscure.
14243 (if_directive_name): New function.
14244 (cpp_get_token [case EOF]): Unwind the if stack and generate
14245 error messages for each unterminated conditional in this file.
14246 (parse_string): Do not behave differently if -traditional.
14247
14248 Fri Sep 10 14:04:07 1999 Richard Henderson <rth@cygnus.com>
14249
14250 * builtins.c (expand_builtin_va_arg): Cope with an array-type
14251 va_list decomposing to pointer-type.
14252 * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
14253 (rs6000_va_arg): Likewise.
14254
14255 Fri Sep 10 13:21:21 1999 Jim Wilson <wilson@cygnus.com>
14256
14257 * except.c (start_dynamic_handler): Compute size using
14258 STACK_SAVEAREA_MODE.
14259
14260 Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14261
14262 * protoize.c: Remove various __STDC__ and POSIX hacks. Don't
14263 include directory headers. Don't define strrchr. Don't provide
14264 my_* replacement functions. Prefer PTR over `pointer_type'.
14265 Don't prototype system functions. Don't redefine getopt.
14266
14267 (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
14268 safe_read, safe_write, save_pointers, restore_pointers,
14269 is_id_char, in_system_include_dir, directory_specified_p,
14270 file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
14271 find_corresponding_lparen, referenced_file_is_newer,
14272 save_def_or_dec, munge_compile_params, gen_aux_info_file,
14273 process_aux_info_file, identify_lineno, check_source,
14274 seek_to_line, forward_to_next_token_char, output_bytes,
14275 output_string, output_up_to, other_variable_style_function,
14276 find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
14277 do_processing, is_syscalls_file, rename_c_file, find_extern_def,
14278 find_static_definition, connect_defs_and_decs, add_local_decl,
14279 add_global_decls, needs_to_be_converted, visit_each_hash_node,
14280 add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
14281 edit_fn_declaration, edit_formals_lists, edit_fn_definition,
14282 scan_for_missed_items, edit_file, string_list_cons): Add static
14283 prototypes.
14284 (standard_exec_prefix, target_machine, target_version,
14285 default_syscalls_dir, string_list, string_list_cons, find_file,
14286 do_cleaning): Constify a char*.
14287 (safe_read, safe_write): Use PTR, not a char*.
14288 (is_id_char): Take an int, not a char.
14289 (main): Add prototype. Call return, not exit.
14290
14291 Fri Sep 10 16:48:26 1999 Andrew Haley <aph@cygnus.com>
14292
14293 * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
14294 when comparing types.
14295
14296 Fri Sep 10 08:43:32 1999 Richard Henderson <rth@cygnus.com>
14297
14298 * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
14299 (strength_reduce): Release the varrays from the no-bivs early exit.
14300
14301 * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
14302 the loop over the registers.
14303
14304 * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
14305 for a new obstack.
14306 (restore_tree_status): Check that instead when freeing the obstack.
14307
14308 Wed Sep 8 16:12:04 1999 Andrew Haley <aph@cygnus.com>
14309
14310 * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
14311 as pointers.
14312
14313 Fri Sep 10 11:58:55 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14314
14315 * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall. Fix some
14316 operand size modifiers.
14317
14318 Fri Sep 10 10:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14319
14320 * c-common.c (c_common_nodes_and_builtins): Don't build
14321 va_list_type_node.
14322 * c-common.h (enum c_tree_index and related accesor macros): Remove
14323 everything now declared in tree.h.
14324 * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
14325 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
14326 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
14327 (error_mark_node, void_type_node, char_type_node, integer_type_node,
14328 unsigned_type_node, ptr_type_node, va_list_type_node,
14329 integer_zero_node, null_pointer_node, integer_one_node): Delete.
14330 (init_decl_processing): Call build_common_tree_nodes and
14331 build_common_tree_nodes_2 instead of building their nodes here.
14332 Don't add roots for these nodes.
14333 * stor-layout.c (size_zero_node, size_one_node): Delete.
14334 (set_sizetype): Make a new node for bitsizetype each time.
14335 * tree.c (global_trees): New variable.
14336 (init_obstacks): Add a gc root for it.
14337 (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
14338 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
14339 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
14340 (build_common_tree_nodes): New function.
14341 (fix_sizetype): New function.
14342 (build_common_tree_nodes_2): New function.
14343 * tree.h (enum tree_index): New.
14344 (global_trees): Declare.
14345 Add accessor macros for all nodes now moved to global_trees.
14346 Delete their declarations.
14347
14348 Thu Sep 9 20:15:46 1999 Richard Henderson <rth@cygnus.com>
14349
14350 * c-decl.c (finish_function): When processing a nested function,
14351 push and pop GC context around rest_of_compilation.
14352
14353 Thu Sep 9 16:42:06 1999 Richard Henderson <rth@cygnus.com>
14354
14355 * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
14356 Default ix86_arch to PROCESSOR_I386.
14357 * i386.h (CC1_CPU_SPEC): Don't add -march=foo. Remove -mno-foo.
14358 (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
14359 (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
14360 (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
14361 __tune_foo__ if no -mcpu. Make -mcpu=bar define __tune_bar__.
14362 (EXTRA_SPECS): Remove deleted specs.
14363
14364 Thu Sep 9 16:03:06 1999 Richard Henderson <rth@cygnus.com>
14365
14366 * function.c (assign_stack_local_1): Allocate from
14367 function->x_frame_offset, not frame_offset.
14368
14369 Thu Sep 9 14:36:31 1999 Mark Mitchell <mark@codesourcery.com>
14370
14371 * ggc.h (lang_cleanup_tree): Remove.
14372 * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
14373 * ggc-callbacks.c (lang_cleanup_tree): Remove.
14374
14375 * c-decl.c (finish_struct): Use ggc_alloc to allocate
14376 TYPE_LANG_SPECIFIC when garbage collecting.
14377 (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
14378 (lang_cleanup_tree): Remove.
14379
14380 Thu Sep 9 14:23:02 1999 Jason Merrill <jason@yorick.cygnus.com>
14381
14382 * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
14383 * crtstuff.c: Not here.
14384 * dwarf2out.c: Or here.
14385 * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
14386 info.
14387
14388 Thu Sep 9 09:40:58 1999 Mark Mitchell <mark@codesourcery.com>
14389
14390 * function.h (free_after_compilation): Remove decl parameter.
14391 (free_varasm_status0: Likewise.
14392 (free_emit_status): Likewise.
14393 (free_stmt_status): Likewise.
14394 (free_after_compilation): Likewise.
14395 (init_lang_status): New variable.
14396 (free_lang_status): Likewise.
14397 * emit-rtl.c (free_emit_status): Make decl parameter implicit.
14398 * function.c (init_lang_status): New variable.
14399 (free_lang_status): Likewise.
14400 (push_function_context_to): Don't set function::decl here.
14401 (free_after_copmilation): Make decl parameter implicit. Call
14402 free_lang_status if defined.
14403 (prepare_function_start): Call init_lang_status if defined.
14404 (init_function_start): Set function::decl here.
14405 * profile.c (output_func_start_profiler): Don't call pushdecl
14406 until we've actually started the function.
14407 * stmt.c (free_stmt_status): Make decl parameter implicit.
14408 * toplev.c (rest_of_compilation): Don't pass decl to
14409 free_after_compilation.
14410 * varasm.c (free_varasm_status): Likewise.
14411
14412 Thu Sep 9 17:23:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14413
14414 * except.c (call_get_eh_context): Add root when allocating static
14415 tree variable.
14416
14417 Thu Sep 9 15:24:59 BST 1999 Richard Earnshaw <rearnsha@arm.com>
14418
14419 * arm.c: Include "ggc.h".
14420 (arm_add_gc_roots): New function.
14421 (arm_override_options): Call it.
14422 (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
14423
14424 * arm.md (define_asm_attributes): Add a pool_range attribute.
14425
14426 Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell <nathan@acm.org>
14427
14428 * extend.texi (Volatiles): New node.
14429
14430 Thu Sep 9 03:37:31 1999 Richard Henderson <rth@cygnus.com>
14431
14432 * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
14433 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
14434 (struct ggc_any): Replace `mark' with `magic_mark'.
14435 (ggc_alloc_string): Use memcpy, not bcopy.
14436 (ggc_alloc_any): Set magic_mark. Update bytes_alloced_since_gc.
14437 (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
14438 (ggc_free_any): New.
14439 (ggc_mark_string): Use IGNORE_MARK. Calc back to struct gcc_string.
14440 (ggc_mark): Use IGNORE_MARK. Abort if magic doesn't match.
14441 (ggc_collect): Re-enable collection avoidance. Use GGC_ANY_MARK.
14442 Use IS_MARKED. Use ggc_free_any.
14443
14444 1999-09-09 Scott Bambrough <scottb@netwinder.org>
14445
14446 * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
14447
14448 Thu Sep 9 01:55:21 1999 Richard Henderson <rth@cygnus.com>
14449
14450 * toplev.c (main): Always init_ggc.
14451
14452 Wed Sep 8 23:53:22 1999 Richard Henderson <rth@cygnus.com>
14453
14454 * except.c (find_all_handler_type_matches): Free the list if
14455 we found no matches.
14456
14457 * combine.c (SUBST): Break out to a real function do_SUBST.
14458 (SUBST_INT): Likewise.
14459 * gcse.c (free_pre_mem): Free `temp_bitmap'.
14460 (pre_insert): Free `inserted'.
14461 * loop.c (basic_induction_var): Always set `location'.
14462
14463 * function.c (expand_function_end): Add initial_trampoline as a root.
14464 * rtl.h (init_varasm_once): Declare.
14465 * toplev.c (compile_file): Call it.
14466 * ggc-simple.c (ggc_mark_string_ptr): New.
14467 (ggc_add_string_root): New.
14468 (ggc_collect): Disable collection avoidance temporarily.
14469 * ggc.h (ggc_add_string_root): Declare.
14470 * except.c (create_rethrow_ref): Use ggc_alloc_string.
14471 * optabs.c (init_libfuncs): Likewise.
14472 * varasm.c (named_section): Use ggc_alloc_string.
14473 (make_function_rtl): Likewise.
14474 (make_decl_rtl): Likewise.
14475 (assemble_static_space): Likewise.
14476 (assemble_trampoline_template): Likewise.
14477 (output_constant_def): Likewise.
14478 (force_const_mem): Likewise.
14479 (mark_const_hash_entry): New.
14480 (mark_pool_sym_hash_table): New.
14481 (mark_varasm_state): Use it.
14482 (init_varasm_once): New.
14483
14484 * expr.h (init_one_libfunc): Declare.
14485 * optabs.c (init_one_libfunc): New.
14486 (init_optabs): Use it.
14487 * config/gofast.h: Likewise.
14488 * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
14489 * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
14490
14491 Thu Sep 9 13:46:06 1999 Geoffrey Keating <geoffk@cygnus.com>
14492
14493 * Makefile.in (cppexp.o): Depend on cpphash.h.
14494 * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
14495 Include cpphash.h.
14496 * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
14497 * cpplib.c (do_define): Generalise to handle poisoned definitions,
14498 redefining poisoned identifiers, etc.
14499 (do_undef): Don't allow poisoned identifiers to be undefined.
14500 (do_pragma): Add #pragma poison.
14501 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
14502
14503 * cccp.c: Add T_POISON node type.
14504 (special_symbol): Handle `defined(xxx)' and plain `xxx' for
14505 poisoned xxx.
14506 (do_define): Generalise to handle poisoned definitions,
14507 redefining poisoned identifiers, etc.
14508 (do_undef): Don't allow poisoned identifiers to be undefined.
14509 (do_pragma): Add #pragma poison.
14510 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
14511
14512 * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
14513 * c-pragma.h: Add ps_poison state. We now always have generic
14514 pragmas.
14515
14516 Wed Sep 8 20:30:42 1999 Mark Mitchell <mark@codesourcery.com>
14517
14518 * ggc.h (ggc_alloc): New function.
14519 (ggc_mark): Likewise.
14520 * ggc-simple.c (ggc_any): New structure.
14521 (ggc_status): Add anys.
14522 (n_anys_collected): New variable.
14523 (ggc_alloc): Define.
14524 (ggc_mark): Likewise.
14525 (ggc_collect): Collect the anys.
14526
14527 Wed Sep 8 20:15:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14528
14529 * c-decl.c (mark_binding_level): Make static to match prototype.
14530
14531 Wed Sep 8 16:41:27 1999 Richard Henderson <rth@cygnus.com>
14532
14533 * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
14534
14535 Wed Sep 8 16:07:52 1999 Richard Henderson <rth@cygnus.com>
14536
14537 * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
14538 will use into account. Expand the max width to 5.
14539 * rtl.c: Likewise.
14540
14541 Wed Sep 8 16:01:14 1999 Richard Henderson <rth@cygnus.com>
14542
14543 * ggc-simple.c (ggc_free_rtx): Poison the correct amount
14544 for the rtx length.
14545
14546 Wed Sep 8 15:23:54 1999 Richard Henderson <rth@cygnus.com>
14547
14548 * alpha.md (call value patterns): Remove the result predicates.
14549
14550 Wed Sep 8 13:35:38 1999 Richard Henderson <rth@cygnus.com>
14551
14552 * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
14553 last change.
14554
14555 Wed Sep 8 15:32:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14556
14557 * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
14558 changed from extern char *, to extern PTR. Also fix typo in
14559 NEED_DECLARATION_REALLOC test.
14560
14561 * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
14562
14563 Wed Sep 8 11:40:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14564
14565 * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
14566 ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
14567 ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
14568 ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
14569
14570 * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
14571
14572 * cccp.c (pcfinclude): Likewise.
14573
14574 * global.c (allocno_compare): Likewise.
14575
14576 * haifa-sched.c (rank_for_schedule): Likewise.
14577
14578 * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
14579
14580 * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
14581
14582 * stupid.c (stupid_reg_compare): Likewise.
14583
14584 * tree.c (_obstack_allocated_p): Likewise.
14585
14586 * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
14587
14588 1999-09-08 Bruce Korb autogen@linuxbox.com
14589
14590 * Makefile.in: Give the hapless gperf user a hint about
14591 why "gperf -F" fails.
14592
14593 Wed Sep 8 04:43:22 1999 Richard Henderson <rth@cygnus.com>
14594
14595 * lists.c: Include ggc.h.
14596 (zap_lists): New.
14597 (init_EXPR_INSN_LIST_cache): Install it.
14598
14599 * ggc-simple.c (init_ggc): Absorb the old init.
14600 (ggc_push_context): Use xcalloc.
14601 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
14602 (ggc_collect): Add [rvts] tags to the collection stats.
14603
14604 Wed Sep 8 11:14:25 1999 Andreas Schwab <schwab@suse.de>
14605
14606 * cccp.c (main): Fix handling of -include and -imacros options.
14607
14608 Wed Sep 8 02:23:08 1999 Jeffrey A Law (law@cygnus.com)
14609
14610 * cpplib.c (cpp_push_buffer): Fix order of arguments.
14611
14612 Wed Sep 8 04:44:09 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
14613
14614 * rtl.h (obstack_alloc_rtx): Removed, it's now static in
14615 genrtl.c.
14616
14617 Wed Sep 8 00:33:43 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
14618
14619 * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
14620 * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
14621 and SET_DEST. Update comment.
14622
14623 Wed Sep 8 18:55:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14624
14625 * config/c4x/c4x.c: Include ggc.h.
14626 (c4x_add_gc_roots): New function.
14627 (c4x_override_options): Call c4x_add_gc_roots.
14628
14629 Wed Sep 8 00:00:16 1999 Richard Henderson <rth@cygnus.com>
14630
14631 * defaults.h (TARGET_ESC): Move ...
14632 * system.h: ... here, where Linas had it in the first place. Silly me.
14633
14634 Tue Sep 7 23:46:35 1999 Linas Vepstas <linas@linas.org>
14635
14636 * c-common.c: Use ISGRAPH, ISLOWER, toupper.
14637 * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
14638 genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
14639 * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
14640 * defaults.h (TARGET_ESC): Add default.
14641
14642 Tue Sep 7 23:36:59 1999 Linas Vepstas <linas@linas.org>
14643
14644 * configure.in: add i370-*-openedition, i370-*-mvs and
14645 i370-*-linux targets
14646
14647 Tue Sep 7 23:31:53 1999 Mark Mitchell <mark@codesourcery.com>
14648
14649 * dsp16xxx.c: Include ggc.h
14650 (override_options): Mark GC roots.
14651 * mn10200.c: Include ggc.h.
14652 (asm_file_start): Mark GC roots.
14653 * tahoe.c: Include ggc.h.
14654 (extensible_operand): Mark GC roots.
14655
14656 Tue Sep 7 23:23:15 1999 Linas Vepstas <linas@linas.org>
14657
14658 * README: Add section discussing status of ELF ABI.
14659 * i370.c: Fix misc spelling mistakes.
14660 (i370_label_scan): Updated notes, exception handling.
14661 (i370_function_prolog): Simplify ELF stack handling.
14662 * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
14663 (STACK_GROWS_DOWNWARD): ELF stack grows down.
14664 (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
14665 * i370.md: (movdi): Add notes.
14666 (floatsidf2): Use stack not rtca for scratch float area.
14667 (iorsi3): Correct operand constraints.
14668 * x-oe: Restore TAROUTOPTS which are used by pax.
14669
14670 Tue Sep 7 22:39:18 1999 Mark Mitchell <mark@codesourcery.com>
14671
14672 * rs6000.c: Include ggc.h.
14673 (rs6000_add_gc_roots): New function.
14674 (override_options): Call it.
14675
14676 Tue Sep 7 22:09:03 1999 Richard Henderson <rth@cygnus.com>
14677
14678 * alpha.h (alpha_compare): New.
14679 (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
14680 * alpha.c: Likewise for the definitions.
14681 (alpha_emit_conditional_branch): Update for alpha_compare.
14682 (alpha_emit_conditional_move): Likewise.
14683 * alpha.md (cmpdf, cmpdi): Likewise.
14684 (setcc patterns): Likewise. Zero alpha_compare after use.
14685 (sne): Optimize (x != 0) into (0U < x).
14686
14687 Tue Sep 7 21:55:02 1999 Richard Henderson <rth@cygnus.com>
14688
14689 * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
14690 (struct machine_function): Declare; add eh_epilogue_sp_ofs.
14691 (INIT_EXPANDERS): Remove.
14692 * alpha.c: Include ggc.h.
14693 (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
14694 (alpha_init_machine_status, alpha_mark_machine_status): New.
14695 (override_options): Install them.
14696 (struct machine_function): Moved to alpha.h.
14697 (alpha_save_machine_status, alpha_restore_machine_status): Remove.
14698 (alpha_init_expanders): Remove.
14699 (alpha_return_addr): Adjust to use current_function->machine.
14700 (alpha_ra_ever_killed): Likewise.
14701 (alpha_expand_epilogue): Likewise.
14702 * alpha.md (eh_epilogue): Likewise.
14703
14704 Wed Sep 8 14:34:42 1999 Ian Piumarta <piumarta@prof.inria.fr>
14705 Melissa O'Neill <oneill@cs.sfu.ca>
14706 Geoffrey Keating <geoffk@cygnus.com>
14707
14708 * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
14709 call-used registers (call-saved registers must still be contiguous
14710 and end with r31, of course).
14711
14712 Tue Sep 7 21:41:38 1999 Richard Henderson <rth@cygnus.com>
14713
14714 * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
14715 (self_promoting_type_p): Delete.
14716 (self_promoting_args_p): Move ...
14717 * c-common.c: ... here.
14718 (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
14719 (simple_type_promotes_to): New.
14720 * builtins.c (lang_type_promotes_to): New.
14721 (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
14722 * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
14723 * c-common.h: ... here.
14724 (self_promoting_args_p, simple_type_promotes_to): Declare.
14725 * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
14726 (grokdeclarator): Likewise.
14727 * tree.h (lang_type_promotes_to): Declare.
14728
14729 Tue Sep 7 17:15:21 1999 Mark Mitchell <mark@codesourcery.com>
14730
14731 Add some machine-dependent GC roots.
14732 * sparc.c: Include ggc.h.
14733 (sparc_add_gc_roots): New function.
14734 (mark_ultrasparc_pipeline_state): Likewise.
14735 (override_options): Call sparc_add_gc_roots.
14736 * pa.c: Include ggc.h.
14737 (pa_add_gc_roots): New function.
14738 (mark_deferred_plabels): Likewise.
14739 (override_options): Call pa_add_gc_roots.
14740 * mips.c: Include ggc.h.
14741 (mips_add_gc_roots): New function.
14742 (override_options): Use it.
14743
14744 Tue Sep 7 11:39:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14745
14746 * cpperror.c (cpp_file_line_for_message): Constify a char*.
14747
14748 * cppexp.c (parse_number, parse_charconst, cpp_lex,
14749 cpp_parse_expr): Add static prototypes.
14750 (parse_charconst): Don't cast away const-ness.
14751 (token): Constify a char*.
14752
14753 * cppfiles.c (file_name_list, include_hash, find_include_file,
14754 finclude, initialize_input_buffer): Constify a char*.
14755 (file_cleanup, find_position): Add static prototypes.
14756
14757 * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
14758 collect_expansion): Add static prototypes.
14759 (cpp_install, create_definition, monthnames): Constify a char*.
14760
14761 * cpphash.h (cpp_install): Likewise.
14762
14763 * cppinit.c (known_suffixes, default_include,
14764 dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
14765 (base_name, dump_special_to_buffer, initialize_dependency_output):
14766 Add static prototypes.
14767
14768 * cpplib.c (my_strerror): Constify a char*.
14769 (null_underflow, null_cleanup, skip_comment, copy_comment,
14770 copy_rest_of_line, handle_directive, pass_thru_directive,
14771 get_directive_token, read_line_number, cpp_print_file_and_line,
14772 v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
14773 v_cpp_warning_with_line, detect_if_not_defined,
14774 consider_directive_while_skipping): Add static prototypes.
14775 (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
14776 cpp_pedwarn_with_file_and_line): Constify a char*.
14777
14778 * cpplib.h (cpp_options, include_hash, progname, definition,
14779 cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
14780 check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
14781 find_include_file, deps_output, include_hash): Constify a char*.
14782
14783 * cppmain.c (progname): Constify.
14784 (main): Add prototype. Use return, not exit.
14785
14786 * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
14787 recognized_macro, check_macro_names, read_scan_file, write_rbrac,
14788 inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
14789 check_protection): Add static prototype.
14790 (xfree): Remove.
14791 (progname, recognized_macrom, recognized_extern): Constify a char*.
14792 (main): Add prototype.
14793
14794 * gen-protos.c (progname): Constify a char*.
14795
14796 Tue Sep 7 00:47:52 1999 Mark Mitchell <mark@codesourcery.com>
14797
14798 * emit-rtl.c (free_emit_status): Take decl as a parameter.
14799 (init_emit_once): Add more GC roots.
14800 * except.c (mark_func_eh_entry): New function.
14801 (mark_eh_node): Mark false_label and rethrow_label.
14802 (init_eh): Add more GC roots.
14803 * function.c (free_after_compilation): Take decl as a paramter.
14804 Call free_stmt_status.
14805 (mark_function_state): Don't assume x_parm_reg_stack_loc is
14806 non-NULL.
14807 * function.h (free_after_compilation): Change prototype.
14808 (free_varasm_status): Likewise.
14809 (free_emit_status): Likewise.
14810 (free_stmt_status): New function.
14811 * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
14812 Remove, replacing with ...
14813 (ggc_status): New structure.
14814 (ggc_chain): New variable.
14815 (init_gcc): Define.
14816 (ggc_push_context): New function.
14817 (ggc_pop_context): Likewise.
14818 (ggc_alloc_rtx): Adjust for use of ggc_chain.
14819 (ggc_alloc_rtvec): Likewise.
14820 (ggc_alloc_tree): Likewise.
14821 (ggc_alloc_string): Likewise.
14822 (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
14823 (ggc_mark_tree): Give language-dependent code a chance to mark
14824 `x' nodes.
14825 (ggc_mark_tree_varray): Handle empty arrays.
14826 (ggc_collect): Adjust for use of ggc_chain. Clear
14827 bytes_alloced_since_last_gc.
14828 * ggc.h (ggc_pop_context): New function.
14829 (ggc_push_context): Likewise.
14830 * print-tree.c (print_node): Don't print obstacks when GC'ing.
14831 * stmt.c (free_stmt_status): New function.
14832 (init_stmt_for_function): Clear last_expr_value.
14833 * toplev.c (rest_of_compilation): Always call free_after_compilation.
14834 Conditionalize call to ggc_collect.
14835 (main): Call init_ggc.
14836 * tree.c (push_obstacks): Do the push, even when GC'ing.
14837 (push_obstacks_nochange): Likewise.
14838 (pop_obstacks): Liekwise.
14839 * varasm.c (free_varasm_status): Take decl as a parameter.
14840
14841 Tue Sep 7 08:15:49 1999 Gavin Romig-Koch <gavin@cygnus.com>
14842
14843 * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
14844 (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
14845 * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
14846 * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
14847
14848 Tue Sep 7 03:42:45 1999 Mark Klein (mklein@dis.com)
14849
14850 * pa/x-pa-mpeix: New file for the MPE port.
14851
14852 * pa/quadlib.asm: New file for long double support.
14853
14854 * configure.in: Add hppa1.0-*-mpeix for MPE port.
14855 * configure: Rebuilt.
14856
14857 Tue Sep 7 10:08:40 1999 Andreas Schwab <schwab@suse.de>
14858
14859 * final.c (shorten_branches): Fix last change.
14860
14861 Tue Sep 7 00:30:32 1999 Jeffrey A Law (law@cygnus.com)
14862
14863 * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
14864
14865 Mon Sep 6 22:44:47 1999 Jeffrey A Law (law@cygnus.com)
14866
14867 * Merge from gcc2 snapshot Jan 9, 1999. See FSFChangeLog for
14868 details.
14869
14870 Mon Sep 6 22:31:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14871
14872 * c-aux-info.c (concat): Don't define.
14873
14874 * cccp.c (my_strerror): Likewise. All callers changed to use
14875 xstrerror instead.
14876 (do_include): Call xstrdup, not xmalloc/strcpy.
14877 (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
14878 (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
14879
14880 * collect2.c (my_strsignal): Likewise. All callers changed to use
14881 strsignal instead.
14882 (locatelib): Call xstrdup, not xmalloc/strcpy.
14883
14884 * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
14885
14886 * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
14887
14888 * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
14889
14890 * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
14891
14892 * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
14893
14894 * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
14895
14896 * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
14897 malloc/realloc.
14898 (find_all_handler_type_matches): Likewise. Don't check return
14899 value.
14900 (get_new_handler, init_insn_eh_region, process_nestinfo): Call
14901 xmalloc, not malloc.
14902 (init_eh_nesting_info): Likewise. Call xcalloc, not xmalloc/bzero.
14903
14904 * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
14905 (init_spec): Call xcalloc, not xmalloc/bzero.
14906 (set_spec): Call xstrdup, not save_string.
14907 (record_temp_file): Call xstrdup, not xmalloc/strcpy.
14908 (find_a_file): Call xstrdup, not xmalloc/strcpy.
14909 (process_command): Call xstrdup, not save_string.
14910 (main): Call xcalloc, not xmalloc/bzero.
14911
14912 * gcov.c (xmalloc): Don't define.
14913 (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
14914 (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
14915 (output_data): Call xcalloc, not xmalloc/bzero.
14916
14917 * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
14918
14919 * mips-tdump.c (xmalloc): Don't define.
14920 (print_symbol): Call xmalloc, not malloc.
14921 (read_tfile): Call xcalloc, not calloc.
14922
14923 * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
14924 Don't define. All callers of xfree/my_strsignal changed to use
14925 free/strsignal instead.
14926 (allocate_cluster): Call xcalloc, not calloc.
14927
14928 * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
14929 Fix memory leak, free allocated memory.
14930
14931 * prefix.c (translate_name): Call xstrdup, not save_string.
14932 (update_path): Likewise.
14933
14934 * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
14935
14936 * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
14937 Don't define. Callers of xfree/savestring2 changed to use
14938 free/concat instead.
14939
14940 * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
14941 (init_elim_table): Likewise.
14942
14943 * resource.c (init_resource_info): Likewise.
14944
14945 * stupid.c (stupid_life_analysis): Likewise.
14946
14947 * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
14948 (open_dump_file): Call concat, not xmalloc/strcpy/...
14949 (clean_dump_file): Likewise.
14950 (compile_file): Call xstrdup, not xmalloc/strcpy.
14951
14952 Mon Sep 6 15:04:55 1999 Richard Henderson <rth@cygnus.com>
14953
14954 * v850.h (EXPAND_BUILTIN_VA_ARG): New.
14955 * v850.c (v850_va_arg): New.
14956
14957 Tue Sep 7 09:36:01 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14958
14959 * haifa-sched.c: Tidy comments.
14960
14961 Mon Sep 6 14:30:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14962
14963 * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
14964 (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
14965 $(out_object_file)): Depend on ggc.h.
14966 * c-common.c: Include "ggc.h".
14967 (combine_strings): If doing GC, use ggc_alloc_string.
14968 * c-decl.c: Include "ggc.h".
14969 (ggc_p): Define with value 0.
14970 (mark_binding_level): New function.
14971 (init_decl_processing): Add GC roots.
14972 (mark_c_function_context): New function.
14973 (lang_mark_false_label_stack): New function.
14974 (lang_mark_tree): New function.
14975 (lang_cleanup_tree): New function.
14976 * c-lang.c: Include "ggc.h".
14977 (lang_init): Call c_parse_init.
14978 * c-lex.c: Include "ggc.h".
14979 (check_linenum): If doing GC, don't copy filenames to permanent
14980 obstack.
14981 * c-parse.in: Include "ggc.h".
14982 (c_parse_init): New function.
14983 * c-tree.h (c_parse_init, mark_c_function_context): Declare.
14984 * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
14985
14986 * except.c (mark_eh_state): Mark more state.
14987 * function.c (mark_function_state): Likewise.
14988 * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
14989 (ggc_alloc_string) [GGC_DUMP]: Fix typo.
14990 * toplev.c (mark_file_stack): New function.
14991 (compile_file): If doing GC, use ggc_alloc_string on input filename.
14992 (main): Add root for input_file_stack.
14993
14994 * i386.c: Include "ggc.h".
14995 (ix86_mark_machine_status): New function.
14996 (override_options): Set mark_machine_status.
14997
14998 Mon Sep 6 15:26:23 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14999
15000 * tree.c (copy_node): Copy node contents also if doing GC.
15001
15002 Mon Sep 6 08:42:06 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
15003
15004 * collect2.c (scan_libraries): Fix double-thinko :-).
15005
15006 Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com)
15007
15008 * collect2.c (scan_libraries): Fix thinko.
15009
15010 * cse.c (delete_trivially_dead_insns): Do not skip the last
15011 insn if it is a real insn.
15012
15013 Sun Sep 5 18:57:42 1999 Mark Mitchell <mark@codesourcery.com>
15014
15015 * Makefile.in (ggc-simple.o): Depend on hash.h.
15016 * ggc.h (ggc_add_tree_hash_table_root): Declare.
15017 (ggc_mark_tree_varray): Likewise.
15018 (ggc_mark_tree_hash_table): Likewise.
15019 * ggc-simple.c: Include hash.h.
15020 (ggc_mark_tree_hash_table_ptr): New function.
15021 (ggc_mark_tree_hash_table_entry): Likewise.
15022 (ggc_mark_tree_hash_table): Likewise.
15023 (ggc_add_tree_hash_table_root): Likewise.
15024 * varray.h (const_equiv_data): Use struct rtx_def *, rather than
15025 rtx, when defining fields.
15026
15027 Sun Sep 5 18:57:42 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
15028
15029 * profile.c (output_func_start_profiler): Remove apparently
15030 nonsensical call to start_sequence.
15031
15032 Sun Sep 5 17:34:33 1999 Richard Henderson <rth@cygnus.com>
15033
15034 * clipper/clipper.c (clipper_va_start): Fix typos.
15035
15036 * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
15037 * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
15038 (spur_va_arg): New stub.
15039
15040 * configure.in: Comment out pyramid.
15041
15042 Sun Sep 5 19:11:01 1999 Michael Meissner <meissner@cygnus.com>
15043
15044 * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
15045 don't conflict with the bits that win32, cygwin, and dgux
15046 defines.
15047
15048 Sun Sep 5 09:31:56 1999 Richard Henderson <rth@cygnus.com>
15049 Bernd Schmidt <bernds@cygnus.co.uk>
15050
15051 * integrate.c (function_cannot_inline_p): Do not inline
15052 functions with forced labels.
15053
15054 Sun Sep 5 00:35:17 1999 Richard Henderson <rth@cygnus.com>
15055 Bernd Schmidt <bernds@cygnus.co.uk>
15056 Mark Mitchell <mark@codesourcery.com>
15057
15058 * Makefile.in (ggc-simple.o): Depend on varray.h.
15059 (rtl.o): Depend on ggc.h.
15060 (genattrtab.o): Depend on ggc.h.
15061 (print-tree.o): Likewise.
15062 (fold-const.o): Likewise.
15063 * emit-rtl.c (sequence_element_free_list): Remove, and all references.
15064 (make_insn_raw): Don't cache insns when GC'ing.
15065 (emit_insn_before): Likewise.
15066 (emit_insn_after): Likewise.
15067 (emit_insn): Likewise.
15068 (start_sequence): Use xmalloc to allocate the sequence_stack.
15069 (end_sequence): Add free to free it.
15070 (gen_sequence): Don't cache insns when GC'ing.
15071 (clear_emit_caches): Don't use sequence_element_free_list.
15072 (init_emit): Use xcalloc, not xmalloc+bzero.
15073 * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
15074 * function.c (pop_function_context_from): Use free to free the
15075 fixup_var_refs_queue.
15076 (put_reg_into_stack): Allocate it with xmalloc.
15077 * genattrtab.c: Include ggc.h.
15078 (operate_exp): Don't use obstack_free when GC'ing.
15079 (simplify_cond): Likewise.
15080 (simplify_text_exp): Likewise.
15081 (optimize_attrs): Likewise.
15082 * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
15083 GC'ing.
15084 (gencode): Generate a #include for ggc.h.
15085 * ggc-callbacks.c (ggc_p): Define it to zero.
15086 * ggc-none.c (ggc_p): Likewise.
15087 * ggc-simple.c: Include varray.h.
15088 (ggc_mark_tree_varray): New function.
15089 (ggc_add_tree_varray_root): Likewise.
15090 (ggc_mark_tree_varray_ptr): Likewise.
15091 * ggc.h (ggc_p): Declare.
15092 (varray_head_tag): Likewise.
15093 (ggc_add_tree_varray_root): Declare.
15094 * print-tree.c (print_node): Don't check for TREE_PERMANENT
15095 inconsistencies when GC'ing.
15096 * rtl.c: Include ggc.h.
15097 (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
15098 (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
15099 (rtx_free): Don't call obstack_free when GC'ing.
15100 * toplev.c (rest_of_compilation): Call ggc_collect after every
15101 pass, if GC'ing.
15102 * tree.c (push_obstacks): Do nothing, if GC'ing.
15103 (pop_obstacks_nochange): Likewise.
15104 (pop_obstacks): Likewise.
15105 (make_node): Use ggc_alloc_tree when GC'ing.
15106 (copy_node): Likewise.
15107 (get_identifier): Use ggc_alloc_string when GC'ing.
15108 (build_string): Likewise.
15109 (make_tree_vec): Use ggc_alloc_tree when GC'ing.
15110 (tree_cons): Likewise.
15111 (build1): Likewise.
15112 (type_hash_canon): Don't call obstack_free when GC'ing.
15113
15114 Sat Sep 4 21:52:32 1999 Richard Henderson <rth@cygnus.com>
15115
15116 * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
15117 of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
15118
15119 Sat Sep 4 20:40:19 1999 Richard Henderson <rth@cygnus.com>
15120 Bernd Schmidt <bernds@cygnus.co.uk>
15121 Mark Mitchell <mark@codesourcery.com>
15122
15123 * Makefile.in (stor-layout.o): Depend on ggc.h.
15124 (expr.o): Depend on ggc.h.
15125 (profile.o): Depend on ggc.h.
15126 (stor-layout.o): Depend on ggc.h.
15127 * emit-rtl.c (init_emit_once): Add gc roots.
15128 * expr.c: Include ggc.h.
15129 (emit_block_move): Add gc roots.
15130 (clear_storage): Likewise.
15131 * expr.h (init_stor_layout_once): New function.
15132 * profile.c: Include ggc.h.
15133 (init_arc_profiler): profiler_label is a root.
15134 * scan.c (make_sstring_space): Trust xrealloc to function
15135 correctly with first parameter NULL.
15136 * stor-layout.c: Include ggc.h.
15137 (set_sizetype): Add gc root.
15138 (init_stor_layout_once): New function.
15139 * toplev.c (compile_file): Call it.
15140
15141 Sat Sep 4 19:26:25 1999 Richard Henderson <rth@cygnus.com>
15142 Bernd Schmidt <bernds@cygnus.co.uk>
15143 Mark Mitchell <mark@codesourcery.com>
15144
15145 * Makefile.in (tree.o): Depend on ggc.h.
15146 (varasm.o): Likewise.
15147 (function.o): Likewise.
15148 (stmt.o): Likewise.
15149 (except.o): Likewise.
15150 (optabs.o): Likewise.
15151 (emit-rtl.o): Likewise.
15152 * emit-rtl.c: Include ggc.h.
15153 (sequence_element_free_list): Remove, and all references.
15154 (mark_sequence): New functions.
15155 (mark_emit_state): New function.
15156 * except.c: Include ggc.h.
15157 (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
15158 (mark_tree_label_node): New functions.
15159 (mark_eh_state): New function.
15160 * function.c: Include ggc.h.
15161 (mark_temp_slot, mark_function_chain): New functions.
15162 (mark_function_state): New function.
15163 (init_function_once): New function.
15164 * function.h (init_function_once): New function.
15165 * ggc-callbacks.c (lang_mark_false_label_stack): New function.
15166 * ggc.h (label_node): Declare.
15167 (eh_status, emit_status, stmt_status, varasm_status): Likewise.
15168 (lang_mark_false_label_stack): New function.
15169 (mark_temp_slot): Remove declaration.
15170 (mark_function_chain): Likewise.
15171 (mark_eh_state): Adjust prototype.
15172 (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
15173 Likewise.
15174 * optabs.c: Include ggc.h.
15175 (mark_optab): New function.
15176 (init_optabs): Add gc roots.
15177 * stmt.c: Include ggc.h.
15178 (mark_cond_nesting, mark_loop_nesting): New functions.
15179 (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
15180 (mark_stmt_state): New function.
15181 * toplev.c (compile_file): Call init_function_once.
15182 * tree.c: Include ggc.h.
15183 (type_hash): Move declaration earlier in file.
15184 (TYPE_HASH_SIZE, type_hash_table): Likewise.
15185 (init_obstacks): Add gc roots.
15186 (mark_type_hash): New function.
15187 * varasm.c: Include ggc.h.
15188 (mark_pool_constant): New function.
15189 (mark_varasm_state): New function.
15190
15191 Sat Sep 4 22:28:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15192
15193 * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
15194
15195 Sat Sep 4 18:01:45 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15196
15197 * c-decl.c (struct language_function): Renamed from struct c_function.
15198 Delete elt NEXT.
15199 (c_function_chain): Delete.
15200 (push_c_function_context): New arg F. Don't warn about nested
15201 functions here. Fill LANGUAGE elt of F. Delete code to update
15202 c_function_chain. Don't call push_function_context.
15203 (pop_c_function_context): New arg F. Restore from there instead of
15204 from c_function_chain. Don't call pop_function_context. Clear out
15205 LANGUAGE field of F when done.
15206 * c-lang.c: Include "function.h"
15207 (lang_init): Initialize save_lang_status and restore_lang_status.
15208 * c-parse.in (nested_function, nested_function_notype): Warn about
15209 nested functions. Call push_function_context/pop_function_context
15210 instead of the _c_ variants.
15211 * c-tree.h (push_c_function_context, pop_c_function_context): Update
15212 prototype.
15213 * Makefile.in (c-lang.o): Update dependencies.
15214
15215 * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
15216 regno_pointer_flag, regno_pointer_align.
15217 (gen_reg_rtx): Use xrealloc to enlarge them.
15218 (free_emit_status): New function.
15219 * function.c (mark_machine_status, mark_lang_status): New variables.
15220 (assign_stack_local_1): Renamed from assign_outer_stack_local. Merge
15221 in some bits from assign_stack_local. All callers changed to use new
15222 name.
15223 (assign_stack_local): Just call assign_stack_local_1.
15224 (free_after_compilation): New function.
15225 (put_reg_into_stack): Simplify to always call assign_stack_local_1.
15226 (trampoline_address): Likewise.
15227 (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
15228 (prepare_function_start): Explicitly clear some more variables.
15229 * function.h (struct function): New elt can_garbage_collect.
15230 (mark_machine_status, mark_lang_status): Declare variables.
15231 (free_after_compilation, free_emit_status, free_varasm_status,
15232 init_varasm_status): Declare functions.
15233 * toplev.c (rest_of_compilation): Call free_after_compilation when
15234 done with the current function.
15235 * varasm.c (free_varasm_status): New function.
15236
15237 Sat Sep 4 17:15:13 1999 Richard Henderson <rth@cygnus.com>
15238
15239 * sparc.h (EXPAND_BUILTIN_VA_START): Define.
15240 (EXPAND_BUILTIN_VA_ARG): Define.
15241 * sparc.c (sparc_va_start): New.
15242 (sparc_va_arg): New.
15243
15244 Sun Sep 5 11:11:59 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15245
15246 * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
15247
15248 Sun Sep 5 10:13:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15249
15250 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
15251
15252 Sat Sep 4 13:44:01 1999 Mark Mitchell <mark@codesourcery.com>
15253
15254 * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
15255 (OBJS): Add $(GGC).
15256 (ggc-callbacks.o): New target.
15257 * ggc-callbacks.c: New file.
15258
15259 Sat Sep 4 22:53:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15260
15261 * expr.h: Collapse individual optab and libfunc vars to arrays.
15262 (optab_index, libfunc_index): New enumerations.
15263 (optab_table, libfunc_table): New arrays.
15264 Add accessor macros for both.
15265
15266 * optabs.c (optab_table, libfunc_table): New.
15267 Delete declarations for individual optab and libfunc vars.
15268
15269 Sat Sep 4 12:57:17 1999 Richard Henderson <rth@cygnus.com>
15270
15271 * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
15272
15273 Sat Sep 4 11:19:52 1999 Richard Henderson <rth@cygnus.com>
15274
15275 * Makefile.in (GGC, GGC_LIB): New.
15276 (HOST_RTL): Include ggc-none.o.
15277 (ggc-simple.o): New target.
15278 (ggc-none.o): Likewise.
15279 * tree.h (tree_common): Add gc_mark.
15280 * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
15281 (struct rtvec_def): Add gc_mark.
15282 * emit-rtl.c (global_rtl): Update static initializers to contain
15283 enough initializers.
15284 * ggc.h, ggc-none.c, ggc-simple.c: New files.
15285 * toplev.c (gc_time): New variable.
15286 (all_time): New variable.
15287 (compile_file): Print gc time.
15288 (print_time): Calculate percentage of the whole.
15289
15290 Sat Sep 4 13:11:01 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15291
15292 Change obstack memory management and varasm constant pool handling so
15293 that nested functions are treated like any other functions.
15294 * function.c (init_machine_status): New variable.
15295 (push_function_context_to): Set contains_functions for the outer
15296 function. Don't call save_varasm_status.
15297 (pop_function_context_from): Don't call restore_varasm_status. Don't
15298 set current_function_contains_functions.
15299 (prepare_function_start): Call init_varasm_status rather than
15300 init_const_rtx_hash_table. Call (*init_machine_status) if the pointer
15301 is non-null.
15302 * function.h (struct function) Add field varasm. Delete fields
15303 inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
15304 last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
15305 (init_machine_status): Declare.
15306 (save_varasm_status, restore_varasm_status): Delete declarations.
15307 (save_tree_status, restore_tree_status): Delete last argument.
15308 * integrate.c (initialize_for_inline): Lose arg COPY. Delete copying
15309 code. All callers changed.
15310 (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
15311 save_constants_in_decl_trees, restore_constants, save_constants,
15312 save_for_inline_eh_labelmap, save_for_inline_copying): Delete
15313 functions.
15314 (inlining): New variable.
15315 (reg_map, label_map, insn_map, orig_asm_operands_vector,
15316 copy_asm_operands_vector, copy_asm_constraints_vector): Delete
15317 variables.
15318 (save_for_inline_nocopy): Don't save constants.
15319 Don't set inl_emit field in current_function.
15320 (expand_inline_function): Use emit field, not inl_emit, of the inlined
15321 function. Set new variable inlining before
15322 calling copy_rtx_and_substitute.
15323 (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
15324 constant pool references if inlining is nonzero.
15325 Delete ADDRESS and (most of the) CONST cases.
15326 (output_inline_function): Save and restore current_function/
15327 current_function_decl. Delete restore_constants code. Don't call
15328 init_const_rtx_hash_table.
15329 * output.h (init_const_rtx_hash_table): Don't declare.
15330 * rtl.h (struct function): Declare.
15331 (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
15332 * toplev.c (rest_of_compilation): Don't treat nested functions or
15333 functions containing them specially. Delete all code to deal with
15334 save_for_inline_copying.
15335 * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
15336 inline_obstacks): Delete variables.
15337 (save_tree_status): Lose arg CONTEXT. All callers changed.
15338 Simply allocate a new function_maybepermanent_obstack for the new
15339 function, delete all the special cases.
15340 Don't save inline_obstacks.
15341 (restore_tree_status): Lose arg CONTEXT. All callers changed.
15342 Delete special handling for function_maybepermanent_obstack; simply
15343 free it if empty.
15344 Don't restore inline_obstacks.
15345 (permanent_allocation): Delete code that frees inline_obstacks.
15346 (print_inline_obstack_statistics): Delete function.
15347 (dump_tree_statistics): Don't call it.
15348 * varasm.c (struct varasm_status): New.
15349 (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
15350 last_pool, pool_offset, const_double_chain): Delete global
15351 variables, replace with accessor macros.
15352 (immed_double_const): Don't walk const_double_chain outside a
15353 function, but don't treat nested functions specially anymore.
15354 (immed_real_const_1): Likewise.
15355 (clear_const_double_mem): Don't treat nested functions specially.
15356 (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
15357 (save_varasm_status, restore_varasm_status): Delete functions.
15358 (init_varasm_status): New function.
15359 (force_const_mem): Don't treat nested functions specially.
15360 (find_pool_constant): Accept new arg F, search for constants in
15361 that function's pool rather than the current one. All callers
15362 changed.
15363 (get_pool_constant_for_function, get_pool_mode_for_function): New
15364 functions.
15365
15366 * i386.c (init_386_machine_status): New function, mostly from
15367 clear_386_stack_locals.
15368 (struct machine_functions): Rename element names to avoid name
15369 clashes.
15370 (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
15371 macros, replacing global variables.
15372 (clear_386_stack_locals, save_386_machine_status,
15373 restore_386_machine_status): Delete functions.
15374 (override_options): Initialize init_machine_status.
15375 * i386.h (INIT_EXPANDERS): Delete macro.
15376 (save_386_machine_status, restore_386_machine_status,
15377 clear_386_stack_locals): Delete declarations.
15378
15379 Sat Sep 4 16:56:28 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15380
15381 * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
15382 (doloop_begin): Simplify pattern and use emit_jump_insn.
15383 (doloop_end): Simplify pattern, switch operand order,
15384 and use emit_jump_insn.
15385
15386 Fri Sep 3 19:02:38 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
15387
15388 * function.h (struct function): Add new element LANGUAGE.
15389 (save_lang_status): Declare new variable.
15390 (restore_lang_status): Likewise.
15391 * function.c (save_lang_status): Define.
15392 (restore_lang_status): Likewise.
15393 (push_function_context_to): Call language-specific save function.
15394 (pop_function_context_from): Call language-specific restore function.
15395
15396 Fri Sep 3 01:16:18 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
15397
15398 * i386.md (movsf_1): Check REG_P before use of REGNO.
15399 (movdf_1): Likewise.
15400 (movxf_1): Likewise.
15401 (extendsfdf2): Likewise.
15402 (extendsfxf2): Likewise.
15403 (extenddfxf2): Likewise.
15404
15405 Sat Sep 4 11:37:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15406
15407 * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
15408 constants into memory.
15409 (c4x_shiftable_constant): New function.
15410 * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
15411 (c4x_shiftable_constant): Declare.
15412 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
15413 ashlqi3_noclobber): Add new patterns and associated splitters.
15414
15415 Fri Sep 3 16:22:17 1999 Richard Henderson <rth@cygnus.com>
15416
15417 * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
15418 * dwarf2out.c (dwarf2out_frame_init): Likewise.
15419 * final.c (shorten_branches): Likewise.
15420 * global.c (global_alloc): Likewise.
15421 * haifa-sched.c (build_control_flow): Likewise.
15422 * stmt.c (check_for_full_enumeration_handling): Likewise.
15423 (estimate_case_costs): Likewise.
15424
15425 Fri Sep 3 15:49:56 1999 Mark Mitchell <mark@codesourcery.com>
15426
15427 * rtl.h (RTL_CHECKC2): Fix typo in last change.
15428
15429 Fri Sep 3 15:13:34 1999 Richard Henderson <rth@cygnus.com>
15430
15431 * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
15432 (recompute_reg_usage): Likewise.
15433 * rtlanal.c (find_regno_fusage): Likewise.
15434
15435 * rtl.c (rtl_check_failed_code1): New function.
15436 (rtl_check_failed_code2): New.
15437 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
15438 (RTL_CHECKC1, RTL_CHECKC2): New.
15439 (XC*): New accessor macros.
15440 (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
15441 (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
15442 (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
15443 (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
15444 (TRAP_*, RANGE_INFO_*): Likewise.
15445
15446 Fri Sep 3 15:10:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15447
15448 * Makefile.in (tlink.o): Don't depend on toplev.h.
15449
15450 * collect2.c (c_file, o_file, export_file, import_file, ldout,
15451 output_file, nm_file_name, ldd_file_name, strip_file_name,
15452 c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
15453 add_prefix, prefix_from_env, prefix_from_string, do_wait,
15454 fork_execute, maybe_unlink, add_to_list,
15455 extract_init_priority, write_list, dump_list,
15456 dump_prefix_list, write_list_with_asm, write_c_file,
15457 write_c_file_stat, write_c_file_glob, scan_prog_file,
15458 scan_libraries, is_in_list, resolve_lib_name, use_import_list,
15459 ignore_library, extract_string, notice, dump_file, target_machine,
15460 collect_wait, collect_execute, libname, locatelib, aix_std_libs,
15461 read_file, print_load_command): Constify a char*.
15462 (fdopen, error, fatal, fatal_perror): Don't prototype.
15463 (my_strerror): Remove. All callers use xstrerror instead.
15464 (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
15465 (main): Add prototype. Constify lots of char* ptrs. Change calls
15466 to xcalloc/strcpy/strcat/... to one call to concat.
15467 (main, scan_prog_file, scan_libraries): Use an intermediate
15468 `const char **' to build an argv array.
15469 (mapfile, libselect, libcompare, locatelib): Add prototypes.
15470
15471 * collect2.h (collect_execute, collect_wait, dump_file,
15472 file_exists): Constify a char*.
15473 (ldout, c_file_name, temporary_obstack, permanent_obstack,
15474 temporary_firstobj, vflag, debug): Add extern declarations.
15475 (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
15476
15477 * tlink.c: Don't include toplev.h.
15478 (vflag, debug, ldout, c_file_name, temporary_obstack,
15479 permanent_obstack, temporary_firstobj): Don't declare.
15480 (tlink_execute, frob_extension, symbol_hash_lookup,
15481 file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
15482 recompile_files, read_repo_files, demangle_new_symbols,
15483 scan_linker_output): Constify a char*.
15484 (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
15485 do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
15486
15487 Fri Sep 3 18:09:24 1999 Andrew Haley <aph@cygnus.com>
15488
15489 * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
15490 (relative) rather than jsr (absolute) subroutine call insns.
15491 * config/m68k/m68k-coff.h: Ditto.
15492
15493 Fri Sep 3 17:24:31 1999 Richard Earnshaw <rearnsha@arm.com>
15494
15495 * arm.c (note_invalid_constants): No need to ignore ASMs, we can
15496 now rework these too.
15497 (arm_reorg): If an insn can't reach the end of the current pool,
15498 ensure that we emit that pool before the insn.
15499
15500 Fri Sep 3 09:14:32 1999 Marc Espie <espie@tetto.liafa.jussieu.fr>
15501
15502 * tlink.c (scan_linker_output): Skip the initial underscore in
15503 a mangled name if appropriate.
15504
15505 Fri Sep 3 01:28:33 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15506
15507 * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
15508 objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
15509 error_with_ivar, gen_declarator, create_builtin_decl,
15510 my_build_string, generate_descriptor_table, generate_ivars_list,
15511 generate_dispatch_table, check_protocols, TAG_GETCLASS,
15512 TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
15513 dump_base_name, lang_decode_option, build_encode_expr,
15514 start_class, finish_class, encode_pointer, really_start_method,
15515 gen_declaration, dump_interface, handle_class_ref, handle_impent):
15516 Constify.
15517 (objc_demangle, objc_printable_name, generate_struct_by_value_array):
15518 Add static prototypes.
15519 (build_objc_string_decl, build_selector_reference_decl,
15520 encode_bitfield, build_class_reference_decl): Remove unused
15521 parameter, all callers changed.
15522 (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
15523 (objc_printable_name): Likewise. Change second parameter to type int.
15524 (init_objc): Use memcpy, not bcopy, to avoid casts.
15525
15526 Thu Sep 2 21:49:52 1999 Richard Henderson <rth@cygnus.com>
15527
15528 * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
15529 reg notes on a deleted insn.
15530 * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
15531
15532 Thu Sep 2 20:18:12 1999 Jeffrey A Law (law@cygnus.com)
15533
15534 * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
15535
15536 Thu Sep 2 22:00:08 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15537
15538 * stmt.c (expand_asm_operands): Fix index into inout_mode when
15539 reading it.
15540
15541 Thu Sep 2 13:00:48 1999 Richard Henderson <rth@cygnus.com>
15542
15543 * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
15544 * tm.texi (MD_ASM_CLOBBERS): Document it.
15545
15546 Thu Sep 2 10:22:40 1999 Richard Henderson <rth@cygnus.com>
15547
15548 * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
15549 * except.c (expand_rethrow): Remove unused variable.
15550 * expr.c (do_jump_by_parts_greater_rtx): Likewise.
15551 * flow.c (replace_insns): Likewise.
15552 (create_edge_list, verify_edge_list): Likewise.
15553 * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
15554
15555 * genemit.c (gen_expand): Only emit `operands[N]' decl if there
15556 is special code to run.
15557 (main): Don't define operands to emit_operand.
15558 * genrecog.c (main): Don't emit an empty peephole2_insn function.
15559
15560 * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
15561
15562 * alpha/alpha.h (normal_memory_operand): Declare.
15563 (reg_no_subreg_operand): Declare.
15564 * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
15565
15566 Thu Sep 2 10:19:20 1999 Richard Henderson <rth@cygnus.com>
15567
15568 * c-parse.in (compstmt_primary_start): New, broken out of first
15569 part of compstmt handling in primary.
15570 (primary): Use it. Add an error clause.
15571 (compstmt_nostart): Renamed from compstmt; remove all
15572 initial invocations of compstmt_start.
15573 (compstmt): New.
15574
15575 Thu Sep 2 01:35:50 1999 Marc Espie <espie@cvs.openbsd.org>
15576
15577 * protoize.c (gen_aux_info_file): Let pexecute call choose_temp_base if
15578 needed.
15579
15580 Thu Sep 2 00:43:59 1999 Finn Hakansson <finn@axis.com>
15581
15582 * combine.c (simplify_shift_const): Remove extra semicolon.
15583 * dwarf2out.c (remove_AT): Likewise.
15584 * expmed.c (expand_mult): Likewise.
15585 * gcov.c (create_program_flow_graph): Likewise.
15586 * reorg.c (mostly_true_jump): Likewise.
15587
15588 Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com)
15589
15590 * fold-const.c (fold_range_test): Do not try to fold the range
15591 test if the rhs or lhs has side effects.
15592
15593 * combine.c (simplify_rtx): Recognize another case of a synthesized
15594 sign extension.
15595
15596 * varasm.c (mark_constant_pool): When marking indirect references,
15597 only look at SYMBOL_REFs.
15598
15599 * except.c (expand_fixup_region_end): Do not peek at
15600 INSN_UID (node->entry->outer_context) for flag_new_exceptions.
15601
15602 Thu Sep 2 13:52:53 1999 Geoffrey Keating <geoffk@cygnus.com>
15603
15604 * flags.h: New variables align_loops, align_loops_log,
15605 align_jumps, align_jumps_log, align_labels, align_labels_log,
15606 align_functions, align_functions_log.
15607 * toplev.c: Define them.
15608 (f_options): Handle -falign-* when they have no argument.
15609 (main): Add logic to set variables for -falign-functions,
15610 -falign-jumps, -falign-labels, -falign-loops.
15611 Make it -fsched-verbose=<n> and -finline-limit=<n>.
15612 (display_help): Change help to match options.
15613 * final.c (LABEL_ALIGN): Default to align_labels_log.
15614 (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
15615 (LOOP_ALIGN): Default to align_loops_log.
15616 (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
15617 (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
15618 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
15619 * varasm.c (assemble_start_function): Handle align_functions.
15620
15621 * config/sparc/sparc.h: Don't declare sparc_align_*.
15622 Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
15623 (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
15624 sparc.c.
15625 (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
15626 it's a promise.
15627 * config/sparc/sparc.c: Delete sparc_align_loops,
15628 sparc_align_jumps, sparc_align_funcs and the corresponding string
15629 variables.
15630 (sparc_override_options): Default align_functions on ultrasparc.
15631 Delete -malign-* handling.
15632
15633 * config/mips/mips.c (override_options): On 64-bit targets,
15634 try to align code to 64-bit boundaries.
15635 (print_operand): New substitution, %~,
15636 which aligns labels to align_labels_log.
15637 * config/mips/mips.md (div_trap_normal): Use %~.
15638 (div_trap_mips16): Likewise.
15639 (abssi): Likewise.
15640 (absdi2): Likewise.
15641 (ffssi2): Likewise.
15642 (ffsdi2): Likewise.
15643 (ashldi3_internal): Likewise.
15644 (ashrdi3_internal): Likewise.
15645 (lshrdi3_internal): Likewise.
15646 (casesi_internal): Likewise.
15647
15648 Wed Sep 1 21:13:48 1999 Richard Henderson <rth@cygnus.com>
15649
15650 Merge new ia32 backend from the branch!
15651
15652 * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
15653 See ChangeLog.P2 on new_ia32_branch for details.
15654
15655 * rtl.h (stack_regs_mentioned_p): Delete prototype.
15656 * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
15657 * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
15658 * i386/gas.h (ASM_FILE_START): Define.
15659 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
15660 for name change of ix86_valid_decl_attribute_p.
15661 (i386_pe_valid_type_attribute_p): Similarly.
15662
15663 Wed Sep 1 18:21:23 1999 Richard Henderson <rth@cygnus.com>
15664
15665 * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
15666 to step through CC modes.
15667
15668 Wed Sep 1 20:18:06 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15669
15670 * regmove.c (fixup_match_1): Don't move INSN in front of P if
15671 it would end up in the shadow of a live flags regsiter.
15672
15673 Wed Sep 1 11:32:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15674
15675 * reload1.c: Fix many indentation problems.
15676 * reload.c: Likewise.
15677
15678 Tue Aug 31 22:08:03 1999 Marc Espie <espie@cvs.openbsd.org>
15679
15680 * alias.c (non_local_reference_p): Constify fmt.
15681
15682 Tue Aug 31 23:19:35 1999 Michael Meissner <meissner@cygnus.com>
15683
15684 * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
15685
15686 Tue Aug 31 16:44:52 1999 Jeffrey A Law (law@cygnus.com)
15687
15688 * cse.c (delete_trivially_dead_insns): Do not delete stores to
15689 the internal_arg_pointer.
15690
15691 Tue Aug 31 13:35:42 1999 Richard Henderson <rth@cygnus.com>
15692
15693 Merge peephole2 from new_ia32_branch:
15694 * Makefile.in (STAGESTUFF): Add *.peephole2.
15695 (mostlyclean): Likewise.
15696 (recog.o): Depend on resource.h.
15697
15698 * final.c (peephole): Conditionalize decl on HAVE_peephole.
15699 (final_scan_insn): Likewise for the invocation of peephole.
15700 * genconfig.c (main): Look for peephole and peephole2 patterns.
15701 Emit HAVE_peephole* accordingly.
15702 * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
15703 * flags.h (flag_peephole2): Declare.
15704 * toplev.c: New pass peephole2. New flag -fpeephole2.
15705
15706 * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
15707 * gencodes.c (main): Likewise.
15708 * genextract.c (main): Likewise.
15709 * genoutput.c (main): Likewise.
15710 * genemit.c (max_operand_1): Look for the max scratch operand.
15711 (gen_rtx_scratch): New.
15712 (gen_exp): Use it, and pass on new arg subroutine_type.
15713 (gen_expand): Take max scratch into account.
15714 (gen_split): Emit peephole2 functions.
15715 (output_peephole2_scratch): New.
15716 (main): Include hard-reg-set.h and resource.h. Handle peephole2.
15717 * genrecog.c (routine_type): Add PEEPHOLE2.
15718 (IS_SPLIT): New.
15719 (make_insn_sequence): Match outer parallel for peep2. Discard
15720 top level scratches and dups.
15721 (add_to_sequence): New args insn_type and top. Update all callers.
15722 Handle toplevel peep2 matching insns.
15723 (write_subroutine): Handle peep2.
15724 (write_tree_1): Likewise.
15725 (write_tree): Likewise.
15726 (main): Likewise.
15727 (change_state): New arg afterward. Update all callers.
15728 Handle matching separate insns.
15729 * recog.c (recog_next_insn): New.
15730 (peephole2_optimize): New.
15731 * rtl.def (DEFINE_PEEPHOLE2): New.
15732 * resource.c (find_free_register): New argument last_insn. Use it
15733 to find a register available through the entire span.
15734 * resource.h (find_free_register): Update prototype.
15735
15736 Tue Aug 31 11:51:06 1999 Jim Kingdon <http://developer.redhat.com>
15737
15738 * i386.c (output_strlen_unroll): Don't write xops[7]
15739 label if it wasn't set.
15740
15741 1999-08-31 12:44 -0700 Zack Weinberg <zack@bitmover.com>
15742
15743 * cpplib.c (struct directive): Const-ify name pointer and
15744 function pointer prototype.
15745 (validate_else, do_define, do_line, do_include, do_undef,
15746 do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
15747 do_elif, do_endif, do_sccs, do_assert, do_unassert,
15748 do_warning): Const-ify second arg.
15749 (directive_table): Mark const. Reorder entries by frequency
15750 of usage, record statistics.
15751
15752 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
15753
15754 * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
15755 bounds- check RTL accesses if --enable-checking.
15756 (RTVEC_ELT): Bounds check if --enable-checking.
15757 (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
15758 XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
15759 (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
15760 GET_NUM_ELEM.
15761 (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
15762 X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes.
15763
15764 (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
15765 (NOTE_SOURCE_FILE): Use X0STR.
15766 (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
15767 MEM_ALIAS_SET): Use X0INT.
15768 (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
15769 JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
15770 Use X0EXP.
15771 * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
15772 * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
15773 (rtl_check_failed_bounds, rtl_check_failed_type1,
15774 rtl_check_failed_type2, rtvec_check_failed_bounds): New
15775 functions.
15776 (fancy_abort): Fix comment.
15777
15778 * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
15779 (cse_insn): Decrement LABEL_NUSES for jump target before
15780 deleting jump insn.
15781 * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
15782 * final.c (alter_subreg): Compute regno before changing x to
15783 REG; set REGNO(x) after changing it.
15784 * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
15785 notes containing CONST_INTs.
15786 (delete_eh_regions): Use NOTE_EH_HANDLER.
15787 * function.c (put_reg_into_stack): Make reg a MEM before
15788 initializing it.
15789 (fixup_var_refs_insns): Save REG_NOTES (insn) in case we
15790 delete insn.
15791 (gen_mem_addressof): Make reg a MEM before initializing it.
15792 * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
15793 X0WINT.
15794 * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
15795 deleting an insn, not after.
15796 (block_alloc): Only look at PATTERN(insn) if we have to, and
15797 only if it's format class 'i'.
15798 * loop.c (check_dbra_loop): Check bl->biv->add_val is a
15799 CONST_INT before using its INTVAL.
15800 * print-rtl.c (print_rtx): Use X0STR.
15801 * regmove.c (fixup_match_1): Don't look at PATTERN of
15802 non-class-'i' insn chain elements.
15803 * reload.c (loc_mentioned_in_p): Take address of
15804 in->fld[1].rtx directly.
15805 * reload1.c (reload): Change reg to a MEM before initializing
15806 it.
15807 * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
15808 have no names.
15809 * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
15810
15811 Fri Aug 20 13:43:41 1999 Andrew Haley <aph@cygnus.com>
15812
15813 * config/mips/mips.c (machine_dependent_reorg): Force a
15814 barrier to output the local constant pool if a barrier hasn't
15815 been found at a natural point in the instruction stream.
15816
15817 Mon Aug 30 22:04:36 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15818
15819 * c-parse.in (language_string): Constify.
15820
15821 * dwarf2out.c (language_string): Remove declaration.
15822
15823 * dwarfout.c (language_string): Likewise.
15824
15825 * toplev.c (language_string, init_parse, finish_parse): Likewise.
15826
15827 * tree.h (language_string, init_parse, finish_parse): Declare.
15828
15829 * i386/sun386.h (language_string): Remove declaration.
15830
15831 * mips.h (language_string): Likewise.
15832
15833 * nextstep.h (language_string): Likewise.
15834
15835 * nextstep21.h (language_string): Likewise.
15836
15837 * rs6000.c (language_string): Likewise.
15838
15839 Mon Aug 30 20:56:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15840
15841 * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
15842 (getpwd.o): Remove target.
15843
15844 * getpwd.c: Delete file. Its in libiberty now.
15845
15846 * dbxout.c (getpwd): Don't prototype.
15847 * dwarf2out.c (getpwd): Likewise
15848 * dwarfout.c (getpwd): Likewise
15849 * final.c (getpwd): Likewise.
15850 * protoize.c (getpwd): Likewise.
15851
15852 Mon Aug 30 20:21:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15853
15854 * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
15855
15856 Mon Aug 30 16:07:49 1999 Richard Henderson <rth@cygnus.com>
15857
15858 * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
15859 mark_set_resources.
15860
15861 Mon Aug 30 12:23:53 1999 Jim Wilson <wilson@cygnus.com>
15862
15863 * fixinc/Makefile.in (subdir): New.
15864 (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
15865 (Makefile): New.
15866
15867 Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com)
15868
15869 * emit-rtl.c (copy_rtx_if_shared): A MEM which references
15870 virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
15871 be shared.
15872
15873 * invoke.texi: Fix typo.
15874
15875 * dwarf2out.c (mem_loc_descriptor): New argument MODE. All callers
15876 changed. Handle autoincrement addressing modes.
15877
15878 * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
15879 just like we would the virtual incoming args register when
15880 integrating.
15881
15882 Sun Aug 29 23:17:54 1999 David Edelsohn <edelsohn@gnu.org>
15883
15884 * rs6000.h (ASM_FILE_START): Specify complete filename, including
15885 path, in .file directive.
15886
15887 Sun Aug 29 05:06:43 1999 Russ Allbery <rra@stanford.edu>
15888
15889 * gcc.texi (External Bugs): Remove obsolete note about Perl on
15890 SunOS.
15891
15892 1999-08-29 08:38 -0700 Zack Weinberg <zack@bitmover.com>
15893
15894 * stdbool.h: Make the typedef name _Bool, with bool a #defined
15895 alias.
15896
15897 Sun Aug 29 09:36:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15898
15899 * tree.c (tree_code_name): Constify a char*.
15900
15901 * tree.h (tree_code_name, decl_printable_name): Likewise.
15902
15903 * function.h (struct function): Likewise.
15904
15905 * toplev.c (decl_name, decl_printable_name): Likewise.
15906
15907 * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
15908
15909 * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
15910 (init_objc): Remove function pointer cast.
15911
15912 Sun Aug 29 05:01:17 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
15913
15914 * pa.md (interspace_jump): New pattern.
15915 (builtin_longjmp): New expander.
15916
15917 1999-08-29 Bernd Schmidt <bernds@cygnus.co.uk>
15918
15919 * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
15920 _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
15921 sf_to_df, df_to_sf): Fix potential problem with alias analysis.
15922
15923 Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com)
15924
15925 * jump.c (delete_prior_computation): Also check calls
15926 to constant functions. Don't bother checking for a
15927 REG_UNUSED note before adding it.
15928 (delete_computation): Handle multi-word hard registers
15929 when synthesizing missing REG_DEAD notes for a register
15930 which is both set and used by an insn.
15931
15932 1999-08-29 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
15933
15934 * loop.c (this_loop_info): New variable.
15935 (loop_has_call, loop_has_volatile, loop_has_tablejump,
15936 loop_continue, loops_enclosed): Replace with fields in this_loop_info.
15937 All uses updated.
15938 (prescan_loop, strength_reduce): New argument loop_info. All callers
15939 updated.
15940 (scan_loop): New variable loop_info, initialise to address of
15941 this_loop_info.
15942 (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
15943 Delete variable loop_has_multiple_exit targets and replace with
15944 field in this_loop_info.
15945 (find_and_verify_loops): Rename this_loop to this_loop_num.
15946 (strength_reduce): Delete loop_iteration_info. Replace variable
15947 loop_info with function argument of same name.
15948 (insert_bct): Rework test for loop being completely unrolled.
15949
15950 * loop.h (struct loop_info): New fields num, loops_enclosed,
15951 has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
15952 has_indirect_jump, and cont. Redefine use of unroll_number.
15953 (loop_unroll_number): Delete.
15954
15955 * unroll.c (unroll_loop): Store loop unroll count in unroll_number
15956 field of loop_info.
15957 (loop_iterations): Delete variable vtop and instead use
15958 loop_info->vtop computed in prescan_loop.
15959
15960 Sun Aug 29 03:27:23 1999 Scott Weikart <scott@igc.apc.org>
15961
15962 * fix-header.c (main): Do not pass a null pointer to strcmp.
15963
15964 Sun Aug 29 03:18:48 1999 William Bader (william@nscs.fast.net)
15965
15966 * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
15967 filenames.
15968 * configure: Rebuilt.
15969
15970 Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com)
15971
15972 * jump.c (jump_optimize_1): Do not delete assignments to
15973 internal_arg_pointer.
15974 * cse.c (delete_trivially_dead_insns): Always consider a set of
15975 the internal_arg_pointer live.
15976
15977 Sat Aug 28 16:24:31 1999 Richard Henderson <rth@cygnus.com>
15978
15979 * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
15980 (update_life_info) [REG_WAS_0]: Search the original insns rather
15981 than the new insns for the note. Fix typos finding note_dest.
15982 If no dest found, discard the note rather than abort.
15983 [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
15984 (replace_insns): Remove the old insn list after update_life_info
15985 not before.
15986
15987 Sat Aug 28 16:20:12 1999 Richard Henderson <rth@cygnus.com>
15988
15989 * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
15990 sched_analyze_insn.
15991 (sched_analyze_1): Let add_dependence care for not adding dups.
15992 (sched_analyze_2): Likewise.
15993 (add_branch_dependences): Likewise.
15994
15995 Sat Aug 28 15:58:16 1999 Mumit Khan <khan@xraylith.wisc.edu>
15996
15997 * i386/winnt.c (export_list): New type.
15998 (exports_head): Rename to
15999 (export_head): this.
16000 (i386_pe_record_exported_symbol): Add is_data flag.
16001 (i386_pe_asm_file_end): Emit directive for exported variables.
16002 * i386/cygwin.h (i386_pe_record_exported_symbol): Update
16003 prototype.
16004 * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
16005 (ASM_DECLARE_OBJECT_NAME): Likewise.
16006 (ASM_DECLARE_FUNCTION_NAME): Likewise.
16007 * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
16008
16009 Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com)
16010
16011 * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
16012
16013 * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
16014 operand.
16015
16016 Fri Aug 27 14:01:19 1999 Marc Espie <espie@cvs.openbsd.org>
16017
16018 * config/openbsd.h: Define SET_ASM_OP.
16019 * tm.texi: cross-reference SET_ASM_OP in the index.
16020
16021 1999-08-27 13:27 -0700 Zack Weinberg <zack@bitmover.com>
16022
16023 * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
16024 for a CONST_DOUBLE, at compile time. Initialize rtx_length
16025 and class_narrowest_mode at compile time. Kill init_rtl.
16026 Mark rtx_length, mode_class, mode_size, mode_unit_size,
16027 mode_wider_mode, mode_mask_array, class_narrowest_mode, and
16028 rtx_format as const. Kill all references to EXTRA_CC_MODES or
16029 EXTRA_CC_NAMES.
16030 * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
16031 format.
16032 * rtl.h: Declare rtx_length and rtx_format as const.
16033 * machmode.def: Define CC(). Use CC() to define CCmode. If
16034 EXTRA_CC_MODES is defined, expand it here.
16035 * machmode.h: Declare mode_class, mode_size, mode_unit_size,
16036 mode_wider_mode, mode_mask_array, and class_narrowest_mode as
16037 const. Kill all references to EXTRA_CC_MODES.
16038
16039 * toplev.c: Don't prototype or call init_rtl.
16040 * optabs.c: Don't call init_mov_optab.
16041 * genemit.c: Don't generate init_mov_optab. Don't call
16042 init_rtl.
16043 * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
16044 here.
16045 * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
16046 genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
16047 genrecog.c: Don't call init_rtl.
16048
16049 * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
16050 rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES. Use CC() in
16051 definition of EXTRA_CC_MODES.
16052
16053 * md.texi: Kill ref to EXTRA_CC_NAMES.
16054 * tm.texi: Document new way to define EXTRA_CC_MODES.
16055
16056 * genrecog.c: Do not look up the name of a define_split.
16057 (Unrelated bugfix.)
16058
16059 Fri Aug 27 17:03:42 1999 Nick Clifton <nickc@cygnus.com>
16060
16061 * config/v850/v850.md: Fix typo introduced by previous delta.
16062
16063 Fri Aug 27 09:48:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16064
16065 * gcc.c (fatal): Make definition static to match prototype.
16066
16067 Fri Aug 27 10:33:35 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16068
16069 * combine.c (get_last_value): Don't look for earlier sets if the last
16070 known set is somewhere in between the insns being combined.
16071
16072 Fri Aug 27 10:03:12 BST 1999 Nathan Sidwell <nathan@acm.org>
16073
16074 * configure.in: Don't use shell ! to negate exit codes
16075 * configure: Regenerate
16076
16077 Fri Aug 27 09:36:17 1999 Andreas Schwab <schwab@suse.de>
16078
16079 * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
16080 the fact that ALIGN is measured in bits, not bytes.
16081
16082 1999-08-27 00:27 -0700 Zack Weinberg <zack@bitmover.com>
16083
16084 * errors.c: New file; defines functions error, warning, and
16085 fatal, variables have_error and progname.
16086 * errors.h: New file; prototypes and decls for stuff in errors.c.
16087
16088 * Makefile: Add rules to build errors.o and
16089 $(HOST_PREFIX)errors.o. Link genconfig, gencodes, genemit,
16090 genopinit, genrecog, genextract, genpeep, genattr, and
16091 genoutput with errors.o. Add errors.h to deps of genconfig.o,
16092 gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
16093 genpeep.o, genattr.o, and genoutput.o.
16094
16095 * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
16096 genextract.c, genpeep.c, genattr.c: Include errors.h. Don't
16097 define or prototype fatal. Set progname at beginning of main.
16098 * genoutput.c: Likewise, and don't define or prototype error
16099 either.
16100
16101 * c-typeck.c (c_expand_start_case): Return immediately if exp
16102 is an ERROR_MARK.
16103 * fold-const.c (operand_equal_p): Return immediately if arg1
16104 or arg0 are ERROR_MARKs.
16105 * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
16106 fields of type ERROR_MARK when calculating if the record can
16107 go in a register.
16108
16109 Fri Aug 27 01:03:48 1999 Jim Kingdon <http://developer.redhat.com>
16110 with much help from Jeffrey A Law and Richard Henderson
16111
16112 * i386.md: In the 6 insns which call output_fix_trunc,
16113 earlyclobber operands[0].
16114
16115 Fri Aug 27 01:01:51 1999 Philip Blundell <pb@nexus.co.uk>
16116
16117 * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
16118 creating new registers.
16119
16120 1999-08-26 23:09 -0700 Zack Weinberg <zack@bitmover.com>
16121
16122 * i386.h: Declare ix86_cpu_string, ix86_arch_string,
16123 i386_reg_alloc_order, i386_regparm_string,
16124 i386_align_loops_string, i386_align_jumps_string,
16125 i386_align_funcs_string, i386_preferred_stack_boundary_string,
16126 and i386_branch_cost_string as type "const char *".
16127 * i386.c: Define all above strings as type "const char *".
16128
16129 Thu Aug 26 20:36:30 1999 Jim Wilson <wilson@cygnus.com>
16130
16131 * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
16132 when emitting alignment padding. Emit padding byte of 0 instead of 4.
16133
16134 Thu Aug 26 18:11:20 1999 Mark Mitchell <mark@codesourcery.com>
16135
16136 * tree.c (array_type_nelts): Don't create RTL_EXPRs from
16137 SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
16138
16139 Thu Aug 26 19:33:23 1999 Jim Wilson <wilson@cygnus.com>
16140
16141 * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
16142 (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
16143 (dwarf2out_line, dwarf2out_finish): Likewise.
16144 * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
16145
16146 Thu Aug 26 16:10:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
16147
16148 * tree.c (lang_unsave_expr_now) : Correct return type.
16149 * tree.h (lang_unsave_expr_now) : Same.
16150
16151 Thu Aug 26 13:12:29 1999 Jeffrey A Law (law@cygnus.com)
16152
16153 * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
16154 instead of duplicating code.
16155
16156 Thu Aug 26 18:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16157
16158 * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
16159
16160 1999-08-26 09:42 -0700 Zack Weinberg <zack@bitmover.com>
16161
16162 * tree.h: fancy_abort always takes three args.
16163 * resource.c: Move include of system.h before toplev.h.
16164
16165 Thu Aug 26 09:46:16 1999 Nick Clifton <nickc@cygnus.com>
16166
16167 * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
16168 as SYMBOL_REFs.
16169
16170 1999-08-25 22:10 -0700 Zack Weinberg <zack@bitmover.com>
16171
16172 * system.h: Don't redefine abort or trim_filename.
16173 * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
16174 or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
16175 whether or not __FUNCTION__ is available.
16176 * tree.h: Duplicate rtl.h's definition of abort, for files
16177 that don't include rtl.h. Delete all code to perform type
16178 checking with a compiler other than GCC.
16179 * varray.h: Delete all code to perform type checking with a
16180 compiler other than GCC. Make VARRAY_CHECK() always evaluate
16181 its arguments exactly once, using a statement expression.
16182 Adjust the VARRAY_<type> accessor macros to match.
16183 * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
16184 (_fatal_insn, _fatal_insn_not_found): New fns, take info on
16185 caller's location. Define fatal_insn and fatal_insn_not_found
16186 as macros that use _fatal_insn and _fatal_insn_not_found.
16187 (fancy_abort, trim_filename): Kill prototypes.
16188
16189 * rtl.c (trim_filename): Move here from toplev.c.
16190 (fancy_abort): New function.
16191 (DIR_SEPARATOR): Provide default definition.
16192 * tree.c (tree_check_failed, tree_class_check_failed): Go
16193 through fancy_abort.
16194 (tree_check, tree_class_check, cst_or_constructor_check,
16195 expr_check): Delete.
16196 * varray.c (varray_check_failed): New function.
16197 * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
16198 _fatal_insn and _fatal_insn_not_found. Go through
16199 fancy_abort.
16200 (trim_filename, fancy_abort): Delete.
16201
16202 * builtins.c (expand_builtin_args_info): Report ICE with abort.
16203 * except.c (start_catch_handler): Report ICE with error/abort
16204 combo.
16205 * final.c (output_operand_lossage): Likewise.
16206 * flow.c (verify_flow_info): Likewise.
16207
16208 * gcc.c: Prototype fatal.
16209 * gengenrtl.c: Undef abort after including rtl.h not system.h.
16210 * genattr.c, genattrtab.c, genemit.c, genextract.c,
16211 genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
16212 Don't define fancy_abort.
16213
16214 Wed Aug 25 17:56:59 1999 Richard Henderson <rth@cygnus.com>
16215
16216 * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
16217 canonization.
16218
16219 Wed Aug 25 15:35:55 1999 Richard Henderson <rth@cygnus.com>
16220
16221 * m88k.h (VERSION_INFO2): Kill.
16222 (VERSION_STRING): Kill.
16223 (TM_RCS_ID): Kill.
16224 (VERSION_INFO1): Tidy.
16225 (TARGET_VERSION): Update.
16226 * m88k/dgux.h (VERSION_INFO2): Kill.
16227 (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
16228 * m88k/luna.h (VERSION_INFO1): Tidy.
16229 * m88k/sysv4.h (VERSION_INFO1): Likewise.
16230 * m88k.c (out_rcs_id, tm_rcs_id): Kill.
16231 (output_file_start): Adjust for death of VERSION_STRING.
16232
16233 1999-08-25 13:51 -0700 Jim Meyering <meyering@ascend.com>
16234
16235 * cpplib.c (detect_if_not_defined): New function.
16236 (do_if): Use it to detect potential once-only headers.
16237
16238 Wed Aug 25 14:00:18 1999 Jason Merrill <jason@yorick.cygnus.com>
16239
16240 * c-common.c (combine_strings): Always set TREE_CONSTANT.
16241
16242 Wed Aug 25 15:27:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
16243
16244 * combine.c (nonzero_bits) : Allow single-ly set registers to be
16245 anywere in the function only if they are pseudos and set before
16246 being used (not live at the start of the function).
16247 (num_sign_bit_copies) : Same.
16248 (get_last_value_validate) : Same.
16249 (get_last_value) : Same.
16250
16251 Wed Aug 25 11:13:29 1999 Richard Henderson <rth@cygnus.com>
16252
16253 * loop.c (express_from): Try harder to unify (* c N) and (* c M)
16254 where N and M are constant and N is an integer multiple of M.
16255
16256 Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
16257
16258 * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
16259 (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
16260 sbitmap_union_of_preds): Add prototypes.
16261 * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
16262 the intersection of successors with the new flow graph structures.
16263 (sbitmap_intersection_of_preds): New function to compute the
16264 intersection of predecessors with the new flow graph structures.
16265 (sbitmap_union_of_succs): New function to compute the union of
16266 successors with the new flow graph structures.
16267 (sbitmap_union_of_preds): New function to compute the union of
16268 predecessors with the new flow graph structures.
16269 * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
16270 (expr_reaches_here_p): Use edge and basic_block structures instead
16271 of s_preds and s_succs.
16272 (compute_cprop_avinout): Use new sbitmap routines.
16273 (pre_expr_reaches_here_p): Use edge and basic_block structures instead
16274 of s_preds and s_succs.
16275 * flow.c (compute_flow_dominators): Compute dominators using
16276 edges and basic blocks instead of s_preds and s_succs.
16277
16278 Wed Aug 25 13:41:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
16279
16280 * lists.c (unused_insn_list, unused_expr_list): New file for
16281 maintaining various types of lists. New statics for maintaining a
16282 cache of available INSN_LIST and EXPR_LIST nodes.
16283 (free_list): Static function for freeing a list of INSN/EXPR nodes.
16284 (alloc_INSN_LIST): Function to get a free INSN_LIST node.
16285 (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
16286 (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
16287 (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
16288 (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
16289 (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
16290 (free_INSN_LIST_node): Free an individual INSN_LIST node.
16291 * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
16292 (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
16293 (remove_dependence, free_pending_lists): Use new global routines.
16294 (flush_pending_lists, sched_analyze_insn): Use new global routines.
16295 (sched_analyze, compute_block_backward_dependences): Use new routines.
16296 (sched_analyze_1, sched_analyze_2): Use new routines.
16297 (schedule_insns): Use new global routines.
16298 * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
16299 prototypes.
16300 (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
16301 (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
16302 prototypes.
16303 * toplev.c (rest_of_compilation): Initialize node cache.
16304 * Makefile.in (OBJS): Add lists.o to list of object files.
16305 (lists.o): Add dependancies.
16306
16307 Wed Aug 25 17:31:56 1999 Nick Clifton <nickc@cygnus.com>
16308
16309 * config/v850/v850.md: Fix compile time warning messages.
16310 * config/v850/v850.c: Fix compile time warning messages.
16311 * config/v850/v850.h: Fix compile time warning messages.
16312
16313 Wed Aug 25 09:44:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16314
16315 * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
16316 Remove unused prototype for `init_lengths'.
16317
16318 Wed Aug 25 09:32:31 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16319
16320 * calls.c (emit_call_1): Mark parameter `stack_size' with
16321 ATTRIBUTE_UNUSED.
16322 (expand_call): Initialize variable `insn'.
16323 (emit_library_call): Likewise for variable `high_to_save'.
16324 (emit_library_call_value): Likewise.
16325 (store_one_arg): Likewise for variables `lower_bound' and
16326 `upper_bound'.
16327
16328 * combine.c (try_combine): Likewise for variables `i2_code_number'
16329 and `other_code_number'.
16330 (find_split_point): Likewise for variables `pos', `unsignedp' and
16331 `inner'.
16332 (simplify_if_then_else): Likewise for variables `op' and `c1'.
16333 (simplify_and_const_int): Remove unused variable `width'.
16334 (merge_outer_ops): Likewise.
16335
16336 * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
16337 HOST_WIDE_INT' when comparing against one.
16338 (simplify_relational_operation): Likewise.
16339 (cse_insn): Initialize variables `src_eqv_volatile',
16340 `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
16341
16342 * final.c (init_final): Constify parameter `filename'.
16343 (final_start_function): Mark parameter `optimize' with
16344 ATTRIBUTE_UNUSED.
16345 (profile_function): Likewise for parameters `first' and `optimize'.
16346 (output_source_line): Likewise for parameter `file'.
16347
16348 * integrate.c (subst_constants): Cast a value to `size_t' when
16349 comparing against one.
16350 (mark_stores): Initialize variable `mode'. Cast a value to
16351 `size_t' when comparing against one.
16352
16353 * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
16354
16355 * loop.c (move_movables): Initialize variable `first'.
16356 (strength_reduce): Likewise for variable `increment'.
16357 (check_dbra_loop): Likewise for variable `comparison_val'. Cast a
16358 value to `size_t' when comparing against one.
16359 (load_mems): Initialize variable `end_label'.
16360
16361 * output.h (init_final): Constify parameter.
16362
16363 * reload.c (decompose): Initialize variable `base'.
16364
16365 * reload1.c (reload): Likewise for variable `is_scalar'.
16366 (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
16367 (choose_reload_regs): Initialize variable `mode'.
16368 (emit_reload_insns): Likewise for variable `store_insn'.
16369 (reload_cse_noop_set_p): Mark parameter `insn' with
16370 ATTRIBUTE_UNUSED.
16371 (reload_combine): Initialize variable `set'.
16372
16373 * unroll.c (unroll_loop): Likewise for variable `local_label'.
16374 (copy_loop_body): Cast a value to `size_t' when comparing against
16375 one.
16376
16377 * varasm.c (assemble_variable): Initialize variable `size_tree'.
16378 (const_hash): Add an `else abort()' in an if-else-if-else sequence.
16379 (remove_from_pending_weak_list): Mark parameter `name' with
16380 ATTRIBUTE_UNUSED.
16381
16382 Wed Aug 25 11:18:39 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16383
16384 * toplev.c (rest_of_compilation): Use decl_printable_name when opening
16385 gcse dump file.
16386
16387 Wed Aug 25 10:57:12 1999 Nick Clifton <nickc@cygnus.com>
16388
16389 * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
16390 (ASM_DECLARE_FUNCTION_NAME): Define.
16391 (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
16392 ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
16393 ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
16394 not already defined.
16395
16396 Wed Aug 25 01:36:11 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
16397
16398 * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
16399 of n_popped when call/call_value are not defined.
16400
16401 Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com)
16402
16403 * tm.texi: GNU CC -> GCC conversion.
16404 (CC1_SPEC): Indicate it is used for all language front ends.
16405
16406 Tue Aug 24 23:43:03 1999 Mark Mitchell <mark@codesourcery.com>
16407
16408 * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
16409 NOTE_INSN_EH_REGION_END correctly.
16410
16411 Tue Aug 24 23:26:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
16412 Jeff Law <law@cygnus.com>
16413
16414 * loop.c (strength_reduce): Automatically unroll loops if the
16415 unrolled loop size is smaller than the rolled loop size.
16416
16417 * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
16418 and delete comment that code should be rewritten.
16419
16420 Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com)
16421
16422 * haifa-sched.c (find_rgns): Mark a block found during the DFS search
16423 as reachable.
16424
16425 * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
16426
16427 Tue Aug 24 22:41:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
16428
16429 * fixinc/mkfixinc.sh: Don't fix uwin headers.
16430 * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
16431 (LINK_SPEC): Add -u _main when building executables.
16432 (ASM_DECLARE_FUNCTION): Update from Cygwin.
16433 (ASM_FILE_END): Use the default for ix86-pe.
16434 * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
16435
16436 Tue Aug 24 20:49:47 1999 Art Haas <ahaas@neosoft.com>
16437
16438 * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
16439 and ASM_CLOSE_PAREN are empty strings.
16440
16441 Wed Aug 25 12:46:22 1999 Fred Fish <fnf@cygnus.com>
16442 Geoffrey Keating <geoffk@cygnus.com>
16443
16444 * Makefile.in (PREPROCESSOR_DEFINES): New macro.
16445 (protoize.o): Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
16446 (unprotoize.o): Ditto.
16447 (test-protoize-simple): Don't define STD_PROTO_DIR.
16448 * protoize.c: Use PARAMS rather than PROTO. Minor whitespace
16449 changes to make 'test-protoize-simple' pass.
16450 (STD_PROTO_DIR): Remove define.
16451 (STANDARD_EXEC_PREFIX): Supply default define.
16452 (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
16453 (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
16454 (target_version): New variable, init to DEFAULT_TARGET_VERSION.
16455 (GET_ENV_PATH_LIST): New macro.
16456 (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
16457 (do_processing): Initialize default_syscalls_dir using new
16458 macros. Use it to initialize syscalls_absolute_filename.
16459
16460 Tue Aug 24 16:58:15 1999 Richard Henderson <rth@cygnus.com>
16461
16462 * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
16463 B into a register before emit_conditional_move.
16464
16465 Tue Aug 24 15:37:03 1999 Richard Henderson <rth@cygnus.com>
16466
16467 * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
16468 as (+ (+ (* a b) (* d e)) c). Factor a common power-of-two
16469 multiplicand out of (+ (* a b) (* c d)).
16470
16471 Tue Aug 24 11:46:10 1999 Bob Manson <manson@cygnus.com>
16472 Richard Henderson <rth@cygnus.com>
16473
16474 * haifa-sched.c (split_hard_reg_notes): Move to flow.c
16475 (new_insn_dead_notes): Likewise.
16476 (update_n_sets): Likewise.
16477 (update_flow_info): Move to flow.c, renamed to update_life_info;
16478 extend to handle multiple source insns.
16479 * flow.c: Include resource.h
16480 (unlink_insn_chain): New.
16481 (split_hard_reg_notes): New.
16482 (maybe_add_dead_note): New.
16483 (maybe_add_dead_note_use): New.
16484 (find_insn_with_note): New.
16485 (new_insn_dead_notes): New.
16486 (update_n_sets): New.
16487 (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
16488 (maybe_remove_dead_notes): New.
16489 (update_life_info): New.
16490 (prepend_reg_notes): New.
16491 (replace_insns): New.
16492 * output.h (update_life_info): Declare.
16493 * recog.c (split_block_insns): Use update_life_info.
16494 * resource.c (find_free_register): Use reg_alloc_order, don't use
16495 fixed regs, make sure the mode is supported, don't use new regs.
16496 (reg_dead_p): New.
16497 * rtl.h (replace_insns): Declare.
16498
16499 Tue Aug 24 13:48:39 1999 Nathan Sidwell <nathan@acm.org>
16500
16501 * expr.c (expand_expr): Cope with COND_EXPRs with one
16502 non-returning branch.
16503
16504 Mon Aug 23 22:28:16 1999 Mark Mitchell <mark@codesourcery.com>
16505
16506 * expr.c (store_expr): Always pass down the target, even when not
16507 doing CSE.
16508
16509 1999-08-24 Nick Clifton <nickc@cygnus.com>
16510
16511 * configure.in: Define target_cpu_default for v850 targets.
16512 * configure: Regenerate
16513
16514 * config/v850/v850.h (TARGET_CPU_generic): Define.
16515 (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
16516 addresses are 4 byte aligned.
16517
16518 * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
16519 addresses.
16520
16521 Tue Aug 24 09:32:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16522
16523 * genattr.c (function_unit_desc): Constify a char*. Add prototype.
16524 (main): Add prototypes.
16525
16526 * genattrtab.c (substitute_address, write_const_num_delay_slots,
16527 attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
16528 (write_attr_get): Emit prototypes along with function definition.
16529 (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
16530 (write_complex_function): Emit static prototype along with
16531 function definition.
16532
16533 * genemit.c (gen_split): Emit prototypes along with function
16534 definition.
16535
16536 * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
16537 Likewise for predicates and `insn_operand_predicate'.
16538 (process_template): Emit static prototype along with function
16539 definition.
16540
16541 * genrecog.c (make_insn_sequence): Constify a char*. Add
16542 prototypes for get_split_*().
16543 (write_subroutine): Emit prototypes along with function
16544 definition.
16545
16546 Tue Aug 24 12:35:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16547
16548 * gcse.c (find_avail_set): Follow chains of register-register copies.
16549 Use oprs_not_set_p to guarantee that the returned value can be
16550 substituted.
16551 (cprop_insn): Don't verify the return value of find_avail_set with
16552 oprs_not_set_p.
16553
16554 * gcse.c (cprop_jump): New function, broken out of cprop_insn.
16555 (cprop_cc0_jump): New function.
16556 (cprop_insn): Break out new function cprop_jump and use it.
16557 Also use cprop_cc0_jump for machines with CC0.
16558 (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
16559
16560 * tree.h (current_function_calls_setjmp,
16561 current_function_calls_longjmp): Delete declarations.
16562 * dsp16xx.c: Include "function.h".
16563 * elxsi.c: Likewise.
16564 * gmicro.c: Likewise.
16565 * h8300.c: Likewise.
16566 * i370.c: Likewise.
16567 * m32r.c: Likewise.
16568 * mn10200.c: Likewise.
16569 * mn10300.c: Likewise.
16570 * ns32k.c: Likewise.
16571 * spur.c: Likewise.
16572 * v850.c: Likewise.
16573
16574 * rtl.h (rtx_equal_function_value_matters): Declare.
16575 * toplev.c (rtx_equal_function_value_matters): Don't declare.
16576 * cse.c: Likewise.
16577 * function.c: Likewise.
16578 * emit-rtl.c: Likewise.
16579
16580 Tue Aug 24 02:47:44 1999 Jeffrey A Law (law@cygnus.com)
16581
16582 * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
16583 call.
16584
16585 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
16586
16587 * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
16588 exactly.
16589
16590 Mon Aug 23 23:35:52 1999 Matthias Klose <doko@cs.tu-berlin.de>
16591
16592 * cpp.texi: Add a node documenting macro varargs (copied
16593 from extend.texi).
16594
16595 1999-08-23 22:23 -0700 Zack Weinberg <zack@bitmover.com>
16596
16597 * cppspec.c: Put a null pointer at the end of the new argv.
16598
16599 Mon Aug 23 21:23:24 1999 Jeffrey A Law (law@cygnus.com)
16600
16601 * configure.in: Remove code to select/de-select the haifa
16602 scheduler. Every scheduled port gets haifa now.
16603 * configure: Rebuilt.
16604 * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
16605 * sched.c Deleted.
16606 * Makefile.in: Corresponding changes.
16607
16608 Mon Aug 23 16:04:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16609
16610 * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
16611 All callers changed.
16612 (prepare_float_lib_cmp): Likewise.
16613 Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
16614 * expr.h (emit_float_lib_cmp): Delete declaration.
16615 * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
16616 * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
16617 * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
16618 specially.
16619 (cmptf): Now conditional on TARGET_HARD_QUAD.
16620
16621 Fri Aug 20 17:52:27 1999 Jim Wilson <wilson@cygnus.com>
16622
16623 * resource.c (mark_target_live_regs): Use
16624 PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
16625
16626 Fri Aug 20 19:07:55 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16627
16628 * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
16629
16630 * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
16631
16632 * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
16633
16634 Fri Aug 20 18:53:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16635
16636 * rtl.h (rtx_format): Constify a char*.
16637
16638 * rtl.c (rtx_format): Likewise.
16639 (copy_rtx, copy_most_rtx, read_rtx): Likewise.
16640 (init_rtl): Use accessor macro, not `rtx_format'.
16641
16642 * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
16643 char*.
16644
16645 * caller-save.c (mark_referenced_regs): Likewise.
16646
16647 * combine.c (subst, make_compound_operation, known_cond,
16648 gen_rtx_combine, update_table_tick, get_last_value_validate,
16649 use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
16650
16651 * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
16652 refers_to_p, canon_reg, fold_rtx, cse_process_notes,
16653 count_reg_usage): Likewise.
16654
16655 * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
16656 Likewise.
16657
16658 * final.c (leaf_renumber_regs_insn): Likewise.
16659
16660 * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
16661 dump_edge_info, count_reg_references): Likewise.
16662
16663 * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
16664 fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
16665 Likewise.
16666
16667 * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
16668 oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
16669 add_label_notes): Likewise.
16670
16671 * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
16672 clear_struct_flag, count_sub_rtxs, count_alternatives,
16673 compares_alternatives_p, contained_in_p, walk_attr_value,
16674 write_expr_attr_cache): Likewise.
16675
16676 * genconfig.c (walk_insn_part): Likewise.
16677
16678 * genemit.c (max_operand_1, gen_exp): Likewise.
16679
16680 * genextract.c (walk_rtx): Likewise.
16681
16682 * genflags.c (num_operands): Likewise.
16683
16684 * genoutput.c (scan_operands): Likewise.
16685
16686 * genpeep.c (match_rtx): Likewise.
16687
16688 * genrecog.c (add_to_sequence): Likewise.
16689
16690 * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
16691 Likewise.
16692
16693 * integrate.c (save_constants, copy_for_inline,
16694 copy_rtx_and_substitute, subst_constants, restore_constants):
16695 Likewise.
16696
16697 * jump.c (mark_jump_label, invert_exp, redirect_exp,
16698 rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
16699
16700 * local-alloc.c (contains_replace_regs, memref_referenced_p):
16701 Likewise.
16702
16703 * loop.c (record_excess_regs, rtx_equal_for_loop_p,
16704 add_label_notes, replace_call_address, count_nonfixed_reads,
16705 invariant_p, find_single_use_in_loop, find_mem_givs,
16706 find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
16707 Likewise.
16708
16709 * print-rtl.c (reg_names, print_rtx): Likewise.
16710
16711 * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
16712
16713 * reg-stack.c (stack_regs_mentioned_p, record_label_references,
16714 record_reg_life_pat, swap_rtx_condition, goto_block_pat,
16715 print_blocks): Likewise.
16716
16717 * regclass.c (fix_register, record_address_regs,
16718 reg_scan_mark_refs): Likewise.
16719
16720 * regmove.c (stable_but_for_p): Likewise.
16721
16722 * reload.c (loc_mentioned_in_p, operands_match_p,
16723 find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
16724 copy_replacements, refers_to_regno_for_reload_p,
16725 refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
16726 reload_when_needed_name, reg_class_names, debug_reload_to_stream):
16727 Likewise.
16728
16729 * reload1.c (eliminate_regs, scan_paradoxical_subregs,
16730 delete_address_reloads_1, count_occurrences,
16731 reload_cse_mem_conflict_p, reload_combine_note_use,
16732 add_auto_inc_notes): Likewise.
16733
16734 * resource.c (mark_referenced_resources, mark_set_resources):
16735 Likewise.
16736
16737 * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
16738 reg_mentioned_p, regs_set_between_p, modified_between_p,
16739 modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
16740 rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
16741 may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
16742 jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
16743
16744 * sched.c (sched_analyze_2, attach_deaths): Likewise.
16745
16746 * stupid.c (stupid_mark_refs): Likewise.
16747
16748 * unroll.c (remap_split_bivs): Likewise.
16749
16750 * varasm.c (mark_constants): Likewise.
16751
16752 * a29k/a29k.c (uses_local_reg_p): Likewise.
16753
16754 * alpha/alpha.c (summarize_insn): Likewise.
16755
16756 * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
16757 eliminate_lr2ip): Likewise.
16758
16759 * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
16760
16761 * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
16762 reg_mentioned_in_mem): Likewise.
16763
16764 * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
16765 symbolic_reference_mentioned_p): Likewise.
16766
16767 * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
16768
16769 * sh/sh.c (regs_used, mark_use): Likewise.
16770
16771 * vax/vax.c (vax_rtx_cost): Likewise.
16772
16773 Fri Aug 20 18:38:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16774
16775 * machmode.h (mode_name): Constify a char*.
16776
16777 * rtl.c (mode_name): Likewise.
16778
16779 * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
16780
16781 * optabs.c (init_libfuncs): Constify a char*.
16782
16783 * print-tree.c (mode_name): Remove redundant declaration.
16784 (print_node): Use accessor macro, not `mode_name'.
16785
16786 * reload1.c (dump_needs): Constify a char*. Use accessor macro,
16787 not `mode_name'.
16788 (new_spill_reg): Constify a char*.
16789
16790 * tree.c (mode_name): Remove redundant declaration.
16791
16792 Fri Aug 20 18:31:26 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16793
16794 * rtl.c (rtx_name): Constify a char*.
16795
16796 * rtl.h (rtx_name, fix_sched_param): Likewise.
16797
16798 * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
16799 (mypr): Use accessor macro, not `rtx_name'.
16800
16801 * genemit.c (print_code): Constify a char*.
16802
16803 * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
16804
16805 * genpeep.c (print_code): Constify a char*.
16806
16807 * genrecog.c (print_code): Likewise.
16808
16809 * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
16810 end_bb): Add static prototype.
16811 (draw_edge): Constify a char*.
16812 (end_bb): Remove unused parameter.
16813
16814 * haifa-sched.c (fix_sched_param, safe_concat, print_exp
16815 print_block_visualization): Constify a char*.
16816
16817 Fri Aug 20 15:02:10 1999 Mark Mitchell <mark@codesourcery.com>
16818
16819 * c-common.c (c_get_alias_set): Update comment.
16820
16821 1999-08-20 Andreas Jaeger <aj@arthur.rhein-neckar.de>
16822
16823 * linux.h (LIB_SPEC): Added.
16824
16825 Fri Aug 20 22:32:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
16826
16827 * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
16828
16829 1999-08-19 18:43 -0700 Zack Weinberg <zack@bitmover.com>
16830
16831 * tree.c (expr_check): Fix typo in last change.
16832
16833 1999-08-19 14:44 -0700 Zack Weinberg <zack@bitmover.com>
16834
16835 * rtl.def (NOTE): Change format to "iuu0n".
16836 (ADDR_DIFF_VEC): Change format to "eEee0".
16837 (ADDRESSOF): Change format to "eit".
16838
16839 * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
16840 (RTVEC_ELT): Change to match.
16841 (XVECEXP): Use XVEC and RTVEC_ELT.
16842 (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
16843 ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
16844 (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
16845 CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
16846 TRAP_CONDITION, TRAP_CODE): Use XEXP.
16847 (INTVAL): Use XWINT.
16848 (ADDRESSOF_DECL): Use XTREE.
16849 (SET_ADDRESSOF_DECL): Delete.
16850 (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
16851 NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been
16852 ifdefed out since 2.6 at least.
16853 (gen_rtvec_vv): Delete prototype.
16854
16855 * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
16856 not rtunion.
16857 (copy_most_rtx): Handle 't' format letter.
16858 * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
16859 (gen_rtvec_vv): Delete function. All callers changed to use
16860 gen_rtvec_v instead.
16861 * print-rtl.c (print_rtx): Move special casing of NOTEs to
16862 the '0' format letter.
16863
16864 * function.c (gen_mem_addressof): Don't use
16865 SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
16866 instead.
16867 * integrate.c (copy_rtx_and_substitute): Likewise.
16868 Copy 't' slots with XTREE.
16869 (subst_constants): Treat 't' slots like '[swi]' slots.
16870 * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
16871 * jump.c (rtx_equal_for_thread_p): Likewise.
16872 * rtlanal.c (rtx_equal_p): Likewise.
16873 * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
16874 only four arguments.
16875 * gengenrtl.c (type_from_format): Provide correct types for
16876 'b' and 't' slots.
16877
16878
16879 * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
16880 If a recent gcc is in use (always in stage2 and beyond), use
16881 statement expressions, so we don't make a function call unless
16882 the check fails. Evaluate arguments exactly once.
16883 (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
16884 TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
16885 Delete.
16886 (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
16887 they evaluate their arguments exactly once, irrespective of
16888 the compiler in use.
16889
16890 * tree.c [ENABLE_CHECKING]: Define whichever set of functions
16891 is used by the currently-enabled check macros. This is:
16892 (tree_check_failed, tree_class_check_failed): For gcc.
16893 (tree_check, tree_class_check, cst_or_constructor_check,
16894 expr_check): For other compilers.
16895
16896 * gencheck.c: Do not define any *_CHECK1 macros.
16897
16898 Thu Aug 19 14:42:38 1999 Mike Stump <mrs@wrs.com>
16899 Mark Mitchell <mark@codesourcery.com>
16900
16901 * c-common.c (c_get_alias_set): Fix support for poitners and
16902 references.
16903
16904 Thu Aug 19 11:51:22 EDT 1999 John Wehle (john@feith.com)
16905
16906 * alias.c: Include tree.h.
16907 (nonlocal_reference_p, mark_constant_function): New functions.
16908 * flow.c (life_analysis): Call mark_constant_function.
16909 * rtl.h (mark_constant_function): Declare it.
16910
16911 Thu Aug 19 15:02:01 1999 Nick Clifton <nickc@cygnus.com>
16912
16913 * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
16914 unrecognisable switches.
16915
16916 Wed Aug 18 23:31:57 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16917
16918 * loop.c (recombine_givs): Set ix field after sorting.
16919 (recombine_givs): Remove bogus index / giv lockstep looping.
16920
16921 Wed Aug 18 18:20:40 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16922
16923 * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
16924 on CODE.
16925 (emit_store_flag_force): Use do_compare_rtx_and_jump.
16926 (do_cmp_and_jump): Formatting fixes.
16927 * expr.c (do_compare_and_jump): Renamed from compare; changed to call
16928 do_compare_rtx_and_jump instead of compare_from_rtx.
16929 (do_compare_rtx_and_jump): New function; mostly copied from
16930 compare_from_rtx.
16931 (do_jump_for_compare): Delete.
16932 (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
16933 MIN_EXPR.
16934 (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
16935 of compare/do_jump_for_compare pairs.
16936 (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
16937 (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
16938 compare_from_rtx/do_jump_for_compare pairs.
16939 (do_jump_by_parts_equality): Likewise.
16940 (do_jump_by_parts_equality_rtx): Likewise.
16941 * expr.h (do_compare_rtx_and_jump): Declare.
16942 * optabs.c (prepare_cmp_insn): New function, contains most of the code
16943 that used to be in emit_cmp_insn.
16944 (cmp_available_p): New function.
16945 (prepare_operand): New function.
16946 (emit_cmp_and_jump_insn_1): New function, contains some code that used
16947 to be in emit_cmp_insn.
16948 (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
16949 parameters to be pointers; don't emit final compare but modify some of
16950 the values pointed to by the args so the caller can perform the
16951 correct comparison.
16952 (expand_binop): Call emit_store_flag_force with signed forms of
16953 comparison code.
16954 (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
16955 emit_jump_insn pair.
16956 (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
16957 emit_cmp_and_jump_insn_1. Call emit_queue.
16958 (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
16959 arg.
16960 * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
16961 jump sets cc0 before deleting it.
16962 * integrate.c (expand_inline_function): Likewise.
16963 * unroll.c (unroll_loop): Similar changes in several places.
16964 (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
16965 before deleting it.
16966
16967 Wed Aug 18 06:37:44 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16968
16969 * Makefile.in (insn-recog.o): Update dependencies.
16970 * genrecog.c (main): Make generated file include "function.h".
16971
16972 Sat Aug 14 00:54:57 1999 Geoffrey Keating <geoffk@cygnus.com>
16973
16974 * cse.c (cse_insn): Call never_reached_warning when a jump is
16975 changed to be unconditional.
16976 * flags.h: Declare warn_notreached.
16977 * flow.c (delete_block): Call never_reached_warning when
16978 a block is deleted.
16979 * jump.c (delete_barrier_successors): Call never_reached_warning
16980 when we delete everything after a BARRIER.
16981 (never_reached_warning): New function.
16982 * rtl.h: Declare never_reached_warning.
16983 * toplev.c (warn_notreached): New variable.
16984 (lang_independent_options): Set warn_notreached
16985 when -Wunreachable-code.
16986 (compile_file): We need line numbers for -Wunreachable-code.
16987
16988 Tue Aug 17 22:06:11 1999 Jan Hubicka <hubicka@freesoft.cz>
16989
16990 * haifa-sched.c (insn_unit): Fix typo on out of range test.
16991 * sched.c (insn_unit): Likewise.
16992
16993 Tue Aug 17 21:57:23 1999 Andreas Schwab <schwab@suse.de>
16994
16995 * combine.c (distribute_notes): Handle REG_EH_RETHROW.
16996
16997 Tue Aug 17 17:39:43 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
16998
16999 * flow.c (create_edge_list): Use xmalloc, not malloc.
17000
17001 Tue Aug 17 01:40:54 1999 Loren Rittle <ljrittle@acm.org>
17002
17003 * fixinc/inclhack.def (no_double_slash): Do not trash single-line
17004 C-style comments. Do not lose the character before double slash.
17005
17006 Mon Aug 16 18:08:22 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
17007
17008 * basic-block.h (struct edge_list): Stucture to maintain a vector
17009 of edges.
17010 (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
17011 INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
17012 (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
17013 New function prototypes.
17014 * flow.c (create_edge_list): Function to create an edge list.
17015 (free_edge_list): Discards memory used by an edge list.
17016 (print_edge_list): Debug output showing an edge list.
17017 (verify_edge_list): Internal consistency check for an edge list.
17018 (find_edge_index): Function to find an edge index for a pred and succ.
17019
17020 Mon Aug 16 11:56:36 1999 Mark Mitchell <mark@codesourcery.com>
17021
17022 * tree.c (type_hash_add): Use permalloc to allocate nodes in the
17023 hashtable.
17024
17025 Mon Aug 16 17:04:15 1999 Jorn Rennecke <amylaar@cygnus.co.uk>
17026
17027 * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
17028
17029 Fri Aug 13 15:20:43 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
17030
17031 * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
17032
17033 Fri Aug 13 10:21:28 1999 Nick Clifton <nickc@cygnus.com>
17034
17035 * toplev.c (rest_of_compilation): Allow machine dependent
17036 reorganisation pass to place information into the RTL dump
17037 file if it so wishes.
17038
17039 Sun Aug 15 12:41:21 1999 Jim Wilson <wilson@cygnus.com>
17040
17041 * explow.c (hard_function_value): Use VOIDmode instead of
17042 MAX_MACHINE_MODE.
17043 * stmt.c (expand_return): Likewise.
17044 * stor-layout.c (get_best_mode): Likewise.
17045
17046 * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
17047 emit call instead of emit_insn call.
17048
17049 Sat Aug 14 15:04:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
17050
17051 * configure.in: Handle --disable/enable-win32-registry.
17052 * install.texi: Document --disable/enable-win32-registry.
17053 * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
17054 (WIN32_REGISTRY_KEY): New macro.
17055 * prefix.c: Use to enable/disable win32-specific code.
17056 (lookup_key): Use versioned key.
17057 * configure: Regenerate.
17058 * config.in: Likewise.
17059
17060 Fri Aug 13 17:41:55 1999 Jason Merrill <jason@yorick.cygnus.com>
17061
17062 * cpplib.c (read_line_number): New fn, split out of...
17063 (do_line): Here.
17064
17065 Fri Aug 13 14:18:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
17066
17067 tree.c (lang_unsave_expr_now) : New.
17068 (unsave_expr_now): Call lang_unsave_expr_now.
17069 tree.h (lang_unsave_expr_now) : New.
17070
17071 Fri Aug 13 00:49:46 1999 Jason Merrill <jason@yorick.cygnus.com>
17072
17073 * toplev.c (flag_new_exceptions): On by default.
17074
17075 1999-08-13 Michael Meissner <meissner@cygnus.com>
17076
17077 * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
17078
17079 Fri Aug 13 01:29:57 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
17080
17081 * dwarfout.c (fundamental_type_code): Return FT_boolean for
17082 INTEGER_TYPE with precision==1, it's __java_boolean.
17083
17084 Thu Aug 12 23:51:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17085
17086 * global.c (prune_preferences): Move some invariants out of the
17087 inner loop.
17088
17089 Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com)
17090
17091 * configure.in (alpha*-dec-osf*): Add osf5.
17092
17093 Sun Aug 1 22:24:03 1999 Philip Blundell <philb@gnu.org>
17094
17095 * configure.in: Rework handling of ARM GNU/Linux slightly.
17096 (arm*-*-linux-gnuoldld): New target.
17097 * configure: Regenerate.
17098 * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
17099 arm-*-elf. Mention that arm-*-linux-gnuaout is obsolete.
17100 * config/arm/linux-oldld.h: New file.
17101 * config/arm/linux-elf26.h: Don't include linux-elf.h.
17102 (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
17103 Don't define.
17104 * config/arm/linux-elf.h (ASM_SPEC): Define.
17105 (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
17106 SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
17107 for 26-bit APCS and old linker.
17108 (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
17109 `arm_elf'.
17110 (FP_DEFAULT): Define to FP_SOFT3 for all machines.
17111 * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
17112 don't define `arm' or `arm_elf'.
17113 * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
17114 MULTILIB_DIRNAMES): Define. Fix typo in comment.
17115
17116 Thu Aug 12 10:14:47 1999 Andreas Schwab <schwab@suse.de>
17117
17118 * rtl.texi: Fix typo.
17119
17120 Wed Aug 11 23:50:57 1999 Jason Merrill <jason@yorick.cygnus.com>
17121
17122 * invoke.texi (C++ Dialect Options): Add -fms-extensions.
17123
17124 Wed Aug 11 12:59:37 1999 Mark Mitchell <mark@codesourcery.com>
17125
17126 * extend.texi (C++ Signatures): Remove node.
17127 * invoke.texi: Remove discussion of -fhandle-signatures,
17128 signature, sigof, __signature__, and __sigof__.
17129
17130 Wed Aug 11 03:38:25 1999 Jeffrey A Law (law@cygnus.com)
17131
17132 * Makefile.in (JAVAGC): Removed.
17133
17134 Wed Aug 11 02:13:26 1999 Mumit Khan <khan@xraylith.wisc.edu>
17135
17136 * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
17137
17138 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
17139
17140 * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
17141
17142 1999-08-11 Richard Earnshaw (rearnsha@arm.com)
17143
17144 * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
17145 a register that is already known to be a pointer.
17146
17147 1999-08-11 Bruce Korb <ddsinc09@ix.netcom.com>
17148
17149 * fixinc/inclhack.tpl: Only install assert.h conditionally.
17150 * fixinc/inclhack.sh: Regenerated.
17151 * fixinc/fixincl.sh: Regenerated.
17152
17153 Wed Aug 11 00:34:22 1999 Joe Buck <jbuck@synopsys.com>
17154
17155 * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
17156 Fix documentation of -ansi flag to describe its C++ behavior.
17157 Remove bogus reference to GCC 2.9.
17158
17159 Tue Aug 10 17:19:02 1999 Jim Wilson <wilson@cygnus.com>
17160
17161 * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
17162 note if it is non-NULL.
17163
17164 Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
17165
17166 * except.h (eh_nesting_info): Add new structure defintion.
17167 (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
17168 (reachable_handlers, update_rethrow_references): Add function
17169 prototypes.
17170 * rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes
17171 a rethrow symbol instead of an integer exception region number.
17172 * flow.c (Make_edges): Use new exception nesting routines to determine
17173 which handlers are reachable from a CALL or asynchronous insn.
17174 Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
17175 goto receivers.
17176 (delete_eh_regions): Update rethrow labels, and don't delete
17177 regions which are the target of a rethrow.
17178 * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
17179 avoid overloading the SYMBOL_REF_USED flag.
17180 (rethrow_symbol_map): Use new rethrow_ref field.
17181 (rethrow_used): Use new rethrow_ref field.
17182 (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
17183 of an integer. Fix formatting.
17184 (output_exception_table_entry): Use new rethrow_ref field.
17185 (can_throw): Check for EH_REGION_NOTE before deciding
17186 whether a CALL can throw or not.
17187 (scan_region): Call rethrow_used() instead of accessing data structure.
17188 (update_rethrow_references): New function to make sure only regions
17189 which are still targets of a rethrow are flagged as such.
17190 (process_nestinfo): New static function to initialize a handler
17191 list for a specific region.
17192 (init_eh_nesting_info): New function to allocate and initialize
17193 the list of all EH handlers reachable from all regions.
17194 (reachable_handlers): New function to retrieve the list of handlers
17195 reachable from a specific region and insn.
17196 (free_eh_nesting_info): New function to dispose of a list of
17197 reachable handlers.
17198
17199 Tue Aug 10 10:39:31 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
17200
17201 * flow.c (split_edge): Set JUMP_LABEL field.
17202 (commit_one_edge_insertion): Set head correctly for insert_before.
17203 When inserting insns, update insn block numbers if allocated.
17204
17205 Tue Aug 10 09:26:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17206
17207 * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
17208 retry_incomplete_types): Add static prototype.
17209 (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
17210 dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
17211 dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
17212 dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
17213 dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
17214 Constify a char*.
17215
17216 * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
17217 dwarf2out_start_source_file, dwarf2out_line): Likewise.
17218
17219 Tue Aug 10 09:21:46 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17220
17221 * output.h (assemble_name): Constify a char*.
17222
17223 * varasm.c (UNIQUE_SECTION, assemble_start_function,
17224 assemble_variable, assemble_name): Likewise.
17225
17226 * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
17227
17228 * arm/pe.c (arm_pe_unique_section): Likewise.
17229
17230 * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
17231
17232 * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
17233
17234 * i386/interix.c (i386_pe_unique_section): Likewise.
17235
17236 * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
17237
17238 * i386/winnt.c (i386_pe_unique_section): Likewise.
17239
17240 * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
17241
17242 * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
17243
17244 * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
17245
17246 * pa/pa.c (output_call): Likewise.
17247
17248 * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
17249
17250 * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
17251
17252 * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
17253 Likewise.
17254
17255 * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
17256 Likewise.
17257
17258 * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
17259
17260 * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
17261 STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
17262
17263 * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
17264
17265 Mon Aug 9 19:54:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17266
17267 * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
17268
17269 Mon Aug 9 19:36:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17270
17271 * tree.h (lang_identify): Constify a char*.
17272 (print_error_function): Add extern prototype. Constify a char*.
17273
17274 * c-lang.c (lang_identify): Constify a char*.
17275
17276 * objc/objc-act.c (lang_identify): Constify a char*.
17277
17278 Mon Aug 9 16:21:53 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17279
17280 * genpeep.c (main): Make generated file include "function.h".
17281 * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
17282
17283 Mon Aug 9 10:08:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17284
17285 * Makefile.in: Update dependencies.
17286 * alias.c: Include "function.h"
17287 * c-decl.c: Likewise.
17288 * caller-save.c: Likewise.
17289 * calls.c: Likewise.
17290 * combine.c: Likewise.
17291 * cse.c: Likewise.
17292 * explow.c: Likewise.
17293 * final.c: Likewise.
17294 * global.c: Likewise.
17295 * graph.c: Likewise.
17296 * local-alloc.c: Likewise.
17297 * loop.c: Likewise.
17298 * optabs.c: Likewise.
17299 * profile.c: Likewise.
17300 * recog.c: Likewise.
17301 * regclass.c: Likewise.
17302 * regmove.c: Likewise.
17303 * reload.c: Likewise.
17304 * reorg.c: Likewise.
17305 * resource.c: Likewise.
17306 * sched.c: Likewise.
17307 * stupid.c: Likewise.
17308 * config/1750a/1750a.c: Likewise.
17309 * config/a29k/a29k.c: Likewise.
17310 * config/arc/arc.c: Likewise.
17311 * config/arm/arm.c: Likewise.
17312 * config/arm/thumb.c: Likewise.
17313 * config/c4x/c4x.c: Likewise.
17314 * config/clipper/clipper.c: Likewise.
17315 * config/convex/convex.c: Likewise.
17316 * config/fx80/fx80.c: Likewise.
17317 * config/i860/i860.c: Likewise.
17318 * config/m68k/m68k.c: Likewise.
17319 * config/m88k/m88k.c: Likewise.
17320 * config/mips/mips.c: Likewise.
17321 * config/pdp11/pdp11.c: Likewise.
17322 * config/pyr/pyr.c: Likewise.
17323 * config/romp/romp.c: Likewise.
17324 * config/sh/sh.c: Likewise.
17325 * config/tahoe/tahoe.c: Likewise.
17326 * config/vax/vax.c: Likewise.
17327 * config/we32k/we32k.c: Likewise.
17328 * config/sparc/sparc.c: Include "function.h".
17329 (mem_min_alignment): Test current_function rather than
17330 regno_pointer_align.
17331 * config/pa/pa.c: Likewise.
17332 (compute_frame_size): Delete declaration of
17333 current_function_outgoing_args_size.
17334 * config/arc/arc.h (current_function_varargs): Delete declaration.
17335 * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
17336 declaration.
17337 * config/i370/i370.h (current_function_outgoing_args_size): Delete
17338 declaration.
17339 * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
17340 current_function_uses_pic_offset_table.
17341 * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
17342 of current_function_returns_pointer.
17343 * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17344 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17345 * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17346 * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17347 * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17348 * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
17349 * config/m88k/m88k.c: Include "function.h"
17350 (call_used_regs, current_function_pretend_args_size,
17351 current_function_outgoing_args_size, frame_pointer_needed): Delete
17352 declarations.
17353 * config/m88k/m88k.h (current_function_pretend_args_size): Delete
17354 declaration.
17355 * config/mips/mips.h (current_function_calls_alloca): Delete
17356 declaration.
17357 * config/mn10200/mn10200.h (current_function_needs_context,
17358 rtx_equal_function_value_matters): Delete declarations.
17359 * config/ns32k/ns32k (current_function_uses_pic_offset_table,
17360 flag_pic): Delete declarations.
17361 * config/pa/pa.h (current_function_pretend_args_size,
17362 current_function_decl): Delete declarations.
17363 * config/pa/som.h (current_function_varargs): Delete declaration.
17364 * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
17365 declaration.
17366 * config/pyr/pyr.h (current_function_pretend_args_size,
17367 current_function_args_size, current_function_calls_alloca): Delete
17368 declarations.
17369 * config/sh/sh.h (current_function_varargs): Delete declaration.
17370 * config/sparc/sparc.h (current_function_outgoing_args_size,
17371 current_function_calls_alloca, current_function_decl): Delete
17372 declarations.
17373 * config/spur/spur.h (current_function_pretend_args_size,
17374 current_function_calls_alloca): Delete declarations.
17375 * config/v850/v850.c (current_function_outgoing_args_size): Delete
17376 declaration.
17377 * config/vax/vms.h (current_function_name): Delete declaration.
17378 * gcse.c: Include "function.h".
17379 (current_function_name, current_function_calls_setjmp): Delete
17380 declarations.
17381 * haifa-sched.c: Include "function.h".
17382 (forced_labels): Delete declaration.
17383 * jump.c: Likewise.
17384 * reg-stack.c: Likewise.
17385 * reload1.c: Likewise.
17386 * genemit.c (main): Make generated file include function.h.
17387 * genoutput.c (output_prologue): Likewise.
17388
17389 * builtins.c (saveregs_value, apply_args_value): Delete variables.
17390 * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
17391 sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
17392 regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
17393 regno_reg_rtx, sequence_stack): Delete variables. Add accessor
17394 macros for some of them.
17395 (emit_filename, emit_lineno): Delete declarations.
17396 (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy. Access
17397 regno_pointer_* variables through current_function.
17398 (gen_inline_header_rtx): Delete function.
17399 (save_emit_status): Delete function.
17400 (set_new_last_label_num): New function.
17401 (clear_emit_caches): New function.
17402 (restore_emit_status): Just clear last_labelnum and call
17403 clear_emit_caches.
17404 (get_last_insn_anywhere): Variable sequence_stack is now accessed
17405 through macro seq_stack.
17406 (add_insn_after): Likewise.
17407 (add_insn_before): Likewise.
17408 (remove_insn): Likewise.
17409 (pop_topmost_sequence): Likewise.
17410 (in_sequence_p): Likewise.
17411 (start_sequence_for_rtl_expr): Likewise.
17412 (start_sequence): Likewise, and likewise for
17413 sequence_rtl_expr/seq_rtl_expr.
17414 (push_topmost_sequence): Likewise.
17415 (end_sequence): Likewise.
17416 (init_virtual_regs): Now takes a "struct emit_status *" argument.
17417 All callers changed. Store into that pointer instead of globals.
17418 (init_emit): Allocate emit elt of current_function.
17419 Changes for sequence_rtl_expr/sequence_stack renaming.
17420 Call clear_emit_caches instead of doing it in-line.
17421 Access regno_pointer_* variables through current_function.
17422 (init_emit_once) Don't clear sequence_stack.
17423
17424 * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
17425 Delete variables.
17426 (arg_pointer_save_area): Delete declaration.
17427 (finish_expr_for_function): Renamed from init_queue; no longer static.
17428 (init_expr): Don't call init_queue.
17429 (save_expr_status, restore_expr_status): Delete functions.
17430 (expand_expr): Changes to reflect new layout of struct function.
17431 Don't access current_function_check_memory_usage when current_function
17432 is 0.
17433 * expr.h (forced_labels, save_expr_regs, saveregs_value,
17434 apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
17435 current_function_outgoing_args_size, current_function_arg_offset_rtx,
17436 current_function_uses_const_pool, function_call_count,
17437 current_function_uses_pic_offset_table, nonlocal_labels,
17438 current_function_internal_arg_pointer, nonlocal_goto_stack_level,
17439 current_function_check_memory_usage, nonlocal_goto_handler_slots,
17440 pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
17441 declarations.
17442 (finish_expr_for_function): Declare.
17443 * flags.h (current_function_has_nonlocal_label,
17444 current_function_has_nonlocal_goto, current_function_is_thunk,
17445 current_function_has_computed_jump): Delete declarations.
17446 * flow.c (forced_labels): Delete declaration.
17447 * function.c (current_function_pops_args,
17448 current_function_returns_struct, current_function_returns_pcc_struct,
17449 current_function_needs_context, current_function_calls_setjmp,
17450 current_function_calls_longjmp, current_function_has_nonlocal_label,
17451 current_function_has_nonlocal_goto, current_function_is_thunk,
17452 current_function_has_computed_jump, current_function_calls_alloca,
17453 current_function_contains_functions, current_function_returns_pointer,
17454 current_function_epilogue_delay_list, current_function_args_size,
17455 current_function_pretend_args_size, current_function_arg_offset_rtx,
17456 current_function_outgoing_args_size, current_function_varargs,
17457 current_function_stdarg, current_function_args_info, cleanup_label,
17458 current_function_name, current_function_uses_const_pool,
17459 current_function_instrument_entry_exit, current_function_return_rtx,
17460 current_function_uses_pic_offset_table, nonlocal_labels,
17461 current_function_internal_arg_pointer, current_function_cannot_inline,
17462 current_function_check_memory_usage, function_call_count,
17463 nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
17464 nonlocal_goto_stack_level, return_label, save_expr_regs,
17465 stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
17466 tail_recursion_reentry, arg_pointer_save_area, frame_offset,
17467 context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
17468 last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
17469 temp_slot_level, var_temp_slot_level, target_temp_slot_level):
17470 Delete variables.
17471 (push_function_context_to): Don't save them. Don't call
17472 save_storage_status, save_emit_status or save_expr_status.
17473 (pop_function_context_from): Don't restore them. Don't call
17474 restore_storage_status or restore_expr_status.
17475 (get_func_frame_size): New function.
17476 (get_frame_size): Use it.
17477 (assign_outer_stack_local): Reflect some member name changes in struct
17478 function.
17479 (put_reg_into_stack): Likewise.
17480 (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
17481 seq_rtl_expr.
17482 (fixup_var_refs): Likewise.
17483 (fix_lexical_addr): Likewise.
17484 (trampoline_address): Likewise.
17485 (prepare_function_start): Clear field inlinable of current_function.
17486 (init_function_for_compilation): New function.
17487 (expand_dummy_function_end): New function.
17488 (expand_function_end): Call finish_expr_for_function.
17489 * function.h (struct emit_status): New; fields moved here from struct
17490 function and from global variables. Add accessor macros for some of
17491 the fields.
17492 (struct expr_status): Likewise.
17493 (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
17494 (struct function): Add fields expr and emit, inlinable, inl_emit,
17495 original_arg_vector, original_decl_initial, inl_last_parm_insn,
17496 inl_max_label_num. Add many comments.
17497 Add accessor macros for all elts of struct function that no longer
17498 have a global variable.
17499 (cleanup_label, return_label, frame_offset, tail_recursion_label,
17500 tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
17501 stack_slot_list): Delete declarations.
17502 (get_func_frame_size): Declare.
17503 (save_expr_status, restore_expr_status, save_emit_status,
17504 save_storage_status, restore_storage_status): Delete declarations.
17505 (init_virtual_regs): Declare.
17506 * output.h (current_function_pops_args,
17507 current_function_returns_struct, current_function_returns_pcc_struct,
17508 current_function_needs_context, current_function_calls_setjmp,
17509 current_function_calls_longjmp, current_function_calls_alloca,
17510 current_function_has_nonlocal_label, current_function_varargs,
17511 current_function_has_computed_jump, current_function_returns_pointer,
17512 current_function_contains_functions, current_function_args_size,
17513 current_function_pretend_args_size, current_function_stdarg,
17514 current_function_outgoing_args_size, current_function_args_info,
17515 current_function_name, current_function_return_rtx,
17516 current_function_epilogue_delay_list,
17517 current_function_uses_const_pool, current_function_cannot_inline):
17518 Delete declarations.
17519 * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
17520 regno_reg_rtx): Delete declaration.
17521 (REGNO_POINTER_FLAG): Delete macro.
17522 * stmt.c (expand_goto): Changes to reflect that some fields in struct
17523 function were renamed.
17524 * stor-layout.c (save_storage_status, restore_storage_status): Delete
17525 functions.
17526 * toplev.c: Include "function.h".
17527 (current_function_decl): Delete declaration.
17528 (compile_file): Call init_dummy_function_start and
17529 expand_dummy_function_end around some initializations that need to
17530 emit rtl.
17531 (rest_of_compilation): Use DECL_SAVED_INSNS properly.
17532 Call init_function_for_compilation.
17533 * unroll.c: Include "function.h"
17534 (unroll_loop): Access regno_pointer_* variables through
17535 current_function.
17536
17537 * tree.h (struct tree_decl): Add elt f to saved_insns member.
17538 (DECL_SAVED_INSNS): use it.
17539 (expand_dummy_function_end): Declare.
17540 (init_function_for_compilation): Declare.
17541 * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
17542 that it's no longer an INLINE_HEADER.
17543 (expand_call): Likewise.
17544 * integrate.c (finish_inline): Delete function.
17545 (max_parm_reg, parm_reg_stack_loc): Delete declarations.
17546 (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
17547 args. Don't generate an INLINE_HEADER rtx, just return the arg
17548 vector. All callers changed.
17549 (save_for_inline_copying): Create a duplicate struct emit_status to
17550 hold the emit state for compiling the current function. Use this and
17551 the other new fields in struct function that are for integration
17552 instead of an INLINE_HEADER.
17553 Use memcpy instead of bcopy.
17554 Store the current struct function in DECL_SAVED_INSNS of fndecl.
17555 (save_for_inline_nocopy): Similar changes, except no new emit_status
17556 is needed here.
17557 (expand_inline_function): Get information from function structure,
17558 not from an inline header rtx.
17559 (output_inline_function): Lose code to extract the necessary
17560 information from an inline header; simply put back the function
17561 structure into current_function. Clear its inlinable elt.
17562 * rtl.def (INLINE_HEADER): Delete.
17563 * rtl.h: Delete all accessors for an INLINE_HEADER.
17564 (gen_inline_header_rtx): Delete declaration.
17565 (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
17566 Delete declarations.
17567 (REGNO_POINTER_ALIGN): Delete.
17568 (clear_emit_caches): Declare.
17569 (set_new_last_label_num): Declare.
17570
17571 Mon Aug 9 01:52:24 1999 Jason Merrill <jason@yorick.cygnus.com>
17572
17573 * print-tree.c (print_node): Print base for OFFSET_TYPEs.
17574
17575 * except.c (expand_eh_region_start_for_decl): Always start a new block.
17576 * stmt.c (is_eh_region): Make sure current_function is present, too.
17577
17578 Mon Aug 9 01:15:24 1999 Jeffrey A Law (law@cygnus.com)
17579
17580 * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
17581 for 64bit PA targets.
17582
17583 * pa.h (SELECT_SECTION): Define.
17584 * som.h (SELECT_SECTION): Delete.
17585
17586 Sun Aug 8 15:13:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17587
17588 * alias.c (init_alias_analysis): Wrap call to
17589 `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
17590
17591 1999-08-07 Bruce Korb <autogen@linuxbox.com>
17592
17593 * fixinc/inclhack.def(irix_asm_apostrophe): IRIX 5.2's
17594 <sys/asm.h> contains an asm comment with an apostrophe
17595 * fixinc/inclhack.sh: regen
17596 * fixinc/fixincl.x: regen
17597
17598 Sat Aug 7 19:37:07 1999 Richard Henderson <rth@cygnus.com>
17599
17600 * function.c (init_function_start): Clear prologue & epilogue.
17601 (prologue_epilogue_contains): New function.
17602 * alias.c (init_alias_analysis): Use it.
17603 * rtl.h (prologue_epilogue_contains): Declare it.
17604
17605 Sat Aug 7 19:32:16 1999 Richard Henderson <rth@cygnus.com>
17606
17607 * jump.c (onlyjump_p): New function.
17608 * rtl.h: Declare it.
17609 * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
17610 of condjump_p in calling tidy_fallthru_edge and merge_blocks.
17611
17612 Sat Aug 7 17:09:36 1999 Richard Henderson <rth@cygnus.com>
17613
17614 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
17615 to invert loops. Simplify block scanning.
17616
17617 Sat Aug 7 02:11:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17618
17619 * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
17620 (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
17621
17622 1999-08-07 Jonathan Larmour <jlarmour@cygnus.co.uk>
17623
17624 * config/sparc/liteelf.h: New file to support sparclite-elf target
17625 * config/sparc/t-sp86x: New file to support sparc86x targets
17626 * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
17627 * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
17628 * configure.in: Support above target triplets
17629 * configure: Regenerated
17630
17631 Sat Aug 7 01:39:27 1999 Philippe De Muyter <phdm@macqel.be>
17632
17633 * fixinc/server.c (server_setup): Do not prefix function used as
17634 parameter with `&'.
17635
17636 Sat Aug 7 00:21:20 1999 Richard Henderson <rth@cygnus.com>
17637
17638 * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
17639 Remove fp reg alternatives.
17640
17641 Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com)
17642
17643 * Makefile.in (TAROUTOPTS): Kill.
17644 (install-headers-tar): Use "xpf" for tar headerfile extraction
17645 * i370/x-oe (TAROUTOPTS): Delete.
17646 * m68k/x-apollo68 (TAROUTOPTS): Delete.
17647 * m68k/x-hp320 (TAROUTOPTS): Delete.
17648 * m68k/x-hp320g (TAROUTOPTS): Delete.
17649 * gcc.texi: Update bug reporting text.
17650
17651 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17652
17653 * reg-stack.c (change_stack) Fixed problem with negative array index.
17654
17655 Fri Aug 6 23:08:44 1999 Jeffrey A Law (law@cygnus.com)
17656
17657 * extend.texi, install.texi: Fix spelling mistakes.
17658
17659 * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
17660 (s-attrtab); No longer try to use pre-made insn-attrtab file.
17661 * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
17662 PREMADE_ATTRTAB_MD.
17663 * mips/t-ecoff: Likewise.
17664 * mips/t-elf: Likewise.
17665 * mips/t-mips: Likewise.
17666 * mips/t-osfrose: Likewise.
17667 * mips/t-r3900: Likewise.
17668 * mips/t-svr3: Likewise.
17669 * mips/t-svr4: Likewise.
17670 * mips/t-ultrix: Likewise.
17671
17672 * gcc.texi: Document recommend means to provide software floating
17673 point libraries in libgcc.a
17674
17675 1999-08-06 Jason Merrill <jason@yorick.cygnus.com>
17676
17677 * c-lex.c (yylex): We can have a number with no digits.
17678
17679 Fri Aug 6 16:53:55 EDT 1999 John Wehle (john@feith.com)
17680
17681 * jump.c (delete_prior_computation): New function, broken
17682 out of delete_computation. Check for side effects with
17683 side_effects_p instead of FIND_REG_INC_NOTE. Handle
17684 multi-word hard registers.
17685 (delete_computation): Use it. Check for side effects with
17686 side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a
17687 missing REG_DEAD note for a register which is both set and
17688 used by an insn.
17689
17690 Fri Aug 6 11:05:29 1999 Jeffrey A Law (law@cygnus.com)
17691
17692 * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
17693 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
17694 (ASM_FILE_START): Import _mcount with the right type.
17695 (ASM_DECLARE_FUNCTION_NAME): Define.
17696 (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
17697 * pa.c (output_function_prologue): Always emit the function's label
17698 here.
17699 * pa.h (TEXT_SPACE_P): Define.
17700 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
17701 (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
17702 * som.h (TEXT_SPACE_P): Delete.
17703 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
17704 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
17705
17706 Thu Aug 5 19:29:39 1999 Jim Wilson <wilson@cygnus.com>
17707
17708 * expr.c (emit_group_load): Allow src to be a CONCAT.
17709
17710 Thu Aug 5 22:27:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17711
17712 * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
17713 (___mulsi3): Use '!' comment character.
17714
17715 Thu Aug 5 13:34:14 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17716
17717 * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
17718
17719 Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com)
17720
17721 * gcc.c: Update URLs and mail addresses.
17722 * gcc.texi: Likewise.
17723
17724 Thu Aug 5 01:14:13 1999 Daniel Jacobowitz <drow@false.org>
17725
17726 * rs6000.c (current_file_function_operand): Return zero for
17727 weak functions.
17728 (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
17729 weak symbols.
17730 * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
17731 for weak symbols.
17732
17733 Thu Aug 5 00:56:30 1999 Geoffrey Keating <geoffk@cygnus.com>
17734
17735 * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
17736 allocate space in the stack frame for the PIC register.
17737
17738 Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com)
17739
17740 * m68k.md (xordi3, anddi3): These patterns are not available on
17741 the coldfire.
17742
17743 Wed Aug 4 23:39:20 1999 Mark Mitchell <mark@codesourcery.com>
17744
17745 * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
17746 (PUT_REAL): Likewise.
17747
17748 Wed Aug 4 20:45:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17749
17750 * final.c (shorten_branches): Don't add an alignment for loops
17751 that have no label inside.
17752
17753 Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17754
17755 * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
17756 prototypes in macro HAVE_cmpstrsi.
17757
17758 * cpplib.c (cpp_get_token): Remove unused label `op3'.
17759
17760 * emit-rtl.c (operand_subword): Remove unused variable
17761 `bits_per_word'.
17762
17763 * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
17764
17765 * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
17766
17767 Wed Aug 4 13:29:23 1999 Zack Weinberg <zack@bitmover.com>
17768
17769 * cpphash.c (macroexpand): Delete leading whitespace when arg
17770 is concatenated before.
17771 (unsafe_chars): Correct test for whether + and - can extend a
17772 token.
17773
17774 * cppinit.c (cpp_start_read): Do dependencies for
17775 -include/-imacros files also.
17776
17777 * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
17778 tokenizing non-directive lines.
17779 (cpp_expand_to_buffer): Temporarily disable no-output mode.
17780 * cppmain.c: In no-output mode, just call cpp_scan_buffer for
17781 the input file.
17782
17783 Wed Aug 4 12:53:44 1999 Jason Merrill <jason@yorick.cygnus.com>
17784
17785 * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
17786
17787 * c-lex.c: Sync with C++ frontend.
17788 (linemode): New variable.
17789 (parse_float): imag, conversion_errno, and type are output only.
17790 (yylex): Adjust. Move initial '.' case into main switch.
17791 Use linemode.
17792 (handle_generic_pragma): Just deal with tokens.
17793 (readescape): Use ISXDIGIT and ISGRAPH.
17794 * c-parse.in: Add END_OF_LINE token.
17795
17796 * c-lex.c (lang_init): Generalize.
17797 (nextchar): Remove. Replace uses with UNGETC.
17798 (skip_white_space): Handle linemode here. Optimize for cpplib.
17799 (skip_white_space_on_line): Remove.
17800 (extend_token_buffer_to): New fn.
17801 (extend_token_buffer): Use it.
17802 (read_line_number, check_newline): Just deal with tokens.
17803 (token_getch, token_put_back): New fns.
17804 (yylex): Use them. More cpplib optimizations. Simplify.
17805
17806 Wed Aug 4 12:53:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
17807 Jason Merrill <jason@yorick.cygnus.com>
17808
17809 * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
17810 (consume_string): Make this smart about USE_CPPLIB.
17811 (check_newline): Rewrite to be intelligent about USE_CPPLIB.
17812 (yylex): Rewrite to be intelligent about USE_CPPLIB.
17813 Also, clean up cases where we redundantly set token_buffer[0].
17814 (read_line_number): New fn.
17815 (ignore_escape_flag): New variable.
17816
17817 Wed Aug 4 13:12:17 1999 Jeffrey A Law (law@cygnus.com)
17818
17819 * a29k/t-a29kbare: Fix some comments.
17820 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
17821 (FPBIT, DPBIT): Define.
17822 * a29k/t-vx29k: Likewise.
17823 * arc/t-arc: Likewise.
17824 * arm/t-arm-elf: Likewise.
17825 * arm/t-bare: Likewise.
17826 * arm/t-pe: Likewise.
17827 * arm/t-pe-thumb: Likewise.
17828 * arm/t-semi: Likewise.
17829 * arm/t-thumb: Likewise.
17830 * arm/t-thumb-elf: Likewise.
17831 * arm/t-thumb-linux: Likewise.
17832 * h8300/t-h8300: Likewise.
17833 * i960/t-i960: Likewise.
17834 * i960/t-vxworks960: Likewise.
17835 * m32r/t-m32r: Likewise.
17836 * mips/t-ecoff: Likewise.
17837 * mips/t-elf: Likewise.
17838 * mips/t-r3900: Likewise.
17839 * pa/t-pro: Likewise.
17840 * rs6000/t-aix43: Likewise.
17841 * rs6000/t-beos: Likewise.
17842 * rs6000/t-newas: Likewise.
17843 * rs6000/t-ppccomm: Likewise.
17844 * rs6000/t-rs6000: Likewise.
17845 * rs6000/t-winnt: Likewise.
17846 * rs6000/t-xnewas: Likewise.
17847 * rs6000/t-xrs6000: Likewise.
17848 * sh/t-sh: Likewise.
17849 * sparc/t-elf: Likewise.
17850 * sparc/t-sparcbare: Likewise.
17851 * sparc/t-sparclite: Likewise.
17852 * sparc/t-splet: Likewise.
17853 * v850/t-v850: Likewise.
17854 * mn10200/t-mn10200: Fix comments.
17855 * mn10300/t-mn10300: Likewise.
17856
17857 * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
17858 dummy operand. Allocate a new pseudo for the dummy operand.
17859 (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
17860
17861 * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
17862
17863 Wed Aug 4 11:53:55 1999 Tom Tromey <tromey@cygnus.com>
17864
17865 * configure: Rebuilt.
17866 * configure.in: Removed --enable-java-gc option and JAVAGC subst.
17867
17868 Wed Aug 4 09:06:14 1999 Richard Earnshaw (rearnsha@arm.com)
17869
17870 * recog.c (preproces_constraints): Zero recog_op_alt before
17871 processing the constraints.
17872
17873 * arm.c (typedef minipool_node): Renamed from pool_node.
17874 (minipool_vector, minipool_size, minipool_vector_label): Similarly.
17875 (add_minipool_constant): New function.
17876 (dump_minipool): New function.
17877 (find_barrier): Remove special case for getting the insn size of
17878 an insn that references the constant pool.
17879 (minipool_fixup): New structure.
17880 (push_minipool_barrier): New function.
17881 (push_minipool_fix): New function.
17882 (note_invalid_constants): New function.
17883 (add_pool_constant, dump_table, fixit, broken_move): Delete.
17884 (arm_reorg): Rewrite code to fix up the constant pool into a
17885 series of mini-pools embedded in the insn stream.
17886 (arm_output_epilogue): New function, made mainly from the body
17887 of output_func_epilogue.
17888 (output_func_epilogue): Move insn generation part of epilogue code
17889 to arm_output_epilogue.
17890 * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
17891 * arm.md (pool_range): New attribute.
17892 (zero_extendqidi2): Add attribute pool_range.
17893 (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
17894 extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
17895 pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
17896 movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
17897 movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
17898 (epilogue): New expand.
17899 (epilogue_insn): New insn. Call arm_output_epilogue.
17900
17901 * arm.c (arm_poke_function_name): Undo change of July 17. Tidy up.
17902 * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
17903
17904 Mon Aug 2 19:18:44 1999 Jason Merrill <jason@yorick.cygnus.com>
17905
17906 * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
17907
17908 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
17909
17910 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Define.
17911
17912 Wed Aug 4 02:15:32 1999 Richard Henderson <rth@cygnus.com>
17913
17914 * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
17915
17916 Wed Aug 4 01:48:08 1999 Jim Kingdon <http://developer.redhat.com>
17917
17918 * global.c: Fix comment.
17919
17920 Wed Aug 4 01:43:01 1999 Ian Lance Taylor <ian@zembu.com>
17921
17922 * gcc.c (access_check): New static function.
17923 (find_a_file): Use it when searching a directory list.
17924 * collect2.c (find_a_file): Don't accept directories found when
17925 searching a directory list.
17926
17927 Wed Aug 4 01:40:43 1999 Philippe De Muyter <phdm@macqel.be>
17928
17929 * tlink.c (symbol_hash_lookup): Do not prefix functions used as
17930 function parameters with `&'.
17931 (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
17932
17933 Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com)
17934
17935 * flow.c (delete_unreachable_blocks): Do not call merge_blocks
17936 or tidy_fallthru_edge if the last insn in the block is not
17937 an unconditional jump or a simple conditional jump.
17938
17939 Tue Aug 3 20:21:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17940
17941 * Makefile.in (c-decl.o): Depends on defaults.h.
17942
17943 Tue Aug 3 14:14:52 1999 Jeffrey A Law (law@cygnus.com)
17944
17945 * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
17946 PA1.1 and above.
17947 (CLASS_MAX_NREGS): Likewise.
17948
17949 Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com)
17950
17951 * cse.c (cse_insn): Fix dumb thinko in last change.
17952
17953 Tue Aug 3 10:36:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
17954
17955 * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
17956 "const char *".
17957
17958 Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson <hp@bitrange.com>
17959
17960 * dwarf2out.c (add_location_or_const_value_attribute): Correct
17961 test for sizes of passed and declared parameter types.
17962
17963 Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17964
17965 * fixincludes: Fix the return type of bsearch, char* -> void*.
17966
17967 * fixinc/inclhack.def: Likewise.
17968
17969 Mon Aug 2 18:29:32 1999 Mark Mitchell <mark@codesourcery.com>
17970
17971 * invoke.texi (-fdump-translation-unit): New option.
17972
17973 Mon Aug 2 17:54:19 1999 Richard Henderson <rth@cygnus.com>
17974
17975 * expr.h (PROMOTE_PROTOTYPES): Move ...
17976 * defaults.h: ... to here.
17977 * c-decl.c: Include defaults.h instead of expr.h.
17978 * c-typeck.c: Include defaults.h.
17979
17980 Mon Aug 2 17:10:24 1999 Mark Mitchell <mark@codesourcery.com>
17981
17982 * toplev.h (errorcount): Declare.
17983 (warningcount): Likewise.
17984 (sorrycount): Likewise.
17985 * c-lex.c (errorcount): Don't declare.
17986 * dwarf2out.c (errorcount): Don't declare.
17987
17988 Mon Aug 2 17:02:08 1999 Jason Merrill <jason@yorick.cygnus.com>
17989
17990 * config/libgloss.h: Add a note discouraging use with ELF.
17991 * configure.in: Don't use libgloss.h for ELF targets.
17992 Always use_collect2 on a.out targets.
17993
17994 Mon Aug 2 16:27:42 1999 Jim Wilson <wilson@cygnus.com>
17995
17996 * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
17997 (force_to_mode, case ASHIFTRT): Add shiftrt label.
17998
17999 Tue Aug 3 00:45:02 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18000
18001 * loop.c (strength_reduce): When doing biv->giv conversion, update
18002 reg note of NEXT->insn.
18003
18004 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
18005
18006 * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
18007
18008 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
18009
18010 * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
18011 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
18012 Ensure expr.h is included.
18013 * c-typecheck.c (convert_arguments): Ditto.
18014
18015 * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
18016
18017 * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
18018 * config/convex/convex.h: Ditto.
18019 * config/dsp16xx/dsp16xx.h: Ditto.
18020 * config/fx80/fx80.h: Ditto.
18021 * config/gmicro/gmicro.h: Ditto.
18022 * config/i370/i370.h: Ditto.
18023 * config/i386/i386.h: Ditto.
18024 * config/m32r/m32r.h: Ditto.
18025 * config/m68k/m68k.h: Ditto.
18026 * config/m88k/m88k.h: Ditto.
18027 * config/mips/mips.h: Ditto.
18028 * config/pa/pa.h: Ditto.
18029 * config/pyr/pyr.h: Ditto.
18030 * config/tahoe/tahoe.h: Ditto.
18031 * config/we32k/we32k.h: Ditto.
18032
18033 * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
18034 based on arch size.
18035
18036 * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
18037
18038 * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
18039 from comment.
18040
18041 * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
18042
18043 1999-08-02 Richard Henderson <rth@cygnus.com>
18044
18045 * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
18046 for the register spill block.
18047 (m32r_va_arg): New.
18048 * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
18049 (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
18050
18051 * m32r.h (INT8_P): Don't short-cut test with (unsigned).
18052 (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
18053 (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
18054
18055 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
18056
18057 * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
18058 MAX_WCHAR_TYPE defined in sparc.h.
18059 * config/sparc/linuxaout.h: Likewise.
18060 * config/sparc/linux64.h: Likewise.
18061 Also default to -mvis if CPU is UltraSPARC.
18062
18063 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
18064
18065 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
18066 (RTX_OK_FOR_OLO10): Likewise.
18067 (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
18068 %lo(), allow it in addresses...
18069 (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
18070 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
18071 does not make sense.
18072 * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
18073 (sparc_output_scratch_registers): New function.
18074 (output_function_prologue, sparc_flat_output_function_prologue): Use
18075 it.
18076 * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
18077 defined.
18078 * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
18079 * configure.in: Add check for .register pseudo-op support in as and
18080 check for offsetable %lo().
18081 * acconfig.h: Add templates for the above checks.
18082 * configure: Regenerate.
18083
18084 1999-08-02 Richard Henderson <rth@cygnus.com>
18085
18086 * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
18087 * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
18088 * sparc/sol2.h (TARGET_DEFAULT): Likewise.
18089
18090 Mon Aug 2 23:46:45 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
18091
18092 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
18093 reg_biv_class.
18094
18095 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
18096
18097 * config/float-sparc.h: New file.
18098 * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
18099 sparc-*-linux-gnu and sparc64-*-linux*.
18100
18101 1999-08-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18102
18103 * rs6000.c (rs6000_va_list): Type is an array.
18104 (rs6000_va_start): Don't doubly adjust for varargs.
18105 (rs6000_va_arg): Evaluate long long GPR adjustment.
18106
18107 Mon Aug 2 16:15:57 1999 David Edelsohn <edelsohn@gnu.org>
18108
18109 * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
18110 -maix64 and -maix32.
18111 (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
18112 LINK_SPEC): Change appropriately.
18113 * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
18114 (u_short_cint_operand): Likewise.
18115 * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
18116 for 64-bit hosts.
18117 * rs6000/t-aix43 (MULTILIB): Change to -m64.
18118
18119 * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
18120
18121 Mon Aug 2 16:15:57 1999 Geoff Keating <geoffk@cygnus.com>
18122
18123 * rs6000/rs6000.c (num_insns_constant_wide): Correct
18124 for type promotion.
18125 (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
18126 (non_add_cint_operand): Likewise.
18127 (logical_operand): Likewise.
18128 (non_logical_cint_operand): Likewise.
18129 (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
18130 (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
18131 (rs6000_select_rtx_section): Suppress warning.
18132 (small_data_operand): Suppress warning.
18133 (rs6000_got_register): Suppress warning.
18134 * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
18135 type, so `J' is generally the wrong constraint for a SImode value;
18136 use `L' instead.
18137 (andsi3_internal2): Likewise.
18138 (andsi3_internal3): Likewise.
18139 (iorsi3_internal1): Likewise.
18140 (xorsi3_internal1): Likewise.
18141 (movsi): Likewise.
18142 (movsf_softfloat): Likewise.
18143 (scc insns): Likewise.
18144 (movsi+2): Preserve sign bits of SImode constant.
18145 (floatsidf2_internal+1): Sign-extend SImode constant correctly.
18146 (movdf+1): Sign-extend properly.
18147 (movdi_32+1): Sign-extend properly.
18148 (scc insns): Sign-extend properly.
18149
18150 * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
18151 K, L, and T.
18152
18153 1999-08-02 Richard Henderson <rth@cygnus.com>
18154
18155 * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
18156 -mcpu parsing code.
18157 (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
18158 * alpha.md (all fp insns): Likewise.
18159
18160 1999-08-02 Nick Clifton <nickc@cygnus.com>
18161
18162 * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
18163 already defined.
18164
18165 Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com)
18166
18167 * pa.c (legitimize_pic_address): Clarify comments. Do not call the
18168 pic_load_label generator directly.
18169 * pa.md (pic_load_label): Clarify comments. Remove modes on operands.
18170 No longer a named pattern.
18171
18172 Mon Aug 2 09:38:10 1999 Nick Clifton <nickc@cygnus.com>
18173
18174 * explow.c (force_reg): Call force_operand if X does not
18175 satisfy general_operand.
18176
18177 Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com)
18178
18179 * fix-header.c (main): When testing for CONTINUED, use string
18180 equality, not pointer equality.
18181
18182 Mon Aug 2 01:27:24 1999 Dan Nicolaescu <dann@ics.uci.edu>
18183
18184 * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
18185
18186 Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com)
18187
18188 * cse.c (cse_insn): Fix loop which deletes insns after a jump
18189 that has become an unconditional jump.
18190
18191 * m68k.c (output_function_prologue): Fix typo in CPU32 case.
18192 (output_function_epilogue): Similarly.
18193
18194 Sun Aug 1 20:14:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18195
18196 * tree.h (init_dummy_function_start): Declare.
18197
18198 Sun Aug 1 12:55:31 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18199
18200 * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
18201 last_expr_type, last_expr_value, block_start_count, block_stack,
18202 stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
18203 nesting_depth, goto_fixup_chain): Delete global vars; now allocated
18204 dynamically in stmt elt of struct function for each function.
18205 (struct nesting): Rename function_call_count elt to n_function_calls,
18206 target_temp_slot_level to block_target_temp_slot_level. All users
18207 changed.
18208 (struct stmt_status): New structure definition.
18209 Add many accessor macros for stmt_status elements which previously
18210 were global variables.
18211 (init_stmt_for_function): Allocate stmt elt for current_function.
18212 Reflect that block_start_count was renamed to
18213 current_block_start_count.
18214 (save_stmt_status, restore_stmt_status): Delete functions.
18215 (preserve_subexpressions_p): Don't access loop_stack when outside
18216 a function.
18217 (expand_start_bindings): Reflect that block_start_count was renamed to
18218 current_block_start_count.
18219 (expand_fixup): Likewise.
18220 (expand_decl): Don't access block_stack when outside a function.
18221 (expand_decl_cleanup): Likewise.
18222 (expand_dcc_cleanup): Likewise.
18223 (expand_dhc_cleanup): Likewise.
18224 (expand_anon_union_decl): Likewise.
18225 (set_file_and_line_for_stmt): New function.
18226 (in_control_zone_p): New function.
18227
18228 * function.h (struct function): Add new elt stmt.
18229 Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
18230 case_stack, nesting_stack, nesting_depth, block_start_count,
18231 last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
18232 emit_lineno, goto_fixup_chain.
18233 (save_eh_status, restore_eh_status, save_stmt_status,
18234 restore_stmt_status): Delete declarations.
18235 * function.c (push_function_context_to): Don't call save_stmt_status.
18236 (pop_function_context_to): Don't call restore_stmt_status.
18237 * tree.h (in_control_zone_p): Declare.
18238 * rtl.h (set_file_and_line_for_stmt): Declare.
18239
18240 * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
18241 call set_file_and_line_for_stmt.
18242
18243 Thu Jul 31 12:34:45 1999 Joe Buck <jbuck@synopsys.com>
18244
18245 * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
18246 Also update copyright.
18247
18248 Sat Jul 31 11:10:07 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18249
18250 * c-pragma.c: Don't include "except.h".
18251 * emit-rtl.c: Likewise.
18252 * stor-layout.c: Likewise.
18253 * tree.c: Likewise.
18254 * varasm.c: Likewise.
18255
18256 * flow.c: Include "function.h".
18257 * tree.h (init_dummy_function_start): Declare new function.
18258
18259 * except.h (struct eh_status): New structure.
18260 (struct label_node, struct eh_entry): Declare even if tree.h hasn't
18261 been included.
18262 (eh_return_stub_label, ehstack, catchstack, ehqueue,
18263 catch_clauses, false_label_stack, caught_return_label_stack,
18264 protect_list, current_function_ehc): Add accessor macros for the
18265 corresponding fields in current_function->eh; delete declarations
18266 for all items that used to be declared here.
18267 * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
18268 catch_clauses, false_label_stack, caught_return_label_stack,
18269 protect_list, current_function_ehc): Delete variables.
18270 (init_eh_for_function): Allocate current_function->eh.
18271 (save_eh_status, restore_eh_status): Delete functions.
18272
18273 * function.h (struct function): Add fields next_global and eh.
18274 Delete all exception handling related fields.
18275 * function.c (current_function): New variable.
18276 (all_functions): New variable.
18277 (push_function_context_to): Don't allocate a struct function,
18278 use current_function instead. Call init_dummy_function_start when
18279 outside a function. Clear current_function before returning.
18280 (pop_function_context_from): Restore current_function.
18281 Don't free the restored struct function.
18282 (prepare_function_start): New function.
18283 (init_dummy_function_start): New function.
18284 (init_function_start): Break out some code into prepare_function_start
18285 and call it here.
18286
18287 * stmt.c (save_stmt_status): Don't call save_eh_status.
18288 (restore_stmt_status): Don't call restore_eh_status.
18289
18290 * Makefile.in: Update dependencies.
18291
18292 Sat Jul 31 04:10:01 1999 Jeffrey A Law (law@cygnus.com)
18293
18294 * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
18295 of depending on a magic constant value. Update comments.
18296 (hppa_expand_prologue): Similarly.
18297
18298 * pa.md (reload_indi, reload_outdi): Allow any register for the
18299 original reload register.
18300
18301 Fri Jul 30 19:41:35 1999 Jim Wilson <wilson@cygnus.com>
18302
18303 * cccp.c (print_help): Change marcos to macros.
18304
18305 1999-07-30 Richard Henderson <rth@cygnus.com>
18306
18307 * c-typeck.c (initializer_constant_valid_p): Move ...
18308 * c-common.c (initializer_constant_valid_p): ... here. Use
18309 FOO_TYPE_P instead of tests against TREE_CODE. Allow subtraction
18310 of label addresses.
18311 * c-common.h (initializer_constant_valid_p): Declare.
18312 * c-tree.h (initializer_constant_valid_p): Remove.
18313
18314 Fri Jul 30 16:33:42 1999 Mathias Froehlich <frohlich@na.uni-tuebingen.de>
18315
18316 * config/i386/sol2-c1.asm: Align the stack.
18317 * config/i386/sol2-gc1.asm: Likewise.
18318
18319 1999-07-30 Vladimir Makarov <vmakarov@loony.cygnus.com>
18320
18321 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
18322 -Asparclite for sparc86x.
18323 (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
18324 sparc86x.
18325 (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
18326
18327 Fri Jul 30 14:53:56 1999 Jakub Jelinek <jj@ultra.linux.cz>
18328
18329 * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
18330 the user if using the non-default arch size in BI_ARCH configuration.
18331 * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
18332
18333 * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
18334 Fix patterns so that they actually match.
18335 (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
18336 (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
18337 (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
18338 TARGET_HARD_MUL32.
18339 (mulsidi3): Reflect this in the expand.
18340 (smulsi3_highpart): Only on TARGET_ARCH32.
18341 (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
18342 (const_umulsidi3_sp32): Renamed from const_umulsidi3.
18343 (umulsidi3): Reflect this in the expand.
18344 (umulsi3_highpart): Only on TARGET_ARCH32.
18345 (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
18346 don't require g0 to be zero.
18347 (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
18348 ({,u}divsi3): New expands.
18349 ({,u}divsi3_sp64): New patterns.
18350 (after lshrdi3_v8plus): Four new patterns to help combiner
18351 optimizing nested mixed mode shifts.
18352
18353 * config/sparc/sparc.c (sparc_override_options): Use deprecated
18354 v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
18355 speed things up. Don't use them by default on plain v9 in 64bit
18356 mode, according to what SPAMv9 sais.
18357
18358 * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
18359 top 32 bits of %[og][0-7] in signal handlers.
18360 Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
18361
18362 Fri Jul 30 03:00:41 1999 Jeffrey A Law (law@cygnus.com)
18363
18364 * pa.md (zvdep_imm32): Renamed from zvdep_imm.
18365 (ashlsi3): Corresponding changes.
18366
18367 * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
18368
18369 Thu Jul 29 18:37:13 1999 Jeffrey A Law (law@cygnus.com)
18370
18371 * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
18372
18373 Thu Jul 29 19:01:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18374
18375 * arm.h (Hint): Delete macro.
18376 Substitute HOST_WIDE_INT for Hint in some prototypes.
18377 * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
18378
18379 Thu Jul 29 09:21:42 1999 Nick Clifton <nickc@cygnus.com>
18380
18381 * builtins.c (expand_builtin_setjmp): Use force_operand to
18382 make sure that the buffer address is in a suitable form to be
18383 passed to force_reg.
18384
18385 Wed Jul 28 12:50:48 1999 Geoff Keating <geoffk@cygnus.com>
18386
18387 * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
18388 them here.
18389
18390 Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com)
18391
18392 * pa.md (indirect_jump): Remove mode from match_operand. Verify
18393 proper mode in the condition string.
18394 (icacheflush, dcacheflush): Remove modes from match_operands.
18395
18396 * pa.c (emit_move_sequence): Always convert scratch_reg to the
18397 proper mode before using it.
18398
18399 * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
18400 pair.
18401
18402 * pa.c (store_reg): Do not call add_high_const generator directly.
18403 (load_reg, set_reg_plus_d): Likewise.
18404 * pa.md (add_high_const): No longer a named pattern.
18405
18406 * pa.c (legitimize_address): Consistently use Pmode rather than
18407 SImode. Do not call gen_pic2_highpart directly anymore.
18408 * pa.md (pic2_highpart): No longer a named pattern.
18409 (pic2_lo_sum): Similarly. Reformat to make more readable.
18410
18411 * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
18412 needed.
18413
18414 * README: Update.
18415
18416 Wed Jul 28 11:28:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
18417
18418 * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
18419
18420 Wed Jul 28 11:23:48 1999 Richard Henderson <rth@cygnus.com>
18421
18422 * pa.c (hppa_builtin_saveregs): Use get_varargs_alias_set
18423 and tag the spill mems.
18424 (hppa_va_start): New.
18425 (hppa_va_arg): New.
18426 * pa.h (EXPAND_BUILTIN_VA_START): New.
18427 (EXPAND_BUILTIN_VA_ARG): New.
18428
18429 Wed Jul 28 11:22:21 1999 Richard Henderson <rth@cygnus.com>
18430
18431 * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
18432 and tag the spill mems.
18433 (mn10300_va_start): New.
18434 (mn10300_va_arg): New.
18435 * mn10300.h (EXPAND_BUILTIN_VA_START): New.
18436 (EXPAND_BUILTIN_VA_ARG): New.
18437
18438 Wed Jul 28 11:20:19 1999 Richard Henderson <rth@cygnus.com>
18439
18440 * mn10200.c (mn10200_va_arg): New.
18441 * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
18442
18443 Wed Jul 28 11:19:06 1999 Richard Henderson <rth@cygnus.com>
18444
18445 * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
18446 rather than play with TREE_INT_CST_LOW.
18447
18448 1999-07-27 Philip Blundell <pb@nexus.co.uk>
18449
18450 * config/arm/telf.h: Include dbxelf.h.
18451 (CPP_PREDEFINES): Only define if not already defined.
18452 (ASM_IDENTIFY_GCC): Likewise.
18453 (SUBTARGET_EXTRA_SECTIONS): Likewise.
18454 (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
18455 * config/arm/thumb.h (LINK_SPEC): Only define if not already
18456 defined.
18457 (DBX_DEBUGGING_INFO): Don't define.
18458 * config/arm/linux-telf.h: New file.
18459 * config/arm/linux-tgas.h: New file.
18460 * config/arm/t-thumb-linux: New file.
18461 * config/arm/uclinux-elf.h: New file.
18462 * config/arm/uclinux-telf.h: New file.
18463 * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
18464 thumb-*-uclinux): New targets.
18465 * configure: Regenerate.
18466
18467 Tue Jul 27 23:20:21 1999 Jeffrey A Law (law@cygnus.com)
18468
18469 * pa.md (post_store, pre_load): New expanders.
18470 (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
18471 (post_ldwm, pre_stwm): Make these unnamed patterns since we never
18472 need to directly generate RTL for them.
18473 * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
18474 changes.
18475
18476 Tue Jul 27 16:05:52 1999 David Edelsohn <edelsohn@gnu.org>
18477
18478 * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
18479 * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
18480 (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
18481 (secndary_reload_class): Make TARGET_ELF conditional compile.
18482 (print_operand_address): Similar.
18483 (output_toc): Print all values as hex.
18484 (get_issue_rate): Rearrange and add RS64A and PPC630.
18485 * rs6000.h (processor_type): Add RS64A and PPC630.
18486 (PROCESSOR_POWERPC64): New.
18487 (PROMOTE_MODE): Use word_mode.
18488 (RTX_COSTS): Add RS64A and PPC630.
18489 * rs6000.md (scheduling information): Add lmul and ldiv
18490 representing 64-bit integer multiply and divide. Add rs64a and
18491 PPC630 information.
18492 (ashldi3): Add support for "rldic" instruction.
18493 * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
18494
18495 Tue Jul 27 15:31:53 1999 Vladimir Makarov <vmakarov@toad.to.cygnus.com>
18496
18497 * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
18498 instead of V8 for sparclite86x in cpu_table.
18499
18500 Tue Jul 27 17:49:42 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18501
18502 * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
18503 output_file_directive.
18504
18505 Tue Jul 27 03:15:33 1999 Jason Merrill <jason@yorick.cygnus.com>
18506
18507 * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
18508 tree for op1, not the rtl.
18509
18510 Tue Jul 27 00:18:34 1999 Richard Henderson <rth@cygnus.com>
18511
18512 * m88k.c (m88k_builtin_saveregs): Break out the constructor code
18513 to m88k_va_start, leaving only the register spill.
18514 (m88k_build_va_list): New.
18515 (m88k_va_start): New.
18516 (m88k_va_arg): New.
18517 * m88k.h (BUILD_VA_LIST_TYPE): New.
18518 (EXPAND_BUILTIN_VA_START): New.
18519 (EXPAND_BUILTIN_VA_ARG): New.
18520
18521 Mon Jul 26 19:07:11 1999 Geoff Keating <geoffk@cygnus.com>
18522
18523 * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
18524 Rename from expand_builtin_saveregs.
18525 * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
18526
18527 Mon Jul 26 22:52:47 1999 Richard Henderson <rth@cygnus.com>
18528
18529 * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
18530 for the register spill block.
18531 (i960_build_va_list): New.
18532 (i960_va_start): New.
18533 (i960_va_arg): New.
18534 * i960.h (BUILD_VA_LIST_TYPE): New.
18535 (EXPAND_BUILTIN_VA_START): New.
18536 (EXPAND_BUILTIN_VA_ARG): New.
18537 * i960.md (store_multiple): Use change_address on individul mems.
18538
18539 Mon Jul 26 22:43:12 1999 Richard Henderson <rth@cygnus.com>
18540
18541 * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
18542 an ARRAY_TYPE.
18543 (std_expand_builtin_va_start): Back out one word if !stdarg_p.
18544 (expand_builtin_va_end): Evaluate arg for side effects.
18545 * c-common.c (c_common_nodes_and_builtins): Construct a
18546 va_list_arg_type_node to handle array decomposition to pointer.
18547
18548 Mon Jul 26 18:51:34 1999 Richard Henderson <rth@cygnus.com>
18549
18550 * except.c (start_dynamic_cleanup): Use force_operand on the
18551 buffer's address.
18552
18553 Mon Jul 26 16:43:26 1999 Richard Henderson <rth@cygnus.com>
18554
18555 * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
18556 * c4x.c (c4x_va_arg): New.
18557
18558 Mon Jul 26 12:30:09 1999 Jason Merrill <jason@yorick.cygnus.com>
18559
18560 * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
18561 has manual_pop set.
18562
18563 1999-07-26 Nathan Sidwell <nathan@acm.org>
18564
18565 * eh-common.h (__eh_matcher): Prototype correctly.
18566
18567 Mon Jul 26 17:24:51 1999 Philip Blundell <pb@nexus.co.uk>
18568
18569 * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
18570 (TARGET_SINGLE_PIC_BASE): Likewise.
18571 (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
18572 definitions.
18573 (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
18574 (TARGET_SWITCHES): Add -m{no-}single-pic-base.
18575 (TARGET_OPTIONS): Add -mpic-register=N.
18576 (OUTPUT_INT_ADDR_CONST): New macro.
18577 (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
18578 LEGITIMATE_PIC_OPERAND_P): Likewise.
18579 (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
18580 (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
18581 output_addr_const directly.
18582 (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
18583 ARM port.
18584 (thumb_pic_register, thumb_pic_register_string): Declare.
18585
18586 * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
18587 from arm.c.
18588 (label_mentioned_p): New function: Imported from arm.c.
18589 (legitimize_pic_address): New function: Imported from arm.c.
18590 (is_pic):New function: Imported from arm.c.
18591 (thumb_finalize_pic):New function: Imported from arm.c.
18592 (add_constant): Cope with PIC constants.
18593 (fixit): Cope with PIC constants.
18594 (output_return): Do not treat the PIC register as live if
18595 TARGET_SINGLE_PIC_BASE is true.
18596 (thumb_function_prologue): Do not treat the PIC register as live if
18597 TARGET_SINGLE_PIC_BASE is true.
18598 (thumb_expand_prologue): Do not treat the PIC register as live if
18599 TARGET_SINGLE_PIC_BASE is true.
18600 (thumb_unexpand_epilogue): Do not treat the PIC register as live if
18601 TARGET_SINGLE_PIC_BASE is true.
18602 (thumb_print_operand): Accept '|'.
18603 (thumb_override_options): Process PIC options.
18604
18605 * config/arm/thumb.md (movsi): Support PIC.
18606 (call_insn): Change "i" constraint to "X".
18607 (call_value_insn): Likewise.
18608 (consttable_4, consttable_8, consttable_end): Set and clear
18609 "making_const_table" as appropriate.
18610 (pic_load_addr, pic_add_dot_plus_four): New insns.
18611
18612 * invoke.texi (Thumb Options): Fix spelling. Document new
18613 options -msingle-pic-base and -mpic-register=.
18614
18615 1999-07-26 Andrew Haley <aph@cygnus.com>
18616
18617 * config/m32r/initfini.c (__init): Use a full word immediate for
18618 __fini: this allows it to be placed in any memory region.
18619
18620 * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
18621 -mmodel=medium. This is OK for all memory models.
18622
18623 Mon Jul 26 11:58:46 1999 Nick Clifton <nickc@cygnus.com>
18624
18625 * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
18626 * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
18627
18628 Mon Jul 26 10:23:36 1999 Nick Clifton <nickc@cygnus.com>
18629
18630 * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
18631 defined.
18632
18633 * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
18634
18635 Sun Jul 25 23:51:59 1999 Richard Henderson <rth@cygnus.com>
18636
18637 * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
18638 (BUILD_VA_LIST_TYPE): New.
18639 (EXPAND_BUILTIN_VA_START): New.
18640 (EXPAND_BUILTIN_VA_ARG): New.
18641 * i860.c (output_delayed_branch): Disable.
18642 (output_delay_insn): Likewise.
18643 (i860_saveregs): New.
18644 (i860_build_va_list): New.
18645 (i860_va_start): New.
18646 (i860_va_arg): New.
18647 * i860.md: Disable all peepholes using output_delayed_branch.
18648 * i860/sysv4.h (I860_SVR4_VA_LIST): New.
18649
18650 Sun Jul 25 23:44:13 1999 Richard Henderson <rth@cygnus.com>
18651
18652 * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
18653 (BUILD_VA_LIST_TYPE): New.
18654 (EXPAND_BUILTIN_VA_START): New.
18655 (EXPAND_BUILTIN_VA_ARG): New.
18656 * clipper.c (clipper_builtin_saveregs): Only dump registers.
18657 Return the address of the save area.
18658 (clipper_build_va_list): New.
18659 (clipper_va_start): New.
18660 (clipper_va_arg): New.
18661
18662 Sun Jul 25 22:56:47 1999 Richard Henderson <rth@cygnus.com>
18663
18664 * arc.h (EXPAND_BUILTIN_VA_START): New.
18665 (EXPAND_BUILTIN_VA_ARG): New.
18666 * arc.c (arc_setup_incoming_varargs): Set alias set of
18667 varargs save area.
18668 (arc_va_start): New.
18669 (arc_va_arg): New.
18670
18671 Sun Jul 25 22:45:55 1999 Richard Henderson <rth@cygnus.com>
18672
18673 * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
18674 (BUILD_VA_LIST_TYPE): New.
18675 (EXPAND_BUILTIN_VA_START): New.
18676 (EXPAND_BUILTIN_VA_ARG): New.
18677 * alpha.c (alpha_builtin_saveregs): Delete.
18678 (alpha_build_va_list): New.
18679 (alpha_va_start): New.
18680 (alpha_va_arg): New.
18681
18682 Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com)
18683
18684 * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
18685 column zero.
18686 (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
18687 (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
18688
18689 * gcc.texi: More changes related to list conversion.
18690 * invoke.texi: Likewise.
18691
18692 Sun Jul 25 18:15:39 1999 Richard Henderson <rth@cygnus.com>
18693
18694 * builtins.c (expand_builtin_saveregs): Remove static, remove exp
18695 and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
18696 (expand_builtin_next_arg): Accept ARGLIST not EXP.
18697 (stabilize_va_list): New function.
18698 (std_expand_builtin_va_start): New function.
18699 (expand_builtin_va_start): New function.
18700 (get_varargs_alias_set): New function.
18701 (std_expand_builtin_va_arg): New function.
18702 (expand_builtin_va_arg): New function.
18703 (expand_builtin_va_end): New function.
18704 (expand_builtin_va_copy): New function.
18705 (expand_builtin): Call them.
18706 * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
18707 __builtin_{varargs_start,stdarg_start,end,copy}.
18708 (build_va_arg): New function.
18709 * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
18710 (build_va_arg): Declare.
18711 * c-decl.c (ptr_type_node, va_list_type_node): New.
18712 * c-parse.gperf (__builtin_va_arg): New.
18713 * c-parse.in (VA_ARG): New token.
18714 (unary_expr): Recognize it.
18715 * expr.c (expand_expr): Expand VA_ARG_EXPR.
18716 * expr.h (std_expand_builtin_va_start): Declare.
18717 (std_expand_builtin_va_arg): Declare.
18718 (expand_builtin_va_arg): Declare.
18719 (get_varargs_alias_set): Declare.
18720 * tree.def (VA_ARG_EXPR): New.
18721 * tree.h (BUILT_IN_VARARGS_START): New.
18722 (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
18723 (ptr_type_node, va_list_type_node): Declare.
18724 * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
18725 * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
18726 * m88k.h, m88k.c: Likewise.
18727 * mn10300.h, mn10300.c: Likewise.
18728 * pa.h, pa.c: Likewise.
18729 * rs6000.h, rs6000.c: Likewise.
18730 * sh.h, sh.c: Likewise.
18731 * sparc.h, sparc.c: Likewise.
18732
18733 * emit-rtl.c (operand_subword): Copy alias set.
18734 (change_address): Likewise.
18735
18736 Sun Jul 25 15:04:37 1999 Jeffrey A Law (law@cygnus.com)
18737
18738 * pa.c (compute_frame_size): Scan all the used callee saved registers,
18739 not just the first one.
18740
18741 Fri Jul 23 14:09:58 1999 Philip Blundell <pb@nexus.co.uk>
18742
18743 * config/arm/arm.h (TARGET_SWITCHES): Add
18744 -m{no-}single-pic-base. Correct help string for -mshort-load-words.
18745 (TARGET_OPTIONS): Add -mpic-register=.
18746 (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
18747 (arm_pic_register_string): Declare.
18748 (NEED_PLT_GOT): Delete, replace with ...
18749 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. New macros.
18750 (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
18751 (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
18752 * config/arm/arm.c (arm_override_options): Add new option
18753 -mpic-register=N.
18754 (arm_pic_register_string): New variable.
18755 (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
18756 (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
18757 register as never live. Use NEED_PLT_RELOC not NEED_PLT_GOT.
18758 (output_return_instruction): Likewise.
18759 * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
18760 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. Define to flag_pic.
18761 * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
18762
18763 * invoke.texi (ARM Options): Fix spelling. Remove duplicate
18764 mention of -msched-prolog. Document new options -msingle-pic-base
18765 and -mpic-register=.
18766
18767 Thu Jul 22 18:23:56 1999 Richard Henderson <rth@cygnus.com>
18768
18769 * haifa-sched.c (reemit_notes): Tidy.
18770 * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
18771 haifa's routine.
18772
18773 Thu Jul 22 18:21:04 1999 Richard Henderson <rth@cygnus.com>
18774
18775 * explow.c (trunc_int_for_mode): New function.
18776 (plus_constant_wide): Use it.
18777 * combine.c (simplify_and_const_int): Likewise.
18778 (merge_outer_ops): Likewise.
18779 (simplify_shift_const): Likewise.
18780 * cse.c (simplify_unary_operation): Likewise.
18781 (simplify_binary_operation): Likewise.
18782 * emit-rtl.c (operand_subword): Likewise.
18783 * rtl.h: Declare it.
18784
18785 Thu Jul 22 14:34:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18786
18787 * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
18788 (use NUM_REGS instead of NUM_INTS).
18789
18790 Thu Jul 22 11:25:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18791
18792 * builtins.c: New file.
18793 * expr.c (saveregs_value, apply_args_value): Delete definition,
18794 moved into builtins.c.
18795 (string_constant): No longer static.
18796 (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
18797 apply_args_size, apply_result_size, result_vector,
18798 expand_builtin_apply_args, expand_builtin_apply,
18799 expand_builtin_return): Delete functions, moved into builtins.c.
18800 (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
18801 * expr.h (saveregs_value, apply_args_value): Declare variables.
18802 (expand_builtin, string_constant): Declare functions.
18803 * Makefile.in: Update to build builtin.o.
18804
18805 Wed Jul 21 00:46:58 1999 Mark P. Mitchell <mark@codesourcery.com>
18806
18807 * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
18808 * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
18809 * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
18810 start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
18811 false.
18812 * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
18813 Define to zero.
18814
18815 1999-07-21 Michael Meissner <meissner@cygnus.com>
18816
18817 * print-rtl.c (print_rtx): Print the names of the virtual
18818 registers.
18819
18820 Wed Jul 21 16:00:32 1999 Nick Clifton <nickc@cygnus.com>
18821
18822 * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
18823 introduced in previous delta.
18824
18825 Wed Jul 21 14:30:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18826
18827 * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
18828 to avoid name clash.
18829
18830 Wed Jul 21 08:39:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
18831
18832 * c-lex.c (yylex) : Correct the test for overflow when lexing
18833 integer literals.
18834
18835 Tue Jul 20 18:02:42 1999 Richard Henderson <rth@cygnus.com>
18836
18837 * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
18838 (adjust_priority): Always call ADJUST_PRIORITY.
18839 (schedule_insn): Only put insns into the ready at cost 0.
18840 (schedule_block): Remove redundant initial sort. Give clock_var
18841 and can_issue_more to MD_SCHED_REORDER. Requeue if hazard cost
18842 is not 0.
18843 * tm.texi (MD_SCHED_REORDER): Update docs.
18844
18845 * sparc.h (MD_SCHED_REORDER): Update. Set CAN_ISSUE_MORE.
18846 * sparc.c (ultra_reorder_called_this_block): Delete.
18847 (ultrasparc_sched_init): Don't set it.
18848 (ultrasparc_sched_reorder): Don't check it.
18849
18850 Tue Jul 20 17:07:54 1999 Richard Henderson <rth@cygnus.com>
18851
18852 * rs6000.h (struct rs6000_args): Add sysv_gregno.
18853 * rs6000.c (init_cumulative_args): Init sysv_gregno.
18854 (function_arg_boundary): Align DFmode.
18855 (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
18856 to get fp reg and stack overflow correct.
18857 (function_arg): Likewise.
18858 (function_arg_pass_by_reference): True for TFmode for ABI_V4.
18859 (setup_incoming_varargs): Restructure for ABI_V4; use
18860 function_arg_advance to skip final named argument.
18861 (expand_builtin_saveregs): Properly unskip the last integer arg
18862 when doing varargs. Adjust overflow location calculation.
18863
18864 * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
18865 explicitly unsigned.
18866 (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
18867 (__VA_GP_REGSAVE): Similarly.
18868 (__va_longlong_p): Delete.
18869 (__va_arg_type_violation): New declaration.
18870 (va_arg): Restructure. Flag promotion errors. Align double.
18871 TFmode passed by reference.
18872
18873 * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
18874 in the HOST_BITS_PER_WIDE_INT > 32 case.
18875
18876 Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson <hp@bitrange.com>
18877
18878 * dwarf2out.c (output_abbrev_section): Terminate with a zero.
18879
18880 Tue Jul 20 12:12:27 1999 Jason Merrill <jason@yorick.cygnus.com>
18881
18882 * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
18883 * toplev.c (documented_lang_options): Add -fpreprocessed.
18884 * cpplib.h (struct cpp_buffer): Add preprocessed.
18885 * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
18886 (cpp_start_read): Don't expand macros or emit an initial #line
18887 directive if -fpreprocessed.
18888
18889 Tue Jul 20 12:12:09 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
18890
18891 * cpplib.h (struct cpp_buffer): Added manual_pop for
18892 better C++ tokenization.
18893 * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
18894 Also, support C++ tokenization for ->*, .*, <?, and >? operators.
18895 * c-common.c (cpp_token): Make non-static.
18896
18897 Tue Jul 20 11:24:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
18898
18899 * c-common.h: New file.
18900 * c-common.c (permanent_obstack): Delete unused declaration.
18901 (c_global_trees): New array.
18902 (c_common_nodes_and_builtins): New function; split off common code
18903 from init_decl_processing in both c-decl.c and cp/decl.c.
18904 * c-tree.h: Delete lots of declarations of tree nodes; replaced by
18905 c_global_trees and accessor macros defined in c-common.h.
18906 Include c-common.h.
18907 * c-decl.c: Delete definitions for tree nodes that were replaced by
18908 c_global_trees.
18909 (init_decl_processing): Build void_list_node.
18910 Call c_common_nodes_and_builtins; delete code to generate the common
18911 builtins here.
18912 * objc/objc-act.c (build_module_descriptor): Rename variable
18913 void_list_node to avoid clash with c-common.h.
18914
18915 * Makefile.in: Update dependencies.
18916 * objc/Make-lang.in: Likewise.
18917
18918 Mon Jul 19 14:22:18 1999 Mark P. Mitchell <mark@codesourcery.com>
18919
18920 * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
18921 (UNIQUE_SECTION_P): Likewise.
18922 (UNIQUE_SECTION): Likewise.
18923
18924 1999-07-19 Linas Vepstas <linas@linas.org>
18925
18926 * config/i370/README: New file.
18927 * config/i370/linux.h: New file.
18928 * config/i370/mvs.h: New file.
18929 * config/i370/oe.h: New file.
18930 * config/i370/t-linux: New file.
18931 * config/i370/t-mvs: New file.
18932 * config/i370/t-oe: New file.
18933 * config/i370/x-oe: New file.
18934 * config/i370/xm-linux.h: New file.
18935 * config/i370/xm-mvs.h: New file.
18936 * config/i370/xm-oe.h: New file.
18937
18938 * i370.c (label_node_t): Add first_ref_page, label_addr,
18939 label_first_ref, label_last_ref members.
18940 (mvs_need_base_reload): Renamed from mvs_label_emitted.
18941 (MAX_MVS_LABEL_SIZE): Define.
18942 (MAX_LONG_LABEL_SIZE): Define.
18943 (alias_node_t, alias_anchor, alias_number): New.
18944 (mvs_function_table): Reorder for EBCDIC.
18945 (ascebc, ebcasc): Unconditionally define.
18946 (i370_branch_dest, i370_branch_length): New functions.
18947 (i370_short_branch, i370_label_scan): New functions.
18948 (mvs_get_label): Renamed from mvs_add_label. Search for
18949 an existing label before creating a new one.
18950 (mvs_add_label): New function.
18951 (mvs_get_label_page): New function.
18952 (mvs_free_label_list): Renamed from mvs_free_label. Iterate
18953 over the entire list.
18954 (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
18955 (mvs_check_page) [TARGET_ELF_ABI]: New function.
18956 (mvs_add_alias, mvs_need_alias): New functions.
18957 (mvs_get_alias, mvs_check_alias): New functions.
18958 (handle_pragma): New function.
18959 (mvs_function_check): New function.
18960 (unsigned_jump_follows_p): Search harder.
18961 (i370_function_prolog) [TARGET_HLASM]: Handle LE370. Scan labels.
18962 (i370_function_prolog) [TARGET_ELF_ABI]: New function.
18963 * i370.h (TARGET_VERSION): Delete.
18964 (CPP_SPEC, CPP_PREDEFINES): Delete.
18965 (mvs_label_emitted): Delete.
18966 (TARGET_EBCDIC): Delete.
18967 (MAP_CHARACTER): Define only if TARGET_EBCDIC.
18968 (HANDLE_PRAGMA): Define.
18969 (HARD_REGNO_NREGS): Handle complex modes.
18970 (HARD_REGNO_MODE_OK): Likewise.
18971 (CLASS_MAX_NREGS): Likewise.
18972 (RET_REG): Likewise.
18973 (EXTRA_CONSTRAINT): Define.
18974 (RETURN_IN_MEMORY): True for DImode.
18975 (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
18976 (FUNCTION_PROFILER): Delete.
18977 (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
18978 (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
18979 (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
18980 (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
18981 (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
18982 (ASM_FILE_START): Add "RMODE ANY".
18983 (ASM_OUTPUT_EXTERNAL): Check for aliases.
18984 (ASM_GLOBALIZE_LABEL): Likewise.
18985 (ASM_OUTPUT_LABELREF): Likewise.
18986 (ASM_OUTPUT_COMMON): Likewise.
18987 (PRINT_OPERAND): Handle 'K', 'W', default.
18988 (PRINT_OPERAND_ADDRESS): New.
18989 (Lots of defines): Add support for TARGET_ELF_ABI.
18990 * i370.md (attr length): New. Define for all patterns.
18991 (*): Lots of tweeks to assembly output and constraints.
18992
18993 Mon Jul 19 15:09:29 1999 David Edelsohn <edelsohn@gnu.org>
18994
18995 * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
18996 Disable patterns performing SImode comparisons with SImode values
18997 if TARGET_POWERPC64 and instruction does not sign-extend or does
18998 not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
18999 differ for signed quantities.
19000 (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
19001 (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
19002 (decrement_and_branch_on_count): Add 64-bit variant.
19003
19004 Mon Jul 19 09:36:27 1999 Bernd Schmidt <bernds@cygnus.co.uk>
19005
19006 * final.c (output_asm_insn): When searching for the matching string
19007 for a given dialect, don't run past the end of the list of
19008 alternatives if there are fewer alternatives in the template than
19009 dialects.
19010
19011 1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br>
19012
19013 * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
19014 Removed paragraph about compression of files and size limitation,
19015 duplicated in the FAQ. Use gcc-patches for posting patches.
19016 * gcc.c (main): Updated URL with bug reporting instructions to
19017 gcc.gnu.org. Removed e-mail address.
19018 * system.h (abort): Likewise.
19019
19020 1999-07-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19021
19022 * Makefile.in (stmp-multilib-sub): Make the files extracted
19023 from $(LIBGCC1) writable.
19024
19025 Sat Jul 17 14:25:46 1999 Nick Clifton <nickc@cygnus.com>
19026
19027 * config/arm/aout.h: Reformat for improved readability.
19028
19029 * config/arm/arm.h: Reformat for improved readability.
19030 Replace uses of fprintf with asm_fprintf where appropriate.
19031 (ARM_DECLARE_FUNCTION_NAME): New macro: Perform any generic ARM
19032 function declaration assembler actions.
19033 (NUM_INTS): New macro: Convert from bytes to words.
19034 (NUM_REGS): New macro: Compute number of registers required to
19035 hold a quanitity of tyep MODE.
19036 (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
19037 types.
19038 (NUM_ARG_REGS): New macro: The number of argument registers
19039 available.
19040 (ARG_REGISTER): New macro: Compute the register number of the Nth
19041 argument register.
19042 (LAST_ARG_REGNUM): New macro: The number of the last argument
19043 register.
19044 (SP_REGNUM): New macro: Register number of the stack pointer.
19045 (FP_REGNUM): New macro: Register number of the frame pointer.
19046 (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
19047 FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
19048 CUMULATIVE_ARGS so that it counts registers not bytes.
19049
19050 * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
19051 TARGET_INTERWORK.
19052 Replace uses of fprintf with asm_fprintf where appropriate.
19053 (output_ascii_pseudo_op): Replace with version from thumb.c
19054
19055 * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
19056
19057 * config/arm/elf.h (CPP_PREDEFINES): Replace with
19058 SUBTARGET_CPP_SPEC.
19059 (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
19060 (ASM_FILE_START): Emit ASM_APP_OFF.
19061
19062 Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com)
19063
19064 * pa.c (compute_frame_size): Round frame according to
19065 STACK_BOUNDARY rather than a hardwired value.
19066
19067 * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
19068
19069 * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
19070 of "1".
19071 * configure: Rebuilt.
19072
19073 * configure.in (hppa*-*-linux*): New configuration.
19074 * configure: Rebuilt.
19075 * pa.h (MAX_OFILE_ALIGNMENT): Delete.
19076 * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
19077 * pa/pa-linux.h: New file.
19078 * pa/t-linux: New file.
19079 * pa/xm-linux.h: New file.
19080
19081 * pa.c (hppa_legitimize_address): Change references from SImode to
19082 either Pmode or word_mode as appropriate.
19083 (emit_move_sequence, store_reg, load_reg): Likewise.
19084 (set_reg_plus_d, hppa_expand_prologue): Likewise.
19085 (output_mul_insn): Likewise.
19086 * pa.h (PROMOTE_MODE): Likewise.
19087 (INITIALZE_TRAMPOLINE): Likewise.
19088 (Pmode): Define to word_mode.
19089
19090 * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
19091 value of 4. Allocate 8 bytes for each FP register save.
19092 (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
19093 value of 4.
19094 (hppa_expand_prologue): Likewise.
19095 * pa.h (PROMOTE_MODE): Likewise.
19096 (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
19097 (FUNCTION_ARG_BOUNDARY): Likewise.
19098
19099 * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
19100
19101 * pa.c (out_of_line_prologue_epilogue): Delete.
19102 (override_options): Remove -mspace related code.
19103 (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
19104 (compute_frame_size): Only allocate space for register that
19105 actually need to be saved.
19106 * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
19107 (TARGET_SWITCHES): Remove -mspace, -mno-space
19108 * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
19109 * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. Remove -mspace multilib.
19110 * pa/ee.asm, pa/ee_fp.asm: Delete.
19111
19112 * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
19113
19114 * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
19115 directive in column zero.
19116
19117 Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com)
19118
19119 * m68k.c (output_function_prologue): Fix computation of save mask
19120 when generating PIC code.
19121
19122 Thu Jul 15 15:40:09 1999 Jim Wilson <wilson@cygnus.com>
19123
19124 * tree.c (build_type_attribute_variant): Move current_obstack restore
19125 after build_qualified_type call.
19126
19127 1999-07-15 Mark Mitchell <mark@codesourcery.com>
19128
19129 * configure.in: Use t-iris6, even with GNU LD.
19130 * config/mips/iris6gld.h: Fix typo in linker spec.
19131 * config/mips/t-iris6gld: Remove.
19132
19133 Thu Jul 15 15:15:43 1999 David Edelsohn <edelsohn@gnu.org>
19134
19135 * rs6000.md (insv, extzv): Remove SImode dependence in named
19136 patterns. Explicitly generate DImode RTL if PowerPC64 and
19137 operand is DImode.
19138 (insvdi): Reverse start and size in instruction template.
19139
19140 1999-07-12 Joseph S. Myers <jsm28@cam.ac.uk>
19141
19142 * invoke.texi: Typo fixes.
19143
19144 Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com)
19145
19146 * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
19147 handle at this time instead of silently generating incorrect code.
19148 (gen_imagpart): Likewise.
19149
19150 * reload.c (find_reloads): Emit a USE for a pseudo register without
19151 a hard register if we could not create an optional reload for the
19152 pseudo.
19153
19154 Wed Jul 14 23:45:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19155
19156 * c-typeck.c (output_init_element, process_init_element):
19157 When advancing constructor_unfilled_fields for a RECORD_TYPE,
19158 check for nameless bit fields.
19159
19160 Wed Jul 14 01:57:39 1999 Richard Henderson <rth@cygnus.com>
19161
19162 * regclass.c (scan_one_insn): Notice subregs that change the
19163 size of their operand.
19164 (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
19165
19166 Wed Jul 14 01:41:42 1999 Jeffrey A Law (law@cygnus.com)
19167
19168 * configure.in (alpha*-*-*): Include alpha/t-ieee.
19169 * configure: Rebuilt.
19170 * alpha/t-ieee: New file.
19171
19172 Tue Jul 13 10:45:58 1999 Jeffrey A Law (law@cygnus.com)
19173
19174 * rs6000.c (find_addr_reg): Do not select r0 as an address
19175 register.
19176
19177 Tue Jul 13 00:46:18 1999 Philippe De Muyter <phdm@macqel.be>
19178
19179 * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
19180
19181 Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com)
19182
19183 * rs6000.md (movsf): Do not force easy FP constants into memory.
19184
19185 * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
19186 immed_double_const to ensure they are properly truncated then
19187 sign extended.
19188
19189 Mon Jul 12 10:40:01 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
19190
19191 * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
19192 always unless NO_DEBUG is used. Compile this code
19193 unconditionally.
19194 (replace_symbols_in_block): Compile it unconditionally.
19195
19196 Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com)
19197
19198 * configure.in (i?86-*-elf*): New target.
19199 * configure: Rebuilt.
19200 * i386/i386elf.h, i386/t-i386elf: New files.
19201
19202 Fri Jul 9 22:39:44 1999 Jason Merrill <jason@yorick.cygnus.com>
19203
19204 * toplev.c (main): Don't complain about saying -gdwarf.
19205 (rest_of_compilation): Remove redundant code.
19206
19207 Fri Jul 9 19:08:55 1999 Jim Wilson <wilson@cygnus.com>
19208
19209 * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
19210
19211 Fri Jul 9 18:54:18 1999 Felix Lee <flee@cygnus.com>
19212
19213 * config/i960/i960.c (ret_label): Change asm label from "LR:" to
19214 "Li960R:", to avoid name clash.
19215
19216 Fri Jul 9 10:48:28 1999 Bernd Schmidt <bernds@cygnus.co.uk>
19217
19218 * loop.c (check_dbra_loop): When reversing a loop, delete all
19219 REG_EQUAL notes referencing the reversed biv except those which are
19220 for a giv based on it.
19221
19222 Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com)
19223
19224 * version.c: Drop "gcc-" prefix from version #.
19225
19226 Thu Jul 8 18:06:30 1999 Jason Merrill <jason@yorick.cygnus.com>
19227
19228 * dwarf2out.c (dwarf2out_line): Emit a line number comment after
19229 the label if we're being verbose.
19230
19231 Thu Jul 8 14:18:46 1999 Richard Henderson <rth@cygnus.com>
19232
19233 * m68k.c (output_function_prologue): Add pic register to mask
19234 if live and flag_pic.
19235 (output_function_epilogue): Likewise.
19236
19237 Thu Jul 8 12:55:12 1999 Jeffrey A Law (law@cygnus.com)
19238
19239 * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
19240 directives in column zero.
19241
19242 * pa/elf.h (ASM_FILE_START): Define.
19243 * pa/som.h (ASM_FILE_START): Include .level directives.
19244 * pa/hpux10.h (ASM_FILE_START): Delete.
19245 * pa/hpux11.h (ASM_FILE_START): Delete.
19246
19247 * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
19248
19249 Thu Jul 8 18:03:19 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19250
19251 * reload1.c (choose_reload_regs): Never call remove_adress_replacements
19252 when reload_out equals reload_in.
19253
19254 Thu Jul 8 16:50:14 1999 Nick Clifton <nickc@cygnus.com>
19255
19256 * invoke.texi (Spec Files): New node: Describe the contents of
19257 spec files.
19258
19259 Thu Jul 8 10:28:25 1999 Craig Burley <craig@jcb-sc.com>
19260
19261 * invoke.texi (DEC Alpha Options): Put @end table at
19262 beginning of line, to avoid confusing texi2html.
19263
19264 Thu Jul 8 09:22:06 1999 Nick Clifton <nickc@cygnus.com>
19265
19266 * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
19267 introduced in previous delta.
19268
19269 Wed Jul 7 02:00:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
19270
19271 * reload1.c (gen_reload): When synthesizing a 3 operand add
19272 sequence, improve test for when to reload OP1 into the reload
19273 register instead of OP0.
19274
19275 Wed Jul 7 01:38:03 1999 Jim Wilson <wilson@cygnus.com>
19276
19277 * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
19278
19279 1999-07-07 Manfred Hollstein <mhollstein@cygnus.com>
19280
19281 * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
19282 string literal.
19283
19284 Wed Jul 7 01:16:43 1999 Richard Henderson <rth@cygnus.com>
19285
19286 * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
19287 (va_dcl): Use __builtin_va_alist_t.
19288
19289 Wed Jul 7 01:14:42 1999 Jason Merrill <jason@yorick.cygnus.com>
19290
19291 * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
19292 on the permanent_obstack.
19293 * dwarfout.c (output_type): Likewise.
19294
19295 Tue Jul 6 15:25:32 1999 Gavin Romig-Koch <gavin@cygnus.com>
19296
19297 * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
19298 Merged from c-typeck.c and cp/typeck.c.
19299 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
19300 Merged into c-common.
19301
19302 Tue Jul 6 13:06:01 1999 Dave Brolley <brolley@cygnus.com>
19303
19304 * c-lex.c (errorcount): Declare it.
19305 (finish_parse): Update errorcount when using CPPLIB.
19306
19307 1999-07-06 Bruce Korb <ddsinc09@ix.netcom.com>
19308
19309 * fixinc/inclhack.def(end_else_label): Double the backslash so
19310 sed gets a chance to see it.
19311 * fixinc/inclhack.sh: regen
19312 * fixinc/fixincl.x: regen
19313
19314 Fri Jul 2 18:49:51 1999 Nick Clifton <nickc@cygnus.com>
19315
19316 Add framework to support armv5 architecture when it becomes
19317 available:
19318
19319 * config/arm/arm.c (FL_ARCH5): New processor capability flag.
19320 (arm_arch5): New variable.
19321 (all_architectures): Add armv5 line.
19322 * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
19323 -march=armv5 is specified on the command line.
19324 (arm_arch5): Export this variable.
19325 * invoke.texi: Document new string accepted by -march= switch for
19326 ARM ports.
19327
19328 * config/arm/arm.h: Replace use of constant 12 as a register
19329 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
19330 * config/arm/arm.c: Replace use of constant 12 as a register
19331 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
19332
19333 * config/arm/elf.h: Tidy up.
19334 * config/arm/coff.h: Tidy up.
19335
19336 Thu Jul 1 19:08:13 1999 Mark P. Mitchell <mark@codesourcery.com>
19337
19338 * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
19339 * gcc/config/mips/t-iris6gld: New file.
19340 * gcc/config/mips/iris6gld.h: Likewise.
19341
19342 Fri Jul 2 13:23:39 1999 Gavin Romig-Koch <gavin@cygnus.com>
19343
19344 * c-decl.c (widest_integer_literal_type_node,
19345 widest_unsigned_literal_type) : New.
19346 (init_decl_processing): Handle/use the two new types.
19347 * c-common.c (type_for_size,type_for_mode) : Same.
19348 * c-lex.c (yylex) : Same.
19349 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
19350 Same.
19351 * c-tree.h (widest_integer_literal_type_node,
19352 widest_unsigned_literal_type) : New.
19353
19354 Fri Jul 2 03:05:44 1999 Jeffrey A Law (law@cygnus.com)
19355
19356 * dwarfout.c (field_byte_offset): Correctly compute the object's
19357 byte offset for the first bit of a field which crosses an alignment
19358 boundary on a !BYTES_BIG_ENDIAN target.
19359
19360 Fri Jul 2 01:36:36 1999 Robert Lipe <robertlipe@usa.net>
19361
19362 * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
19363 ntohs.
19364
19365 Fri Jul 2 00:46:47 1999 Richard Henderson <rth@cygnus.com>
19366 Jeff Law <law@cygnus.com>
19367
19368 * ginclude/varargs.h (va_dcl): Use word_mode for type of
19369 __builtin_va_list.
19370
19371 * except.c: Include intl.h.
19372 (expand_eh_return): Set current_function_cannot_inline.
19373 (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
19374 * function.h (struct function): Add eh_return_stub_label.
19375 * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
19376 * Makefile.in (except.o): Depend on intl.h.
19377
19378 Fri Jul 2 00:04:23 1999 David Edelsohn <edelsohn@gnu.org>
19379
19380 * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
19381 same as offsettable in cases 1 and 2.
19382
19383 Thu Jul 1 20:54:10 1999 Richard Henderson <rth@cygnus.com>
19384
19385 * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
19386 (extlh, extwh): Likewise.
19387
19388 Thu Jul 1 11:05:25 1999 Gavin Romig-Koch <gavin@cygnus.com>
19389
19390 * c-lex.c (yylex): Improve 'integer constant out of range' messages.
19391
19392 Wed Jun 30 16:51:41 1999 Nick Clifton <nickc@cygnus.com>
19393
19394 * configure.in: Add arm-pe and thumb-pe targets.
19395 * configure: Regenerate.
19396
19397 * thumb.c (arm_naked_function_p): New function: Determines if
19398 a function is naked (has no gcc generated prologue/epilogue).
19399 (is_called_in_ARM_mode): Return true if the func has the
19400 interfacearm attribute.
19401 (output_return): Do not generate a return for naked functions.
19402 (thumb_function_prologue): Do not generate a prologue for
19403 naked functions.
19404 (thumb_expand_prologue): Do not generate a prologue for naked
19405 functions.
19406 (thumb_expand_epilogue): Do not generate an epilogue for naked
19407 functions.
19408 (arm_valid_machine_decl_attribute): New function, copied from
19409 arm.c: Permit naked and interfacearm attributes.
19410
19411 * config/arm/pe.c: New file: Support code for arm-pe target.
19412 * config/arm/pe.h: New file: Header file for arm-pe target.
19413 * config/arm/tpe.h: New file: Header file for thumb-pe target.
19414 * config/arm/t-thumb-pe: New file: Makefile fragment for
19415 thumb-pe target.
19416
19417 1999-07-01 Mark Kettenis <kettenis@gnu.org>
19418
19419 * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
19420 -fPIC or -fpic is specified.
19421
19422 Wed Jun 30 03:31:54 1999 Jeffrey A Law (law@cygnus.com)
19423
19424 * expr.c (emit_block_move): Use copy_to_mode_reg for
19425 !TARGET_MEM_FUNCTIONS case too.
19426
19427 * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
19428 appropriate.
19429 * configure: Rebuilt.
19430 (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
19431 * pa.h: Include dbxelf.h. Delete various dbx/stabs related
19432 definitions made redundant by dbxelf.h inclusion. Delete
19433 lots of definitions related to assembly output that are
19434 specific to the SOM object format.
19435 * pa.c (output_function_prologue): Do not emit the function's
19436 name for OBJ_ELF.
19437 * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
19438 * pa-pro.h: Deleted.
19439 * som.h: New file with SOM specific definitions.
19440 * elf.h: New file with ELF specific definitions.
19441
19442 * elfos.h (const_section): Output a tab before assembler directives.
19443 (ctors_section, dtors_section): Likewise.
19444 (ASM_OUTPUT_SECTION_NAME): Likewise.
19445
19446 * pa/pa1.h: Delete unused file.
19447
19448 Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com)
19449
19450 * configure.in (hppa*-hp-hpux11*): New configuration.
19451 * configure: Rebuilt.
19452 * pa/pa-hpux11.h: New file.
19453 * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
19454 command line.
19455
19456 * mips.md (leasi, leadi): New patterns.
19457
19458 * expr.c (emit_block_move): Properly handle case where one of the
19459 block move arguments has a queued increment or decrement.
19460 (clear_storage): Similarly. Fix formatting goof.
19461
19462 1999-06-28 "David O'Brien" <obrien@NUXI.com>
19463
19464 * fixinc/inclhack.def(stdio_va_list): This patch Removes a
19465 semicolon from the BSD VA_LIST replacement expression.
19466
19467 * fixinc/inclhack.sh: regen
19468 * fixinc/fixincl.x: regen
19469
19470 * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
19471 now use the fixincl program.
19472
19473 Mon Jun 28 05:28:12 1999 Jeffrey A Law (law@cygnus.com)
19474
19475 * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
19476 case. Also make the PIC register call_used.
19477
19478 * m68k.h (FINALIZE_PIC): Delete.
19479 * m68k.c (finalize_pic): Delete.
19480
19481 Mon Jun 28 05:16:35 1999 Richard Henderson <rth@cygnus.com>
19482
19483 * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
19484 to memory.
19485
19486 Mon Jun 28 04:07:27 1999 David Edelsohn <edelsohn@gnu.org>
19487
19488 * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
19489
19490 Sun Jun 27 02:39:08 1999 Richard Henderson <rth@cygnus.com>
19491
19492 * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
19493
19494 Sat Jun 26 17:18:18 1999 David Edelsohn <edelsohn@gnu.org>
19495
19496 * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
19497
19498 Fri Jun 25 11:33:24 1999 Richard Henderson <rth@cygnus.com>
19499
19500 * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
19501
19502 Fri Jun 25 13:41:25 1999 David Edelsohn <edelsohn@gnu.org>
19503
19504 * rs6000.c (output_toc): Always use hex values for floating-point
19505 constants. Store single-precision values in upper-half of TOC
19506 entry in 64-bit mode.
19507 * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
19508 to final constraints.
19509 (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
19510 (fctiwz): Improve accuracy of RTL for pattern.
19511
19512 Fri Jun 25 11:26:38 1999 Gavin Romig-Koch <gavin@cygnus.com>
19513
19514 * expr.c (expand_expr): Allow RTL_EXPR's through the
19515 MAX_INTEGER_COMPUTATION_MODE checks.
19516
19517 Fri Jun 25 06:06:37 1999 Richard Henderson <rth@cygnus.com>
19518
19519 * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
19520 such that MASK_SUPPORT_ARCH is not negative.
19521
19522 Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com)
19523
19524 * loop.c (verify_dominator): Properly handle ADDR_VEC and
19525 ADDR_DIFF_VEC insns that appear inside loops.
19526
19527 Thu Jun 24 22:54:05 1999 David Edelsohn <edelsohn@gnu.org>
19528 Jeff Law <law@cygnus.com>
19529
19530 * rs6000.md (movdf_hardfloat32): Revert previous patch.
19531 Handle LO_SUM the same as offsettable in cases 1 and 2.
19532 * rs6000.c (find_addr_reg): Revert previous patch.
19533
19534 Thu Jun 24 22:43:12 1999 Philippe De Muyter <phdm@macqel.be>
19535
19536 * system.h (strstr): New external function declaration.
19537 * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
19538 * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
19539 * config.in, configure: Rebuilt.
19540
19541 1999-06-24 Tom Tromey <tromey@cygnus.com>
19542
19543 * gcc.c (main): Read user-specified specs files after computing
19544 additional startfile_prefixes.
19545
19546 Thu Jun 24 15:00:47 1999 Mark Mitchell <mark@codesourcery.com>
19547
19548 Revert these two patches:
19549
19550 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19551 * loop.c (strength_reduce): When doing biv->giv conversion, update
19552 reg note of NEXT->insn.
19553
19554 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19555 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
19556 reg_biv_class.
19557 (recombine_givs): Set ix field after sorting.
19558
19559 Wed Jun 23 21:26:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19560
19561 * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
19562 for the parts of an UNSPEC / UNSPEC_VOLATILE.
19563
19564 1999-06-23 Bruce Korb <ddsinc09@ix.netcom.com>
19565
19566 *fixinc/inclhack.def: Add fix development commentary
19567 (read_ret_type): reactivate and add selection clause
19568 (zzz_*): tweak output file name to match what is used in hackshell.tpl
19569 *fixinc/{fixincl.x|inclhack.sh}: regen
19570
19571 Wed Jun 23 00:48:21 1999 Jason Merrill <jason@yorick.cygnus.com>
19572
19573 * expr.c (expand_expr): STRIP_NOPS before checking against
19574 MAX_INTEGER_COMPUTATION_MODE
19575 (check_max_integer_computation_mode): Likewise.
19576
19577 Tue Jun 22 20:23:43 1999 Jim Wilson <wilson@cygnus.com>
19578
19579 * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
19580
19581 1999-06-22 Jim Wilson <wilson@cygnus.com>
19582
19583 * expr.c (store_expr): When target is a promoted subreg, return a
19584 promoted subreg as a result.
19585
19586 Tue Jun 22 17:14:58 1999 Michael Meissner <meissner@cygnus.com>
19587
19588 * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
19589 coding standards.
19590 (dwarf2out_define): Mark unused parameters appropriately.
19591 (gen_unspecified_parameters_die): Ditto.
19592 (gen_subprogram_die): Fix signed/unsigned warnings.
19593 (gen_variable_die): Ditto.
19594
19595 1999-06-22 Bruce Korb <ddsinc09@ix.netcom.com>
19596
19597 * fixinc/inclhack.def(end_else_label): combined else_label
19598 and endif_label and fixed the sed expression.
19599 *fixinc/{fixincl.x|inclhack.sh}: regen
19600
19601 Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com)
19602
19603 * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
19604 'x' when handling non-offsettable addresses
19605
19606 Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com)
19607
19608 * final.c (shorten_branches): Don't try to split an insn that has
19609 been deleted.
19610
19611 Mon Jun 21 12:47:39 1999 Mark Mitchell <mark@codesourcery.com>
19612
19613 * config/mips/mips.c (symbolic_expression_p): New function.
19614 (mips_select_rtx_section): Put symbolic expressions in the
19615 data section, not the read-only data section.
19616
19617 Mon Jun 21 22:13:06 1999 Jeffrey A Law (law@cygnus.com)
19618
19619 * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
19620
19621 Mon Jun 21 20:10:42 1999 Richard Henderson <rth@cygnus.com>
19622
19623 * collect2.c (main): Log frame table count.
19624 (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
19625 (scan_prog_file) [COFF]: Handle frame tables.
19626
19627 * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
19628 (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
19629 * alpha/elf.h: Undef them again.
19630 * alpha/vms.h: Remove their definitions.
19631
19632 Tue Jun 22 03:17:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19633
19634 * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
19635 remove the clobber of r0 and change the REG_UNUSED note to
19636 REG_INC.
19637
19638 1999-06-21 Jakub Jelinek <jj@ultra.linux.cz>
19639
19640 * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
19641 * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
19642 fits in HOST_WIDE_INT and one uses union to access a long constant
19643 as double.
19644
19645 Mon Jun 21 17:18:25 1999 Richard Henderson <rth@cygnus.com>
19646
19647 * sparc.c (sparc_override_options): Don't allow profiling for
19648 code models other than medlow.
19649 (sparc_function_profiler): New function from old FUNCTION_PROFILER
19650 macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
19651 (sparc_function_block_profiler): Likewise. Use user_label_prefix.
19652 (sparc_block_profiler): Likewise.
19653 (sparc_function_block_profiler_exit): Likewise.
19654 * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
19655 (FUNCTION_BLOCK_PROFILER): Likewise.
19656 (BLOCK_PROFILER): Likewise.
19657 (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
19658 (MCOUNT_FUNCTION): New.
19659 * sparc/pbd.h (FUNCTION_PROFILER): Delete.
19660 (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
19661 * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
19662 (MCOUNT_FUNCTION): New.
19663 * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
19664 (BLOCK_PROFILER): Delete.
19665 (MCOUNT_FUNCTION): New.
19666
19667 Mon Jun 21 14:11:29 1999 David Edelsohn <edelsohn@gnu.org>
19668
19669 * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
19670
19671 Mon Jun 21 12:27:17 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
19672
19673 * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19674 Add the macros.
19675
19676 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19677 Ditto.
19678
19679 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19680 Ditto.
19681
19682 * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19683 Ditto.
19684
19685 Mon Jun 21 14:58:42 1999 Nick Clifton <nickc@cygnus.com>
19686
19687 * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
19688 types.
19689
19690 Mon Jun 21 06:22:21 1999 Mark Elbrecht <snowball3@bigfoot.com>
19691
19692 * i386/djgpp.h (LIB_SPEC): New.
19693 (STARTFILE_SPEC): New.
19694
19695 * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
19696
19697 Mon Jun 21 06:19:33 1999 Philippe De Muyter <phdm@macqel.be>
19698
19699 * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
19700 compiler flags.
19701
19702 * system.h (WSTOPSIG): New macro.
19703
19704 Mon Jun 21 05:33:15 1999 Mumit Khan <khan@xraylith.wisc.edu>
19705
19706 * c-pragma.c (push_alignment): Don't ignore alignments greater than
19707 4 bytes.
19708 (insert_pack_attributes): Take into account member natural
19709 alignment.
19710
19711 * i386/winnt.c (exports_head): New static variable.
19712 (i386_pe_record_exported_symbol): New function.
19713 (i386_pe_asm_file_end): Use.
19714 * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
19715 symbols to be emitted at end of assembly.
19716 (ASM_DECLARE_OBJECT_NAME): Likewise.
19717 (ASM_DECLARE_FUNCTION_NAME): Likewise.
19718
19719 * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
19720 -iwithprefix.
19721
19722 Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com)
19723
19724 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
19725 in last change.
19726
19727 Sun Jun 20 17:27:20 1999 Richard Henderson <rth@cygnus.com>
19728
19729 * haifa-sched.c (sched_analyze_1): Use free_list instead of
19730 zapping reg_last_uses directly.
19731 (sched_analyze_2, sched_analyze_insn): Likewise.
19732 (sched_analyze): Likewise. Don't clear reg_last_uses on calls.
19733
19734 Sun Jun 20 16:57:29 1999 David Edelsohn <edelsohn@gnu.org>
19735
19736 * rs6000.md (movdf_hardfloat32): Use worst case insn length
19737 attributes for cases 1 and 2.
19738
19739 Sat Jun 19 22:52:55 1999 Richard Henderson <rth@cygnus.com>
19740
19741 * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
19742 instead of set.
19743
19744 Sat Jun 19 05:40:07 1999 Philip Blundell <pb@nexus.co.uk>
19745
19746 * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
19747
19748 Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com)
19749
19750 * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
19751 PIC_OFFSET_TABLE_REGNUM for general alloaction.
19752 (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
19753 must be stacked if it is used for PIC accesses.
19754 * arm.c (use_return_insn): Handle PIC register specially.
19755 (output_return_instruction): Likewise.
19756 (output_func_{prologue,epilogue}): Likewise.
19757 (output_expand_prologue): Likewise.
19758
19759 * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
19760 (*strsi_predec): Renamed from *strqi_predec.
19761 (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
19762 (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
19763
19764 * arm.c (arm_override_options): Remove warning about PIC code
19765 not being supported.
19766
19767 Fri Jun 18 23:47:06 1999 David Edelsohn <edelsohn@gnu.org>
19768
19769 * rs6000.c (find_addr_reg): New function.
19770 * rs6000.h (find_addr_reg): Declare.
19771 (offsettable_addr_operand): Delete.
19772 * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
19773 from and stores to GPRs.
19774
19775 Fri Jun 18 15:44:18 1999 Richard Henderson <rth@cygnus.com>
19776
19777 * alpha.c (alpha_expand_block_move): Use get_insns rather than
19778 gen_sequence as argument to emit_no_conflict_block.
19779
19780 Fri Jun 18 07:02 1999 Bruce Korb <ddsinc09@ix.netcom.com>
19781
19782 * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
19783 * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
19784 *fixinc/fixincl.x: regen
19785 *fixinc/inclhack.sh: regen
19786
19787 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay <dlindsay@cygnus.com>
19788
19789 * added support for -mpcrel (PC relative addressing for m68k)
19790 based on code done by Michael Tiemann <tiemann@axon.cygnus.com>.
19791 * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
19792 * m68k.c (print_operand_address): Handle 32-bit PIC case.
19793 (comments for general_src_operand): Add some explanation
19794 about EXTRA_CONSTRAINTS.
19795 (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
19796 * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
19797 (LEGITIMATE_PIC_OPERAND_P): Fix typo.
19798 (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
19799 * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
19800 (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
19801 (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
19802 if not already set.
19803 (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
19804 * m68k.h (TARGET_PCREL): New target flag.
19805 (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
19806 (OVERRIDE_OPTIONS): Add checks for -mpcrel.
19807 (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
19808 contains a SYMBOL_REF. Relax this constraint during reload, since
19809 we want to use the predicates, not reload's built-in concept of a
19810 valid memory address, to control what insns need reloading.
19811 (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
19812 operands (essentially 'g', 'm', and 's' under normal circumstances).
19813 * m68k.c (print_operand): Cause printing of pc-relative addresses
19814 to include pc register.
19815 (print_operand_address): Ditto.
19816 (general_src_operand): Accept operands that are not only
19817 general_operands, but are also valid when used as a pc-relative
19818 source.
19819 (nonimmediate_src_operand): Similar, for nonimmediate_operands.
19820 (memory_src_operand): Similar, for memory_operands.
19821 (pcrel_address): New predicate to accept the special case of a
19822 pc-relative address.
19823 * m68k.md (many patterns): Rewrite common SImode, HImode, and
19824 QImode insns to accept *_src_operand instead of *_operand where
19825 pc-relative operands can fit. For example, a pc-relative operand
19826 can be used as a memory source operand for addsi3, but not as a
19827 memory destination.
19828 * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
19829
19830 Fri Jun 18 09:11:07 1999 Nick Clifton <nickc@cygnus.com>
19831
19832 * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
19833 .thumb_set pseudo op to mark aliases of thumb functions.
19834
19835 Wed Jun 16 18:19:13 1999 Nick Clifton <nickc@cygnus.com>
19836
19837 * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
19838 preference to ASM_OUTPUT_DEF, if it is defined.
19839
19840 * tm.texi: Document new, optional target macro
19841 ASM_OUTPUT_DEF_FROM_DECLS.
19842
19843 Thu Jun 17 15:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
19844
19845 * fixincludes: ISCNTL patch
19846 * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
19847 (dgux_int_varargs): new for DG/UX
19848 * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
19849
19850 Thu Jun 17 21:34:24 1999 Jeff Law <law@cygnus.com>
19851
19852 * invoke.texi (ia32 options): Fix typo.
19853
19854 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19855
19856 * loop.c (strength_reduce): When doing biv->giv conversion, update
19857 reg note of NEXT->insn.
19858
19859 Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com)
19860
19861 * loop.c (move_movables): Note issues with replacing REGs with
19862 SUBREGs.
19863 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
19864
19865 Thu Jun 17 13:28:30 1999 David O'Brien <obrien@FreeBSD.org>
19866
19867 * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
19868
19869 * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
19870 the reference to `mcount' was not correct for the ELF on FreeBSD.
19871
19872 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19873
19874 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
19875 reg_biv_class.
19876
19877 (recombine_givs): Set ix field after sorting.
19878
19879 Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com)
19880
19881 * emit-rtl.c (operand_subword): Tighten checks for when it is safe
19882 to safe to extract a subword out of a REG.
19883
19884 Thu Jun 17 01:45:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19885
19886 * sh.md (mulsi3): Don't add a no-op move at the end.
19887
19888 Wed Jun 16 20:29:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19889
19890 * cse.c (cse_insn): Don't put hard register source into tables for
19891 the last insn of a libcall.
19892
19893 Wed Jun 16 19:44:33 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
19894
19895 * loop.c (strength_reduce): Insert sets of derived givs at every
19896 biv increment, even if it's the only one.
19897
19898 Wed Jun 16 10:33:02 1999 Jason Merrill <jason@yorick.cygnus.com>
19899
19900 * dwarfout.c (add_incomplete_type): New fn.
19901 (output_type): Call it.
19902 (retry_incomplete_types): New fn.
19903 (dwarfout_finish): Call it.
19904
19905 From Eric Raskin <ehr@listworks.com>:
19906 (output_type): Output types for bases.
19907
19908 Tue Jun 15 12:51:23 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
19909
19910 * mips.c (mips_output_conditional_branch): Add `break'
19911 between `default' label and `close braces'.
19912
19913 Tue Jun 15 01:55:20 1999 David O'Brien <obrien@FreeBSD.org>
19914
19915 * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
19916 specifications and make it realistic.
19917 (LIB_SPEC): Likewise.
19918
19919 Mon Jun 14 15:38:43 1999 Jim Wilson <wilson@cygnus.com>
19920
19921 * config/mips/mips.c (mips_secondary_reload_class): Check for
19922 (PLUS (SP) (REG)) and return appropriate register class.
19923 * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
19924 Handle (PLUS (SP) (REG)).
19925 (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
19926 (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
19927 of emit_insn for tablejump.
19928
19929 Mon Jun 14 17:26:40 1999 David Edelsohn <edelsohn@gnu.org>
19930
19931 * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
19932 asm_fprintf format string by itself.
19933 (output_function_profiler): Likewise.
19934
19935 Mon Jun 14 12:57:38 1999 David Mosberger <davidm@hpl.hp.com>
19936
19937 * combine.c (simplify_logical, case AND): Only call
19938 simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
19939 or the constant is positive.
19940
19941 Mon Jun 14 11:43:41 1999 Nick Clifton <nickc@cygnus.com>
19942
19943 * configure.in: Fix typo in rs6000-ibm-aix4 case.
19944 * configure: Regenerate.
19945
19946 Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com)
19947
19948 * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
19949 require a sub-version #.
19950 * configure: Rebuilt.
19951
19952 1999-06-14 Robert Lipe (robertlipe@usa.net)
19953
19954 * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
19955
19956 Mon Jun 14 10:30:52 BST 1999 Nathan Sidwell <nathan@acm.org>
19957
19958 * c-typeck.c (process_init_element): Detect excess elements in
19959 char array initializer.
19960
19961 1999-06-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
19962
19963 * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
19964
19965 Sat Jun 12 22:29:48 EDT 1999 Jerry Quinn <jquinn@nortelnetworks.com>
19966
19967 * invoke.texi (Option Summary): Add -fpermissive flag.
19968
19969 Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com)
19970
19971 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
19972 that require PIC code sequences.
19973
19974 Wed Jun 9 16:29:01 1999 Nick Clifton <nickc@cygnus.com>
19975
19976 * configure.in: Add new target: thumb-elf.
19977 * configure: Regenerate.
19978 * config/arm/t-thumb-elf: New file: Makefile fragment for
19979 thumb-elf build.
19980 * config/arm/telf.h: New file: Header file for thumb-elf
19981 build.
19982
19983 Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com)
19984
19985 * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
19986 * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
19987 initializers is some circumstances.
19988
19989 * fixinc/inclhack.def (endif_label): Add additional selector for
19990 more bogus stuff after #endif statements.
19991 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
19992
19993 Thu Jun 10 20:44:36 1999 Mumit Khan <khan@xraylith.wisc.edu>
19994
19995 * i386/cygwin.h (SET_ASM_OP): Define.
19996
19997 Thu Jun 10 20:37:57 1999 Mumit Khan <khan@xraylith.wisc.edu>
19998
19999 * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
20000
20001 Thu Jun 10 19:23:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20002
20003 * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
20004 latter.
20005
20006 * sh.md (ic_invalidate_line_i): Remove second alternative.
20007
20008 Thu Jun 10 06:55 1999 Bruce Korb <ddsinc09@ix.netcom.com>
20009
20010 *fixinc/inclhack.def(sun_auth_proto): We do not know how to
20011 test for the presence of valid prototypes. Delete bypass expr.
20012 (ioctl_fix_ctrl): Correct the selection expression.
20013 (no_double_slash): Correct quoting rules
20014 *fixinc/fixincl.x: regen
20015 *fixinc/inclhack.sh: regen
20016
20017 Thu Jun 10 15:08:15 1999 Nick Clifton <nickc@cygnus.com>
20018
20019 * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
20020
20021 Wed Jun 9 15:57:57 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
20022
20023 * rs6000.md (movsi_got_internal_mem): Delete.
20024 * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
20025 (GOT_TOC_REGNUM): Delete.
20026 (PIC_OFFSET_TABLE_REGNUM): Define.
20027 (FINALIZE_PIC): Disable.
20028 * rs6000.c (rs6000_got_register): New code for fixed pic register.
20029 (rs6000_replace_regno): Delete.
20030 (rs6000_finalize_pic): Likewise.
20031 (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
20032
20033 Wed Jun 9 19:44:26 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20034
20035 * loop.c (loop_insn_first_p): Don't compare LUIDs when P
20036 is a note; use <= for the compare; advance P while it is
20037 a NOTE.
20038
20039 Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com)
20040
20041 * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
20042 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
20043
20044 * varasm.c (remove_from_pending_weak_list): Verify t->name
20045 is non-NULL before passing it to strcmp.
20046
20047 Wed Jun 9 06:50 1999 Bruce Korb <ddsinc09@ix.netcom.com>
20048
20049 *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
20050 the typed arguments are not part of a comment
20051 (ioctl_fix_ctrl): Added a purpose comment
20052 *fixinc/fixincl.x: regenerate
20053 *fixinc/inclhack.sh: regenerate
20054
20055 Wed Jun 9 22:57:02 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
20056
20057 * invoke.texi: Add C4x invocation docs.
20058
20059 Wed Jun 9 22:34:38 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
20060
20061 * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
20062 Define new macros.
20063 * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
20064 TARGET_EXPOSE_LDP.
20065 (c4x_legitimize_reload_address): New function.
20066 * config/c4x/c4x.md: Update docs.
20067
20068 Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com)
20069
20070 * fixincludes: Avoid removing '.'.
20071 * fixinc/fixinc.svr4: Likewise.
20072 * fixinc/fixinc.winnt: Likewise.
20073 * fixinc/inclhack.tpl: Likewise.
20074 * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
20075
20076 1999-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20077
20078 * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
20079 pattern.
20080 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
20081
20082 Wed Jun 9 03:10:34 1999 Mumit Khan <khan@xraylith.wisc.edu>
20083
20084 * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
20085 correctly.
20086
20087 Tue Jun 8 13:06:15 1999 Jim Wilson <wilson@cygnus.com>
20088
20089 * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
20090 * configure: Regenerate.
20091
20092 Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com)
20093
20094 * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
20095 values.
20096
20097 Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com)
20098
20099 * fixinc/inclhack.def (avoid_bool): Also catch
20100 "typedef [unsigned] int bool".
20101 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
20102
20103 * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
20104 * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
20105 * configure: Rebuilt.
20106
20107 Mon Jun 7 22:05:03 1999 Mark Kettenis <kettenis@gnu.org>
20108
20109 * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
20110 such that we can override its definitions if necessary.
20111 (CPP_SPEC): New define. Support processor specific predefines via
20112 %(cpp_cpu).
20113 (CC1_SPEC): New define. Support processor specific compiler
20114 options via %(cc1_cpu).
20115 (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for
20116 -static.
20117
20118 1999-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20119
20120 * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
20121 between sed's -e flag, and the open-quote following it.
20122 * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
20123
20124 Mon Jun 7 20:34:20 1999 Robert Lipe <robertlipe@usa.net>
20125 Jeffrey A Law (law@cygnus.com)
20126
20127 * varasm.c (assemble_start_function): Remove the function
20128 from the pending weak decls list when we define a function.
20129 (assemble_variable): Similarly for variables.
20130 (weak_finish): Ignore items on the list with a NULL name.
20131 (remove_from_ending_weak_list); New function to "remove" an item
20132 from the pending weak declarations list.
20133
20134 Mon Jun 7 19:27:07 1999 Jerry Quinn <jquinn@nortelnetworks.com>
20135
20136 * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
20137
20138 Mon Jun 7 14:07:39 1999 Dave Brolley <brolley@cygnus.com>
20139
20140 * c-lex.c (GETC): Redefine to call getch.
20141 (UNGETC): Redefine to call put_back.
20142 (putback_buffer): New structure type.
20143 (putback): New static structure.
20144 (getch): New function.
20145 (put_back): New function.
20146 (yylex): Replace unused bytes from bad multibyte character.
20147
20148 Mon Jun 7 13:33:39 1999 Dave Brolley <brolley@cygnus.com>
20149
20150 * cpplib.c (do_define): Cast `alloca' return value.
20151 (do_include, do_undef, do_pragma): Likewise.
20152 * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
20153 values.
20154 * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
20155 * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
20156
20157 Sun Jun 6 11:58:34 1999 Jakub Jelinek <jj@ultra.linux.cz>
20158
20159 * sparc.md (abstf2): This should be an expand.
20160 (split after abstf2_notv9): Fix mode.
20161 (abstf2_hq_v9): New pattern.
20162 (abstf2_v9): Only use when no hard quad.
20163 (absdf2_v9): Fix if target is not the same as source.
20164 (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
20165 Add correct output constraints.
20166
20167 Sat Jun 5 17:04:16 1999 Craig Burley <craig@jcb-sc.com>
20168
20169 From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
20170 * invoke.texi: Clarify text vis-a-vis Intel CPUs.
20171
20172 Sat Jun 5 12:11:24 1999 Mark Mitchell <mark@codesourcery.com>
20173
20174 * mips.h (mips_output_conditional_branch): New function.
20175 (mips_adjust_insn_length): Likewise.
20176 (ASSEMBLER_SCRATCH_REGNUM): New macro.
20177 (ADJUST_INSN_LENGTH): Likewise.
20178 * mips.c (print_operand): Add `F' and `W' for floating-point
20179 comparison opcodes.
20180 (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
20181 are now in bytes.
20182 (mips_adjust_insn_length): New function.
20183 (mips_output_conditional_branch): New function.
20184 * mips.md (length): Adjust attribute definition to handle
20185 conditional branches. Change lengths to bytes, rather than
20186 instructions throughout. Remove length attribute from
20187 instructions whose length is four bytes, and rely on the default
20188 instead.
20189 (dslot): Fix typo in comment.
20190 Reword conditional branch patterns to use
20191 mips_output_conditional_branch.
20192
20193 Fri Jun 4 13:30:27 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
20194
20195 * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
20196 (LIB_SPEC): Likewise.
20197 Link with -lprof1_r for -g/-pg.
20198
20199 1999-06-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
20200
20201 * loop.c (check_dbra_loop): Fix change of Jan 19.
20202
20203 Fri Jun 4 00:12:40 1999 Marc Espie <espie@cvs.openbsd.org>
20204
20205 * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define.
20206 (STARTFILE_SPEC): Define, override the svr4.h version.
20207 (ENDFILE_SPEC): Likewise.
20208
20209 Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com)
20210
20211 * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
20212 * fixinc/fixincl.x: Regenerated.
20213 * fixinc/inclhack.sh: Regenerated.
20214
20215 Fri Jun 4 05:42:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20216
20217 * sh.c (barrier_align): Don't return early for normal branch/barrier
20218 when optimizing for SH2.
20219
20220 Thu Jun 3 22:27:50 1999 Robert Lipe <robertlipe@usa.net>
20221
20222 * i386/udk.h (LINK_SPEC): Correct linker search path for
20223 system libraries.
20224
20225 Fri Jun 4 03:20:40 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20226
20227 * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
20228 (braf_label_ref_operand): Delete.
20229 * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
20230 * sh.md (casesi_jump_2): Operand1 is now the inside of a
20231 label_ref, and has no predicate.
20232 The patten has a predicate to guard against invalid substitutions.
20233 (dummy_jump): Delete.
20234 (casesi): Update use of casesi_jump_2.
20235
20236 Thu Jun 3 07:48 1999 Bruce Korb <ddsinc09@ix.netcom.com>
20237
20238 *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
20239 *fixinc/fixincl.x: regenerate
20240 *fixinc/inclhack.sh: regenerate
20241
20242 Thu Jun 3 02:15:07 1999 Jason Merrill <jason@yorick.cygnus.com>
20243
20244 * dwarf2out.c (add_incomplete_type): New fn.
20245 (gen_struct_or_union_type_die): Call it.
20246 (retry_incomplete_types): New fn.
20247 (dwarf2out_finish): Call it.
20248
20249 Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com)
20250
20251 * gcse.c (insert_insn_end_bb): Correct placement of insns when the
20252 current block starts with a CODE_LABEL and ends with a CALL and
20253 we can not find all the argument setup instructions for the CALL.
20254
20255 Wed Jun 2 15:44:15 1999 Mark Mitchell <mark@codesourcery.com>
20256
20257 Revert this change:
20258 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
20259 something is a candidate for optimize_bit_field_compare.
20260
20261 Wed Jun 2 21:53:05 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20262
20263 * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
20264
20265 Wed Jun 2 12:25:55 1999 Richard Henderson <rth@cygnus.com>
20266
20267 * alpha.c (override_options): Thinko in last patch.
20268
20269 * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
20270 (LIB_SPEC): Recognize -pthread.
20271
20272 Wed Jun 2 08:42:55 1999 Nick Clifton <nickc@cygnus.com>
20273
20274 * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
20275 definition in config/arm/coff.h
20276 * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
20277
20278 Wed Jun 2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
20279
20280 * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
20281 fixes that need "file=xxx\n" prepended before invocation
20282 (start_fixer - new): starting the fixer process is complex enough
20283 to warrent its own routine. It prepends the "file=xxx\n" stuff.
20284 (process): uses the new routine; omit usage of putenv()
20285 * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
20286 * fixinc/fixincl.x: regenerate
20287
20288 Wed Jun 2 02:29:07 1999 Jeffrey A Law (law@cygnus.com)
20289
20290 * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
20291 and version #s (1.1 -> 2.96) as needed.
20292 * README.g77: Kill way out of date file in the toplevel directory.
20293
20294 Wed Jun 2 00:52:34 1999 David O'Brien <obrien@FreeBSD.org>
20295
20296 * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
20297 i386/freebsd-elf.h no longer requires it. Instead include svr4.h.
20298 * configure: Rebuilt.
20299 * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
20300 (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
20301 (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
20302 (SWITCH_TAKES_ARG): Likewise.
20303 * i386/freebsd.h: Remove FREEBSD_NATIVE support.
20304 * config/t-freebsd: Moved from config/i386/ so it can used for all
20305 FreeBSD targets.
20306
20307 Mon May 31 02:22:55 1999 Philippe De Muyter <phdm@macqel.be>
20308
20309 * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
20310
20311 Wed Jun 2 00:08:34 1999 Robert Lipe <robertlipe@usa.net>
20312
20313 * configure.in (i[34567]86-*-udk*): Install headers with cpio.
20314 * configure: Rebuilt.
20315
20316 Tue Jun 1 19:06:22 1999 David Edelsohn <edelsohn@gnu.org>
20317
20318 * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
20319 * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
20320 * rs6000/rs6000.c (rs6000_file_start): Use putc.
20321 (rs6000_output_load_toc_table): Same.
20322 (output_prolog, output_mi_thunk): Same.
20323 * rs6000/rs6000.h (SELECT_SECTION): Formatting.
20324 (ASM_GLOBALIZE_LABEL): Use putc.
20325
20326 Mon May 31 15:23:23 1999 Richard Henderson <rth@cygnus.com>
20327
20328 * alpha.md (reload_*_help): New patterns and splitters.
20329 (reload_*): Use them.
20330 (mov[qh]i): Likewise.
20331
20332 Mon May 31 11:48:07 1999 Mark Mitchell <mark@codesourcery.com>
20333
20334 * cccp.c (handle_directive): Handle backslash-newlines in quoted
20335 strings correctly.
20336
20337 Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu>
20338
20339 * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
20340
20341 Mon May 31 11:40:20 EDT 1999 John Wehle (john@feith.com)
20342
20343 * flow.c (mark_regs_live_at_end, insn_dead_p,
20344 mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
20345 and HARD_FRAME_POINTER_REGNUM special treatment if reload
20346 hasn't run or the frame pointer is needed.
20347 * haifa-sched.c (attach_deaths): Likewise.
20348 * sched.c (attach_deaths): Likewise.
20349
20350 Mon May 31 00:46:17 1999 Jeffrey A Law (law@cygnus.com)
20351
20352 * jump.c (jump_optimize_1): Only set CAN_REACH_END if
20353 calculate_can_reach_end returns nonzero.
20354
20355 * configure.in (native gas tests): Search for an assembler in the
20356 same manner that the installed compiler will.
20357 * configure: Rebuilt.
20358 * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
20359
20360 * alias.c (find_base_term): Improve handling of addresses
20361 constructed from binary operations.
20362
20363 Sun May 30 14:29:17 1999 Eric Raskin (ehr@listworks.com)
20364
20365 * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
20366
20367 Sun May 30 14:19:13 1999 Jeffrey A Law (law@cygnus.com)
20368
20369 * function.h (cleanup_label, frame_offset): Declare.
20370 (tail_recursion_label, tail_recursion_reentry): Likewise.
20371 (arg_pointer_save_area, rtl_expr_chain): Likewise.
20372 * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
20373 (tail_recursion_label, tail_recursion_reentry): Likewise.
20374 (arg_pointer_save_area, rtl_expr_chain): Likewise.
20375
20376 Sat May 29 19:08:10 1999 Philip Blundell <philb@gnu.org>
20377
20378 * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
20379 defined.
20380 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
20381 (MAX_OFILE_ALIGNMENT): Define.
20382
20383 Fri May 28 21:40 1999 Robert Lipe <robertlipe@usa.net>
20384
20385 * fixincl.c: Replace local include scheme with #includes of
20386 gansidecl.h and system.h.
20387 * procopen.c: Likewise.
20388 * server.c: Likewise.
20389
20390 Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com)
20391
20392 * i386/t-dgux (EXTRA_PARTS): Add crti.o
20393 (crti.o): Add build rule and dependencies.
20394 * fixinc/fixinc.dgux: Use modified _int_varargs.h
20395
20396 Fri May 28 03:41:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
20397
20398 * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
20399 (LIB_LINUX_SPEC): Likewise.
20400 (LIB_LINUX_SPEC): Add support for -pthread
20401 (CPP_OS_LINUX_SPEC): Likewise.
20402 (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
20403 specified.
20404
20405 Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org)
20406
20407 * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
20408 conditional move.
20409 (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
20410 (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
20411 for IEEE math and CC_FCOMI.
20412 (put_jump_code): No IEEE if CC_FCOMI is set.
20413
20414 1999-05-27 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
20415
20416 * fold-const.c (fold_truthop): Make the field reference unsigned
20417 when converting a single bit compare.
20418
20419 Thu May 27 02:40:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20420
20421 * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
20422
20423 Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com)
20424
20425 * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
20426 * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
20427 version did.
20428
20429 * reload.c (push_reload): Do not call remove_address_replacements
20430 when presented with identical optional reloads.
20431
20432 Wed May 26 14:18:05 1999 Richard Henderson <rth@cygnus.com>
20433
20434 * alpha.h (MASK_FIX, TARGET_FIX): New.
20435 (MASK_*): Reorganize constants.
20436 (CPP_AM_FIX_SPEC): New.
20437 (TARGET_SWITCHES): Add FIX.
20438 (EXTRA_SPECS): Likewise.
20439 (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
20440 (SECONDARY_MEMORY_NEEDED): Likewise.
20441 (REGISTER_MOVE_COST): Likewise.
20442 * alpha.c (override_options): Add FIX support. Always use
20443 ALPHA_TP_PROG for ev6.
20444 * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
20445 * alpha/elf.h (ASM_FILE_START): Look at FIX too.
20446 * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
20447
20448 Wed May 26 09:53:05 1999 Mark Mitchell <mark@codesourcery.com>
20449
20450 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
20451 something is a candidate for optimize_bit_field_compare.
20452
20453 Wed May 26 09:40:02 1999 Mark Mitchell <mark@codesourcery.com>
20454
20455 * gcc.texi (Passes): Document branch-shortening.
20456 * invoke.texi (Debugging Options): Document the fact that `-dp'
20457 outputs length information for instructions.
20458
20459 Wed May 26 08:49:31 1999 Nick Clifton <nickc@cygnus.com>
20460
20461 * flow.c: Revert previous delta.
20462
20463 Wed May 26 06:05:10 1999 Nick Clifton <nickc@cygnus.com>
20464
20465 * flow.c (insn_dead_p): Check against frame_pointer_rtx not
20466 FRAME_POINTER_REGNUM.
20467 (mark_set_1): Ditto.
20468 (mark_used_regs): Ditto.
20469
20470 Wed May 26 02:19:31 1999 Philip Blundell <pb@nexus.co.uk>
20471
20472 * arm.h (NEED_PLT_GOT): Fix mistake in last change.
20473 (GOT_PCREL): New macro. Define to 1 if not already defined.
20474 * arm/elf.h (GOT_PCREL): Define to 0.
20475 * arm.c (arm_finalize_pic): Take into account the setting of
20476 GOT_PCREL.
20477
20478 Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com)
20479
20480 * output.h (STRIP_NAME_ENCODING): Provide default definition.
20481 * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
20482
20483 * flow.c (mark_set_1): Do not record BLKmode stores as dead
20484 store elimination candidates.
20485
20486 Tue May 25 08:55:57 1999 Gavin Romig-Koch <gavin@cygnus.com>
20487
20488 * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
20489 TARGET_GAS.
20490
20491 Mon May 24 20:30:08 1999 Jim Wilson <wilson@cygnus.com>
20492
20493 * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
20494 Add use of x-aix41-gld.
20495
20496 Mon May 24 16:44:09 1999 Jakub Jelinek <jj@ultra.linux.cz>
20497
20498 * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
20499 (ASM_OUTPUT_DESTRUCTOR): Define.
20500
20501 Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com)
20502
20503 * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
20504 last CODE_LABEL in a loop if we have previously passed a jump
20505 to the top of the loop.
20506
20507 Mon May 24 07:56:29 1999 Nick Clifton <nickc@cygnus.com>
20508
20509 * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
20510 applying Philip's patch.
20511
20512 Mon May 24 01:02:12 1999 Mark Mitchell <mark@codesourcery.com>
20513
20514 * stmt.c (expand_end_bindings): Ignore any elements of VARS that
20515 are not VAR_DECLs.
20516
20517 Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com)
20518
20519 * loop.c (strength_reduce): Grow reg_single_usage as needed.
20520
20521 Sun May 23 10:13:20 1999 David O'Brien <obrien@FreeBSD.org>
20522
20523 * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
20524 Also remove a useless comment.
20525
20526 Sun May 23 10:05:23 1999 Jerry Quinn <jquinn@nortelnetworks.com>
20527
20528 * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0.
20529
20530 Sat May 22 21:02:06 1999 David Edelsohn <edelsohn@gnu.org>
20531
20532 * collect2.c (main): Only generate import or export file and add
20533 to link arguments if non-empty. Use xmalloc not alloca.
20534 (write_{export,import}_file): Delete.
20535 (write_aix_file): New function.
20536 (locatelib): Use xmalloc not malloc.
20537 (GCC_OK_SYMBOL): Do not check type if aix64.
20538
20539 Sat May 22 09:35:51 1999 Philip Blundell <pb@nexus.co.uk>
20540
20541 Based on patch by Scott Bambrough and Pat Beirne:
20542 * config/arm/arm.c (making_const_table): New variable.
20543 * config/arm/arm.h (making_const_table): Declare.
20544 (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
20545 appropriate.
20546 * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
20547 Keep track of when we are building the constant table.
20548
20549 Sat May 22 09:34:22 1999 Philip Blundell <pb@nexus.co.uk>
20550
20551 * config/arm/arm.c (arm_override_options): Fix erroneous warning
20552 message.
20553
20554 Sat May 22 09:06:33 1999 Nick Clifton <nickc@cygnus.com>
20555
20556 * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
20557 defined.
20558
20559 Sat May 22 07:17:05 1999 Nick Clifton <nickc@cygnus.com>
20560
20561 * tm.texi (FUNCTION_ARG): Correct description of a stack element
20562 in a PARALLEL.
20563
20564 Sat May 22 01:27:49 1999 Mark Mitchell <mark@codesourcery.com>
20565
20566 * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
20567
20568 Fri May 21 21:19:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
20569
20570 * rs6000.c (output_mi_thunk): Enable full support again.
20571
20572 Fri May 21 20:09:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
20573
20574 * sh.h (BRANCH_COST): Define.
20575
20576 Thu May 20 10:00:42 1999 Stephen L Moshier <moshier@world.std.com>
20577
20578 * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
20579
20580 Thu May 20 09:58:57 1999 Jan Hubicka <hubicka@freesoft.cz>
20581
20582 * function.c (assign_stack_local): Align stack slot propertly.
20583 (assign_outer_stack_local): Likewise.
20584
20585 Thu May 20 10:38:43 1999 Mark Mitchell <mark@codesourcery.com>
20586
20587 * expr.h (lang_expand_constant): Declare.
20588 * toplev.c (lang_expand_constant): Define it.
20589 * varasm.c (output_constant): Use it.
20590
20591 Thu May 20 11:28:53 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
20592
20593 * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
20594 Change function definitions to K&R style.
20595
20596 Thu May 20 08:16:39 1999 Bruce Korb <ddsinc09@ix.netcom.com>
20597
20598 * fixinc/fixincl.c: We must not ignore SIGCLD now.
20599
20600 Thu May 20 07:06:39 1999 Alexandre Oliva <aoliva@acm.org>
20601
20602 * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
20603 * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
20604 (several places): omit static initialization
20605 (process): use single fd, since only the read fd is used
20606 * fixinc/gnu-regex.c: define 'const' away, if not supported
20607 * fixinc/procopen.c(several places): omit static initialization
20608 * fixinc/server.c: define 'volitile' away, if not supported
20609
20610 1999-05-20 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
20611
20612 * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
20613 asm_fprintf and %L to generate the label name.
20614 * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
20615 (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
20616
20617 Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com)
20618
20619 * jump.c (can_reverse_comparison_p): Do not abort if the comparison
20620 insn for a conditional jump can not be found.
20621
20622 Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com)
20623
20624 * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
20625 on variables in specific sections other than .sbss and .sdata.
20626
20627 Wed May 19 03:56:56 1999 Mark Mitchell <mark@codesourcery.com>
20628
20629 * stmt.c (expand_return): Call start_cleanup_deferral and
20630 end_cleanup_deferral around conditional code.
20631
20632 Wed May 19 08:40:08 1999 Bruce Korb <ddsinc09@ix.netcom.com>
20633
20634 * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
20635 filename lists. Utilizes new "krstr" AutoGen function.
20636 * fixinc/fixincl.x: Rebuilt.
20637
20638 Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz)
20639
20640 * i386.c (output_float_compare): Avoid GNU-C extensions.
20641
20642 Wed May 19 00:34:40 1999 Jeffrey A Law (law@cygnus.com)
20643
20644 * version.c: Bump to distinguish mainline tree from the
20645 gcc-2.95 branch.
20646
20647 See ChangeLog.1 for earlier changes.
This page took 0.853688 seconds and 6 git commands to generate.