fc1f8db160c410adbbae1b6a37c105ba87135d7c
[gcc.git] / gcc / ChangeLog
1 2000-10-17 Mark Mitchell <mark@codesourcery.com>
2
3 * c-common.c (back_end_hook): New variable.
4 * c-common.h (back_end_hook): Declare it.
5 * c-lang.c (finish_file): Use it.
6
7 * emit-rtl.c (init_emit_once): Initialize the const_int_htab
8 earlier.
9
10 2000-10-18 Jan Hubikca <jh@suse.cz>
11
12 * i386.c (ix86_comparison_operator, put_condition_code,
13 ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
14 (ix86_expand_strlensi_unroll_1): Use CCRCmode.
15 * i386.h (EXTRA_CC_MODES): Add CCRCmode.
16 * i386.md (adddi and negdi splitter): Use CCRCmode.
17 (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
18 (subsi3_carry): add '*'
19 (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
20 (cmp to add peep2): Use CCRCmode; swap operands.
21
22 2000-10-18 Kazu Hirata <kazu@hxi.com>
23
24 * config/h8300/h8300.md: Remove an unnecessary sign_extend
25 expander that is used when not optimizing. Output a tab after
26 each assembly insns.
27
28 * reorg.c: Fix formatting.
29
30 2000-10-17 Joern Rennecke <amylaar@redhat.co.uk>
31
32 * reload1.c (move2add_note_store): Check for simple
33 auto-inc in destination.
34
35 2000-10-17 Michael Chastain <chastain@redhat.com>
36
37 * config/i386/i386-aout.h: define INT_ASM_OP.
38
39 Tue Oct 17 20:11:08 2000 Alan Modra <alan@linuxcare.com.au>
40
41 * pa.c (print_operand): Handle case 'c' for .vtable_inherit
42
43 Tue Oct 17 20:05:51 2000 Martin Buchholz <martin@xemacs.org>
44
45 * i370.md: Fix spelling typo.
46
47 2000-10-17 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
48
49 * function.c (locate_and_pad_parm): Don't align stack unconditionally.
50 Fixes execute/20001017-1.c on powerpc-linux-gnu.
51
52 * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
53 * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
54 LABEL_REF.
55
56 * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
57 ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
58 here...
59 * rs6000/aix.h: ...to here.
60 * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
61
62 2000-10-17 Jakub Jelinek <jakub@redhat.com>
63
64 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
65
66 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
67 sure linker can relax even the delay slot mov %g1,%o7, fix output
68 formating.
69
70 2000-10-17 Kazu Hirata <kazu@hxi.com>
71
72 * config/h8300/h8300.md: Remove an unnecessary zero_extend
73 expander that is used when not optimizing. Output a tab after
74 each assembly insns.
75
76 2000-10-17 Chandrakala Chavva <cchavva@redhat.com>
77
78 * gcc.c: New options --target-help.
79 (process_command): Added code to parse this new option.
80 * toplev.c (display_target_options): New function to support the
81 above new option.
82 * cppinit.c (new_pending_directive) : New option OPT_target__help.
83 (cpp_handle_option): Support this new option.
84 * invoke.texi: Added notes about --target-help option.
85
86 2000-10-17 Graham Stott <grahams@redhat.com>
87
88 * config/i386/i386.md (testqi_1): Add missing operand prefix
89 for operand 0.
90 * config/i386/i386-protos.h: Add missing prototype.
91
92 2000-10-17 Diego Novillo <dnovillo@cygnus.com>
93
94 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
95 _GLOBAL_OFFSET_TABLE should not have a $ prefix when
96 using -mintel-syntax.
97
98 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
99
100 * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
101 (format_types): Use it for printf.
102 (maybe_read_dollar_number): Add parameter for the kind of format
103 involved. Warn for multiple use for arguments if this is
104 inappropriate for the kind of format involved.
105 (check_format_info_main): Update calls to maybe_read_dollar_number.
106
107 2000-10-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
108
109 * inclhack.def (hpux_maxint): Also apply fix to values.h.
110 * fixincl.x: Rebuilt.
111
112 2000-10-17 Alexandre Oliva <aoliva@redhat.com>
113
114 * genrecog.c (write_switch): Return the first condition that needs a
115 label.
116
117 2000-10-17 Bernd Schmidt <bernds@redhat.co.uk>
118
119 * c-tree.h (warn_sequence_point): Move declaration to...
120 * c-common.h (warn_sequence_point): ... here.
121 * c-decl.c (warn_sequence_point): Move definition to...
122 * c-common.c (warn_sequence_point): ... here.
123 (struct reverse_tree): New.
124 (reverse_list, reverse_max_depth): New static variables.
125 (build_reverse_tree, common_ancestor, modify_ok
126 verify_sequence_points): New functions.
127 (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
128 * c-typeck.c (check_modify_expr): Delete.
129 (build_modify_expr): Don't call it.
130
131 2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
132
133 * c-common.h (warn_missing_format_attribute): New variable.
134 * c-decl.c (warn_missing_format_attribute): New variable.
135 (c_decode_option): Decode -Wmissing-format-attribute and
136 -Wno-missing-format-attribute.
137 * c-common.c (check_function_format): If
138 -Wmissing-format-attribute, give a warning where a vprintf or
139 vscanf function is called by a function without its own printf or
140 scanf attribute.
141 * toplev.c (documented_lang_options): Add
142 -Wmissing-format-attribute.
143 * invoke.texi: Document -Wmissing-format-attribute.
144
145 2000-10-17 Marc Espie <espie@openbsd.org>
146
147 * invoke.texi (-shared): Insist on requiring code generation flags
148 to be used along with -shared, and document the subtle failure that
149 may occur otherwise.
150
151 2000-10-16 J. David Anglin <dave@hiauly1.hia.nrc.ca>
152
153 * pa.md (return_internal): Move `use' after `return'.
154
155 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
156
157 * machmode.def: Correct comment.
158
159 2000-10-16 Rodney Brown <RodneyBrown@mynd.com>
160
161 * print-rtl.c (print_rtx_head): Constify.
162 * rtl.h (print_rtx_head): Similarly.
163
164 * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
165 Constify char * return value.
166 * config/pa/pa/pa.c
167 (output_64bit_and, output_64bit_ior): Constify char * return value.
168 (pa_can_combine_p): Make static.
169 (function_arg): Decorate unused `named' argument. Fix comment typo.
170 (function_arg_partial_nregs): Decorate unused `named' argument.
171
172 2000-10-16 Joseph S. Myers <jsm28@cam.ac.uk>
173
174 * c-common.c (format_check_results): New structure.
175 (finish_dollar_format_checking): Adjust to take a
176 format_check_results * parameter.
177 (check_format_info, check_format_info_recurse,
178 check_format_info_main): Split check_format_info into three
179 functions, the main checking going in check_format_info_main.
180 Recurse when any reduction of the format string argument towards a
181 string literal is done; go down both branches of a conditional
182 expression. Don't warn for extra format arguments or empty format
183 strings if they only occur in some branches of a conditional
184 expression.
185
186 2000-10-16 Kazu Hirata <kazu@hxi.com>
187
188 * config/h8300/h8300.c: Remove obstack. Include ggc.h.
189
190 2000-10-16 Jakub Jelinek <jakub@redhat.com>
191
192 * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
193
194 2000-10-15 Diego Novillo <dnovillo@cygnus.com>
195
196 * i386.md (*movsi_or): Switch operand order for intel syntax.
197
198 2000-10-14 Joseph S. Myers <jsm28@cam.ac.uk>
199
200 * PROBLEMS: Remove.
201
202 * gcc.texi (Contributing): Update.
203
204 2000-10-13 Diego Novillo <dnovillo@cygnus.com>
205
206 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
207 appropriate assembler dialect.
208
209 2000-10-13 Alexandre Oliva <aoliva@redhat.com>
210
211 * c-common.c (c_expand_builtin): PARAMS-ize prototype.
212
213 2000-10-12 Marek Michalkiewicz <marekm@linux.org.pl>
214
215 * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
216 constants 1 and 2 to NO_LD_REGS.
217
218 2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
219
220 * Makefile.in (c-parse.c, tradcif.c): Create atomically.
221
222 * objc/Make-lang.in (objc-parse.c): Likewise.
223
224 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
225
226 * arm.c: Include obstack.h
227 (minipool_obstack, minipool_startobj): Define.
228 (arm_add_gc_roots): Initialize them.
229 (create_fix_barrier): Use our new obstack.
230 (push_minipool_barrier, push_minipool_fix): Likewise.
231 (arm_reorg): Release obstack memory.
232
233 2000-10-13 Jakub Jelinek <jakub@redhat.com>
234
235 * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
236 (prologue, exception_receiver, builtin_setjmp_receiver): New
237 patterns.
238 * config/sparc/sparc.h (FINALIZE_PIC): Remove.
239 * config/sparc/sparc-protos.h (finalize_pic): Remove.
240 (load_pic_register): New prototype.
241 * config/sparc/sparc.c (pic_setup_code): Remove.
242 (finalize_pic): Rename to...
243 (load_pic_register): ...this function.
244 Don't look for nonlocal_goto_receivers and emit pic setup code
245 directly. Don't check current_function_uses_pic_offset_table.
246
247 2000-10-13 Richard Earnshaw <rearnsha@arm.com>
248
249 * tree.h (struct obstack): Declare.
250
251 2000-10-12 Mark Mitchell <mark@codesourcery.com>
252
253 Remove obstacks.
254 * Makefile.in (ggc-callbacks.o): Remove target.
255 (flow.o): Depend on GGC_H.
256 * alias.c (init_alias_analysis):
257 Remove ggc_p conditionals.
258 (end_alias_analysis): Likewise.
259 * basic-block.h (init_flow): New function.
260 (allocate_reg_life_data): Declare.
261 * bb-reorder.c (function_obstack): Replace with ...
262 (flow_obstack): ... new variable.
263 (fixup_reorder_chain): Use it.
264 * c-decl.c (ggc_p): Remove.
265 (caller-save.c): Don't call oballoc/obfree.
266 * combine.c (struct
267 undobuf): Remove storage.
268 (try_combine): Don't call oballoc.
269 (undo_all): Don't call obfree.
270 * cse.c (insert): Use xmalloc, not
271 oballoc.
272 (cse_main): Adjust accordingly.
273 * dwarf2out.c (save_rtx): Remove
274 obstack code.
275 (dwarf2out_init): Remove ggc_p conditionals.
276 * emit-rtl.c (rtl_obstack): Remove.
277 (gen_rtx_CONST_INT): Remove ggc_p conditionals.
278 (make_insn_raw): Likewise.
279 (emit_insn_before): Likewise.
280 (emit_insn_after): Likewise.
281 (emit_insn): Likewise.
282 (gen_sequence): Likewise.
283 (copy_insn_1): Remove handling of `b' RTL components.
284 (init_emit_once): Remove ggc_p conditionals.
285 * except.c (create_rethrow_ref): Don't fool with obstacks.
286 (add_partial_entry): Likewise.
287 (call_get_eh_context): Likewise.
288 (begin_protect_partials): Likewise.
289 (protect_with_terminate): Likewise.
290 * explow.c
291 (plus_constant_wide): Likewise.
292 * expr.c (init_expr_once):
293 Likewise.
294 (emit_block_move): Likewise.
295 (clear_storage): Likewise.
296 (expand_expr): Likewise.
297 * flow.c (function_obstack): Remove.
298 (flow_obstack): New variable.
299 (flow_firstobj): Likewise.
300 (create_base_block): Use the flow_obstack.
301 (split_block): Likewise.
302 (split_edge): Likewise.
303 (calculate_global_regs_live): Likewise.
304 (allocate_bb_life_data): Make it static. Likewiwse.
305 (init_flow): New function.
306 (size_int_type_wide): Remove ggc_p conditionals.
307 * function.c
308 (push_function_context_to): Don't call save_tree_status.
309 (pop_function_context_from): Or restore_tree_status.
310 (assign_stack_local_1): Don't call push_obstacks.
311 (find_fixup_replacement): Use xmalloc.
312 (fixup_var_refs_insns): Free the storage.
313 (insns_for_mem_walk): Don't mess with obstacks.
314 (instantiate_decls): Likewise.
315 (trampoline_address): Likewise.
316 (expand_function_end): Likewise.
317 * function.h (sturct function):
318 Remove obstack-related variables.
319 (save_tree_status): Don't declare.
320 (restore_tree_status): Likewise.
321 * gcse.c (compute_can_copy):
322 Don't call oballoc/obfree.
323 * genattrtab.c (operate_exp): Remove
324 ggc_p conditionals.
325 (simplify_cond): Likewise.
326 (simplify_test_exp): Don't mess with obstacks.
327 (optimize_attrs): Likewise.
328 * gengenrtl.c (gendef): Don't include
329 ggc_p conditionals.
330 * ggc-callbacks.c (ggc_p): Remove.
331 * ggc-none.c (ggc_p): Remove.
332 * ggc.h (ggc_p): Don't declare.
333 * integrate.c (save_for_inline): Don't mess with obstacks.
334 (integrate_decl_tree): Likewise.
335 (output_inline_function): Likewise.
336 * lists.c
337 (init_EXPR_INSN_LIST_cache): Likewise.
338 * loop.c (temp_obstack):
339 Remove.
340 (rtl_obstack): Likewise.
341 (init_loop): Don't mess with obstacks.
342 (reg_address_cost): Free BIVs and GIVs.
343 (check_insns_for_bivs): Use xmalloc, not oballoc.
344 (find_mem_givs): Likewise.
345 (record_biv): Likewise.
346 (general_induction_var): Likewise.
347 (product_cheap_p): Likewse.
348 * optabs.c (init_one_libfunc): Remove
349 ggc_p conditional.
350 * print-tree.c (debug_tree): Don't use
351 oballoc/obfree.
352 (print_node): Likewise.
353 * profile.c (output_func_start_profiler):
354 Remove call to temporary_allocation.
355 * reload1.c
356 (eliminate_regs_in_insn): Don't mess with obstacks.
357 * resource.c
358 (mark_target_live_regs): Use xmalloc.
359 (free_resource_info): Free the memory.
360 * rtl.c (rtl_obstack):
361 Remove.
362 (rtvec_alloc): Don't mess with obstacks.
363 (rtx_alloc): Likewise.
364 (rtx_free): Remove.
365 (copy_rtx): Don't handle `b' cases.
366 (read_rtx): Use a local rtl_obstack.
367 * rtl.h (oballoc): Remove.
368 (obfree): Likewise.
369 (pop_obstacks): Likewise.
370 (push_obstacks): Likewise.
371 (allocate_bb_life_data): Likewise.
372 (allocate_reg_life_data): Likewise.
373 (rtx_free): Likewise.
374 * sdbout.c (sdbout_queue_anonymous_type):
375 Use tree_cons, not saveable_tree_cons.
376 * simplify-rtx.c
377 (cselib_init): Don't mess with obstacks.
378 * stmt.c
379 (mark_block_nesting): Mark the label_chain.
380 (epxand_label): Use ggc_alloc, not oballoc.
381 (clear_last_expr): Don't mess with obstacks.
382 (expand_decl_cleanup): Likewise.
383 (expand_dcc_cleanup): Likewise.
384 (expand_dhc_cleanup): Likewise.
385 (expand_anon_union_decl): Likewise.
386 (add_case_node): Use xmalloc, not oballoc.
387 (free_case_nodes): New function.
388 (expand_end_case): Call it.
389 * stor-layout.c (layout_type): Don't
390 mess with obstacks.
391 (layout_type): Likewise.
392 * toplev.c (wrapup_global_declarations):
393 Likewise.
394 (compile_file): Remove ggc_p conditionals.
395 (rest_of_compilation): Call init_flow. Remove ggc_p conditionals.
396 (decode_f_option): Remove ggc_p conditionals.
397 * tree.c
398 (function_maybepermanent_obstack): Remove.
399 (maybepermanent_obstack): Likewise.
400 (function_obstack): Likewise.
401 (tmeporary_obstack): Likewise.
402 (momentary_obstack): Likewise.
403 (temp_decl_obstack): Likewise.
404 (saveable_obstack): Likewise.
405 (rtl_obstack): Likewise.
406 (current_obstack): Likewise.
407 (expression_obstack): Likewise.
408 (struct obstack_stack): Likewise.
409 (obstack_stack): Likewise.
410 (obstack_stack_obstack): Likewise.
411 (maybepermanent_firstobj): Likewise.
412 (temporary_firstobj): Likewise.
413 (momentary_firstobj): Likewise.
414 (temp_decl_firstobj): Likewise.
415 (momentary_function_firstobj): Likewise.
416 (all_types_permanent): Likewise.
417 (struct momentary_level): Likewise.
418 (momentary_stack): Likewise.
419 (init_obstacks): Remove initialization of removed obstacks.
420 (save_tree_status): Remove.
421 (restore_tree_status): Likewise.
422 (temporary_allocation): Liekwise.
423 (end_temporary_allocation): Liekwise.
424 (resume_temporary_allocation): Likewise.
425 (saveable_allocation): Likewise.
426 (push_obstacks): Likewise.
427 (push_obstacks_nochange): Likewise.
428 (pop_obstacks): Likewise.
429 (allocation_temporary_p): Likewise.
430 (permanent_allocation): Likewise.
431 (preserve_data): Likewise.
432 (preserve_initializer): Likewise.
433 (rtl_in_current_obstack): Likewise.
434 (rtl_in_saveable_obstack): Likewise.
435 (oballoc): Likewise.
436 (obfree): Likewise.
437 (savealloc): Likewise.
438 (expralloc): Likewise.
439 (print_obstack_name): Likewise.
440 (debug_obstack): Likewise.
441 (object_permanent_p): Likewise.
442 (push_momentary): Likewise.
443 (perserve_momentary): Likewise.
444 (clear_momentary): Likewise.
445 (pop_momentary): Likewise.
446 (pop_momentary_nofree): Likewise.
447 (suspend_momentary): Likewise.
448 (resume_momentary): Likewise.
449 (make_node): Don't set TREE_PERMANENT.
450 (copy_node): Remove ggc_p conditionals. Don't set TYPE_OBSTACK.
451 Don't set TREE_PERMANENT.
452 (get_identifier): Remove ggc_p conditionals.
453 (build_string): Likewise.
454 (make_tree_vec): Likewise.
455 (build_decl_list): Remove.
456 (build_expr_list): Likewise.
457 (tree_cons): Remove ggc_p conditionals.
458 (decl_tree_cons): Remove.
459 (expr_tree_cons): Likewise.
460 (perm_tree_cons): Likewise.
461 (temp_tree_cons): Likewise.
462 (saveable_tree_cons): Likewise.
463 (build1): Remove ggc_p conditionals.
464 (build_parse_node): Likewise.
465 (build_type_attribute_variant): Don't mess with obstacks.
466 (build_type_copy): Likewise.
467 (type_hash_canon): Likewise.
468 (build_pointer_type): Likewise.
469 (build_reference_type): Likewise.
470 (build_index_type): Likewise.
471 (build_range_type): Likewise.
472 (dump_tree_statistics): Don't print obstack information.
473 * tree.h
474 (struct tree_common): Remove permanent_flag.
475 (TREE_PERMANENT): Remove.
476 (TREE_SET_PERMANENT): Likewise.
477 (TYPE_OBSTACK): Likewise.
478 (struct tree_type): Remove obstack.
479 (oballoc): Remove.
480 (savealloc): Likewise.
481 (build_decl_list): Likewise.
482 (build_expr_list): Likewise.
483 (perm_tree_cons): Likewise.
484 (temp_tree_cons): Likewise.
485 (saveable_tree_cons): Likewise.
486 (decl_tree_cons): Likewise.
487 (expr_tree_cons): Likewise.
488 (suspend_momentary): Likewise.
489 (allocation_temporary_p): Likewise.
490 (resume_momentary): Likewise.
491 (push_obstacks_nochange): Likewise.
492 (permanent_allocation): Likewise.
493 (push_momentary): Likewise.
494 (clear_momentary): Likewise.
495 (pop_momentary): Likewise.
496 (end_temporary_allocation): Likewise.
497 (pop_obstacks): Likewise.
498 (push_obstacks): Likewise.
499 (pop_momentary_nofree): LIkewise.
500 (preserve_momentary): Likewise.
501 (saveable_allocation): Likewise.
502 (temporary_allocation): Likewise.
503 (resume_temporary_allocation): Likewise.
504 (perserve_initializer): Likewise.
505 (debug_obstack): Likewise.
506 (rtl_in_current_obstack): Likewise.
507 (rtl_in_saveable_obstack): Likewise.
508 (obfree): Likewise.
509 * varasm.c (current_obstack): Remove.
510 (saveable_obstack): Remove.
511 (rtl_obstack): Remove.
512 (immed_double_const): Don't mess with obstacks.
513 (immed_real_cons): Likewise.
514 (output_constant_def): Likewise.
515 (init_varasm_status): Use xcalloc.
516 (mark_pool_constant): Mark the pool constant itself.
517 (free_varasm_status): Free memory.
518 (decode_rtx_const): Call bzero directly, rather than expanding it
519 inline.
520 (record_rtx_const): Don't mess with obstacks.
521 (force_const_mem): Likewise.
522 * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
523 conditionals.
524 (aof_pic_entry): Likewise.
525 * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
526 * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
527 * config/pa/pa.c (saveable_obstack): Remove.
528 (rtl_obstack): Likewise.
529 (current_obstack): Likewise.
530 (output_call): Don't mess with obstacks.
531 (hppa_encode_label): Remove ggc_p conditionals.
532 * config/romp/romp.c (get_symref): Don't mess with obstacks.
533 * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
534 (rs6000_encode_section_info): Likewise.
535 * config/sh/sh.c (get_fpscr_rtx): Likewise.
536
537 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka <jh@suse.cz>
538
539 * i386.md (adddi3, subdi3 splitters): Update for new pattern.
540 (addsi3_cc, addqi3_cc, subsi3_cc): Remove
541 (addsi3_carry): Canonicalize.
542 (addqi_5): Remove '*'.
543 (sbb pattern): Canonicalize.
544
545 * i386.md (cmp to inc/add peep2): New.
546
547 2000-10-12 Richard Earnshaw <rearnsha@arm.com>
548
549 * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
550 the exit block.
551
552 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
553
554 * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
555 * README.TRAD, TESTS.FLUNK: Remove.
556
557 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
558
559 * c-common.c (decl_attributes): Don't allow strftime formats with
560 first_arg_num nonzero.
561 (check_format_info): Set wanted_type and wanted_type_name to zero
562 before they are possibly assigned and used.
563
564 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
565
566 * c-common.c (scanf_flag_specs): Add flags ' and I.
567 (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
568 or the ^ and # flags together.
569 (scan_char_table): Handle the ' and I flags.
570 (format_types): Add ' and I flags for scanf.
571
572 2000-10-12 Joseph S. Myers <jsm28@cam.ac.uk>
573
574 * c-common.c (print_char_table): Use the unpromoted type for
575 lengths "h" and "hh" with conversions dioxXu.
576 (check_format_types): Apply the default argument promotions where
577 the wanted type is not a pointer target.
578
579 2000-10-11 Michael Meeks <mmeeks@gnu.org>
580 Joseph S. Myers <jsm28@cam.ac.uk>
581
582 * c-typeck.c (check_modify_expr): New function.
583 (build_modify_expr): Call it if warn_sequence_point.
584 * c-decl.c (warn_sequence_point): New variable.
585 (c_decode_option): Handle -Wsequence-point and
586 -Wno-sequence-point. Enable -Wsequence-point as part of -Wall.
587 * c-tree.h (warn_sequence_point): Declare.
588 * invoke.texi (-Wsequence-point): Document.
589 * toplev.c (documented_lang_options): Add -Wsequence-point and
590 -Wno-sequence-point.
591 Original work by Michael Meeks, 16 Jun 1998.
592
593 Wed Oct 11 06:15:41 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
594
595 * tree.c (get_narrower): Don't look at precision of field if
596 not laid out yet.
597
598 Tue Oct 10 23:14:33 2000 Denis Chertykov <denisc@overta.ru>
599
600 * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
601 declaration for data with "progmem" attribute.
602
603 2000-10-09 Marek Michalkiewicz <marekm@linux.org.pl>
604
605 * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
606 Correct insn length if shift count is a memory operand.
607 * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
608 (*iorhi3_clobber): Change lo8 to hi8.
609 (zero_extendhisi2): Change %B0 to %A1.
610 (ashlhi3, ashrhi3): Correct insn length.
611 (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
612 from "clobber" to "set_n" in some alternatives.
613
614 2000-10-10 Jakub Jelinek <jakub@redhat.com>
615
616 * reload1.c (calculate_needs_all_insns): If deleting an instruction,
617 remove its insn_chain structure as well.
618
619 2000-10-09 J. David Anglin <dave@hiauly1.hia.nrc.ca>
620
621 * dbxout.c (dbxout_source_line): Remove extra tab.
622
623 2000-10-09 Hans-Peter Nilsson <hp@bitrange.com>
624
625 * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
626
627 2000-10-09 Richard Henderson <rth@cygnus.com>
628
629 * Makefile.in (LANG_LIB2FUNCS): Remove.
630 (LIB2FUNCS): Remove _pure.
631 (LIB2ADD): Remove LANG_LIB2FUNCS.
632 (stage_a): Don't set LANG_LIB2FUNCS.
633 * libgcc2.c (__terminate): Mark noreturn.
634 (__pure_virtual): Remove.
635 * mklibgcc.in: Remove LIB2ADD .txt processing.
636
637 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
638
639 * arm.md (push_multi): Revert unintended change.
640
641 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
642
643 * arm.c: Miscellaneous white space and comment clean-ups. No
644 functional change.
645 * arm.md: Likewise.
646
647 2000-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
648
649 * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
650 STRING_CST by calling combine_strings.
651
652 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
653
654 * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
655 (thumb_output_move_mem_multiple): Support new insn format.
656 * arm.md (movmem12b): Use SSA compatible format.
657 (movmem8b): Likewise.
658
659 2000-10-09 Richard Earnshaw <rearnsha@arm.com>
660
661 * arm.md (predicable): New attribute, default to "no".
662 (all patterns): Mark as predicable if appropriate.
663 (conditional execution splits): Split using predication format.
664 (define_cond_exec): Define.
665 * arm.c (arm_print_operand): handle insn predicate.
666
667 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
668
669 * README.NS32K: Remove file.
670
671 2000-10-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
672
673 * README-bugs: Remove file.
674
675 2000-10-08 Philipp Thomas <pthomas@suse.de>
676 * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
677 for test.
678 * configure: Rebuilt.
679
680 2000-10-08 Philipp Thomas <pthomas@suse.de>
681 * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
682 disable catalog building if no suitable program was found.
683 Move warning message from here
684 (AM_GNU_GETTEXT): To here.
685 * configure: Rebuilt.
686
687 2000-10-08 Philipp Thomas <pthomas@suse.de>
688 * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
689 different cache variables.
690 (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
691 uses different cache variables.
692 (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
693 * configure: Regenerated.
694
695 2000-10-08 Richard Henderson <rth@cygnus.com>
696
697 * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
698 * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
699 * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
700 Use SHLIB_EXT.
701
702 * config/t-linux (SHLIB_EXT): New.
703 (SHLIB_LINK): Use the entire build command, with substitutions.
704 (SHLIB_LIBS): Remove.
705 * config/alpha/t-osf4: Likewise.
706 * config/mips/t-iris6: Likewise.
707 * config/sparc/t-sol2: Likewise, but move shlib stuff...
708 * config/sparc/t-slibgcc-sld: ...here.
709 * config/sparc/t-slibgcc: New file.
710
711 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
712
713 * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
714 * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
715 CTI_UINTMAX_TYPE.
716 (intmax_type_node, uintmax_type_node): Define.
717 * c-common.c (decl_attributes): If pedantic, warn if `mode'
718 attributes create a type wider than intmax_t.
719 (T_IM, T_UIM): Define properly.
720 * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
721 defined.
722 (init_decl_processing): Initialize intmax_type_node and
723 uintmax_type_node.
724 * c-lex.c (lex_number): When pedantic and warning for integer
725 constants that are too large, in C99 mode warn for those that have
726 a type wider than long long.
727
728 2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
729
730 * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
731 FMT_FLAG_FANCY_PERCENT_OK): Define.
732 (format_char_info): Add flag "4" to comment.
733 (format_flag_spec, format_flag_pair): New structures.
734 (format_kind_info): Add additional fields to control format
735 checking.
736 (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
737 scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
738 arrays.
739 (time_char_table): Use "4" flag to handle %Ey.
740 (format_types): Add entries for new fields.
741 (get_flag_spec): New function.
742 (check_format_info): Increase size of flag_chars[] to 256.
743 Control format checking using the new fields of a format_kind_info
744 and the new tables; remove all conditionals on printf_format_type,
745 scanf_format_type or strftime_format_type. Handle all details of
746 bad combinations of flags (including width, precision and strftime
747 modifiers) through data rather than ad hoc code. Handle all
748 details of standard versions in which flags appeared through
749 data. Use the "4" flag.
750
751 2000-10-07 Will Cohen <wcohen@redhat.com>, Kazu Hirata <kazu@hxi.com>
752
753 * config/h8300/h8300.md: Remove the memory alternative and correct
754 the insn lengths in the templates for sign extention and zero
755 extention.
756
757 2000-10-07 Richard Henderson <rth@cygnus.com>
758
759 * calls.c (expand_call): Disallow sibcalls to noreturn functions.
760 * flow.c (make_edges): Revert last change.
761
762 * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
763 TREE_THIS_VOLATILE.
764 * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
765
766 2000-10-06 David O'Brien <obrien@dragon.nuxi.com>
767
768 * config/alpha/elf.h: Standardize the formatting.
769
770 2000-10-06 David O'Brien <obrien@FreeBSD.org>
771
772 * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
773 #undef.
774
775 2000-10-06 Richard Henderson <rth@cygnus.com>
776
777 * function.c (diddle_return_value): Examine
778 current_function_return_rtx instead of the DECL_RESULT.
779 (expand_function_end): Handle reloading DECL_RESULT from memory
780 into a hard register. Query promote_mode for sign of mismatched
781 modes.
782
783 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
784
785 * haifa-sched.c (schedule_insns): Fix typo in freeing
786 forward_dependency_cache.
787
788 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
789
790 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
791 `TARGET_SH2' as a condition.
792
793 2000-10-06 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
794
795 * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
796 forward_dependency_cache): New variables.
797 (add_dependence, remove_dependence): Use anti_dependency_cache and
798 output_dependency_cache.
799 (compute_block_forward_dependences): Use forward_dependency_cache.
800 (schedule_insns): Allocate and free memory for anti/output/forward
801 dependencies caches.
802
803 2000-10-06 Alexandre Oliva <aoliva@redhat.com>
804
805 * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
806 `! TARGET_SH1'. Reindent.
807
808 2000-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
809
810 * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
811 Move functions from here ...
812
813 * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
814 ... to here.
815 (c_expand_builtin): New function.
816 (init_function_format_info): Don't set `check_function_format_ptr'.
817 (c_common_nodes_and_builtins): Set built_in_class type for
818 printf/__builtin_printf to BUILT_IN_FRONTEND.
819 (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
820
821 * c-common.h (build_function_call): Declare.
822
823 * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
824 to `lang_expand_expr' rather than `expand_builtin'.
825
826 * tree.c (check_function_format_ptr): Delete.
827
828 * tree.h (check_function_format_ptr): Likewise.
829
830 2000-10-06 Hans-Peter Nilsson <hp@bitrange.com>
831
832 * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
833 DW_OP_bregx when cfa->reg > 31.
834
835 * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
836 break.
837
838 2000-10-05 Richard Henderson <rth@cygnus.com>
839
840 * c-decl.c (warn_missing_noreturn): Remove.
841 (c_expand_body): Don't set or check can_reach_end.
842 * c-tree.h (warn_missing_noreturn): Move ...
843 * flags.h: ... here.
844 (can_reach_end): Remove.
845 * flow.c (check_function_return_warnings): New.
846 (make_edges): No edge to exit for noreturn sibcalls.
847 * function.c (expand_function_end): Save the return value
848 clobber instruction.
849 (mark_function_status): Mark it.
850 * function.h (struct function): Add x_clobber_return_insn.
851 * jump.c (can_reach_end): Remove.
852 (calculate_can_reach_end): Remove.
853 (jump_optimize_1): Don't call it.
854 * output.h (check_function_return_warnings): Declare.
855 * toplev.c (warn_missing_noreturn): Move from c-decl.c
856 (rest_of_compilation): Call check_function_return_warnings.
857
858 2000-10-05 Richard Henderson <rth@cygnus.com>
859
860 * Makefile.in (NM_FOR_TARGET): New.
861 (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
862 (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
863 * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map. Depend the
864 shared library build on that and EXTRA_MULTILIB_PARTS.
865 * mkmap-flat.awk: New file.
866 * mkmap-symver.awk: New file.
867 * libgcc-std.ver: New file.
868 * config/libgcc-glibc.ver: New file.
869 * config/ia64/libgcc-ia64.ver: New file.
870 * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
871 (SHLIB_LINK): Add --version-script.
872 * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
873 * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
874 * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
875 (SHLIB_LINK): Add -M.
876
877 2000-10-05 Richard Henderson <rth@cygnus.com>
878
879 * Makefile.in (LIB2FUNCS): Add _clz.
880 * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
881 (__clz_tab): Put in its own unit, non-static.
882 * libgcc2.h: Always include longlong.h.
883
884 * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
885 a zero instead of -1.
886 (count_trailing_zeros): Likewise.
887
888 2000-10-05 Richard Henderson <rth@cygnus.com>
889
890 * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
891 when second op1 is const0_rtx. Validate op0 as a register.
892 * config/alpha/alpha.md (setcc_internal): Don't allow constants
893 in the first argument of the compare.
894 (setcc_swapped_internal): Likewise.
895 (setne_internal): Likewise.
896
897 2000-10-05 Geoff Keating <geoffk@cygnus.com>
898
899 * tree.c (tree_size): New function split out of copy_node.
900 (make_node): Remove obstack handling. Use tree_size.
901 (copy_node): Use tree_size.
902 * tree.h: Prototype tree_size.
903
904 2000-10-05 Richard Henderson <rth@cygnus.com>
905
906 * diagnostic.c (output_format): Add missing break.
907
908 2000-10-05 Jim Wilson <wilson@cygnus.com>
909
910 * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
911 SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
912 sequence insn to INSN, and delete last sequence insn.
913
914 2000-10-05 Phil Edwards <pme@gcc.gnu.org>
915
916 * gcc.c (main): Include generated configargs.h header
917 and use arguments in '-v' output.
918
919 Thu Oct 5 16:16:57 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
920
921 * gcc.c: Move data on prefixes forward in file and reorganize.
922 (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
923 Always define, but make null if no value.
924 (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
925 and "md_startfile_prefix_1".
926 (main): Check whether md_exec_prefix and the others are the
927 null string rather than whether the macro is defined.
928
929 Thu Oct 5 19:04:18 2000 J"orn Rennecke <amylaar@redhat.co.uk>
930
931 * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
932 from PSImode to SImode.
933
934 2000-10-05 Jakub Jelinek <jakub@redhat.com>
935
936 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
937 from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
938 * dwarf2out.c (add_const_value_attribute): Divide by 4, not
939 sizeof(long).
940
941 Thu Oct 5 09:31:31 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
942
943 * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
944 negation in proper type.a
945
946 2000-10-04 Richard Henderson <rth@cygnus.com>
947
948 * configure.in (enable-shared): New.
949 * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
950 (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
951 * mklibgcc.in: Use them to link shared a libgcc.
952 * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
953 * config/alpha/t-ieee (SHLIB_MULTILIB): New.
954 * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
955 * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
956
957 * configure.in (alpha-osf*): Use t-osf and x-osf.
958 * config/alpha/t-osf: New file.
959 * config/alpha/t-osf4: New file.
960 * config/alpha/x-osf: New file.
961 * config/alpha/x-alpha: Remove file.
962
963 2000-10-04 Will Cohen <wcohen@redhat.com>
964
965 * c-typeck.c (process_init_element): Added warning for zero-length
966 array.
967
968 * extend.texi (Zero Length): State that static initializers for
969 zero-length arrays are not allowed.
970
971 Mon Oct 2 14:50:14 MET DST 2000 Jan Hubicka <jh@suse.cz>
972
973 * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
974 to come last.
975
976 2000-10-03 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
977
978 * config/float-c4x.h: New.
979 * configure.in (c4x-*): Set float_format to c4x.
980 * configure: Regenerate.
981
982 2000-10-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
983
984 * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
985 compilation for solaris versions 2.7 and greater.
986
987 2000-10-02 David O'Brien <obrien@dragon.nuxi.com>
988
989 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
990
991 2000-10-01 Mark Mitchell <mark@codesourcery.com>
992
993 * config/ns32k/genix.h: Remove.
994 * config/ns32k/x-genix: Likewise.
995 * config/ns32k/xm-genix.h: Likewise.
996 * config/fx80: Remove all filee in directory.
997 * config/pyr: Likewise.
998 * config/tahoe: Likewise.
999 * config/gmicro: Likewise.
1000 * config/spur: Likewise.
1001 * configure.in: Remove configury bits for above targets.
1002 * configure: Regenerated.
1003
1004 * configure.in: Don't configure chill by default.
1005 * configure: Regenerated.
1006
1007 * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
1008 (lang_mark_false_label_stack): Remove.
1009 * c-lex.c (init_c_lex): Add file_info_tree as GC root. Allocate
1010 <top level> string in GC area.
1011 (mark_splay_tree_node): New function.
1012 (mark_splay_tree): Likewise.
1013 * except.c (mark_eh_status): Only call lang_mark_false_label_stack
1014 if it exists.
1015 * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
1016 * ggc-common.c (lang_mark_false_label_stack): Change type.
1017 * ggc.h (ggc_alloc_string): Add comment.
1018 (ggc_strdup): New function.
1019
1020 Sat Sep 23 19:10:20 2000 Denis Chertykov <denisc@overta.ru>
1021
1022 * config/avr/avr.h (BRANCH_COST): Define as 0.
1023
1024 * config/pdp11/pdp11.c: #include "tree.h" added.
1025
1026 2000-09-30 Marek Michalkiewicz <marekm@linux.org.pl>
1027
1028 * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
1029 ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
1030 with known shift count.
1031 * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
1032 New alternative for shift count 2 with no scratch register.
1033 (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
1034 "set_n" for shift counts 1 and 2.
1035
1036 2000-09-30 Geoff Keating <geoffk@cygnus.com>
1037
1038 * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE. Calculate
1039 the mask value from the individual SET operations.
1040 (return_internal_si): Move the USE after the RETURN.
1041 (return_internal_di): Likewise.
1042 (return_and_restore_fpregs_si): Likewise.
1043 (return_and_restore_fpregs_di): Likewise.
1044 (return_eh_si): Likewise.
1045 (return_eh_di): Likewise.
1046 * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
1047 or check, the USE.
1048 (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
1049 Don't generate a PARALLEL around a single operation movsi_to_cr.
1050 Generate the RETURN first in any PARALLELs.
1051
1052 * rtlanal.c (single_set_1): Use fatal_insn to display the
1053 invalid insn. Check for more cases when a USE or CLOBBER occurs
1054 before a SET.
1055 * Makefile.in: Update dependencies for rtlanal.o.
1056
1057 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
1058
1059 * i386.c: Move include of "config.h" to before that of <setjmp.h>.
1060
1061 2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
1062
1063 * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
1064 Consistently use @email for formatting email addresses.
1065
1066 2000-09-29 Richard Henderson <rth@cygnus.com>
1067
1068 * cse.c (notreg_cost): New argument outer.
1069 (COST): Pass in SET to notreg_cost
1070 (COST_IN): New.
1071 (fold_rtx): Use COST_IN. Prefer constants when costs
1072 are the same.
1073
1074 2000-09-29 David Edelsohn <edelsohn@gnu.org>
1075
1076 * fixinc/inclhack.def (broken_cabs): Generalize regex.
1077 * fixinc/fixincl.x: Regenerate.
1078
1079 2000-09-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1080
1081 * loop.c (check_final_value): A GIV is not replaceable if used
1082 before set.
1083
1084 Fri Sep 29 10:04:12 2000 Jeffrey A Law (law@cygnus.com)
1085
1086 * version.c: Bump to gcc-2.97.
1087
1088 Frs Sep 29 13:37:59 MET DST 2000 Jan Hubicka <jh@suse.cz>
1089
1090 * final.c (final_scan_insn): Remove extra extract_insn call;
1091 Use caching for constrain_operands.
1092 (cleanup_subreg_operands): Use caching for extract_insn.
1093 * recog.c (constrain_operands_cached): New.
1094 * recog.h (constrain_operands_cached): Declare.
1095 * i386.c (ix86_attr_length_immediate_default,
1096 ix86_attr_length_address_default, ix86_agi_dependant): Cache
1097 extract_insn call.
1098
1099 * recog.c (asm_noperands): Tweak.
1100 (extract_insn): Do not call asm_noperads for non-asm instructions.
1101
1102 Fri Sep 29 13:20:42 MET DST 2000 Jan Hubicka <jh@suse.cz>
1103
1104 * recog.c (recog_memoized): Rename to recog_memoized_1.
1105 * recog.h (recog_memoized): Rename to recog_memoized_1.
1106 (recog_memoized): New macro.
1107 * rtl.h (single_set): Rename to single_set_1
1108 (single_set): New macro.
1109 * rtlanal.c (single_set): Rename to single_set_1; expect clobbers
1110 to be last.
1111
1112 * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
1113 Do not use match_dup of input operands at outputs.
1114 Use register_operand for memory expression.
1115 (rep_movsi): Put use last, canonicalize.
1116 Use register_operand for memory expression.
1117 (rep_movqi): Put use last.
1118 Use register_operand for memory expression.
1119 (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
1120 of input operands at outputs. Use register_operand for memory
1121 expression.
1122 (rep_stossi): Put use last; canonicalize; fix match_dup in
1123 the address expression
1124 (rep_stosqi): Likewise.
1125 (memcmp expander): Update calls.
1126 (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
1127 the clobbers.
1128
1129 * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
1130 VOIDmode.
1131 (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
1132
1133 2000-09-28 David O'Brien <obrien@FreeBSD.org>
1134
1135 * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
1136 Contains the old contents of config/i386/freebsd.h
1137 * config/i386/freebsd.h: Now the ELF rather than a.out config file.
1138 Contains the old contents of config/i386/freebsd-elf.h
1139 * config/i386/freebsd-elf.h: Retire this file -- contents moved to
1140 config/i386/freebsd.h.
1141 * configure.in: Adjust for above changes.
1142 * po/POTFILES.in: Likewise.
1143 * po/en_GB.po: Likewise.
1144 * po/gcc.pot: Likewise.
1145 * configure: Rebuilt.
1146
1147 2000-09-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1148
1149 * doloop.c (doloop_modify): Prevent delete_insn() from
1150 deleting too much. Prefer loop->top over loop->start as
1151 target for the new JUMP insn.
1152 (doloop_valid_p): Ignore loop with exit_count != 0.
1153
1154 2000-09-28 Philipp Thomas <pthomas@suse.de>
1155
1156 * invoke.texi (i386 Options): Add athlon to table of possible
1157 choices for -mcpu=.
1158
1159 2000-09-28 Gabriel Dos Reis <gdr@codesourcery.com>
1160
1161 * diagnostic.h (output_clear_message_text): New function.
1162 (output_message_text): New macro.
1163
1164 * diagnostic.c (clear_text_info): Rename to
1165 output_clear_message_text.
1166 (output_clear): Adjust.
1167 (output_finish): Rename to output_finalize_message. Tweek.
1168 (output_to_stream): Adjust.
1169
1170 2000-09-28 Neil Booth <neilb@earthling.net>
1171
1172 * cpperror.c (_cpp_begin_message): Do the test for suppression
1173 of warnings and pedantic warnings before the "is a warning an
1174 error" tests.
1175 * cppinit.c (cpp_handle_option): Remove surplus \n.
1176 * cpplex.c (ON_REST_ARG): Delete.
1177 (skip_block_comment): Initialise prevc.
1178 (parse_args): Improve error messages.
1179 (maybe_paste_with_next): Use CONTEXT_VARARGS rather
1180 than ON_REST_ARG.
1181 * cpplib.c (cpp_push_buffer): Fix grammar in message.
1182 * cppmain.c (main): Set callbacks for #ident and #pragma
1183 only if no_output option is false.
1184 (do_pragma_implementation): Only call the #pragma handler
1185 if it is set in the cpp_reader structure.
1186
1187 Wed Sep 27 14:00:07 2000 Donald Lindsay <dlindsay@cygnus.com>
1188
1189 * integrate.c (copy_insn_list): if an ignored return value
1190 is being clobbered, skip cloning that into the inline copy.
1191
1192 2000-09-27 Joseph S. Myers <jsm28@cam.ac.uk>
1193
1194 * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
1195 use @uref for formatting URLs.
1196
1197 2000-09-27 Mark Elbrecht <snowball3@bigfoot.com>
1198
1199 * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
1200 name and prefix.
1201
1202 Tue 26-Sep-2000 18:25:38 BST Neil Booth <neilb@earthling.net>
1203
1204 * gcc.c (cpp_options): Add spec for -ftabstop=.
1205 (invoke_as): New spec that handles invoking as.
1206 Update specs to handle -save-temps and -traditional.
1207 * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
1208 Use invoke_as.
1209 * cp/lang-specs.h, objc/lang-specs.h: Update to use
1210 invoke_as, and handle -save-temps and -traditional (if
1211 appropriate).
1212
1213 2000-09-26 Jakub Jelinek <jakub@redhat.com>
1214
1215 * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
1216 op0 is a SUBREG.
1217 (function_arg_slotno): Accept TImode/CTImode.
1218 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
1219 to UNITS_PER_WORD.
1220
1221 2000-09-26 Michael Hayes <mhayes@cygnus.com>
1222
1223 * flow.c (flow_loop_pre_header_scan): Punt if loop enters
1224 from entry block.
1225
1226 2000-09-25 Jim Wilson <wilson@cygnus.com>
1227
1228 * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
1229 (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
1230 (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
1231 (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
1232
1233 Tue 26-Sep-2000 00:16:22 BST Neil Booth <neilb@earthling.net>
1234
1235 * cpplex.c (parse_args): Don't set VOID_REST flag.
1236 (CONTEXT_VARARGS): New flag.
1237 (maybe_paste_with_next): Set context earlier in loop. Use
1238 it. Do varargs test with CONTEXT_VARARGS flag.
1239 (push_arg_context): Set CONTEXT_VARARGS flag if we're
1240 pushing an argument context for a varargs argument.
1241 * cpplib.h (VOID_REST): Delete.
1242 * gcc.dg/cpp/vararg1.c: Add test case.
1243
1244 2000-09-25 Branko Cibej <branko.cibej@hermes.si>
1245
1246 * flags.h: Declare warning flag warn_system_headers.
1247 * toplev.c: Define it.
1248 (W_options): Add option -Wsystem-headers.
1249 * diagnostic.c (count_error): Test warn_system_headers.
1250 * invoke.texi: Add description for -Wsystem-headers.
1251 * cpplib.h (cpp_options): New member warn_system_headers.
1252 * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
1253 CPP_IN_SYSTEM_HEADER.
1254 * cpplib.c (do_import, do_pragma_once): Likewise.
1255 * cpperror.c (_cpp_begin_message): Test warn_system_headers
1256 and CPP_IN_SYSTEM_HEADER.
1257 * cppinit.c (handle_option): Recognize -Wsystem_headers.
1258 (print_help): Describe -Wsystem_headers.
1259 * cpplex.c (lex_line): Reorganize condition so that warnings
1260 about C++ comments in system headers can be enabled. Remove
1261 label do_line_comment.
1262
1263 Mon 25-Sep-2000 23:38:27 BST Neil Booth <neilb@earthling.net>
1264
1265 * cpplex.c (save_comment): Only store the initial '/'
1266 now.
1267 (lex_token): Combine handling of the two comment types.
1268 Pass everything but the initial '/' to save_comment.
1269
1270 Mon 25-Sep-2000 23:31:45 BST Neil Booth <neilb@earthling.net>
1271
1272 * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
1273 _cpp_can_paste): New library-internal prototypes.
1274 * cpplex.c (dump_param_spelling, output_line_command,
1275 output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
1276 cpp_printf, cpp_output_list): Move to cppoutput.c.
1277 (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
1278 * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
1279 cppoutput.c.
1280 * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
1281 dump_param_spelling, output_line_command, cpp_scan_buffer,
1282 cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
1283 from elsewhere.
1284 * Makefile.in: Add cppoutput.c.
1285 * po/POTFILES.in: Add cppoutput.c.
1286
1287 2000-09-25 Richard Henderson <rth@cygnus.com>
1288
1289 * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
1290 * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
1291 split until after reload.
1292 (rotlsi3, rotldi3): New.
1293
1294 2000-09-25 Gabriel Dos Reis <gdr@codesourcery.com>
1295
1296 * diagnostic.c (output_last_position): Define.
1297 (set_real_maximum_length): Tweek.
1298 * diagnostic.h (output_last_position): Declare.
1299
1300 2000-09-25 Kazu Hirata <kazu@hxi.com>
1301
1302 * config/i386/i386.c: Fix formatting.
1303
1304 2000-09-24 Alan Lehotsky <alehotsky@cygnus.com>
1305
1306 * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
1307 UNITS_PER_WORD is small.
1308
1309 2000-09-25 Joseph S. Myers <jsm28@cam.ac.uk>
1310
1311 * c-common.c (format_char_info): Add flags2; update comments.
1312 (print_char_table, scan_char_table, time_char_table): Split some
1313 flags out into flags2.
1314 (check_format_info): Use flags2 for those flags, for identifying
1315 the initial character of a scanf scanset, and for identifying
1316 printf formats where the '0' flag is ignored with precision.
1317
1318 2000-09-25 Hans-Peter Nilsson <hp@axis.com>
1319
1320 Changes below marked "here" add TABs on either or both sides,
1321 covering start of line, up to any operand for all noted .*ASM.*_OP
1322 definitions. All callers changed.
1323 * tm.texi: Make documented *_ASM.*_OP:s include spacing
1324 (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
1325 BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
1326 ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
1327 ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
1328 Fix typos in description for LONG_LONG_TYPE_SIZE and
1329 FINI_SECTION_ASM_OP.
1330 * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
1331 why these defaults don't have leading spacing.
1332 * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
1333 * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
1334 UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
1335 * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
1336 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
1337 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
1338 * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
1339 * varasm.c (ASM_STABS_OP): Here.
1340 * xcoffout.h (ASM_STABS_OP): Here.
1341 * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
1342 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
1343 INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
1344 STRING_ASM_OP): Here.
1345 * config/freebsd.h (IDENT_ASM_OP): Here.
1346 * config/linux-aout.h (SET_ASM_OP): Here.
1347 * config/linux.h (SET_ASM_OP): Here.
1348 * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
1349 INT_ASM_OP): Here.
1350 * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
1351 * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
1352 * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
1353 * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
1354 INT_ASM_OP): Here.
1355 * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
1356 SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
1357 INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
1358 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
1359 FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
1360 * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
1361 CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
1362 * config/a29k/udi.h (INT_ASM_OP): Here.
1363 * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
1364 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
1365 SET_ASM_OP): Here.
1366 * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
1367 READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1368 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
1369 UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
1370 ASM_STABD_OP): Here.
1371 * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
1372 COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
1373 CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
1374 BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
1375 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
1376 SIZE_ASM_OP, STRING_ASM_OP): Here.
1377 * config/alpha/vms.h (LINK_SECTION_ASM_OP,
1378 READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
1379 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
1380 * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
1381 (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
1382 * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
1383 Here.
1384 * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1385 BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
1386 * config/arm/coff.h (INT_ASM_OP): Here.
1387 * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
1388 * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
1389 * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
1390 INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
1391 * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
1392 * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1393 ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
1394 STRING_ASM_OP): Here. Update documentation copy in comments.
1395 * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
1396 * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
1397 DATA_SECTION_ASM_OP): Here.
1398 * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
1399 Here.
1400 * config/convex/convex.h (TEXT_SECTION_ASM_OP,
1401 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
1402 * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1403 BSS_SECTION_ASM_OP): Here.
1404 * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1405 BSS_SECTION_ASM_OP): Here.
1406 * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
1407 Here.
1408 * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
1409 DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
1410 * config/h8300/h8300.h (ASM_WORD_OP): Here.
1411 * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1412 BSS_SECTION_ASM_OP): Here.
1413 * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
1414 * config/i386/bsd.h (ASM_BYTE_OP): Here.
1415 * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
1416 * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
1417 * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
1418 Here.
1419 * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
1420 * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
1421 Here.
1422 * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
1423 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
1424 * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
1425 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
1426 SET_ASM_OP): Here.
1427 * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
1428 * config/i386/netbsd.h (INT_ASM_OP): Here.
1429 * config/i386/openbsd.h (INT_ASM_OP): Here.
1430 * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
1431 IDENT_ASM_OP): Here.
1432 * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
1433 ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
1434 LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
1435 SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
1436 * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
1437 SHARED_BSS_SECTION_ASM_OP): Here.
1438 * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
1439 * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
1440 DATA_SECTION_ASM_OP): Here.
1441 * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
1442 CONST_SECTION_ASM_OP): Here.
1443 * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
1444 * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1445 BSS_SECTION_ASM_OP): Here.
1446 * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
1447 * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
1448 * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
1449 BSS_ASM_OP): Here, but use trailing spaces.
1450 * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
1451 DATA_SECTION_ASM_OP): Here.
1452 * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
1453 Here.
1454 * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
1455 DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
1456 * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
1457 TDESC_SECTION_ASM_OP): Here.
1458 * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
1459 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
1460 * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
1461 Here.
1462 * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1463 BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
1464 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
1465 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
1466 * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
1467 COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
1468 FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
1469 SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
1470 * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
1471 * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
1472 * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
1473 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
1474 SET_ASM_OP): Here.
1475 * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
1476 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
1477 * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
1478 * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
1479 * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
1480 * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
1481 * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
1482 * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1483 GLOBAL_ASM_OP): Here.
1484 * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
1485 BSS_SECTION_ASM_OP): Here.
1486 * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
1487 * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1488 ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
1489 DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
1490 SKIP_ASM_OP): Here.
1491 * config/m68k/newsgas.h (SET_ASM_OP): Here.
1492 * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
1493 FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
1494 * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
1495 SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
1496 SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
1497 but use trailing spaces.
1498 * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
1499 DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
1500 FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
1501 Here.
1502 * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
1503 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
1504 * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1505 CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
1506 DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
1507 IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
1508 GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
1509 BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
1510 CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
1511 SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
1512 VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
1513 PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
1514 ASM_BYTE_OP): Here.
1515 * config/m88k/openbsd.h (SET_ASM_OP): Here.
1516 * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
1517 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
1518 * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
1519 UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
1520 DTORS_SECTION_ASM_OP): Here.
1521 * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
1522 DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
1523 * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
1524 BSS_SECTION_ASM_OP): Here.
1525 * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
1526 * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
1527 * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
1528 POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
1529 CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
1530 DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
1531 * config/mips/mips.c (ABICALLS_ASM_OP): Here.
1532 * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
1533 Here.
1534 * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
1535 Here.
1536 * config/mips/osfrose.h (SET_ASM_OP): Here.
1537 * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
1538 * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
1539 * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
1540 * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
1541 Here.
1542 * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
1543 * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
1544 * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
1545 * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
1546 * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
1547 * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
1548 Here.
1549 * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
1550 Here.
1551 * config/rs6000/rs6000.h (SET_ASM_OP): Here.
1552 * config/rs6000/sol2.h (ASM_STABN_OP): Here.
1553 * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
1554 Here.
1555 * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
1556 UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
1557 * config/sparc/linux.h (COMMON_ASM_OP): Here.
1558 * config/sparc/linux64.h (COMMON_ASM_OP,
1559 UNALIGNED_DOUBLE_INT_ASM_OP): Here.
1560 * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
1561 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
1562 * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
1563 * config/sparc/pbd.h (ASM_INT_OP): Here.
1564 * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
1565 * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
1566 DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
1567 * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
1568 UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
1569 * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
1570 UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
1571 UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
1572 TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
1573 CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
1574 CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
1575 EH_FRAME_SECTION_ASM_OP): Here.
1576 * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
1577 * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
1578 Here.
1579 * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
1580 Here.
1581 * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
1582 TCOMMON_ASM_OP): Here.
1583 * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
1584 Here.
1585 * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
1586 ASM_BYTE_OP): Here.
1587
1588 2000-09-25 Richard Henderson <rth@cygnus.com>
1589
1590 * expmed.c (store_bit_field): Adjust last change to not consider
1591 any word-sized field naturally aligned.
1592
1593 2000-09-24 Richard Henderson <rth@cygnus.com>
1594
1595 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
1596 TFmode unordered compares properly. Revalidate integer compare
1597 operands.
1598 (alpha_emit_setcc): New.
1599 (alpha_emit_conditional_move): Revalidate integer compare operands.
1600 * config/alpha/alpha-protos.h: Update.
1601 * config/alpha/alpha.md (cmpdi): Allow general operands.
1602 (sne): Use alpha_emit_setcc.
1603 (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
1604 (sunordered, sordered): New.
1605
1606 2000-09-24 Richard Henderson <rth@cygnus.com>
1607
1608 * config/ia64/ia64-protos.h: Update.
1609 * config/ia64/ia64.c (call_multiple_values_operation): Remove.
1610 (ia64_expand_call): New.
1611 (ia64_expand_prologue): Emit an alloc if we need extra input
1612 registers.
1613 (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
1614 instruction if true.
1615 (struct reg_flags): Add is_sibcall.
1616 (rtx_needs_barrier): A sibcall does not use CFM et al. Ignore USEs.
1617 (emit_insn_group_barriers): Set flags.is_sibcall. Remove hacks
1618 for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
1619 * config/ia64/ia64.h (PREDICATE_CODES): Update.
1620 * config/ia64/ia64.md (call): Use ia64_expand_call.
1621 (call_value): Likewise.
1622 (sibcall, sibcall_value): New.
1623 (call patterns): Remove extra expanders; tidy.
1624 (sibcall_epilogue): New.
1625 (set_bsp): Remove the extra USE. Put the operand inside the UNSPEC.
1626
1627 2000-09-24 Richard Henderson <rth@cygnus.com>
1628
1629 * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
1630
1631 * sibcall.c (skip_pic_restore): New.
1632 (identify_call_return_value): Use it.
1633
1634 2000-09-24 Mark Mitchell <mark@codesourcery.com>
1635
1636 * c-tree.texi: Moved here from cp/ir.texi. Documented nested
1637 functions. Generalize to handle both C and C++.
1638 * Makefile.in (c-tree.info): New target.
1639 (info): Add c-tree.info.
1640
1641 Sun Sep 24 09:15:48 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1642
1643 * expr.c (store_field): If BITSIZE is negative, use size of type.
1644 (expand_expr, case COMPONENT_EXPR): Likewise.
1645
1646 Sun 24-Sep-2000 11:40:23 BST Neil Booth <NeilB@earthling.net>
1647
1648 * cpplex.c: Update TODO comment.
1649 * cpplib.c (do_error, do_warning): Merge common code of
1650 do_error and do_warning into do_diagnostic. Use it.
1651 (do_diagnostic): New function.
1652 * cpplib.h: Fix comment typo.
1653
1654 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
1655
1656 * c-common.c (check_format_info): Warn for a wide character string
1657 used as a non-wide format argument.
1658
1659 2000-09-24 Joseph S. Myers <jsm28@cam.ac.uk>
1660
1661 * builtins.def (BUILT_IN_LLABS): Add.
1662 * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
1663 * c-common.c (c_common_nodes_builtins): Create builtin functions
1664 __builtin_llabs, and plain llabs unless no_nonansi_builtins
1665 outside of C99 mode.
1666 (expand_tree_builtin): Handle BUILT_IN_LLABS.
1667
1668 Sat 23-Sep-2000 22:39:18 BST Neil Booth <NeilB@earthling.net>
1669
1670 * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
1671 CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
1672 * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
1673 _cpp_free_toklist): No need to worry about extra dummy token
1674 at the start of token lists any more.
1675 (trigraph_ok): Only warn outside comments.
1676 (skip_block_comment): Set and clear lexing_comment.
1677 (skip_line_comment): Take a cpp_reader not cpp_buffer.
1678 Set and clear lexing_comment.
1679 (parse_number): Handle leading '.' indicated by pfile->seen_dot.
1680 (check_long_token): Delete.
1681 (lex_percent, lex_dot): New subroutines of lex_token to
1682 handle lexing of '.' and '%' without lookback.
1683 (lex_token): Use lex_dot and lex_percent.
1684 (lex_line): Don't check for LIST_OFFSET.
1685 (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
1686 * cpplib.c (_cpp_parse_assertion): Similarly.
1687 (cpp_push_buffer): Initialize extra_char.
1688 * cpplib.h (LIST_OFFSET): Delete.
1689 (struct cpp_buffer): New member extra_char.
1690 (struct lexer_state): New members lexing_comment and seen_dot.
1691
1692 2000-09-23 Jason Merrill <jason@redhat.com>
1693
1694 * config/rs6000/x-aix41 (CLIB): Define here.
1695 * config/rs6000/t-aix43: Not here.
1696 * config/rs6000/t-aix41: Or here. Remove.
1697 * configure.in: Don't use it.
1698
1699 2000-09-22 Jason Merrill <jason@redhat.com>
1700
1701 * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
1702 * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
1703 * config.in: Regenerate.
1704
1705 * configure.in: Fix checks for assembler features when using a
1706 one-tree assembler that has not yet been built.
1707 Fix --disable-threads.
1708
1709 2000-09-19 Geoff Keating <geoffk@cygnus.com>
1710
1711 * stmt.c (expand_asm_operands): Allow # in constraints.
1712
1713 2000-09-22 Jason Merrill <jason@redhat.com>
1714
1715 * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
1716
1717 * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
1718 function-local names.
1719
1720 2000-09-22 Brad Lucier <lucier@math.purdue.edu>
1721 Mark Mitchell <mark@codesourcery.com>
1722
1723 * toplev.c (warn_disabled_optimization): Declare new warning flag.
1724 * flags.h (warn_disabled_optimization): Add it here.
1725 * gcse.c (gcse_main): Add warning when disabled.
1726 * invoke.texi: Document -Wdisabled-optimization.
1727
1728 2000-09-21 Jason Merrill <jason@redhat.com>
1729
1730 * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
1731
1732 * dwarf2out.c (tree_add_const_value_attribute): New fn.
1733 (gen_variable_die): Call it for non-definitions.
1734
1735 * dwarf2out.c (die_struct): Add die_mark field.
1736 (mark_dies, unmark_dies): New fns.
1737 (clear_die_sizes): Remove.
1738 (print_die): Check die_symbol rather than die_offset.
1739 (build_abbrev_table, output_pubnames, output_aranges): Check
1740 die_mark rather than die_offset.
1741 (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
1742 Call mark_dies.
1743
1744 Thu 21-Sep-2000 18:19:05 BST Neil Booth <NeilB@earthling.net>
1745
1746 * cppfiles.c (lookup_include_file): Rename to open_file.
1747 Always create a splay tree value, even on syscall failures.
1748 Negative entries indicated by fd == -2.
1749 Re-open files closed in the meantime.
1750 (_cpp_fake_include): Create a negative splay tree entry.
1751 (find_include_file, cpp_read_file): Update for function name
1752 change.
1753 * gcc.gd/cpp/mi4.c: Testcase.
1754
1755 2000-09-21 Nick Clifton <nickc@redhat.com>
1756
1757 * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
1758 ARM and THUMB modes.
1759
1760 * config/mcore/mcore.c: Fix compile time warnings.
1761 * config/mcore/mcore-protos.h: Fix compile time warnings.
1762
1763 2000-09-20 J. David Anglin <dave@hiauly1.hia.nrc.ca>
1764
1765 * configure.in: Correct test of gcc_cv_glibc.
1766 * configure: Rebuilt.
1767 * config.in: Rebuilt.
1768
1769 2000-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1770
1771 * builtins.c (expand_builtin_fputs): Also expand when length!=1.
1772 (expand_builtin): Handle BUILT_IN_FWRITE.
1773
1774 * builtins.def (BUILT_IN_FWRITE): New entry.
1775
1776 * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
1777
1778 Wed Sep 20 15:39:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1779
1780 * gcc.c (modify_target): New variable and struct.
1781 (process_command): Handle MODIFY_TARGET_NAME.
1782 * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
1783 * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
1784
1785 * c-decl.c (finish_decl): Add else's to avoid referencing
1786 TYPE_DOMAIN of an ERROR_MARK.
1787
1788 Wed Sep 20 21:44:31 2000 Denis Chertykov <denisc@overta.ru>
1789
1790 * config/avr/avr.c (adjust_insn_length): Adjust lengths of
1791 `reload_in*' insns.
1792
1793 2000-09-19 Marek Michalkiewicz <marekm@linux.org.pl>
1794
1795 * config/avr/avr.md (neghi2): Add alternative for input and output
1796 operands in different registers, as in negsi2.
1797 (*negsi2): Remove '*' from the name. Use "movw" if available.
1798
1799 2000-09-19 Jim Wilson <wilson@cygnus.com>
1800
1801 * config/ia64/crtbegin.asm (__dso_handle): Delete use of
1802 HAVE_GAS_HIDDEN macro.
1803
1804 Tue 19-Sep-2000 22:38:57 BST Neil Booth <NeilB@earthling.net>
1805
1806 * cpplex.c (lex_line): Drop the EOF token for unknown
1807 directives in assembler.
1808
1809 2000-09-19 David Edelsohn <edelsohn@gnu.org>
1810
1811 * configure.in: Allow enable_threads_flag value of "aix". Define
1812 thread_file as "aix" for AIX 4.3 and above.
1813 * configure: Regenerated.
1814
1815 * gthr-aix.h: New file.
1816
1817 * rs6000/t-aix43: Replace soft-float multilib with pthread.
1818 Remove 403 processor multilib match. Fix rios2 processor multilib
1819 match.
1820
1821 * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
1822 to return to appropriate csect.
1823
1824 2000-09-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1825
1826 * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
1827 functions.
1828 (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
1829 (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
1830 BUILT_IN_PRINTF.
1831
1832 * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
1833 New entries.
1834
1835 * c-common.c (init_function_format_info): Handle __builtin_printf.
1836 Set `check_function_format_ptr'.
1837 (c_common_nodes_and_builtins): Set `puts_ftype' and
1838 `printf_ftype'. Declare __builtin_putchar, __builtin_puts,
1839 __builtin_printf and printf.
1840
1841 * tree.c, tree.h (check_function_format_ptr): Declare.
1842
1843 Tue 19-Sep-2000 18:26:57 BST Neil Booth <NeilB@earthling.net>
1844
1845 * cppfiles.c (read_include_file): Take no special action for
1846 zero-length files.
1847
1848 2000-09-19 Bernd Schmidt <bernds@redhat.co.uk>
1849
1850 * final.c (insn_current_reference_address): Use INSN_SHUID of seq
1851 rather than that of branch.
1852 (shorten_branches): Don't increment insn_current_address twice.
1853
1854 Undo most of the Wed Jan 27 23:39:53 1999 patch:
1855 * loop.h (struct induction): Delete members derived, ix and last_use.
1856 (struct loop_ivs): Delete members first_increment_giv and
1857 last_increment_giv.
1858 * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
1859 recombine_givs): Delete functions.
1860 (find_and_verify_loops): Don't initialize cont_dominator.
1861 (strength_reduce): Lose code to try to find bivs that can be
1862 expressed as givs of another biv, and to convert biv increments
1863 into givs.
1864 Lose loop_scan_start variable, always use loop->scan_start.
1865 Don't call recombine_givs. Don't handle derived givs.
1866 (record_giv): Don't initialize derived and last_use fields.
1867 (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
1868 givs.
1869 * unroll.c (derived_regs): Delete static variable.
1870 (unroll_loop): Don't initialize it.
1871 (copy_loop_body): Lose code to handle derived givs.
1872 (find_splittable_givs): Don't check for givs made from biv
1873 increments.
1874 Don't set derived_regs.
1875
1876 Fix misapplied earlier patch:
1877 * config/sh/sh.md (floatsisf_ie): Reenable. Remove explicit reference
1878 to fpul.
1879 (floatsisf2): Generate floatsisf_ie by default.
1880 (floatsisf_i4): Conditional on TARGET_SH4.
1881
1882 (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
1883 predicate for the expanders.
1884
1885 2000-09-19 Richard Henderson <rth@cygnus.com>
1886
1887 * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
1888 in addition to pentium and pentiumpro symbols.
1889 (CPP_CPU_DEFAULT_SPEC): Likewise.
1890
1891 * c-typeck.c (c_expand_asm_operands): Restore the output tree
1892 after expanding.
1893
1894 * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
1895 if the tree has side effects.
1896 (warn_if_unused_value): Do not warn about void constructs.
1897
1898 * c-decl.c (poplevel): Invoke warn_about_unused_variables.
1899
1900 * unroll.c (copy_loop_body): Update LABEL_NUSES before
1901 calling invert_jump.
1902
1903 2000-09-18 Geoff Keating <geoffk@cygnus.com>
1904
1905 * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
1906 into anything.
1907
1908 2000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1909
1910 * Makefile.in (c-common.o): Depend on diagnostic.h.
1911
1912 * c-common.c: Include diagnostic.h.
1913 (tfaff): Delete.
1914 (status_warning): New function.
1915 (check_format_info, maybe_read_dollar_number, check_format_types,
1916 finish_dollar_format_checking, check_function_format): Accept a
1917 `status' parameter. All callers changed.
1918
1919 * c-common.h (check_function_format): Accept a `status' parameter.
1920
1921 * c-typeck.c: Update call to `check_function_format'.
1922
1923 2000-09-18 Richard Henderson <rth@cygnus.com>
1924
1925 * c-decl.c (c_expand_body): Call mark_varargs before
1926 expand_function_start.
1927
1928 2000-09-18 Geoff Keating <geoffk@cygnus.com>
1929
1930 * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
1931 * config/rs6000/eabi-ci.asm: Likewise.
1932
1933 2000-09-18 Richard Henderson <rth@cygnus.com>
1934
1935 * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
1936 for BImode.
1937
1938 2000-09-18 Jim Wilson <wilson@cygnus.com>
1939
1940 * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
1941 before passing it to fold_rtx_mult_add.
1942
1943 * unroll.c (final_giv_value): Pass increment through
1944 extend_value_for_giv before passing it to emit_iv_add_mult.
1945
1946 * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
1947 paradoxical subreg, then directly substitute the replacement and
1948 return.
1949
1950 Mon 18-Sep-2000 22:12:44 BST Neil Booth <NeilB@earthling.net>
1951
1952 * cpp.texi: Update documentation, including some clarifications,
1953 the treatment of various newline combinations, and space between
1954 backslash and newline.
1955
1956 Mon Sep 18 21:00:47 2000 J"orn Rennecke <amylaar@redhat.co.uk>
1957
1958 * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
1959 Replace ASM_OUTPUT_LABELREF with assemble_name.
1960
1961 Mon Sep 18 20:26:50 2000 J"orn Rennecke <amylaar@redhat.co.uk>
1962
1963 * sh.c (addsubcosts): CONST is not cheap.
1964 (find_barrier): For Sh1, take alignment after jumps into account.
1965
1966 2000-09-15 Andrew Haley <aph@redhat.com>
1967
1968 * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
1969 remove all SETs of SUBREGs of hard registers.
1970 * function.c (purge_hard_subreg_sets): New function.
1971 (purge_single_hard_subreg_set): New function.
1972 * rtl.h: (purge_hard_subreg_sets): New function.
1973
1974 2000-09-18 Richard Henderson <rth@cygnus.com>
1975
1976 * config/ia64/ia64-protos.h: Update.
1977 * config/ia64/ia64.c (signed_inequality_operator): New.
1978 (ia64_expand_compare): New.
1979 (ia64_register_move_cost): Handle PR_REGS moves.
1980 (ia64_secondary_reload_class): Require a GR when moving to a PR.
1981 (struct reg_write_state): Add written_by_and/or.
1982 (struct reg_flags): Add is_and/or.
1983 (rws_update): Set them.
1984 (rws_access_regno): Test them to allow parallel comparisons.
1985 (rtx_needs_barrier): Recognize parallel comparisons.
1986 (emit_insn_group_barriers): Set prev_insn after a call stop bit.
1987 Call recog_memoized; ignore pred_rel_mutex.
1988 (emit_predicate_relation_info): Don't call find_basic_blocks here.
1989 (ia64_reorg): Do it here instead.
1990 * config/ia64/ia64.h: s/CCmode/BImode/g
1991 (MODES_TIEABLE_P): Don't tie BImode.
1992 (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
1993 (CONST_COSTS): Pick sensible values for CONST_INT based on context.
1994 (RTX_COSTS): Make multiply 4 insns.
1995 (MEMORY_MOVE_COST): New.
1996 (PREDICATE_CODES): Update.
1997 * config/ia64/ia64.md: s/CCmode/BImode/g
1998 (movcci, movbi): New.
1999 (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
2000 (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
2001 (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
2002 (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
2003 (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
2004 (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
2005 (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
2006 (mulsi, muldi): Use xmpy not xma.
2007 (cmpbi): New.
2008 (movcc, movcc_internal): Remove.
2009 (branch expanders): Use ia64_expand_compare.
2010 (setcc expanders): Likewise.
2011 (cmov insns): Use move_operand and ia64_move_ok.
2012 (pred_rel_mutex): Use unspec not unspec_volatile. Prevent the
2013 scheduler from moving it past a use.
2014 * config/ia64/build.hacks: Remove.
2015
2016 Mon 18-Sep-2000 19:21:35 BST Neil Booth <NeilB@earthling.net>
2017
2018 * cpphash.h (HASHSTEP): Take character rather than pointer
2019 to character.
2020 (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
2021
2022 * cpphash.c (cpp_loookup): Update for new HASHSTEP.
2023
2024 * cpplex.c (auto_expand_name_space, trigraph_replace,
2025 backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
2026 IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
2027 BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
2028 KNOWN_DIRECTIVE): Delete.
2029
2030 (handle_newline, check_long_token, skip_escaped_newlines,
2031 unterminated): New functions.
2032 (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
2033
2034 (parse_identifier): Was parse_name, new implementation.
2035 (skip_line_comment, skip_block_comment, skip_whitespace,
2036 parse_number, parse_string, trigraph_ok, save_comment,
2037 adjust_column, _cpp_get_line): New implementations.
2038
2039 (lex_token): New function. Lexes a token at a time, looking
2040 forwards. Contains most of the guts of the old lex_line.
2041 (lex_line): New implementation, using lex_token to obtain
2042 individual tokens.
2043 (cpp_scan_buffer): Use the token's line, not the list's line.
2044
2045 * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
2046 New implementations.
2047 (do_assert): Don't bother setting the answer's list's line.
2048 (cpp_push_buffer): Initialise new pfile and read_ahead members
2049 of struct cpp_buffer.
2050
2051 * cpplib.h (cppchar_t): New typedef.
2052 (struct cpp_buffer): read_ahead, pfile and col_adjust are
2053 new members.
2054 (struct lexer_state): New structure that determines the state
2055 and behaviour of the lexer.
2056 (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
2057 (struct cpp_reader): New member "state". Rename
2058 multiline_string_line and multiline_string_column. Delete
2059 col_adjust, in_lex_line members.
2060 (CPP_BUF_COLUMN): Update.
2061
2062 2000-09-18 Richard Henderson <rth@cygnus.com>
2063
2064 * combine.c (simplify_comparison): Shift a NOT out of a single
2065 bit test.
2066
2067 * combine.c (if_then_else_cond): Canonicalize BImode true to
2068 STORE_FLAG_VALUE.
2069 * explow.c (trunc_int_for_mode): Likewise.
2070
2071 * combine.c (combine_simplify_rtx): Use gen_unary to distribute
2072 the NOT for De Morgan's rule.
2073 * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
2074 of a comparison to the reverse comparison.
2075
2076 * combine.c (try_combine): Allow split to create a single insn.
2077
2078 * machmode.def: Add BImode. Add a column for bitsize.
2079 * machmode.h (DEF_MACHMODE): Adjust for extra column.
2080 (GET_MODE_BITSIZE): Use it.
2081 * rtl.c (DEF_MACHMODE): Adjust for extra column.
2082 (mode_bitsize): New.
2083 (mode_mask_array): Use bitsize.
2084 * combine.c (combine_simplify_rtx): Require inner and outer
2085 modes to match on nonzero_bits optimizations.
2086
2087 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
2088
2089 * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
2090 its entry in spill_reg_store.
2091 * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
2092 * sh.c (reg_no_subreg_operand): New function.
2093 * sh-protos.h (reg_no_subreg_operand): Declare it.
2094 * sh.h (PREDICATE_CODES): Add it.
2095 * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
2096 input operand that needs to be in fpul.
2097 (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
2098 * sh.c (find_barrier): Take into account that machine_dependent_reorg
2099 might add new insns.
2100
2101 2000-09-18 Alexandre Oliva <aoliva@redhat.com>
2102
2103 * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
2104 MAYBE_DEAD.
2105 (sh_expand_epilogue): Take the PIC register into account when
2106 computing the frame size.
2107
2108 * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
2109 * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
2110 LABEL_REFs with a PIC-safe unspec.
2111
2112 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
2113
2114 * c-common.c (check_format_info): Properly save the argument
2115 number and parameter for $ operand number formats in case width
2116 and precision arguments are also used. Allow printf width and
2117 precision arguments to have operand numbers even if none was
2118 specified for the main format, since this is OK for %*.*m. Only
2119 object to missing $ operand number if the format used requires an
2120 argument.
2121
2122 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
2123
2124 * c-common.c (format_char_info): Add 'W' flag to comment.
2125 (print_char_table, scan_char_table): Use it.
2126 (check_format_info): Use the 'W' flag to determine whether a
2127 format argument is written into.
2128
2129 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
2130
2131 * c-common.c (check_format_types): Reorganise and clean up,
2132 checking earlier for ERROR_MARKs and making cur_type into its
2133 TYPE_MAIN_VARIANT where convenient.
2134
2135 2000-09-18 Joseph S. Myers <jsm28@cam.ac.uk>
2136
2137 * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
2138
2139 2000-09-18 Bernd Schmidt <bernds@redhat.co.uk>
2140
2141 * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
2142
2143 * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
2144 * i386.c (struct builtin_description): New.
2145 (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
2146 (mmx_reg_operand): Declare MODE arg as unused.
2147 (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
2148 ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
2149 ix86_expand_binop_builtin, ix86_expand_store_builtin,
2150 ix86_init_builtins, ix86_expand_builtin): New functions.
2151 * i386.h (ix86_builtins): New enumeration.
2152 (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
2153 * i386.md (attr length_immediate): 0 for mmx/sse types.
2154 (attr prefix_0f): 1 for mmx/sse types.
2155 (setcc_2): Remove "*" so we get gen_setcc_2.
2156 (emms): Account for changed register numbering. Set "memory" attr
2157 to unknown.
2158 (sfence): Set "memory" attr to unknown.
2159
2160 2000-09-18 Andreas Jaeger <aj@suse.de>
2161
2162 * configure.in: Define _GNU_SOURCE only when using the GNU C
2163 Library.
2164 * configure: Regenerated.
2165 * config.in: Regenerated.
2166
2167 2000-09-17 Mark Mitchell <mark@codesourcery.com>
2168
2169 * cppinit.c (cpp_init): Don't use ANSI prototypes.
2170 * flow.c (flow_dump_loop): Likewise.
2171 (flow_loops_dump): Likewise.
2172
2173 * c-typeck.c (c_start_case): Fix typo.
2174
2175 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
2176
2177 * c-decl.c (grokdeclarator): Don't give a warning about defaulting
2178 to int for plain complex which defaults to complex double. Do
2179 warn about defaulting to complex double if pedantic. Warn about
2180 complex integer types if pedantic. Warn about complex types if
2181 pedantic and not in C99 mode.
2182 * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
2183 for complex conjugation.
2184
2185 2000-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
2186
2187 * contrib.texi: Update my entry.
2188
2189 Sun Sep 17 18:48:32 2000 Denis Chertykov <denisc@overta.ru>
2190
2191 * config/avr/avr.md (mcu_enhanced): New attribute.
2192 (mcu_mega): Likewise.
2193 (extendhisi2): Use mcu_enhanced.
2194 (zero_extendhisi2): Likewise.
2195 (call_insn): Use mcu_enhanced and mcu_mega.
2196 (call_value_insn): Likewise.
2197 (*sbrx_branch): Use mcu_mega.
2198 (*sbrx_and_branchsi): Likewise.
2199 (*sbrx_and_branchhi): Likewise.
2200 (*tablejump_lib): Likewise.
2201
2202 Sun Sep 17 10:46:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2203
2204 * alias.c (true_dependence): Allow non-unchanging read to conflict
2205 with unchanging write.
2206
2207 * expr.c (store_constructor_field): Accept ALIAS_SET arg.
2208 (store_constructor): Pass alias_set to it.
2209
2210 * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
2211 TYPE_MAIN_VARIANT of ERROR_MARK.
2212 * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
2213
2214 * simplify-rtx.c (simplify_unary_operation): Add cases
2215 FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
2216
2217 2000-09-17 Bernd Schmidt <bernds@redhat.co.uk>
2218
2219 * expr.h (emit_library_call, emit_library_call_value): Delete
2220 declarations.
2221 * rtl.h (enum libcall_type): New.
2222 (emit_library_call, emit_library_call_value): Change fn_type arg to
2223 be of type enum libcall_type.
2224 * calls.c: Likewise for the function definitions. Several callers
2225 throughout changed to use the new enumeration appropriately.
2226 (emit_library_call_value_1): Likewise. Put back code to make libcall
2227 blocks of equal form, but only use it for the two new higher
2228 enumeration values.
2229
2230 2000-09-16 Mark Mitchell <mark@codesourcery.com>
2231
2232 Convert the C front-end to use function-at-a-time mode.
2233 * c-common.h: Include splay-tree.h.
2234 (C_DECLARED_LABEL_FLAG): New macro.
2235 (struct language_function): Add x_scope_stmt_stack and
2236 x_function_name_declared_p.
2237 (RECHAIN_STMTS): Move definition.
2238 (lang_statment_code_p): Likewise.
2239 (lang_expand_stmt): Likewise.
2240 (lang_expand_decl_stmt): New variable.
2241 (lang_expand_function_end): Likewise.
2242 (current_scope_stmt_stack): New function.
2243 (add_decl_stmt): Likewise.
2244 (add_scope_stmt): Likewise.
2245 (mark_stmt_tree): Likewise.
2246 (struct c_lang_decl): New structure.
2247 (DECL_SAVED_TREE): Define.
2248 (c_mark_lang_decl): New function.
2249 (c_expand_start_cond): Change prototype.
2250 (c_finish_then): New function.
2251 (c_finish_else): Likewise.
2252 (current_function_name_declared): Remove.
2253 (set_current_function_name_declared): Likewise.
2254 (mark_c_language_function): Declare.
2255 (case_compare): Likewise.
2256 (c_add_case_label): Likewise.
2257 (c_expand_expr): Likewise.
2258 (c_safe_from_p): Likewise.
2259 * c-common.c (lang_expand_function_end): New variable.
2260 (struct if_elt): Add if_stmt.
2261 (c_expand_start_cond): Add the if-statement to the statement-tree,
2262 rather than generating RTL.
2263 (c_finish_then): New function.
2264 (c_expand_start_else): Don't generate RTL.
2265 (c_finish_else): New function.
2266 (c_expand_expr_stmt): Don't generate RTL.
2267 (statement_code_p): Add SCOPE_STMT.
2268 (case_compare): New function.
2269 (c_add_case_label): Likewise.
2270 (mark_stmt_tree): Likewise.
2271 (c_mark_lang_decl): Likewise.
2272 (mark_c_language_function): Likewise.
2273 (c_expand_expr): Likewise.
2274 (c_safe_from_p): Likewise.
2275 * c-decl.c (c_stmt_tree): New variable
2276 (c_scope_stmt_stack): Likewise.
2277 (c_function_name_declared_p): Likewise.
2278 (lang_expand_expr_stmt): Remove.
2279 (poplevel): Don't call output_inline_function for nested
2280 functions.
2281 (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
2282 `extern' function.
2283 (redeclaration_error_message): Change means of computing whether
2284 or not a function is nested.
2285 (lookup_label): Don't call label_rtx.
2286 (init_decl_processing): Add more GC roots.
2287 (start_decl): Add DECL_STMTs to the statement-tree, rather than
2288 calling rest_of_decl_compilation.
2289 (finish_decl): Don't call expand_decl.
2290 (store_parm_decls): Begin the statement-tree, but don't generate
2291 RTL.
2292 (finish_function): Tie off the statement-tree. Call c_expand_body
2293 if appropriate.
2294 (c_expand_body): New function.
2295 (push_c_function_context): Save more information.
2296 (pop_c_function_contxt): Likewise.
2297 (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
2298 (lang_mark_tree): Mark it.
2299 (current_stmt_tree): Adjust.
2300 (current_scope_stmt_stack): New function.
2301 (do_case): Remove.
2302 (set_current_name_declared): Likewise.
2303 (c_begin_compound_stmt): Define.
2304 (c_expand_decl_stmt): Likewise.
2305 * c-lang.c: Include rtl.h and expr.h.
2306 (lang_init): Set more language-specific hooks.
2307 * c-lex.c: Include expr.h.
2308 * c-parse.in: Changes throughout to add statements to the
2309 statement-tree, rather than generating RTL after every statement.
2310 * c-semantics.c (lang_expand_decl_stmt): Define.
2311 (add_decl_stmt): New function.
2312 (add_scope_stmt): Likewise.
2313 (finish_stmt_tree): Tweak.
2314 (genrtl_expr_stmt): Likewise.
2315 (genrtl_decl_stmt): Handle local labels, and call
2316 lang_expand_decl_stmt if required.
2317 (genrtl_for_stmt): Fix line-number handling.
2318 (genrtl_case_label): Handle cleanups.
2319 (genrtl_asm_stmt): Don't call combine_strings.
2320 (genrtl_compound_stmt): Simplify.
2321 (expand_stmt): Handle SCOPE_STMTs.
2322 * c-tree.h (struct lang_decl): New structure.
2323 (C_DECLARED_LABEL_FLAG): Remove.
2324 (c_begin_compound_stmt): Declare.
2325 (c_expand_decl_stmt): Likewise.
2326 (c_expand_start_case): Rename to c_start_case.
2327 (c_finish_case): New function.
2328 * c-typeck.c (start_init): Tweak setting of
2329 constructor_incremental.
2330 (c_expand_asm_operands): Tweak error-handling. Add to the
2331 statement-tree.
2332 (c_expand_return): Add to the statement-tree.
2333 (c_expand_start_case): Rename to ...
2334 (c_start_case): ... this.
2335 (struct c_switch): New type.
2336 (switch_stack): New variable.
2337 (do_case): Simplify.
2338 (c_finish_case): New function.
2339 * dependence.c: Include expr.h.
2340 (enum dependence_type): Change spelling of enumerals.
2341 (check_node_dependence): Adjust.
2342 * expr.h (lang_safe_from_p): Declare.
2343 (safe_from_p): Likewise.
2344 * expr.c (lang_safe_from_p): New variable.
2345 (safe_from_p): Give it external linkage. Use lang_safe_from_p.
2346 * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
2347 * toplev.c (rest_of_decl_compilation): Robustify.
2348 * tree.c (contains_placeholder_p): Likewise.
2349 * Makefile.in: Update dependencies.
2350 * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
2351 * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
2352 (objc_expand_function_end): New function.
2353 (finish_method_def): Use it.
2354 (init_objc): Initialize more language-specific hooks.
2355 * objc/Make-lang.in: Update dependencies.
2356
2357 2000-09-16 Geoffrey Keating <geoffk@cygnus.com>
2358
2359 * configure.in: Define macros that affect features before
2360 testing for features. Don't define _XOPEN_SOURCE.
2361 * configure: Regenerated.
2362 * config.in: Regenerated.
2363
2364 Sat Sep 16 19:42:50 EDT 2000 John Wehle (john@feith.com)
2365
2366 * rtlanal.c (rtx_varies_p): Volatile asms vary.
2367 (rtx_unstable_p): Restructure code. Volatile asms
2368 are unstable.
2369
2370 Sat Sep 16 14:35:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2371
2372 * function.h (no_debugging_symbols): New field.
2373 * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
2374 Initialize no_debugging_symbols.
2375 (output_inline_function): Save and restore write_symbols and set from
2376 no_debugging_symbols.
2377 * toplev.c (rest_of_compilation): Call save_for_inline.
2378 * tree.h: Update comment.
2379
2380 * stor-layout.c (place_field): Don't do anything if field or
2381 its type are ERROR_MARK.
2382
2383 Sat Sep 16 19:14:00 2000 Laurynas Biveinis <lauras@softhome.net>
2384
2385 * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
2386 (read_include_file): Ensure inc->mmaped is initialized.
2387
2388 2000-09-16 Richard Henderson <rth@cygnus.com>
2389
2390 * cppiles.c (purge_cache): Use PTR not caddr_t.
2391
2392 2000-09-16 Hans-Peter Nilsson <hp@axis.com>
2393
2394 * gcc.c: In description for %{<S}, say the option removed is -S.
2395 * invoke.texi (Spec Files): Ditto.
2396
2397 2000-09-16 Andreas Jaeger <aj@suse.de>
2398
2399 * configure.in: Always define _GNU_SOURCE to make interfaces
2400 visible that were hidden by only defining _GNU_SOURCE.
2401 * configure: Regenerated.
2402
2403 Sat 16-Sep-2000 08:13:45 BST Neil Booth <NeilB@earthling.net>
2404
2405 * cpplex.c (push_macro_context): Set an argument's level after
2406 calling parse_args. We could loop infinitely otherwise.
2407
2408 2000-09-15 Tom Tromey <tromey@cygnus.com>
2409
2410 * configure, config.in: Rebuilt.
2411 * configure.in: Check for iconv.h. Define _XOPEN_SOURCE.
2412
2413 2000-09-15 Greg McGary <greg@mcgary.org>
2414
2415 * cppmacro.c (check_trad_stringification): Check token
2416 text pointers against limit before dereferencing.
2417
2418 2000-09-15 Joseph S. Myers <jsm28@cam.ac.uk>
2419
2420 * c-common.c (format_wanted_type): New structure.
2421 (check_format_types): New function.
2422 (check_format_info): Pass all checking of types of format
2423 arguments, including width and precision arguments, to this new
2424 function.
2425
2426 2000-09-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2427
2428 * BUGS: Remove file.
2429
2430 2000-09-15 Jakub Jelinek <jakub@redhat.com>
2431
2432 * config/alpha/alpha.c (override_options): ev6 cache latencies
2433 from Richard Henderson. Don't allow -mmemory-latency=L0.
2434
2435 * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
2436 (TARGET_OPTIONS): Add tune=.
2437 (alpha_tune_string): Declare.
2438 * config/alpha/alpha.c (override_options): Add cpu_table.
2439 Use alpha_cpu_string first to set both alpha_cpu and target_flags
2440 and then alpha_tune_string to set alpha_cpu only.
2441 Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
2442 * config/alpha/elf.h (ASM_FILE_START): Likewise.
2443 * config/alpha/osf.h (ASM_FILE_START): Likewise.
2444 * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
2445
2446 Fri Sep 15 19:45:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
2447
2448 * i386-protos.h (no_comparison_operator, uno_comparison_operator):
2449 Remove.
2450 (ix86_comparison_operator, ix86_cc_mode): Declare
2451 * i386.h (CCGC, CCGCO): New modes.
2452 (SELECT_CC_MODE): Move offline to ....
2453 * i386.c (ix86_cc_mode): .... here; use new modes.
2454 (ix86_comparison_operator): New.
2455 (fcmov_comparison_operator): Ensure proper mode.
2456 (put_condition_mode): More sanity checking.
2457 (ix86_match_ccmode): Handle new modes.
2458 (ix86_expand_fp_compare): GEU requires CCmode.
2459 (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
2460 doing it by hand.
2461 * i386.md (cmp?i_ccz_1): Remove
2462 (cmp?i_ccno_1): Use ix86_match_ccmode.
2463 (cmp?i_minus_1): New.
2464 (cmpsi_1): New expander.
2465 (cmpqi_ext_1): Use match_ccmode
2466 (cmpqi_ext_3): New expander.
2467 (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
2468 (cmpqi_ext_4): Use match_ccmode.
2469 (add?i_?): Use match_ccmode.
2470 (add?i_6): New.
2471 (test?i_ccz_1): Remove
2472 (test?i_1): New.
2473 (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
2474 (testqi_ext_0): Use ix86_match_ccmode.
2475 (*xorqi_cc_ext_1): Use ix86_match_ccmode.
2476 (xorqi_cc_ext_1): New expander.
2477 (shift patterns): Use CCGOCmode for all shifts except for sar.
2478 (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
2479 (setcc_3, jcc_3, miv?icc_c): Remove.
2480
2481 2000-09-15 Will Cohen <wcohen@redhat.com>
2482
2483 * dwarf2out.c (add_const_value_attribute): Changed array into a
2484 xmalloced object, so it exists after function exit.
2485 (free_AT): Added case for dw_val_class_float to free allocated
2486 memory.
2487
2488 2000-09-15 Kazu Hirata <kazu@hxi.com>
2489
2490 * config/i386/i386.md: Fix a comment typo.
2491 * gcc.c: Fix formatting.
2492
2493 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
2494
2495 * optabs.c (emit_libcall_block): If target is a user variable,
2496 copy to a temporary first.
2497 * expr.c (convert_move): When generating a libcall, make a libcall
2498 block.
2499 * calls.c (emit_library_call_value_1): Don't create a libcall
2500 sequence here; our caller will in most cases do it.
2501
2502 * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
2503 MACH into FPUL.
2504 (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
2505 * sh.md (reload_outsf): Generate recognizable patterns for
2506 TARGET_SH3E.
2507 (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
2508 fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
2509 fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
2510 truncdfsf2_i4): Change not to use explicit references to fpul.
2511 (floatsisf2_ie): Remove USE of fpscr.
2512 (floatsisf2): Change default expansion to match this.
2513 (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
2514 unused patterns.
2515
2516 2000-09-15 Richard Henderson <rth@cygnus.com>
2517
2518 * expmed.c (store_bit_field): Consider naturally aligned
2519 memory for direct reference.
2520
2521 2000-09-15 Richard Henderson <rth@cygnus.com>
2522
2523 * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
2524 AND addresses into alias set 0.
2525 (alpha_expand_unaligned_store): Likewise.
2526 (alpha_expand_unaligned_load_words): Likewise.
2527 (alpha_expand_unaligned_store_words): Likewise.
2528
2529 2000-09-15 Bernd Schmidt <bernds@redhat.co.uk>
2530
2531 * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
2532 * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
2533 is defined.
2534 * config/mips/mips.c (mips_va_arg): Args passed by reference have a
2535 rsize of UNITS_PER_WORD.
2536
2537 Fri 15-Sep-2000 06:49:07 BST Neil Booth <NeilB@earthling.net>
2538
2539 * cpplex.c (ON_REST_ARG): Correct the test.
2540 (maybe_paste_with_next): Duplicate a token that fail pasting,
2541 and clear its PASTE_LEFT flag, so that nested pasting attempts
2542 do not occur.
2543
2544 2000-09-14 Richard Henderson <rth@cygnus.com>
2545
2546 * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
2547 * cse.c (rtx_cost): Likewise.
2548 * optabls.c (expand_binop): Likewise.
2549 (expand_twoval_binop, prepare_cmp_insn): Likewise.
2550 * regclass.c (copy_cost): Likewise.
2551 * reload1.c (reload_cse_move2add): Likewise.
2552
2553 2000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
2554
2555 * c-parse.in (reswords): Add _Complex.
2556
2557 2000-09-14 J. David Anglin <dave@hiauly1.hia.nrc.ca>
2558
2559 * gcc.1: Delete documentation for -undef preprocessor option.
2560
2561 2000-09-14 Alexandre Oliva <aoliva@redhat.com>
2562
2563 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2564 STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
2565 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
2566 Remove undefine before config/elfos.h.
2567 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
2568
2569 2000-09-14 Kazu Hirata <kazu@hxi.com>
2570
2571 * invoke.texi (H8/300 Options): Add -ms2600.
2572 * config/h8300.c (h8300_init_once): Output an error when -ms2600
2573 is used without -ms.
2574 * config/h8300.h (TARGET_MAC): New.
2575 (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
2576 (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
2577 machine other than H8/S2600.
2578 * config/h8300.md: Accept mac instructions on the H8/S2600 instead
2579 of the H8/S2000.
2580
2581 2000-09-14 Alexandre Oliva <aoliva@redhat.com>, Bernd Schmidt <bernds@redhat.co.uk>
2582
2583 * reload.c (find_reloads_address_1): Generate reloads for auto_inc
2584 pseudos that refer to the original pseudos, not only to their
2585 equivalent memory locations.
2586
2587 Thu Sep 14 12:10:16 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2588
2589 * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
2590 when making new MEM.
2591
2592 * Makefile.in (LN): Remove duplicate definition.
2593
2594 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
2595
2596 From Joern Rennecke:
2597 * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
2598 on an insn and function_invariant_p returns nonzero for the source,
2599 add a REG_EQUAL note.
2600
2601 Thu Sep 14 00:51:57 EDT 2000 John Wehle (john@feith.com)
2602
2603 * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
2604 conflict with frame_pointer_rtx.
2605
2606 2000-09-13 Kazu Hirata <kazu@hxi.com>
2607
2608 * loop.c: Fix formatting.
2609 * loop.h: Likewise.
2610
2611 2000-09-13 Richard Henderson <rth@cygnus.com>
2612
2613 * config/ia64/ia64.md (divsf3): New.
2614 (divsf3_internal_lat, divsf3_internal_thr): New.
2615 (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
2616 (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
2617 (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
2618 (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
2619 (nmadddf4_alts, nmadddf4_trunc): New.
2620 (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
2621 (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
2622 (multf3_truncsf_alts, multf3_truncdf_alts): New.
2623 (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
2624 (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
2625 (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
2626 (nmaddtf4_truncdf_alts): New.
2627 (recip_approx): Don't predicate.
2628
2629 2000-09-13 Richard Henderson <rth@cygnus.com>
2630
2631 * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
2632
2633 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2634
2635 * flags.h (flag_dump_rtl_in_asm): Declare.
2636 * toplev.c (flag_dump_rtl_in_asm): Define.
2637 (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
2638 if -dP is specified.
2639 * rtl.h (print_rtx_head): Declare.
2640 * print-rtl.c (print_rtx_head): Define.
2641 (print_rtx): Print the string pointed to by print_rtx_head
2642 at beginning of each dump line.
2643 (print_rtl): Likewise.
2644 (print_rtl_single): Likewise.
2645 * final.c (final_scan_insn): Dump the insn in the assembly
2646 file for debugging.
2647 * gcc.1: Document -dP option.
2648 * invoke.texi (Debugging Options): Likewise.
2649
2650 2000-09-13 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2651
2652 * md.texi (Machine Constraints): Document the 68HC11 constraints.
2653 * install.texi (Configurations): Document the 68HC11&68HC12 port.
2654 * invoke.texi (Option Summary, M68hc1x Options): Document the options.
2655
2656 Tue Sep 12 13:51:13 2000 Denis Chertykov <denisc@overta.ru>
2657
2658 * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
2659 * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
2660 (*clrstrqi): Likewise.
2661 (xorhi3,xorsi3,absqi2): Likewise.
2662 (one_cmplhi2,one_cmplsi2): Likewise.
2663 (addsi3): Two stupid constraint alternatives removed.
2664 (extendhisi2): Use `movw' for enhanced avr cores.
2665 (zero_extendhisi2): Likewise.
2666
2667 Wed Sep 13 02:31:23 EDT 2000 John Wehle (john@feith.com)
2668
2669 * alias.c (find_base_term): Use frame_pointer_rtx
2670 when handling an ADDRESSOF.
2671
2672 * cse.c (canon_hash): Handle USE of BLKmode memory.
2673 (cse_insn): Outgoing arguments for a libcall don't
2674 affect any recorded expressions.
2675
2676 2000-09-12 Tom Tromey <tromey@cygnus.com>
2677
2678 * configure, config.in: Rebuilt.
2679 * configure.in: Check for iconv, nl_langinfo, langinfo.h.
2680
2681 2000-09-12 Jakub Jelinek <jakub@redhat.com>
2682
2683 * c-lex.c (lex_string): Use charwidth to compute bytemask.
2684 * expr.c (expand_expr): Don't optimize constant array references
2685 initialized with wide string constants.
2686
2687 2000-09-13 Michael Hayes <mhayes@cygnus.com>
2688
2689 * loop.c (note_set_pseudo_multiple_uses): Correct.
2690
2691 2000-09-12 Jim Wilson <wilson@cygnus.com>
2692
2693 * ifcvt.c (noce_process_if_block): If A and B are the same, and no
2694 else block, and X has side-effects, then fail.
2695
2696 2000-09-12 Greg McGary <greg@mcgary.org>
2697
2698 * config/mips/mips-protos.h
2699 (trap_cmp_op, mips_gen_conditional_trap): New func decls.
2700 * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
2701 (PREDICATE_CODES): Add "trap_cmp_op".
2702 * config/mips/mips.c
2703 (trap_cmp_op, mips_gen_conditional_trap): New functions.
2704 * config/mips/mips.md (trap, conditional_trap): New patterns.
2705
2706 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
2707
2708 * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
2709 pointer.
2710
2711 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2712
2713 * builtins.c (built_in_decls): New array.
2714 (expand_builtin_fputs): New function.
2715 (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
2716
2717 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
2718
2719 * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
2720
2721 * tree.h (built_in_decls): New array.
2722
2723 Tue Sep 12 08:53:57 2000 Jeffrey A Law (law@cygnus.com)
2724
2725 * convex.md: Use "+" instead of "=" for outputs wrapped in a
2726 STRICT_LOW_PART.
2727 * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
2728
2729 2000-09-12 Kazu Hirata <kazu@hxi.com>
2730
2731 * haifa-sched.c: Fix formatting.
2732
2733 * genattrtab.c: Fix formatting.
2734
2735 * unroll.c: Fix formatting.
2736
2737 2000-09-12 Bruce Korb <bkorb@gnu.org>
2738
2739 * fixinc/fixfixes.c: make a type for the fix procedure & use it,
2740 remove obsolete code
2741 * fixinc/fixincl.c: Use PARAMS, not _P_. Add no-op default to switch.
2742 * fixinc/fixincl.tpl: make non-exported arrays static scope
2743 * fixinc/fixincl.x: regenerate
2744 * fixinc/fixlib.h: Use PARAMS, not _P_
2745 * fixinc/fixtests.c: make a type for the test proc & use it
2746 * fixinc/server.h: Use PARAMS, not _P_
2747
2748 2000-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2749
2750 * c-typeck.c (process_init_element): Avoid union init warnings on
2751 floating point zero. Don't crash on unions containing structs.
2752
2753 2000-09-12 Alexandre Oliva <aoliva@redhat.com>
2754
2755 * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
2756 general_movsrc_operand, and remove CONST_INT from
2757 general_movdst_operand.
2758
2759 2000-09-12 Bernd Schmidt <bernds@redhat.co.uk>
2760
2761 * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
2762 if a reference to non-fixed hardreg is seen. Otherwise, count hard
2763 regs with a higher cost.
2764 (preferrable): Deal with cases where either cost or regcost is
2765 MAX_COST.
2766 (cse_insn): Use MAX_COST rather than 10000. Always initialize
2767 regcost values.
2768 (COSTS_N_INSNS): Move definition...
2769 * rtl.h: ...here.
2770 (MAX_COST): New macro.
2771 * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
2772 constant.
2773
2774 2000-09-11 Mark Mitchell <mark@codesourcery.com>
2775
2776 * c-common.h (genrtl_clear_out_block): Remove.
2777 * c-semantics.c (genrtl_clear_out_block): Remove.
2778 (genrtl_while_stmt): Don't call it.
2779 (genrtl_for_stmt): Likewise.
2780
2781 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
2782
2783 * cppfiles.c: Move all default-#defines to top of file.
2784 (open_include_file): Replace by lookup_include_file.
2785 (read_with_read, read_file): Merged into read_include_file.
2786 (stack_include_file, purge_cache): New functions.
2787 (close_cached_fd): Delete.
2788 (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
2789 Cache the in-memory buffer, not the file descriptor.
2790
2791 * cpphash.h (struct include_file): Add buffer, st, refcnt,
2792 mapped fields.
2793 (xcnew): New utility macro.
2794 (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
2795 * cpplib.h (struct cpp_buffer): Remove mapped field.
2796
2797 2000-09-11 Zack Weinberg <zack@wolery.cumb.org>
2798
2799 * cpplex.c (parse_string): Accept backslash space newline as a
2800 line continuation.
2801 (lex_line): Likewise.
2802 (_cpp_get_token): Remove hard limit on macro nesting.
2803
2804 2000-09-12 Philipp Thomas <pthomas@suse.de>
2805
2806 * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
2807 * configure: Rebuilt.
2808
2809 2000-09-13 Michael Hayes <mhayes@cygnus.com>
2810
2811 * flow.c (split_block): Fix update of registers live at
2812 end of split block.
2813
2814 Tue Sep 12 01:51:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
2815
2816 * i386.md (add?i_3, add?i_5): New.
2817 (add?i_4): Rename from add?i_3; Fix compare pattern.
2818 (sub?i_3, xor?i_3, ior?i_3): New.
2819
2820 * genrecog.c (write_tree): Output code to clear insn_extract cache.
2821 * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
2822 instead of extract_insn and extract_constrain_insn_cache instead of
2823 extract_insn and constrain_operands.
2824 * recog.c (extract_insn_cached, extract_constrain_insn_cached):
2825 New functions.
2826 (extract_insn): Clear which_alternative.
2827 (constrain_operands): Set which_alternative to -1 when failed.
2828 * recog.h (extract_constrain_insn_cached, extract_insn_cached):
2829 Declare.
2830
2831 2000-09-11 Matthew Hiller <hiller@redhat.com>
2832
2833 * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
2834 on operand 0 to '+'.
2835 (movstricthi): Likewise.
2836
2837 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2838
2839 * loop.h (LOOP_IVS): New macro.
2840 (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
2841 (struct loop_ivs): New.
2842 (struct loop_info): Add ivs field.
2843 (reg_iv_type, reg_iv_info): Delete prototype.
2844 (reg_biv_class, loop_iv_list): Likewise.
2845 * loop.c (record_biv, find_life_end): Pass loop argument.
2846 (reg_iv_type): Remove global array and use
2847 field in loop_regs structure within loop_ivs structure.
2848 (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
2849 (first_increment_giv, last_increment_giv): Use entry in
2850 loop_ivs structure.
2851 (record_initial): Pass ivs pointer.
2852 * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
2853
2854 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2855
2856 * loop.h (LOOP_REGS): New macro.
2857 (struct loop_regs): New.
2858 (struct loop_info): Add regs field.
2859 * loop.c (set_in_loop): Remove global array and store
2860 in loop_regs structure as part of loop_info structure.
2861 (n_times_set, may_not_optimize): Likewise.
2862 (reg_single_usage, moved_once): Likewise.
2863 (count_one_set): Add regs argument.
2864 (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
2865 (set_pseudo_multiple_uses): Pass regs pointer.
2866
2867 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2868
2869 * unroll.c (iteration_info): Subsume into loop_iterations.
2870 * loop.h (loop_info): New field iv.
2871
2872 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2873
2874 * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
2875 (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
2876 (flow_loops_update): New prototype.
2877 (flow_loops_find): Add flags to prototype.
2878 (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
2879 * flow.c (flow_loop_pre_header_scan): New.
2880 (flow_loop_dump): Dump pre-header root and trace and exit dominators.
2881 (flow_loop_free): Free pre-header root and trace and exit dominators.
2882 (flow_loops_find): New argument flags.
2883 (flow_loops_update): New function.
2884 * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
2885
2886 2000-09-12 Michael Hayes <mhayes@cygnus.com>
2887
2888 * basic-block.h (split_block, update_bb_for_insn): New prototypes.
2889 * flow.c (split_block, update_bb_for_insn): New functions.
2890
2891 2000-09-11 Richard Henderson <rth@cygnus.com>
2892
2893 * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
2894
2895 2000-09-11 Richard Henderson <rth@cygnus.com>
2896
2897 * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
2898 * config/ia64/ia64.c (fr_nonimmediate_operand): New.
2899 (ia64_override_options): Prevent optimizing division for both
2900 latency and throughput.
2901 (rtx_needs_barrier): Handle frcpa.
2902 * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
2903 (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
2904 (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
2905 (TARGET_SWITCHES): Add -minline-divide-min-latency and
2906 -minline-divide-max-throughput.
2907 (PREDICATE_CODES): Update.
2908 * config/ia64/ia64.md (extendsidi2): Remove * from f case.
2909 (zero_extendsidi2): Likewise. Fix typo in f case insn.
2910 (extendsfdf2): Add cases for gr<->fr and fr<->mem.
2911 (extendsftf2): Likewise.
2912 (extenddftf2): Likewise.
2913 (fix_trunctfdi2_alts): New.
2914 (fixuns_trunctfdi2_alts): New.
2915 (madd*4): Rename from madd*3.
2916 (divsi3, modsi3, udivsi3, umodsi3): New.
2917 (divsi3_internal): New.
2918 (divdi3, moddi3, udivdi3, umoddi3): New.
2919 (divdi3_internal_lat, divdi3_internal_thr): New.
2920 (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
2921 (recip_approx): New.
2922
2923 2000-09-11 Alexandre Oliva <aoliva@redhat.com>
2924
2925 * print-rtl.c (debug_call_placeholder_verbose): New variable.
2926 (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
2927 set.
2928 * integrate.c (copy_rtx_and_substitute): Don't share
2929 LEAF_REG_REMAPpable registers with the inlined function. Don't
2930 share the function value with calling sequences.
2931
2932 2000-09-11 Jakub Jelinek <jakub@redhat.com>
2933
2934 * c-decl.c (do_case): Fix a typo.
2935
2936 * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
2937 to a if the comparison is floating mode and not -ffast-math.
2938 * simplify-rtx.c (simplify_ternary_operation): Likewise.
2939
2940 Mon Sep 11 20:07:48 2000 J"orn Rennecke <amylaar@redhat.co.uk>
2941
2942 * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
2943 gen_ic_invalidate_line.
2944
2945 2000-09-11 Philip Blundell <pb@futuretv.com>
2946
2947 * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
2948
2949 Mon Sep 11 10:48:41 2000 Ulrich Drepper <drepper@redhat.com>
2950
2951 * install.texi (LANGUAGES): Update to include new languages.
2952 * INSTALL: Rebuilt.
2953
2954 2000-09-11 DJ Delorie <dj@redhat.com>
2955
2956 * gcc.c (main): Don't warn about unused -B prefixes
2957 (unused_prefix_warnings): remove
2958
2959 2000-09-11 Kazu Hirata <kazu@hxi.com>
2960
2961 * final.c: Fix formatting.
2962
2963 * integrate.c: Fix formatting.
2964
2965 2000-09-11 Geoff Keating <geoffk@cygnus.com>
2966
2967 * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
2968
2969 2000-09-11 Bernd Schmidt <bernds@redhat.co.uk>
2970
2971 * reload.c (regno_clobbered_p): Fix thinko in previous change.
2972
2973 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
2974
2975 * gcc.1: Document 68hc11 specific options.
2976
2977 2000-09-10 Geoff Keating <geoffk@cygnus.com>
2978
2979 * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
2980 (TARGET_LONG_DOUBLE_128): Define.
2981 (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
2982 (LONG_DOUBLE_TYPE_SIZE): Redefine.
2983 (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
2984 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
2985 of __LONG_DOUBLE_128__.
2986 (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
2987 passed.
2988 (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
2989 (CPP_SYSV_DEFAULT_SPEC): Define.
2990 (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
2991 (INIT_TARGET_OPTABS): Define.
2992
2993 * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
2994 (RS6000_UITRUNC): Likewise.
2995 (INIT_TARGET_OPTABS): New macro.
2996 * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
2997 (trunc_defined): Delete.
2998 (output_prolog): Don't output .extern definitions for fp->int
2999 conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
3000 * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
3001 (trunc_defined): Delete.
3002 (RS6000_ITRUNC): Moved to aix.h.
3003 (RS6000_UITRUNC): Likewise.
3004 * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
3005 only emit a libcall.
3006 (fixuns_truncdfsi2): Delete.
3007 (trunc_call): Delete.
3008 (trunc_call_rtl): Delete.
3009
3010 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
3011
3012 * varasm.c (make_decl_rtl): Restore leading star on
3013 DECL_ASSEMBLER_NAME set for decls with an asmspec.
3014
3015 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
3016
3017 * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
3018 won't give a spurious error for '#pragma pack()'. Simplify
3019 control flow for readability. 'reset' action is not necessary.
3020
3021 2000-09-10 Zack Weinberg <zack@wolery.cumb.org>
3022
3023 * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
3024 SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
3025 LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
3026 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
3027
3028 * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
3029 profile.c, sdbout.c, tradcif.y, tree.c:
3030 Include defaults.h if not already included.
3031 Don't define the above macros.
3032
3033 * Makefile.in: Update dependencies.
3034
3035 2000-09-10 Mark Mitchell <mark@codesourcery.com>
3036
3037 * c-common.h (add_stmt): Change prototype.
3038 (RECHAIN_STMTS): New macro.
3039 (CASE_LABEL_DECL): Likewise.
3040 (genrtl_case_label): Change prototype.
3041 (c_expand_start_case): Remove prototype.
3042 (build_case_label): Change prototype.
3043 (decl_constant_value): Declare.
3044 * c-common.c (check_case_value): Handle C++'s extensions to C
3045 semantics.
3046 * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
3047 field.
3048 * c-parse.in (stmt): Adjust handling of return statements and case
3049 laels.
3050 * c-semantics.c (add_stmt): Return the new statement.
3051 (genrtl_return_stmt): Take the RETURN_STMT as input, not the
3052 returned expression. Directly generate RTL, rather than calling
3053 c_expand_return.
3054 (genrtl_switch_stmt): Don't call c_expand_start_case.
3055 (build_case_label): Take the LABEL_DECL as input, too.
3056 (genrtl_case_label): Just call add_case_node.
3057 (expand_stmt): Adjust calls to genrtl_return_stmt and
3058 genrtl_case_label.
3059 * c-tree.h (c_expand_start_case): Declare.
3060 * c-typeck.c (decl_constant_value): Give it external linkage.
3061 (c_expand_return): Don't call expand_return or expand_null_return;
3062 use genrtl_return_stmt instead.
3063 * stmt.c (struct nesting): Remove num_ranges field.
3064 (add_case_node): Give it external linkage.
3065 (expand_start_case): Don't set num_ranges.
3066 (expand_start_case_dummy): Don't clear it.
3067 (pushcase): Rely on add_case_node to handle `default' labels.
3068 (add_case_node): Handle `default' labels.
3069 * tree.c (tree_int_cst_compare): New function.
3070 * tree.h (tree_int_cst_compare): Declare.
3071 (add_case_node): Likewise.
3072
3073 2000-09-10 Richard Henderson <rth@cygnus.com>
3074
3075 * c-parse.in: Revert last change.
3076 (init_reswords): Do not enter disabled keywords into the ridpointers
3077 table, modulo objc weirdness.
3078 (_yylex): Return the canonical spelling for a keyword.
3079
3080 2000-09-10 Philip Blundell <philb@gnu.org>
3081
3082 * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
3083 * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
3084
3085 Sun Sep 10 14:30:28 EDT 2000 John Wehle (john@feith.com)
3086
3087 * alias.c (find_base_term): Handle ADDRESSOF.
3088 (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
3089
3090 2000-09-10 Denis Chertykov <denisc@overta.ru>
3091
3092 * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
3093 outputting templates with many lines.
3094
3095 2000-09-10 Stephane Carrez <Stephane.Carrez@worldnet.fr>
3096
3097 * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
3098 to decide whether 64-bit support must be generated.
3099
3100 2000-09-10 Richard Henderson <rth@cygnus.com>
3101
3102 * c-parse.in (asm patterns): Fix volatile check.
3103
3104 2000-09-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3105
3106 * cppmacro.c (check_trad_stringification): New function.
3107 (save_expansion): If -Wtraditional, warn about stringification of
3108 macro arguments.
3109
3110 2000-09-11 Michael Hayes <mhayes@cygnus.com>
3111
3112 * loop.h (struct loop_mem_info): Move from loop.c
3113 (struct loop_info): Add fields store_mems, mems, mems_idx,
3114 mems_allocated, unknown_address_altered,
3115 unknown_constant_address_altered, num_mem_sets, and
3116 first_loop_store_insn.
3117
3118 * loop.c (loop_store_mems): Replace with field in loop_info struct.
3119 (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
3120 (unknown_address_altered, unknown_constant_address_altered): Likewise.
3121 (num_mem_sets): Likewise.
3122 (replace_loop_mems, replace_loop_regs): New.
3123 (struct loop_replace_args): New.
3124 (load_mems): Use replace_loop_mems.
3125 (try_copy_prop): Use replace_loop_regs.
3126 (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
3127
3128 2000-09-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
3129
3130 * configure.in: Recognize m6811-elf and m6812-elf.
3131 * configure: Regenerate.
3132
3133 2000-09-09 Geoff Keating <geoffk@cygnus.com>
3134
3135 * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
3136 to operand_subword.
3137
3138 2000-09-10 Michael Hayes <mhayes@cygnus.com>
3139
3140 * loop.c (struct movables): New.
3141 (num_movables): Move into struct movables.
3142 (the_movables): Change type to struct movables.
3143 (ignore_some_movables): Change struct movable arg to struct movables.
3144 (force_movables, combine_movables, regs_match_p): Likewise.
3145 (rtx_equal_for_loop_p, move_movables): Likewise.
3146 (scan_loop): Change movables to be of type struct movables.
3147 Replace last_movable with field in movables structure.
3148
3149 2000-09-08 Zack Weinberg <zack@wolery.cumb.org>
3150
3151 * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
3152 (init_pragma): Avoid warning if pfile happens to be unused.
3153 * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS. Never
3154 define init_pragma to nothing. Always prototype
3155 init_pragma. Prototype dispatch_pragma if !USE_CPPLIB.
3156
3157 * c-lex.c (process_directive): Always call dispatch_pragma.
3158 Initialize entering_c_header to 0.
3159
3160 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
3161
3162 * config/m68hc11/m68hc11.md: New file, machine description for
3163 68HC11 & 68HC12.
3164 * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
3165 * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
3166 * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
3167 * config/m68hc11/m68hc11-protos.h: New file.
3168 * config/m68hc11/m68hc11-crt0.S: New file, startup code.
3169 * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
3170 * config/m68hc11/xm-m68hc11.h: New file, target defs.
3171 * config/m68hc11/larith.asm: New file, libgcc routines.
3172
3173 2000-09-08 Stephane Carrez <Stephane.Carrez@worldnet.fr>
3174
3175 * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
3176 (FPBIT_FUNCS): Add _usi_to_sf.
3177 * config/fp-bit.c (usi_to_float): New function.
3178 * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
3179 (usi_to_float): Add appropriate #define.
3180
3181 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
3182
3183 * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
3184 new functions.
3185 * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
3186 * i386.md (attr "type"): Add sse and mmx types.
3187 (attr "memory"): Handle them without a crash.
3188 (movsi_1, movdi_2): Allow MMX regs.
3189 (movdi splits): Don't split moves involving MMX regs.
3190 (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
3191 (movv4sf_internal, movv4si_internal, movv8qi_internal,
3192 movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
3193 movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
3194 sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
3195 sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
3196 sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
3197 addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
3198 divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
3199 sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
3200 sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
3201 vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
3202 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
3203 cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
3204 addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
3205 subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
3206 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
3207 mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
3208 mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
3209 eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
3210 smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
3211 lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
3212 mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
3213 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
3214 mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
3215 mmx_clrdi): New patterns.
3216
3217 2000-09-08 Richard Earnshaw <rearnsha@arm.com>
3218
3219 * arm.c: Don't include tm.h directly.
3220
3221 Fri Sep 8 14:34:56 MET DST 2000 Jan Hubicka <jh@suse.cz>
3222
3223 * recog.c (validate_replace_rtx_1): Fix confusion about equality
3224 testing; simplify subregs of constants and nested subregs.
3225
3226 2000-09-08 Alexandre Oliva <aoliva@redhat.com>
3227
3228 * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
3229
3230 2000-09-08 Bernd Schmidt <bernds@redhat.co.uk>
3231
3232 * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
3233 VEC_CONCAT.
3234 * rtl.texi (description of USE): Add note about possible pitfalls
3235 with this rtx.
3236 From Richard Henderson:
3237 * reload1.c (choose_reload_regs): Compute need_mode properly.
3238
3239 2000-09-07 Richard Henderson <rth@cygnus.com>
3240
3241 * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
3242 (__modsi3, __umodsi3): Likewise.
3243 (__udivsi3): Likewise. Normalize the TFmode values.
3244
3245 2000-09-07 Geoff Keating <geoffk@cygnus.com>
3246
3247 * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
3248 with a prototype.
3249 * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
3250 warning.
3251
3252 Fri Sep 8 03:26:38 2000 J"orn Rennecke <amylaar@redhat.co.uk>
3253
3254 * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
3255 (cmpeqdi_t): Add output pattern.
3256 (cmpeqdi_t+1): Don't split when not optimizing.
3257 Restore proper splitting operation.
3258
3259 2000-09-07 Richard Henderson <rth@cygnus.com>
3260
3261 * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
3262 do not call dispatch_pragma.
3263
3264 2000-09-07 Jim Wilson <wilson@cygnus.com>
3265
3266 * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
3267 to CLASS_CANNOT_CHANGE_MODE.
3268 * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
3269 mode classes are different.
3270
3271 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
3272
3273 * cpplib.h (struct cpp_options): Add user_label_prefix member,
3274 left out of commit which removed cppulp.c.
3275
3276 2000-09-07 Richard Henderson <rth@cygnus.com>
3277
3278 * bb-reorder.c (fixup_reorder_chain): Add jump in new block
3279 after switch for CASE_DROPS_THROUGH.
3280
3281 2000-09-07 Richard Henderson <rth@cygnus.com>
3282
3283 * loop.c (strength_reduce): Call check_ext_dependant_givs.
3284 Properly extend the biv initial value for the giv.
3285 (record_biv): Zero ext_dependant.
3286 (record_giv): New argument ext_val. Update all callers.
3287 (general_induction_var): Likewise.
3288 (consec_sets_giv): Likewise.
3289 (simplify_giv_expr): Likewise. Fill in ext_val if we find
3290 a sign-extend, zero-extend, or truncate.
3291 (combine_givs_p): Make sure modes are compatible.
3292 (check_ext_dependant_givs): New.
3293 (extend_value_for_giv): New.
3294 * loop.h (struct induction): Add ext_dependant.
3295 * unroll.c (iteration_info): Extend the biv initial value for the giv.
3296 (find_splittable_givs): Likewise.
3297 (final_giv_value): Likewise.
3298
3299 2000-09-07 Zack Weinberg <zack@wolery.cumb.org>
3300
3301 * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
3302 REGISTER_TARGET_PRAGMAS is defined. Duplicate some
3303 definitions from cpplib.h.
3304 * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
3305 already done it.
3306 * tm.texi: Document HANDLE_PRAGMA as no longer supported. Add
3307 documentation for REGISTER_TARGET_PRAGMAS.
3308
3309 * c-lex.c: Include cpplib.h before c-pragma.h. Define a
3310 default-pragma callback to implement -Wunknown-pragmas if
3311 USE_CPPLIB.
3312 * c-parse.in: Move all includes to top of file.
3313 * c-pragma.c: Include cpplib.h before c-pragma.h. Include
3314 tm_p.h.
3315 (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
3316 warning.
3317 (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
3318
3319 * arm.h, arm-protos.h, arm.c,
3320 c4x.h, c4x-protos.h, c4x.c,
3321 h8300.h, h8300-protos.h, h8300.c,
3322 i370.h, i370-protos.h, i370.c,
3323 i960.h, i960-protos.h, i960.c,
3324 sh.h, sh-protos.h, sh.c,
3325 v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
3326 pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
3327
3328 * d30v.h: Don't mention HANDLE_PRAGMA in comment. Add
3329 multiple include guard.
3330 * i370.md (untyped_call): Use GEN_CALL.
3331 (umodsi3): Remove unused variable.
3332 * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
3333 * v850.c (output_move_single, output_move_double): Constify
3334 return value.
3335 (print_operand): Constify a char *.
3336 * v850.h (struct small_memory_info): Constify name member.
3337
3338 2000-09-07 Kazu Hirata <kazu@hxi.com>
3339
3340 * config/h8300.h: Fix comment typos.
3341 * config/h8300/h8300.md: Likewise.
3342 * config/h8300/lib1funcs.asm: Likewise.
3343
3344 Thu 07-Sep-2000 21:29:00 BST Neil Booth <NeilB@earthling.net>
3345
3346 * Makefile.in: Remove references to cppulp.{c,o}.
3347 * cppinit.c (initialize_builtins, cpp_start_read,
3348 cpp_handle_option): Update to use cpp_options structure.
3349 * cppulp.c: Remove.
3350
3351 2000-09-07 Joseph S. Myers <jsm28@cam.ac.uk>
3352
3353 * c-common.c (time_char_table): Allow %#b and %#h.
3354
3355 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3356
3357 * reorg.c (find_end_label): If the basic block reorder pass moves the
3358 return insn to some other place try to locate it again and put our
3359 end_of_function_label there.
3360 * reorg.c (relax_delay_slots): Check if find_end_label created a
3361 new label that invalidates the current optimazation.
3362
3363 2000-09-07 Catherine Moore <clm@redhat.com>
3364
3365 * unroll.c (unroll_loop): Check for unconditional jumps
3366 to loop continuation. Delete if n_iterations is 1.
3367 (ujump_to_loop_cont): New routine.
3368
3369 2000-09-07 Bernd Schmidt <bernds@redhat.co.uk>
3370
3371 * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
3372 MODE_VECTOR_FLOAT.
3373 * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
3374 to handle multiword modes correctly. All callers and the declaration
3375 changed.
3376
3377 2000-09-06 Mark Mitchell <mark@codesourcery.com>
3378
3379 * c-common.h (prep_stmt): Declare.
3380 (lang_expand_stmt): Likewise.
3381 * c-decl.c (lang_expand_stmt): Remove.
3382 * c-semantics.c (lang_expand_stmt): Define.
3383 (prep_stmt): New function.
3384 (expand_stmt): Handle common statement types here.
3385
3386 2000-09-07 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>, Alexandre Oliva <aoliva@redhat.com>
3387
3388 * configure.in (sh-*-linux*): Added.
3389 * configure: Rebuilt.
3390 * config/sh/t-linux: New file.
3391 * config/sh/sh.h (USERMODE_BIT): Define.
3392 (TARGET_USERMODE): Likewise.
3393 (TARGET_SWITCHES): New switches for the bits above.
3394 (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
3395 * config/sh/linux.h: New file.
3396 * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
3397 underscore on linux.
3398 (L_sdivsi3, L_udivsi3): Define for linux.
3399 (L_ic_invalidate): Define.
3400 * invoke.texi (SH Options): Document -musermode.
3401
3402 2000-09-07 Alexandre Oliva <aoliva@redhat.com>
3403
3404 * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
3405 CSE unless generating PIC.
3406
3407 * config/sh/sh.md (symPLT_label2reg): Force the initialization of
3408 the PIC register.
3409
3410 2000-09-06 H.J. Lu (hjl@gnu.org)
3411
3412 * Makefile.in (clean_s1): Depend on stage_b.
3413 (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
3414 stage2. They are used for "make compare".
3415
3416 2000-09-06 Mark Mitchell <mark@codesourcery.com>
3417
3418 Move statement-tree facilities from C++ to C front-end.
3419 * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
3420 (void_zero_node): New macro.
3421 (struct stmt_tree_s): New type.
3422 (stmt_tree): New typedef.
3423 (struct language_function): New type.
3424 (last_tree): New macro.
3425 (last_expr_type): Likewise.
3426 (walk_tree_fn): New typedef.
3427 (current_stmt_tree): New function.
3428 (begin_stmt_tree): Likewise.
3429 (add_stmt): Likewise.
3430 (finish_stmt_tree): Likewise.
3431 (statement_code_p): Likewise.
3432 (lang_statement_code_p): New variable.
3433 (walk_stmt_tree): New function.
3434 (STMT_IS_FULL_EXPR_P): New macro.
3435 * c-common.c (lang_statement_code_p): New variable.
3436 (c_common_nodes_and_builtins): Initialize void_zero_node.
3437 (statement_code_p): New function.
3438 (walk_stmt_tree): Likewise.
3439 * c-decl.c (language_function): Rename to ...
3440 (c_language_function): ... this. Include language_function.
3441 (push_c_function_context): Adjust accordingly.
3442 (pop_c_function_context): Likewise.
3443 (mark_c_function_context): Likewise.
3444 (current_stmt_tree): Define.
3445 * c-semantics.c (begin_stmt_tree): New function.
3446 (add_stmt): Likewise.
3447 (prune_unused_decls): Likewise.
3448 (finish_stmt_tree): Likewise.
3449
3450 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3451
3452 * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
3453
3454 2000-09-06 Kazu Hirata <kazu@hxi.com>
3455
3456 * calls.c: Fix formatting.
3457
3458 2000-09-06 Graham Stott <grahams@cygnus.co.uk>
3459
3460 * config/i386/i386.h (ADDRESS_COST): Fix typo.
3461
3462 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
3463
3464 Integrated preprocessor.
3465
3466 * Makefile.in: Remove all references to c-parse.gperf,
3467 c-gperf.h, and c-parse.h. Remove -d from yacc command line
3468 generating c-parse.c. Update dependencies.
3469 * c-parse.gperf, c-gperf.h: Delete.
3470
3471 * c-common.c: Don't define parse_options, cpp_token, yy_cur,
3472 yy_lim, or yy_get_token. Don't define get_directive_line if
3473 USE_CPPLIB.
3474 * c-common.h: Add multiple include guard. Define RID values
3475 for every keyword in C, C++, and Objective C. Put all the
3476 modifiers first.
3477 (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
3478 * c-decl.c (c_decode_option): Handle -lang-objc here.
3479 (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
3480 (grokdeclarator): Adjust for new RID scheme.
3481 (extract_interface_info): New stub.
3482 * c-lang.c: Don't declare yy_cur or parse_options.
3483 (lang_init_options): Call cpp_init. Don't call
3484 cpp_options_init.
3485 (lang_init): Don't call check_newline if USE_CPPLIB.
3486
3487 * c-lex.c: Don't include c-parse.h. Do include timevar.h.
3488 Elide lots of unnecessary code if USE_CPPLIB. Delete code
3489 rendered unnecessary by new architecture. Move routines not
3490 shared with C++ to c-parse.in. Maintain a local idea of the
3491 line number. Handle C++ as well as C.
3492 [USE_CPPLIB]: Declare and register callbacks for #ident and
3493 for entering/leaving files.
3494 (init_c_lex, c_lex): Are now the entry points to this file.
3495 (check_newline): Break out directive handling to
3496 process_directive.
3497 (read_ucs, is_extended_char, utf8_extend_token): Moved here
3498 from C++ front end.
3499 (readescape, parse_float): Overhaul.
3500 (lex_number, lex_string, lex_charconst): Break out of c_lex
3501 (n'ee yylex).
3502 (get_fileinfo, update_header_times, dump_one_header,
3503 dump_time_statistics): New and/or moved here from C++.
3504 Support per-file data needed by C++ and per-header timing
3505 statistics (C++ only, at the moment).
3506 * c-lex.h: Update prototypes. Add multiple include guard.
3507 * c-tree.h (struct lang_identifier): Add rid_code field.
3508 (C_IS_RESERVED_WORD, C_RID_CODE): New.
3509
3510 * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
3511 reinit_parse_for_function and/or position_after_white_space.
3512 (save_filename, save_lineno): Look ahead before saving.
3513 (label -> identifier ':'): Save file and line before shifting ':'.
3514 (reservedwords): No need to call get_identifier.
3515 (init_parse, finish_parse, yyerror, yylex, yyprint,
3516 make_pointer_declarator): Are now here for C/ObjC.
3517 (rid_to_yy): Conversion table from RID constants to Yacc codes.
3518
3519 * c-pragma.c: Rewrite parsing logic to fit with cpplib's
3520 #pragma registry. Provide dummy implementation of that
3521 interface if !USE_CPPLIB.
3522 * c-pragma.h: Update to match.
3523
3524 * flags.h: Add multiple include guard.
3525 (flag_detailed_statistics): Moved here from C++.
3526 * toplev.c: Define flag_detailed_statistics.
3527
3528 * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
3529 #if USE_CPPLIB.
3530 * timevar.def (TV_CPP, TV_LEX): New.
3531 * timevar.h: Add multiple include guard.
3532
3533 * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
3534 #if USE_CPPLIB.
3535 * objc/objc-act.c: Don't mention yy_cur or parse_options.
3536 Initialize cpplib properly. Force lineno to 0 after first
3537 call to check_newline. Don't handle -lang-objc here.
3538 Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
3539
3540 2000-09-06 David Edelsohn <edelsohn@gnu.org>
3541
3542 * rs6000.md: Correct function unit definitions for cr_logical and
3543 mtjmpr.
3544 (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
3545 and use portable method for >=0 and floating point >=. Remove
3546 associated matchers.
3547
3548 2000-09-06 Mark Mitchell <mark@codesourcery.com>
3549
3550 * extend.texi: Mark named return value extension as deprecated.
3551
3552 2000-09-06 Geoff Keating <geoffk@cygnus.com>
3553
3554 * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
3555 the result.
3556
3557 2000-09-06 Gabriel Dos Reis <gdr@codesourcery.com>
3558
3559 * toplev.c (display_help): Fix thinko in documentation.
3560
3561 * diagnostic.h (output_buffer::indent_skip): New fields.
3562 (output_indentation): New macro.
3563
3564 * diagnostic.c (output_indent): New function.
3565 (output_set_prefix, clear_diagnostic_info): Use.
3566 (output_emit_prefix): Predict future indentation.
3567
3568 2000-09-06 DJ Delorie <dj@redhat.com>
3569
3570 * Makefile.in (stage_*): add more dependencies to ensure parallel
3571 builds build correctly
3572
3573 2000-09-06 Manfred Hollstein <manfredh@redhat.com>
3574
3575 * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
3576 not bootstrap-lean_f.
3577
3578 2000-09-06 Andreas Schwab <schwab@suse.de>
3579
3580 * mklibgcc.in: Emit rule for libgcc-stage-start.
3581 * Makefile.in (stage1-start, stage2-start, stage3-start,
3582 stage4-start): Don't handle libgcc here, use libgcc.mk instead.
3583
3584 2000-09-06 Bernd Schmidt <bernds@redhat.co.uk>
3585
3586 * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
3587 (update_equiv_regs): Likewise, except for the mn10200 kludge.
3588 (combine_regs): Likewise.
3589
3590 * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
3591 * cse.c: Include "basic-block.h".
3592 (struct table_elt): New field REGCOST.
3593 (CHEAP_REG): Delete macro.
3594 (COST): Return 0 for REGs.
3595 (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
3596 (notreg_cost): Return 0 for appropriate SUBREGs.
3597 (COSTS_N_INSNS): Return N * 2.
3598 (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
3599 SUBREGs.
3600 (CHEAPER): Use new function preferrable.
3601 (insert): Initialize REGCOST member.
3602 (find_best_addr): Use approx_reg_cost for estimation of register
3603 usage.
3604 (cse_insn): Likewise.
3605 * loop.c (iv_add_mult_cost): New function.
3606 (add_cost, shift_cost, mult_cost): Delete variables.
3607 (init_loop): Don't initialize add_cost; reduce copy_cost by half.
3608 (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
3609 Make code that detects autoinc opportunities slightly less optimistic.
3610 (simplify_giv_expr): If expression contains other reg that is also a
3611 giv, only increment benefit if this is the only use of that reg.
3612 (consec_sets_giv): Take that change into account.
3613 (combine_givs): Slightly more verbose output.
3614
3615 * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
3616 not the cost of an equivalent shift.
3617 * sh-protos.h (addsubcosts): Declare.
3618 * sh.c (addsubcosts): New function.
3619 * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
3620 (RTX_COSTS): Tweak. Use addsubcosts.
3621 (ADDRESS_COST): Return higher cost for reg+reg addressing.
3622
3623 2000-09-06 Geoff Keating <geoffk@cygnus.com>
3624
3625 * config/rs6000/rs6000.c (validate_condition_mode): New function.
3626 (branch_comparison_operator): Call validate_condition_mode to
3627 abort rather than returning 0.
3628 (branch_positive_comparison_operator): New function.
3629 (scc_comparison_operator): Call validate_condition_mode to abort
3630 rather than returning 0.
3631 (ccr_bit): Call validate_condition_mode. Update for
3632 new branch scheme.
3633 (print_operand): Delete %C modifier. Update %E case
3634 to use EQ bit not SO bit.
3635 (rs6000_reverse_condition): New function.
3636 (rs6000_generate_compare): New function.
3637 (rs6000_emit_sCOND): New function.
3638 (rs6000_emit_cbranch): New function.
3639 (output_cbranch): The length of a long branch insn is
3640 now only 8 bytes. Add validate_condition_mode. Use
3641 rs6000_reverse_condition. Remove cror generation.
3642
3643 * config/rs6000/rs6000.h: Update comments.
3644 (PREDICATE_CODES): Add new predicate. Update codes used
3645 by branch_comparison_operator and scc_comparison_operator.
3646 * config/rs6000/rs6000-protos.h: Add prototypes for
3647 new external functions.
3648 * config/rs6000/rs6000.md: Add new scheduling parameters
3649 for cr_logical instructions. Change length of branch
3650 instructions.
3651 (bCOND patterns): Call rs6000_emit_cbranch.
3652 (sCOND patterns): Call rs6000_emit_sCOND.
3653 (branch patterns): Change lengths to 4.
3654 (cr logical patterns): New.
3655
3656 2000-09-06 Richard Henderson <rth@cygnus.com>
3657
3658 * config/i386/i386.md (call_pop): Fix test for setting
3659 current_function_uses_pic_offset_table.
3660 (call, call_value_pop, call_value): Likewise.
3661
3662 2000-09-06 Zack Weinberg <zack@wolery.cumb.org>
3663
3664 * timevar.c (timevar_add): Delete.
3665 (timevar_get): Also count time since the selected timer was
3666 last updated. Do not examine the timevar stack if the
3667 selected timer is standalone.
3668
3669 2000-09-05 J. David Anglin <dave@hiauly1.hia.nrc.ca>
3670
3671 * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
3672
3673 2000-09-05 Jason Merrill <jason@redhat.com>
3674
3675 * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
3676 for 'extern' arrays.
3677
3678 2000-09-05 Richard Henderson <rth@cygnus.com>
3679
3680 * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
3681 Eliminate final copy from non-trapping case.
3682 (__divdf3, __divsf3): Likewise.
3683
3684 2000-09-05 Richard Henderson <rth@cygnus.com>
3685
3686 * config/ia64/ia64.md (mulhi3): Fix typo last change.
3687 * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
3688
3689 2000-09-03 Donn Terry <donn@interix.com>, Laurynas Biveinis <lauras@softhome.net>
3690
3691 * Makefile.in: Restructure bootstrap stages to allow clean
3692 restart after failure.
3693
3694 2000-09-05 Richard Henderson <rth@cygnus.com>
3695
3696 * config/ia64.md (movsi and movdi patterns): Allow moves from
3697 8-bit constants to AR registers.
3698
3699 2000-09-05 Richard Henderson <rth@cygnus.com>
3700
3701 * config/ia64/ia64.md (mulhi3): New.
3702
3703 2000-09-05 Richard Henderson <rth@cygnus.com>
3704
3705 * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
3706 * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
3707 Optimization Guide, minimum latency alternative.
3708 (__moddi3, __udivdi3, __umoddi3): Likewise.
3709 (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
3710
3711 2000-09-05 Bruce Korb <bkorb@gnu.org>
3712
3713 * fixinc/fixincl.c (load_file): always read header files
3714 with sizes that are a multiple of the page size.
3715 & use libiberty's getpagesize for determining that.
3716
3717 2000-09-05 Alexandre Oliva <aoliva@redhat.com>
3718
3719 * gcse.c (hash_string_1): Add prototype.
3720 * cse.c (canon_hash_string): Likewise.
3721
3722 2000-09-04 Craig Newell <CraigN@ieee.org>
3723
3724 * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
3725
3726 2000-09-04 Andreas Schwab <schwab@suse.de>
3727
3728 * Makefile.in (STAGESTUFF): Remove libgcc.
3729 (stage1-start, stage2-start, stage3-start): Copy the contents of
3730 the libgcc directory explicitly.
3731 (mostlyclean): Clean libgcc.
3732
3733 2000-09-04 Andrew Haley <aph@redhat.com>
3734
3735 * dwarf2out.c: (stack_adjust_offset): New prototype.
3736
3737 Wed Jan 1 00:23:59 MET 1997 Jan Hubicka <jh@suse.cz>
3738
3739 * combine.c (make_extraction): Fix rtx_cost comparison to
3740 match the comment.
3741
3742 Wed Jan 1 00:17:32 MET 1997 Jan Hubicka <jh@suse.cz>
3743
3744 * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
3745 umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
3746 Add '*' to insn pattern name.
3747
3748 2000-09-04 Jakub Jelinek <jakub@redhat.com>
3749
3750 * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
3751 use posn - 1 to index into tokens array.
3752 (maybe_paste_with_next): Adjust caller.
3753
3754 2000-09-03 Geoff Keating <geoffk@cygnus.com>
3755
3756 * invoke.texi: Document the -mvxworks option for rs6000 ELF.
3757
3758 * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
3759 (REGNO_REG_CLASS): Use symbolic register
3760 names.
3761
3762 2000-09-03 Richard Earnshaw <rearnsha@arm.com>
3763
3764 * arm.c (final_prescan_insn): If the form of a jump insn isn't
3765 recognized, don't try to conditionally execute it.
3766
3767 Sun Sep 3 13:10:56 2000 Denis Chertykov <denisc@overta.ru>
3768
3769 * config/avr/avr.md ("*tablejump_lib"): New pattern.
3770 (call_value_insn): Right length claculation.
3771 (call_insn): Likewise.
3772
3773 2000-09-02 Marek Michalkiewicz <marekm@linux.org.pl>
3774
3775 * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
3776 gas_output_limited_string, gas_output_ascii, output_movqi,
3777 output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
3778 out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
3779 out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
3780 ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
3781 lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
3782 out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
3783 Add "const" as needed to remove warnings.
3784
3785 * config/avr/avr.c (avr_override_options, avr_init_once,
3786 function_prologue, function_epilogue, frame_pointer_required_p,
3787 class_likely_spilled_p, order_regs_for_local_alloc,
3788 avr_address_cost, avr_ret_register): Use K&R style arguments.
3789 (initial_elimination_offset, gas_output_limited_string):
3790 Remove ATTRIBUTE_UNUSED from the used arguments.
3791 (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
3792 Use local variables src, dest, base to access operands[].
3793 Rename reg_dest to reg_src if that's what it is.
3794 (output_movhi, output_movsisf): Optimize loading 8-bit immediate
3795 constants to LD_REGS if reg_was_0.
3796 (output_reload_insisf): Change arg 3 to insn length and set it.
3797 (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
3798 access to 16-bit I/O register pairs.
3799 (avr_address_cost): Lower cost for the above case.
3800 (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
3801 may be clobbered, also for LD_REGS.
3802 (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
3803 with a CONST_INT.
3804
3805 * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
3806
3807 * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
3808 macro to test_hard_reg_class function.
3809 (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
3810 for loading immediate constants to LD_REGS.
3811 (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
3812
3813
3814 Sat Sep 2 13:58:23 2000 Marek Michalkiewicz <marekm@linux.org.pl>
3815
3816 * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
3817 * config/avr/libgcc.S: Lost part of the previous patch.
3818
3819 2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
3820
3821 * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
3822 object before calling pthread_mutex_init.
3823
3824 2000-09-02 Alexandre Oliva <aoliva@redhat.com>
3825
3826 * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
3827 config/sh/crtn.asm: New files.
3828 * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
3829 (crt1.o, crti.o, crtn.o): New targets.
3830 * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
3831 sh/t-elf.
3832 * configure: Rebuilt.
3833 * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
3834 STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
3835 * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
3836 Undefine for config/elfos.h to redefine.
3837 (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
3838
3839 2000-09-02 Alexandre Oliva <aoliva@redhat.com>, Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
3840
3841 * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
3842 legitimize_pic_address, output_pic_addr_const): Declare.
3843 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
3844 (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
3845 (TARGET_SWITCHES): New switch -mprefergot.
3846 (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
3847 (PIC_OFFSET_TABLE_REGNUM): Define.
3848 (GOT_SYMBOL_TABLE): Likewise.
3849 (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
3850 (ENCODE_SECTION_INFO): Define.
3851 (FINALIZE_PIC): New macros.
3852 (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
3853 (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
3854 * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
3855 (prepare_move_operands): Call emit_pic_move or
3856 emit_pic_const_move if appropriate.
3857 (output_far_jump): For PIC, use braf and output long offset.
3858 (machine_dependent_reorg):
3859 (sh_expand_prologue): Save and initialize the PIC register.
3860 (sh_expand_epilogue): Restore it.
3861 (initial_elimination_offset): Account for it.
3862 (nonpic_symbol_mentioned_p): New function.
3863 (legitimize_pic_address): Likewise.
3864 (output_pic_addr_const): Likewise.
3865 * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
3866 (call, call_value): Use them.
3867 (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
3868 symPLT_label2reg): New expands.
3869 * invoke.texi (SH Options): Document -mprefergot.
3870
3871 2000-09-01 Alexandre Oliva <aoliva@redhat.com>
3872
3873 * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
3874 * gcse.c (hash_string_1): New function.
3875 (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
3876 (expr_equiv_p) <ASM_OPERANDS>: Likewise.
3877 * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
3878 (canon_hash_string): New function.
3879 (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
3880 (exp_equiv_p) <ASM_OPERANDS>: Likewise.
3881 (fold_rtx): Use ASM_OPERANDS accessor macros.
3882 * emit-rtl.c (copy_insn_1): Likewise.
3883 * integrate.c (copy_rtx_and_substitute): Likewise.
3884 * stmt.c (expand_asm_operands): Likewise. Give an
3885 ASM_OPERANDS rtx the mode of the output reg being set from it.
3886
3887 2000-09-01 Fred Fish <fnf@be.com>
3888
3889 * fix-header.c (write_rbrac): Add putc and getc to list of
3890 functions to protect against prior definition as a macro.
3891
3892 2000-09-01 Joseph S. Myers <jsm28@cam.ac.uk>
3893
3894 * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
3895 (c_size_type_node): Define.
3896 * c-decl.c (init_decl_processing): Initialize c_size_type_node.
3897 * c-common.c (enum format_lengths, enum format_std_version,
3898 format_length_info, format_type_detail, BADLEN, NOLENGTHS,
3899 format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
3900 T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
3901 T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
3902 T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
3903 TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
3904 format_types): Define.
3905 (format_char_info, print_char_table, scan_char_table,
3906 time_char_table): Rearrange for new organization of information
3907 about format length modifiers and standard versions.
3908 (T_ST): Redefine to use c_size_type_node.
3909 (check_format_info): Obtain information about length modifiers and
3910 standard versions from tables. Adjust warning message wordings.
3911 Use the name from the user's program for `ll' and `hh' length
3912 modifiers in warning messages. Use more informative names for
3913 wanted types where available (for wchar_t, wint_t, size_t, signed
3914 size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
3915
3916 2000-09-01 Jim Wilson <wilson@cygnus.com>
3917
3918 * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
3919 * combine.c (distribute_notes): Handle REG_NORETURN.
3920 * rtl.c (reg_note_name): Add REG_NORETURN.
3921 * rtl.h (enum reg_note): Likewise.
3922
3923 * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
3924 ia64_file_start.
3925 * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
3926 (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
3927 (emit_predicate_relation_info): Handle conditional calls with
3928 REG_NORETURN.
3929 * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
3930 instead of ia64_file_start.
3931 * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
3932 * config/ia64/ia64.md (safe_across_calls_all,
3933 save_across_calls_normal): New patterns.
3934
3935 * loop.c (check_final_value): Check for biv use before checking for
3936 giv use. Check for both biv and giv uses. Always set last_giv_use
3937 if there is a giv use.
3938
3939 2000-09-01 Richard Henderson <rth@cygnus.com>
3940
3941 * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
3942 (madddi3): Likewise.
3943 (maddsi3): New.
3944
3945 Fri Sep 1 10:59:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3946
3947 * expr.c (clear_storage): Don't use emit_move_insn unless
3948 either BLKmode or proper size.
3949 (store_constructor): Don't call clear_storage if REG of wrong size.
3950
3951 * flow.c (init_propagate_block_info): Don't mark frame dead at end
3952 of function if returns wiht stack pointer depressed.
3953
3954 2000-09-01 Andrew Haley <aph@redhat.com>
3955
3956 * dwarf2out.c (stack_adjust_offset): New function.
3957 (dwarf2out_stack_adjust): Break out stack adjust logic into
3958 new stack_adjust_offset function. Look inside parallels and
3959 sequences for stack adjustments.
3960
3961 2000-08-31 Jeff Law <law@cygnus.com>
3962
3963 * arm.md: Use no_new_pseudos to determine when it is safe
3964 to create new pseudo registers.
3965
3966 * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
3967 when we can safely allocate new registers.
3968
3969 2000-08-31 Geoffrey Keating <geoffk@cygnus.com>
3970
3971 * stmt.c (expand_asm_operands): Twiddle generating_concat_p
3972 so that CONCATs are not generated for ASMs.
3973 * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
3974 not generating_concat_p.
3975 * function.c (pop_function_context_from): Reset
3976 generating_concat_p.
3977 (prepare_function_start): Likewise.
3978 * rtl.c (generating_concat_p): Define.
3979 * rtl.h (generating_concat_p): Declare.
3980 * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
3981
3982 2000-08-22 Philipp Thomas <pthomas@suse.de>
3983 Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
3984
3985 * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
3986 for translation.
3987
3988 2000-08-30 Greg McGary <greg@mcgary.org>
3989
3990 * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
3991 * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
3992 * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
3993
3994 2000-08-30 Greg McGary <greg@mcgary.org>
3995
3996 * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
3997 (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
3998 (TREE_INT_CST): New macro.
3999 * varasm.c (const_hash, compare_constant_1, record_constant_1):
4000 Use new macro TREE_INT_CST.
4001
4002 Wed 30-Aug-2000 23:18:59 BST Neil Booth <NeilB@earthling.net>
4003
4004 * contrib.texi: Add self.
4005
4006 2000-08-30 Alexandre Oliva <aoliva@redhat.com>
4007
4008 * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
4009 (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
4010 and labels.
4011
4012 2000-08-30 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4013
4014 * fixinc/gnu-regex.c: Don't define `const'.
4015
4016 Tue Aug 29 22:09:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4017
4018 * expr.c (store_constructor): Allow variable bounds of array type.
4019 (expand_expr): Don't blow up if type is ERROR_MARK.
4020 * varasm.c (output_constructor): Don't access lower bound of array
4021 type unless need it if index is supplied (so it can be a variable
4022 if no index is supplied).
4023 Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
4024 Other minor cleanups.
4025
4026 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4027
4028 * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
4029 for compilations in stage 1 and subsequent stages, respectively.
4030 * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
4031 * configure: Rebuilt.
4032 * x-vax, x-vax-gcc: Deleted.
4033
4034 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
4035
4036 * c-common.c (declare_function_name): Use func_id_node,
4037 function_id_node, and pretty_function_id_node. Do not make
4038 __func__ visible at file scope.
4039 * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
4040 CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
4041 (function_id_node, pretty_function_id_node, func_id_node): New
4042 macros.
4043 * c-decl.c (init_decl_processing): Initialize function_id_node,
4044 pretty_function_id_node, and func_id_node.
4045 (c_make_fname_decl): Correct comment.
4046
4047 * tree.h (struct tree_identifier): Constify pointer member.
4048
4049 * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
4050 * c-pragma.h (struct weak_syms): Constify name and value members.
4051 (add_weak): Constify arguments.
4052
4053 * calls.c (special_function_p): Constify a char *.
4054 (expand_call): Remove variable which is initialized and then
4055 never used.
4056 * dependence.c (struct def_use, struct induction, struct subscript):
4057 Constify 'variable' member.
4058 (get_low_bound, have_induction_variable): Constify char * argument.
4059 (find_induction_variable): Add braces to avoid dangling else.
4060 (classify_dependence): Constify char * arrays.
4061 * profile.c (output_func_start_profiler): Constify a char *.
4062 * stor-layout.c (finalize_record_size): Constify a char *.
4063 * tree.c (is_attribute_p): Constify a char *.
4064 * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
4065
4066 * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
4067 for comprehensibility. Do not call get_identifier if we did
4068 not change the DECL_ASSEMBLER_NAME of the decl. Use alloca to
4069 create temporary string constants, not ggc_alloc_string. No
4070 need to copy result of ASM_FORMAT_PRIVATE_NAME. Use const
4071 char * to hold IDENTIFIER_POINTERs.
4072
4073 2000-08-29 Richard Henderson <rth@cygnus.com>
4074
4075 * config/ia64/ia64.md (muldi3): Use grfr_register_operand
4076 for the inputs.
4077
4078 2000-08-29 Richard Henderson <rth@cygnus.com>
4079
4080 * reload.c (push_secondary_reload): Allow class == reload_class
4081 if we're using a reload_in/out pattern.
4082
4083 * config/ia64/ia64.md (reload_inti): Use a TImode scratch. Use
4084 the half that does not conflict with the reload register.
4085 (reload_outti): Likewise.
4086
4087 2000-08-29 Kazu Hirata <kazu@hxi.com>
4088
4089 * reload.c: Fix formatting.
4090
4091 * stmt.c: Fix formatting.
4092
4093 * gcc.c: Fix formatting.
4094
4095 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
4096
4097 * flags.h (time_report, mem_report): New global flags.
4098 * toplev.c: Define time_report and mem_report.
4099 (f_options): Add -ftime-report and -fmem-report.
4100 (compile_file): Turn on time_report if quiet_flag is off.
4101 Call ggc_print_statistics at very end if mem_report is on.
4102 * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
4103
4104 * ggc-common.c (ggc_print_statistics): Rename to
4105 ggc_print_common_statistics; all callers changed. Scale
4106 quantities above 10K to kilobytes and above 10M to megabytes.
4107 * ggc-page.c (ggc_page_print_statistics): Rename to
4108 ggc_print_statistics. Report memory consumed by internal data
4109 structures for each allocation bucket. Scale quantities above
4110 10K to kilobytes and above 10M to megabytes.
4111 * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
4112 Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
4113 Define tally_leaves always.
4114 (ggc_print_statistics): New function.
4115 * ggc.h: Adjust for renamed functions.
4116
4117 Wed Aug 30 00:11:42 2000 Denis Chertykov <denisc@overta.ru>
4118
4119 * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
4120 output_movsisf instead of which_alternative.
4121
4122 * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
4123
4124 Tue Aug 29 22:29:58 2000 Denis Chertykov <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
4125
4126 * config/avr/avr-protos.h: (avr_output_ascii) Removed.
4127 (avr_progmem_p): New prototype.
4128 (output_movsisf): Prototype declaration changed.
4129 (output_movqi): New prototype.
4130 (output_movhi): New prototype.
4131 (call_insn_operand): Likewise.
4132 (final_prescan_insn): Likewise.
4133 (avr_simplify_comparision_p): Likewise.
4134 (avr_normalize_condition): Likewise.
4135 (compare_eq_p): Likewise.
4136 (out_shift_with_cnt): Likewise.
4137 (const_int_pow2_p): Likewise.
4138 (output_reload_inhi): Prototype declaration changed.
4139
4140 * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
4141 (ldi_reg_rtx): New. rtx for r31.
4142 (avr_init_stack): Initialize as "__stack".
4143 (function_prologue): Use it.
4144 Replace all TARGET_ENHANCED with AVR_ENHANCED.
4145 (avr_mcu_name): Initialize as "avr2".
4146 (avr_enhanced_p, avr_mega_p): New variables.
4147 (mcu_types, avr_override_options): Handle all known MCU types.
4148 Also handle avr1 (only preprocess, assemble and link).
4149 (print_operand): Using of `%K' in output template removed.
4150 (out_movqi_r_mr): Optimized.
4151 (out_movhi_r_mr): Likewise.
4152 (output_movqi): New function.
4153 (output_movhi): Likewise.
4154 (out_movsi_r_mr): Optimized.
4155 (output_movsisf): Compute insn length for `adjust_insn_length'
4156 (out_movqi_mr_r): Optimized.
4157 (out_movhi_mr_r): Optimized.
4158 (adjust_insn_length): Use output_movsisf, output_movqi,
4159 output_movhi for insn length adjusting.
4160 (reg_unused_after): Use dead_or_set_p.
4161 (preferred_reload_class): Now havn't any restriction.
4162 (reg_was_0): New function.
4163 (io_address_p): Likewise.
4164 (const_int_pow2_p): Likewise.
4165 (output_reload_inhi): Likewise.
4166 (output_reload_insisf): Likewise.
4167
4168 * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
4169 (LIB_SPEC): Use -lc for all supported devices.
4170 (LIBGCC_SPEC): Use -lgcc for all supported devices.
4171 (AVR_MEGA): Define as avr_mega_p.
4172 (AVR_ENHANCED): New, define as avr_enhanced_p.
4173 (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
4174 (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
4175 (CRT_BINUTILS_SPECS): Handle all known MCU types.
4176 Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
4177 (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
4178 (ASM_SPEC): Pass -mmcu=... to the assembler.
4179 Change all -DAVR_* to -D__AVR_*__.
4180 (INIT_TARGET_OPTABS), config/avr/libgcc.S:
4181 Rename library functions to start with two underscores.
4182 (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
4183 alignment.
4184 (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
4185 (SUPPORTS_WEAK): Likewise.
4186 (LDI_REG_REGNO): New. Register r31 will be used as temporary
4187 register for loading constants to r0-r14.
4188
4189 * config/avr/avr.md: Replace all TARGET_ENHANCED with
4190 AVR_ENHANCED.
4191 (*mov_r_sp): Removed. Handled by output_movhi.
4192 (*mov_sp_r): Likewise.
4193 (*mov_sp_r_no_interrupts): Likewise
4194 (*mov_sp_r_tiny): Likewise.
4195 (*movqi): Use output_movqi.
4196 (*reload_inqi): New.
4197 (*movhi): Use output_movhi.
4198 (*reload_inhi): New.
4199 (*negsi2): Optimized.
4200 (*negsf2): Likewise.
4201 Added peepholes (define_peephole2) for loading constants to r0-r14
4202 and for using `cpse' command.
4203
4204 * config/avr/libgcc.S: Rename library functions to start with two
4205 underscores.
4206 Add support for enhanced core.
4207 (_moqhi3): Fix typo, now _modqi3.
4208 (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
4209 (__prologue_saves__): Remove test for stack adjust by 0.
4210 (__tablejump__): New.
4211
4212 * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
4213 Add multilib support.
4214
4215 Tue Aug 29 15:17:54 EDT 2000 John Wehle (john@feith.com)
4216
4217 * loop.c (prescan_loop): Don't check unknown_address_altered
4218 when deciding if insert_loop_mem is safe. Add BLKmode MEMs
4219 to loop_store_mems as necessary.
4220 (loop_invariant_p): Don't check unknown_address_altered
4221 or unknown_constant_address_altered.
4222
4223 2000-08-29 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4224
4225 * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
4226
4227 2000-08-29 Zack Weinberg <zack@wolery.cumb.org>
4228
4229 * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
4230 print just the filename.
4231 * cpplex.c (_cpp_run_directive): Add additional argument, the
4232 name to give the synthetic buffer. This defaults to
4233 translated "<command line>".
4234 * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
4235 Adjust to match.
4236 (_cpp_define_builtin): New function.
4237 * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
4238 * cpphash.h: Update prototypes.
4239
4240 * tradcpp.c (main): Process -D and -U simultaneously, in the
4241 order they appeared on the command line.
4242
4243 2000-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4244
4245 * c-decl.c (define_label): Call warning_with_file_and_line and
4246 error_with_file_and_line instead of plain warning or error.
4247
4248 * c-parse.in (label): Use save_filename/save_lineno to ensure
4249 correct values for calls to define_label.
4250
4251 2000-08-29 Mark Mitchell <mark@codesourcery.com>
4252
4253 * calls.c (expand_call): Don't create a VAR_DECL just to throw it
4254 away.
4255 * expr.c (expand_expr, case TARGET_EXPR): Don't call
4256 mark_addressable.
4257 * tree.h (get_file_function_name): Remove two duplicate
4258 declarations.
4259
4260 2000-08-28 Kazu Hirata <kazu@hxi.com>
4261
4262 * tree.c: Fix formatting.
4263
4264 * xcoffout.c: Fix formatting.
4265
4266 2000-08-28 Jason Merrill <jason@redhat.com>
4267
4268 * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
4269
4270 2000-08-28 Daniel Berlin <dberlin@redhat.com>
4271
4272 * dwarf2out.c (dwarf2out_finish): Don't bother calling
4273 break_out_includes if it won't do anything.
4274
4275 2000-08-28 Richard Henderson <rth@cygnus.com>
4276
4277 * reload.c (push_secondary_reload): Revert 2000-08-16 change.
4278 (find_reloads): Likewise.
4279 * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
4280 (reload_inhi): Likewise.
4281
4282 2000-08-28 Richard Henderson <rth@cygnus.com>
4283
4284 * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
4285 (call_insn_operand): Don't expect a surrounding mem.
4286 (constant_call_address_operand): Likewise.
4287 * config/i386/i386.h (PREDICATE_CODES): Update.
4288 * config/i386/i386.md (call patterns): Move the match_operand
4289 for the call destination inside the mem.
4290
4291 2000-08-28 Richard Henderson <rth@cygnus.com>
4292
4293 * local-alloc.c (requires_inout): Don't use reserved range for
4294 EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
4295 * recog.c (asm_operand_ok): Likewise.
4296 (preprocess_constraints, constrain_operands): Likewise.
4297 * regclass.c (record_reg_classes): Likewise.
4298 * reload.c (find_reloads): Likewise.
4299 * reload1.c (maybe_fix_stack_asms): Likewise.
4300 (reload_cse_simplify_operands): Likewise.
4301 * stmt.c (expand_asm_operands): Likewise.
4302
4303 * md.texi: Update constraints documentation.
4304 * tm.texi (EXTRA_CONSTRAINT): Update.
4305
4306 2000-08-28 Daniel Berlin <dberlin@redhat.com>
4307
4308 * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
4309 (print_die): If we don't know the offset of the
4310 target die, try the symbol. Add a trailing newline.
4311 (reverse_all_dies): New fn.
4312 (dwarf2out_finish): Call it.
4313 (break_out_includes): Reorganize for clarity.
4314 (add_sibling_attributes): Don't call reverse_die_lists.
4315 (output_comp_unit): Rename from output_comdat_comp_unit. Use for
4316 primary CU, too.
4317 * flags.h: Add flag_eliminate_dwarf2_dups.
4318 * toplev.c (f_options): Support -feliminate-dwarf2-dups.
4319
4320 2000-08-28 Jason Merrill <jason@redhat.com>
4321
4322 * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
4323 * dwarf2out.c: #include "md5.h".
4324 (DIE_LABEL_PREFIX): New macro.
4325 (dw_val_struct): Add 'external' flag to val_die_ref.
4326 (add_AT_die_ref, AT_ref): Adjust.
4327 (AT_ref_external, set_AT_ref_external): New fns.
4328 (build_abbrev_table): Call set_AT_ref_external.
4329 (value_format): Call AT_ref_external.
4330 (die_struct): Add die_symbol field.
4331 (new_die): Clear it.
4332 (dwarf_tag_name): Handle BINCL/EINCL.
4333 (dwarf2out_start_source_file): Add BINCL DIE.
4334 (dwarf2out_end_source_file): Add EINCL DIE.
4335 (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
4336 (loc_checksum, attr_checksum, die_checksum): New fns.
4337 (is_type_die, is_comdat_die, is_symbol_die): New fns.
4338 (compute_section_prefix, assign_symbol_names): New fns.
4339 (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
4340 (output_die): Call output_die_symbol and AT_ref_external.
4341 (output_comdat_comp_unit): New fn, split out from...
4342 (dwarf2out_finish): ...here. Also call add_sibling_attributes for
4343 secondary CUs.
4344 (output_pubnames, output_aranges): Abort if we see entries from
4345 secondary CUs.
4346 * toplev.h: Declare file_name_nondirectory.
4347 * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
4348 (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
4349 (debug_start_source_file): Call dwarf2out_start_source_file
4350 regardless of debug verbosity.
4351 (debug_end_source_file): Similarly.
4352 * tree.h: Declare clean_symbol_name.
4353 * tree.c (clean_symbol_name): Split out from...
4354 (get_file_function_name_long): ...here.
4355
4356 * dwarf2out.c (new_loc_descr): Use calloc.
4357 (splice_child_die): Remove the die from the right parent.
4358 (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
4359
4360 Mon Aug 28 19:02:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4361
4362 * toplev.c (decode_g_option): Don't give warning for unknown -g
4363 option; return 0 instead.
4364 (main): If -g option is not recognized by front end or
4365 language-independent code, give warning.
4366
4367 2000-08-28 Greg McGary <greg@mcgary.org>
4368
4369 * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
4370 * config/i386/i386.c (ix86_expand_compare): Remove `static'.
4371 * config/i386/i386.md (trap, conditional_trap): New insn & expand.
4372
4373 2000-08-27 Greg McGary <greg@mcgary.org>
4374
4375 * cpplex.c (parse_string): Don't look for backslash
4376 before first char in `namebuf'.
4377 * loop.c (strength_reduce): Skip NOTEs.
4378
4379 2000-08-27 Jason Merrill <jason@redhat.com>
4380
4381 * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
4382 DECL_EXTERNAL on a local extern. Don't set DECL_IGNORED_P or
4383 TREE_ASM_WRITTEN, either.
4384 (finish_decl): Adjust.
4385
4386 2000-08-28 Philipp Thomas <pthomas@suse.de>
4387
4388 * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
4389 they have been incorporated into the gettext CVS. Change the text to
4390 reflect the current status of NLS. Add instructions for accessing
4391 the gettext CVS and add the patch from Martin v. Loewis.
4392
4393 2000-08-27 Geoff Keating <geoffk@cygnus.com>
4394
4395 * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
4396 by using gen_lowpart_common.
4397 (movdi_internal64+6): Likewise.
4398
4399 2000-08-26 Alexandre Oliva <aoliva@redhat.com>
4400
4401 * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
4402 Document.
4403
4404 * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
4405 numbers to the ranges used by GDB.
4406
4407 2000-08-25 Richard Henderson <rth@cygnus.com>
4408
4409 * config/ia64/ia64.h (struct machine_function): Add n_varargs.
4410 * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
4411 (ia64_expand_prologue): Likewise.
4412 (ia64_setup_incoming_varargs): Set it. Properly skip the current
4413 argument for stdargs.
4414
4415 2000-08-25 Jason Merrill <jason@redhat.com>
4416
4417 * integrate.c (expand_inline_function): Pull out the original decl.
4418
4419 2000-08-25 Jim Wilson <wilson@cygnus.com>
4420
4421 * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
4422
4423 * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
4424
4425 2000-08-25 Greg McGary <greg@mcgary.org>
4426
4427 * flow.c (dump_edge_info): Use ARRAY_SIZE.
4428 * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
4429
4430 2000-08-25 Richard Earnshaw <rearnsha@arm.com>
4431
4432 * arm.h (STRUCT_VALUE): Define to 0, not NULL.
4433
4434 Fri Aug 25 12:52:49 EDT 2000 John Wehle (john@feith.com)
4435
4436 * i386.c (ix86_find_base_term): New.
4437 * i386-protos.h (ix86_find_base_term): Prototype.
4438 * i386.h (FIND_BASE_TERM): Define.
4439 * alias.c (find_base_term): Use it.
4440 * tm.texi (FIND_BASE_TERM): Document it.
4441
4442 * alias.c (true_dependence, write_dependence_p): Unchanging
4443 memory can't conflict with non-unchanging memory.
4444
4445 * alias.c (memrefs_conflict_p): A BLKmode reference
4446 to a symbol (or CONST_INT address) always conflicts
4447 with a reference to another symbol.
4448
4449 2000-08-25 Joseph S. Myers <jsm28@cam.ac.uk>
4450
4451 * c-common.c (time_char_table): Don't allow width and flags with
4452 "z" format.
4453
4454 2000-08-25 Jakub Jelinek <jakub@redhat.com>
4455
4456 * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
4457 way as LT and LTU when the second operand has 0 in low word.
4458
4459 2000-08-26 Michael Hayes <mhayes@cygnus.com>
4460
4461 * basic-block.h (struct loop): Rename `exits' field to
4462 `exit_edges'. Add `entry_edges' and `num_entries' fields.
4463
4464 * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
4465 (flow_loop_entry_edges_find): Add.
4466 (flow_edge_list_print): Rename from flow_exits_print.
4467 (flow_loops_find): Call flow_loop_entry_edges_find.
4468 (flow_loop_dump): Dump entry_edges list.
4469 (flow_loops_free): Free entry_edges.
4470
4471 2000-08-26 Michael Hayes <mhayes@cygnus.com>
4472
4473 * loop.c (loop_dump_aux, debug_loop): New functions.
4474 (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
4475
4476 * flow.c (flow_loops_dump): Add callback parameter.
4477 (flow_loop_dump): Add callback parameter and call it. Move
4478 loop note debugging code to loop_dump_aux.
4479
4480 * basic-block.h (flow_loop_dump): Add callback parameter
4481 (flow_loops_dump): Likewise.
4482
4483 * toplev.c (rest_of_compilation): Add NULL callback function pointer
4484 to call to flow_loops_dump.
4485
4486 2000-08-26 Michael Hayes <mhayes@cygnus.com>
4487
4488 * loop.c (count_loop_regs_set): Replace start and end arguments
4489 with loop argument. All callers udated.
4490
4491 2000-08-26 Michael Hayes <mhayes@cygnus.com>
4492
4493 * loop.c (constant_high_bytes): Delete.
4494
4495 2000-08-26 Michael Hayes <mhayes@cygnus.com>
4496
4497 * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
4498 and NOTE_INSN_LOOP_VTOP to...
4499 (find_and_verify_loops) ...here.
4500
4501 Fri Aug 25 04:21:13 2000 Alexandre Oliva <aoliva@redhat.com>
4502
4503 * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
4504 (fini_dummy, init_dummy): Use it.
4505
4506 Fri 25-Aug-2000 08:03:27 BST Neil Booth <NeilB@earthling.net>
4507
4508 * cpplex.c (is_macro_disabled): Caller has already checked
4509 that we're not a preprocessed file.
4510
4511 2000-08-24 Mark Mitchell <mark@codesourcery.com>
4512
4513 * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
4514 (c-iterate.o): Remove target.
4515 * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
4516 * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
4517 (finish_decl): Don't handle iterators.
4518 (grokdeclarator): Likewise.
4519 * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
4520 * gcc/c-gperf.h: Regenerated.
4521 * gcc/c-iterate.c: Removed.
4522 * gcc/c-lex.c (init_lex): Don't handle iterators.
4523 * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
4524 (compstmt_primary_start): Remove push_iterator_stack call.
4525 (stmt): Don't allow iterator statements. Replace iterator_expand
4526 with expand_expr_stmt.
4527 (all_iter_stmt): Remove.
4528 (all_iter_stmt_simple): Likewise.
4529 (all_iter_stmt_with_decl): Likewise.
4530 * gcc/c-tree.h (ITERATOR_P): Remove.
4531 (ITERATOR_BOUND_P): Likewise.
4532 (init_iterators): Remove declaration.
4533 (iterator_expand): Likewise.
4534 (iterator_for_loop_start): Likewise.
4535 (iterator_for_loop_end): Likewise.
4536 (iterator_for_loop_record): Likewise.
4537 (push_iterator_stack): Likewise.
4538 (pop_iterator_stack): Likewise.
4539 * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
4540 (readonly_warning): Likewise.
4541 * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
4542
4543 2000-08-24 Jim Wilson <wilson@cygnus.com>
4544
4545 * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
4546 Copy type in a TYPE_DECL, just like pushdecl does.
4547
4548 2000-08-24 Richard Henderson <rth@cygnus.com>
4549
4550 * toplev.c (main): Enable flag_reorder_blocks at -O2.
4551
4552 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
4553
4554 * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
4555 asked for one page, allocate GGC_QUIRE_SIZE of them and put
4556 the extras on the free list.
4557 (release_pages): Clean up.
4558 (ggc_set_mark): Don't adjust G.allocated here...
4559 (sweep_pages): ... do it here.
4560
4561 2000-08-24 Zack Weinberg <zack@wolery.cumb.org>
4562
4563 * cppfiles.c (read_include_file): Rearrange initializations.
4564
4565 2000-08-24 Richard Henderson <rth@cygnus.com>
4566
4567 * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
4568
4569 * config/ia64/ia64-protos.h: Update.
4570 * config/ia64/ia64.c (gr_register_operand): New.
4571 (fr_register_operand, grfr_register_operand): New.
4572 (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
4573 (grfr_reg_or_8bit_operand): New.
4574 (gr_reg_or_0_operand): Rename from reg_or_0_operand and
4575 use gr_register_operand.
4576 (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
4577 (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
4578 (gr_reg_or_8bit_and_adjusted_operand): Likewise.
4579 (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
4580 (fr_reg_or_fp01_operand): Likewise.
4581 (not_postinc_memory_operand): New.
4582 (ia64_split_timode): Remove unused variables.
4583 (rtx_needs_barrier): Check arguments to cmpxchg.
4584 (builtin_description): Remove.
4585 (bdesc_2argsi, bdesc_2argdi): Remove.
4586 (ia64_init_builtins): Declare all builtins directly.
4587 (ia64_expand_fetch_and_op): Rewrite to be called from
4588 ia64_expand_builtin directly. Use expand_binop and co.
4589 (ia64_expand_op_and_fetch): Likewise.
4590 (ia64_expand_compare_and_swap): Likewise.
4591 (ia64_expand_binop_builtin): Remove.
4592 (ia64_expand_lock_test_and_set): New.
4593 (ia64_expand_lock_release): New.
4594 (ia64_expand_builtin): Use them.
4595 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
4596 (EXTRA_CONSTRAINT): Use it.
4597 (PREDICATE_CODES): Update.
4598 * config/ia64/ia64.md (*): Use gr_register_operand and co.
4599 (mf): Indicate that we set memory as well as use it.
4600 (fetchadd_acq_si): Show memory being modified as well.
4601 (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
4602 (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
4603 (lock_test_and_set_si, lock_test_and_set_di): Remove.
4604 (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
4605 (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
4606 (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
4607 (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
4608 (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
4609 (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
4610 (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
4611 (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
4612 * config/ia64/ia64intrin.h (*): Cast result to the appropriate
4613 return type. Pretty print definitions.
4614
4615 2000-08-24 Jim Wilson <wilson@cygnus.com>
4616
4617 * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
4618 we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
4619
4620 2000-08-24 Jason Merrill <jason@redhat.com>
4621
4622 * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
4623 AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
4624 (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
4625 get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
4626
4627 2000-08-24 Greg McGary <greg@mcgary.org>
4628
4629 * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
4630 and extendtab within their proper array boundaries.
4631 * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
4632 for the entire array.
4633
4634 * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
4635 * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
4636 * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
4637 * config/fr30/fr30.c (fr30_print_operand): Likewise.
4638 * config/i386/dgux.c (output_options): Likewise.
4639 * config/i386/dgux.h (ASM_FILE_START): Likewise.
4640 * config/m88k/m88k.c (output_options): Likewise.
4641 * config/m88k/m88k.h (ASM_FILE_START): Likewise.
4642 * config/mcore/mcore.c (mcore_output_inline_const_forced,
4643 layout_mcore_frame, handle_structs_in_regs): Likewise.
4644 * config/mips/mips.c (output_block_move): Likewise.
4645 * config/rs6000/rs6000.c (rs6000_override_options,
4646 rs6000_file_start): Likewise.
4647 * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
4648 * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
4649 * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
4650 * builtins.c (expand_builtin_setjmp): Likewise.
4651 * expr.c (safe_from_p): Likewise.
4652 * flow.c (life_analysis): Likewise.
4653 * fold-const.c (size_int_type_wide): Likewise.
4654 * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
4655 * genattrtab.c (make_length_attrs): Likewise.
4656 * genopinit.c (gen_insn): Likewise.
4657 * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
4658 * global.c (global_alloc): Likewise.
4659 * local-alloc.c (find_free_reg): Likewise.
4660 * mips-tdump.c (print_symbol): Likewise.
4661 * mips-tfile.c (parse_def, parse_input): Likewise.
4662 * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
4663 * stmt.c (expand_nl_goto_receiver): Likewise.
4664 * stor-layout.c (set_sizetype): Likewise.
4665 * varasm.c (decode_reg_name): Likewise.
4666 * toplev.c (decode_f_option, decode_W_option,
4667 set_target_switch, print_switch_values): Likewise.
4668 (NUM_ELEM): Remove macro.
4669 (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
4670
4671 2000-08-24 Greg McGary <greg@mcgary.org>
4672
4673 * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
4674 (MAIN_NAME_P, main_identifier_node): New macros.
4675 * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
4676 * c-decl.c (start_decl, grokdeclarator, start_function,
4677 store_parm_decls, finish_function): Use MAIN_NAME_P.
4678 * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
4679 * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
4680 * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
4681 * config/pdp11/pdp11.c (output_function_prologue): Likewise.
4682
4683 2000-08-24 Greg McGary <greg@mcgary.org>
4684
4685 * cppfiles.c (actual_directory): Don't write beyond `dir'
4686 when it contains "".
4687 * real.c (asctoeg): Stay within bounds of etens[][].
4688
4689 2000-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4690
4691 * dependence.c (dependence_string, direction_string,
4692 dump_one_node, dump_node_dependence): Hide unused identifiers.
4693 (get_low_bound, normalize_coefficients): Match definition to
4694 static prototype.
4695 (get_one_coefficient): Initialize variables `value0_is_idx' and
4696 `value1_is_idx'.
4697 (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
4698 (ziv_test): Delete variable `idx', use parameter `sub' instead.
4699 (direction_merge): Avoid automatic aggregate initialization.
4700 (have_dependence_p): Use `src' not `dest' to set `src_idx'.
4701 Initialize variables `dest_idx' and `src_idx'.
4702 (end_dependence_analysis): Avoid C89 style function definition.
4703
4704 2000-08-24 Joseph S. Myers <jsm28@cam.ac.uk>
4705
4706 * c-common.c (time_char_table): Don't allow width with %F.
4707 (check_format_info): Don't allow "Z" length with scanf.
4708
4709 2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
4710
4711 * diagnostic.c (finish_diagnostic): Define.
4712 (output_do_printf): Use wrap_text instead of output_add_string.
4713 (default_print_error_function): Avoid embedded '\n'.
4714
4715 * diagnostic.h (flush_diagnostic_buffer): Declare.
4716
4717 2000-08-23 Alexandre Oliva <aoliva@redhat.com>
4718
4719 * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
4720
4721 2000-08-23 Hans-Peter Nilsson <hp@axis.com>
4722
4723 * Makefile.in (GCC_PASSES): Add specs.
4724
4725 2000-08-23 Jim Wilson <wilson@cygnus.com>
4726
4727 * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
4728 * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
4729 EHANDLER nor UHANDLER bit is set.
4730 (__get_except_table): Likewise.
4731
4732 2000-08-23 Nick Clifton <nickc@redhat.com>
4733
4734 * config/arm/lib1funcs.asm: Replace upper case condition codes
4735 with lower case versions.
4736
4737 * config/arm/arm.h (STRUCT_VALUE): Define.
4738 (STRUCT_VALUE_REGNUM): Delete.
4739
4740 2000-08-23 Zack Weinberg <zack@wolery.cumb.org>
4741
4742 * cpphash.h (IN_I): New flag for directive table.
4743 * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
4744 #pragma with IN_I.
4745 (_cpp_check_directive): If -fpreprocessed, execute directives
4746 marked with IN_I. Issue no warnings in this case.
4747 * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
4748
4749 2000-08-23 Joseph S. Myers <jsm28@cam.ac.uk>
4750
4751 * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
4752 %u.
4753 (check_format_info): Support printf 'I' flag; warn about it with
4754 -pedantic.
4755
4756 2000-08-23 Richard Earnshaw (rearnsha@arm.com)
4757
4758 * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
4759 barrier can't be ignored by the alias analysis code.
4760
4761 2000-08-12 Eli Zaretskii <eliz@is.elta.co.il>
4762
4763 * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
4764 works inside fixincl.
4765
4766 Wed Aug 23 04:55:48 2000 Alexandre Oliva <aoliva@redhat.com>
4767
4768 * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
4769 simplify_relational_operation() unless both operands are of
4770 VOIDmode.
4771 * cse.c (fold_rtx): Likewise.
4772
4773 Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com)
4774
4775 * rtlanal.c (rtx_unstable_p): The pic register is stable
4776 (within one function) and the actual rtx should be used
4777 when checking the registers.
4778 (rtx_addr_can_trap_p): Pic memory addresses can't trap.
4779
4780 * alias.c (true_dependence, write_dependence_p): Fix
4781 bug in previous patch.
4782
4783 * i386.c (ix86_GOT_alias_set): New.
4784 (legitimize_pic_address): Use it.
4785
4786 * rtlanal.c (rtx_unstable_p): An unchanging MEM is
4787 only stable if its address is stable.
4788 (rtx_varies_p): An unchanging MEM can't vary if
4789 its address doesn't vary.
4790
4791 2000-08-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4792
4793 * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
4794
4795 2000-08-22 J. David Anglin <dave@hiauly1.hia.nrc.ca>
4796
4797 * vax.h (ASM_SPEC): Pass `-J' to assembler.
4798 * x-vax-gcc: New file for bootstrapping with gcc.
4799 * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
4800 * configure.in: Use x-vax-gcc with gcc.
4801 * configure: Rebuilt.
4802
4803 Tue Aug 22 21:21:05 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
4804
4805 * toplev.c (rest_of_compilation): Rebuild label notes after
4806 post-reload splitting pass if new labels have been created.
4807
4808 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
4809
4810 * diagnostic.h (output_buffer_state): New macro.
4811 * diagnostic.c (diagnostic_for_decl, sorry,
4812 default_print_error_function, output_do_verbatim,
4813 report_diagnostic, report_problematic_module): Use it.
4814 (wrap_text): Tweak.
4815 (output_format): Use wrap_text instead of maybe_wrap_text.
4816
4817 2000-08-22 Nick Clifton <nickc@redhat.com>
4818
4819 * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
4820 Common code for ARM divide and modulus functions.
4821 (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
4822 ARM_DIV_MOD_BODY.
4823 (FUNC_END): New macro: Common code at the end of the division and
4824 modulo functions.
4825 (THUMB_FUNCTION_START): New macro: Common code at the start of
4826 Thumb functions.
4827 (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
4828
4829 Tue Aug 22 20:34:52 2000 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4830
4831 * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
4832
4833 * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
4834 sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
4835 const0_rtx.
4836
4837 2000-08-22 Nick Clifton <nickc@redhat.com>
4838
4839 * config/arm/lib1funcs.asm (__umodsi3): Before performing any
4840 restorative additions, test for bottom bits of IP being set,
4841 rather than relying upon the RORs not matching.
4842 (__modsi3): Ditto.
4843
4844 2000-08-22 David Edelsohn <edelsohn@gnu.org>
4845
4846 * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
4847 text_section() as appropriate instead of emitting text csect
4848 pseudo-op directly.
4849 (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
4850 (UNIQUE_SECTION): Define macro.
4851 (ASM_OUTPUT_SECTION_NAME): Define macro.
4852 * rs6000.c (rs6000_override_options): Disable -ffunction-sections
4853 on AIX if debugging and -fdata-sections always.
4854
4855 2000-08-22 Steven King <sxking@uswest.net>
4856
4857 * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
4858 machinery.
4859 (LDBL_MAX): Same here.
4860
4861 2000-08-22 Richard Henderson <rth@cygnus.com>
4862
4863 * flow.c (tidy_fallthru_edge): Update b->end properly.
4864
4865 2000-08-22 Stan Cox <scox@redhat.com>
4866
4867 * Makefile.in (OBJS): Add dependence.o.
4868 * dependence.c: New file.
4869
4870 2000-08-22 Alexandre Oliva <aoliva@redhat.com>, John David Anglin <dave.anglin@nrc.ca>
4871
4872 * calls.c (check_sibcall_argument_overlap_1): Adjust for
4873 ARGS_GROW_DOWNWARD.
4874 (check_sibcall_argument_overlap): Likewise.
4875
4876 2000-08-22 Alexandre Oliva <aoliva@redhat.com>
4877
4878 * invoke.texi (SH Options): Document -m4-nofpu,
4879 -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
4880 -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
4881
4882 2000-08-22 Joseph S. Myers <jsm28@cam.ac.uk>
4883
4884 * c-common.c (check_format_info): Give the 'some locales' warning
4885 for strftime %Ey rather than the unconditional 'only last 2 digits
4886 of year' one.
4887
4888 2000-08-22 Richard Henderson <rth@cygnus.com>
4889
4890 * alias.c (init_alias_analysis): Do not register
4891 struct_value_incoming_rtx or static_chain_rtx as pointing
4892 to stack memory.
4893
4894 Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com)
4895
4896 * protoize.c (munge_compile_params): Fix typo and formatting buglets.
4897
4898 2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
4899
4900 * diagnostic.h (report_problematic_module): Declare.
4901 * diagnostic.c (report_problematic_module): New function.
4902 (report_error_function): Tweak.
4903
4904 Tue Aug 22 02:31:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4905
4906 * stmt.c (expand_goto_internal, fixup_gotos): Only check
4907 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
4908
4909 2000-08-21 Richard Henderson <rth@cygnus.com>
4910
4911 * flow.c (calculate_global_regs_live): Mark frame pointer live
4912 everywhere before reload.
4913
4914 2000-08-21 Jim Wilson <wilson@cygnus.com>
4915
4916 * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
4917 INTEL_EXTENDED_IEEE_FORMAT.
4918 (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally
4919 clear last two bytes of output FP value.
4920
4921 2000-08-21 Graham Stott <grahams@cygnus.co.uk>
4922
4923 * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
4924
4925 2000-08-21 Jakub Jelinek <jakub@redhat.com>
4926
4927 * unroll.c (loop_find_equiv_value): If ret is modified between
4928 insn and loop_start, ret might not be equivalent to reg.
4929
4930 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
4931
4932 * c-common.c (init_dollar_format_checking,
4933 maybe_read_dollar_number, finish_dollar_format_checking): New
4934 functions.
4935 (dollar_arguments_used, dollar_arguments_count,
4936 dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
4937 New variables.
4938 (check_format_info): Support $ formats for scanf and printf width
4939 and precision. Always increment format_chars to advance past the
4940 '*' of precision, not just when the format parameters are
4941 available to check.
4942
4943 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4944
4945 * mips.c (block_move_loop, expand_block_move,
4946 function_arg_partial_nregs, save_restore_insns, function_prologue,
4947 mips_expand_prologue, RA_MASK): Avoid using the `U' integer
4948 constant suffix.
4949 (function_arg_advance, function_arg): Match argument to format
4950 specifier `%p'.
4951
4952 2000-08-21 Nix <nix@esperi.demon.co.uk>
4953
4954 * gcc.c (do_spec_1): Implement %j spec flag.
4955 Remove dead comment.
4956
4957 * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
4958 * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
4959 * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
4960 * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
4961
4962 * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
4963 writable) instead of hardcoded value.
4964
4965 * toplev.c (compile_file): Output to a file even if -fsyntax-only.
4966
4967 * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
4968 MKTEMP_EACH_FILE.
4969
4970 * gcc.c (cc1_options): Do not process -o or run the assembler if
4971 -fsyntax-only.
4972 * objc/lang-spec.h: Likewise.
4973
4974 2000-08-21 Eli Zaretskii <eliz@is.elta.co.il>
4975
4976 * fixinc/fixincl.c (fix_with_system): Pipe the output of
4977 "external" fixes through `cat', to avoid truncating the input
4978 file by redirection.
4979
4980 2000-08-21 Jakub Jelinek <jakub@redhat.com>
4981
4982 * config/i386/i386.md (lea_general_1): Copy insn condition to split
4983 condition.
4984 (lea_general_2, lea_general_3): Likewise.
4985
4986 2000-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4987
4988 * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
4989 warnings to user code.
4990
4991 * c-lex.c (readescape, yylex): Likewise.
4992
4993 * c-typeck.c (store_init_value, process_init_element): Likewise
4994 (c_expand_start_case): Format.
4995
4996 2000-08-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
4997
4998 * mips/linux.h (LINK_SPEC): Use %(endian_spec).
4999
5000 * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
5001 and linker_endian_spec to endian_spec.
5002 (ENDIAN_SPEC): Add %{EB} and %{EL}.
5003 (LINK_SPEC): Remove %{EB} and %{EL}.
5004 (ASM_SPEC): Likewise. Use %(endian_spec).
5005
5006 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
5007
5008 * c-tree.h (flag_hosted): Move declaration from here...
5009 * c-common.h (flag_hosted): ... to here.
5010 (flag_noniso_default_format_attributes): New declaration.
5011 * c-decl.c (flag_noniso_default_format_attributes): New variable.
5012 (c_decode_option): Set it appropriately for options choosing
5013 language standard variant.
5014 * c-common.c (init_function_format_info): Only provide default
5015 format attributes if flag_hosted. Only provide the gettext
5016 formats if flag_noniso_default_format_attributes. Update
5017 comments.
5018 (check_format_info): Disable treatment of %a as a scanf flag in
5019 C99 mode.
5020
5021 2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
5022
5023 * c-common.c (scan_char_table): Add 'w' to flags for all formats
5024 except 'n'.
5025 (check_format_info): Set 'wide' for scanf format widths. Warn for
5026 a zero scanf width. Make the check for writing into a constant
5027 object at the first level of indirection; at later levels, warn if
5028 any type qualifiers are encountered.
5029
5030 Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com)
5031
5032 * reload.c (reload_inner_reg_of_subreg): New function broken out of
5033 push_reload.
5034 (push_reload): Use reload_inner_reg_of_subreg.
5035 (combine_reloads): Do not combine reloads if the input reload
5036 is a SUBREG in which the inner part will need reloading.
5037
5038 * global.c (global_alloc): Avoid passing dumpfile argument to
5039 reload routines.
5040 * toplev.c (rest_of_compilation): Likewise.
5041 * reload.h (reload): Remove dumpfile argument. Callers changed.
5042 (debug_reload, debug_reload_to_stream): Move prototypes here.
5043 * rtl.h (reload): Remove dumpfile argument.
5044 * reload.c (debug_reload): Remove prototype.
5045 (debug_reload_to_stream): Likewise.
5046 * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
5047 instead.
5048
5049 2000-08-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5050
5051 * diagnostic.c (context_as_prefix): Export.
5052 (need_error_newline): Remove.
5053 (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
5054 (error_module_changed, record_last_error_module,
5055 error_function_changed, record_last_error_function): New functions.
5056 (initialize_diagnostics): Default intialize
5057 lang_diagnostic_starter, lang_diagnostic_finalizer.
5058 (init_output_buffer): Tweak.
5059 (file_name_as_prefix): New function.
5060 (announce_function, default_print_error_function,
5061 report_error_function, set_diagnostic_context): Tweak.
5062
5063 2000-08-21 Richard Earnshaw <rearnsha@arm.com>
5064
5065 * flow.c (init_propagate_block_info): Handle SUBREG in a jump
5066 condition expression.
5067
5068 2000-08-20 Richard Henderson <rth@cygnus.com>
5069
5070 * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
5071
5072 2000-08-20 Zack Weinberg <zack@wolery.cumb.org>
5073
5074 * cppinit.c (cpp_init): Set global flag when called.
5075 (cpp_reader_init): Bomb out if cpp_init hasn't been called.
5076
5077 Sun Aug 20 01:41:35 2000 Dennis Chernoivanov <cdi@sparc.spb.su>
5078
5079 * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
5080 before `process_directive' so that newlines won't be missed
5081 for directives.
5082 (cpp_printf): Increment `print->lineno' when newline is emitted.
5083
5084 * cppmain.c (cb_ident): Likewise.
5085 (cb_define): Likewise.
5086 (cb_undef): Likewise.
5087 (cb_include): Likewise.
5088 (cb_def_pragma): Likewise.
5089 (dump_macros_helper): Likewise.
5090
5091 2000-08-20 Richard Henderson <rth@cygnus.com>
5092
5093 * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
5094 assigned before a loop.
5095
5096 * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
5097 (ashrsi3, lshrsi3): Likewise.
5098
5099 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
5100
5101 * c-lang.c: #include diagnostic.h
5102 (c_tree_printer): New function.
5103 (lang_init): Initialize lang_printer.
5104
5105 * Makefile.in (c-lang.o): Depends on diagnostic.h
5106
5107 2000-08-20 Gabriel Dos Reis <gdr@codesourcery.com>
5108
5109 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
5110
5111 * diagnostic.c (default_diagnostic_starter,
5112 default_diagnostic_finalizer): New functions.
5113 (diagnostic_for_asm, diagnostic_for_decl): Tweak.
5114 (pedwarn, pedwarn_with_file_and_line, error,
5115 error_with_file_and_line, fatal, warning,
5116 warning_with_file_and_line): Adjust call to report_diagnostic.
5117 (report_diagnostic): Rework.
5118 (set_diagnostic_context): New function.
5119
5120 * diagnostic.h (struct diagnostic_context): New data structure.
5121 (diagnostic_message, diagnostic_argument_list,
5122 diagnostic_file_location, diagnostic_line_location,
5123 diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
5124 diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
5125 (set_diagnostic_context): Declare.
5126 (report_diagnostic): Change prototype.
5127
5128 Sun 20-Aug-2000 09:25:45 BST Neil Booth <NeilB@earthling.net>
5129
5130 * fix-header.c (main): Initialize cpplib.
5131
5132 2000-08-19 Michael Meissner <meissner@redhat.com>
5133
5134 * ifcvt.c (find_if_block): Do not assume that a THEN block has any
5135 instructions in it before checking for indirect jumps.
5136
5137 * ifcvt.c (find_if_block): Do not consider a THEN block that ends
5138 in a indirect jump as a potential for conditional execution.
5139
5140 * d30v.h (d30v_init_expanders): Don't declare here.
5141 * d30v-protos.h (d30v_init_expanders): Declare here with a valid
5142 prototype.
5143
5144 Sat 19-Aug-2000 21:11:45 BST Neil Booth <NeilB@earthling.net>
5145
5146 * cpp.texi: Add @section for assertions.
5147
5148 Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com)
5149
5150 * loop.c (scan_loop): Use CONST_CALL_P instead of
5151 checking for REG_LIBCALL / REG_RETVAL.
5152
5153 Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com)
5154
5155 * reload1.c (reload_as_needed): Accept dumpfile argument,
5156 pass it to emit_reload_insns.
5157 (emit_reload_insns): Add new dumpfile argument. If non-null
5158 then dump the reloads for each insn into the dumpfile.
5159 (reload): Pass dumpfile to reload_as_needed.
5160
5161 * invoke.texi: Clean up linux-gnu vs linux comments.
5162
5163 2000-08-19 Richard Henderson <rth@cygnus.com>
5164
5165 * config/ia64/ia64.c (reg_or_5bit_operand): New.
5166 (ia64_depz_field_mask): New.
5167 * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
5168 (PREDICATE_CODES): Update.
5169 * config/ia64/ia64.md: Update commentary.
5170 (depz_internal): New.
5171 (ashlsi3): Implement directly.
5172 (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
5173 (ashldi3): Use shladd.
5174 * config/ia64/ia64-protos.h: Update.
5175
5176 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
5177
5178 * toplev.c (independent_decode_option): Always process -g.
5179 Remove third argument, now unused. Adjust caller to match.
5180
5181 2000-08-18 Richard Henderson <rth@cygnus.com>
5182
5183 * combine.c (make_compound_operation): Break after creating
5184 the extraction.
5185
5186 2000-08-18 Zack Weinberg <zack@wolery.cumb.org>
5187
5188 * cpplib.c (cpp_register_pragma_space): Just return if the
5189 namespace is already registered.
5190
5191 2000-08-18 Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton <nickc@redhat.com>
5192
5193 * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
5194 constant amount. Do not generate ROTL instruction.
5195
5196 Fri Aug 18 16:22:20 2000 Alexandre Oliva <aoliva@redhat.com>
5197
5198 * config/sh/elf.h: Do not include sh/sh.h.
5199 * config/sh/rtems.h: Likewise.
5200 * config/sh/rtemself.h: Do not include sh/elf.h.
5201 * configure.in: Get them included with `tm_file's.
5202 * configure: Rebuilt.
5203
5204 * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
5205 * config/sh/sh.c (fpscr_set_from_mem): Use them.
5206
5207 Fri Aug 18 14:23:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5208
5209 * stor-layout.c (compute_record_type): Don't use mode of single
5210 field as mode of record if not integer mode of same type.
5211
5212 * regmove.c (perhaps_ends_bb_p): New function.
5213 (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
5214 (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
5215 (fixup_match_1): Likewise.
5216 (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
5217 avoid signed/unsigned warnings.
5218
5219 * function.c (fixup_var_refs_1, case MEM): Update CODE after
5220 updating X.
5221
5222 Fri 18-Aug-2000 18:33:45 BST Neil Booth <NeilB@earthling.net>
5223
5224 * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
5225 (_cpp_trigraph_map): Declaration moved from cpplex.c
5226
5227 * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1
5228 instead of 256. Use consistent test for designated initializers.
5229 (cpp_init): Initialize trigraph_map.
5230 (initialize_standard_includes, parse_option): Use memcmp
5231 instead of strncmp.
5232
5233 * cpplex.c (init_trigraph_map): Remove.
5234 (trigraph_ok, trigraph_replace, lex_line): Refer to
5235 _cpp_trigraph_map.
5236
5237 * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
5238 (do_unassert): Remove unused "next" local.
5239
5240 * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
5241
5242 2000-08-18 Emmanuel Marty <emarty@suntech.fr>
5243
5244 * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
5245 insn.
5246
5247 2000-08-17 Richard Henderson <rth@cygnus.com>
5248
5249 * config/ia64/ia64.c (spill_restore_mem): Handle emitting
5250 the first insn in a sequence.
5251
5252 Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com)
5253
5254 * alias.c (true_dependence, write_dependence_p): A read
5255 involving a label_ref or the constant pool doesn't create
5256 a dependency.
5257
5258 * rtl.h (unchanging): Improve documentation.
5259
5260 2000-08-17 Rodney Brown <RodneyBrown@mynd.com>
5261
5262 * cse.c (insert_regs): Remove unused `regno'.
5263
5264 2000-08-17 Neil Booth <NeilB@earthling.net>
5265
5266 * (cppinit.c) merge_include_chains: Use remove_dup_dir,
5267 remove_dup_dirs. If qtail == brack, remove brack not
5268 qtail.
5269 (remove_dup_dir, remove_dup_dirs): New functions.
5270
5271 2000-08-17 Neil Booth <NeilB@earthling.net>
5272
5273 * cppinit.c (cpp_cleanup): Free include dir chains.
5274 * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
5275 (do_unassert): Free the assert with _cpp_free_definition.
5276 * cppmacro.c (_cpp_free_definition): Free memory allocated for
5277 assertions. Make the node a T_VOID node.
5278
5279 2000-08-17 Neil Booth <NeilB@earthling.net>
5280
5281 * cppinit.c (path_include, append_include_chain):
5282 Remove 2nd parameter (struct cpp_pending *).
5283 (path_include, initialize_standard_includes, cpp_handle_option):
5284 Update callers appropriately.
5285 (cpp_handle_option): Use pend.
5286
5287 2000-08-17 Neil Booth <NeilB@earthling.net>
5288
5289 * cppinit.c (sort_options): Remove, put functionality in
5290 cpp_init.
5291 (cpp_init): New.
5292 (initialize_builtins): Free memory.
5293 (cpp_start_read): Move init_IStable to cpp_init.
5294
5295 * cpplib.h (cpp_init): New prototype.
5296 * cppmain.c (main): Call cpp_init.
5297
5298 Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com)
5299
5300 * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
5301 (rtx_unstable_p, rtx_varies_p): Process vectors.
5302
5303 2000-08-16 Niibe Yutaka <gniibe@m17n.org>, Kaz Kojima <kkojima@rr.iij4u.or.jp>
5304
5305 * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all
5306 references to GLOBAL symbols. Use LOCAL where appropriate.
5307
5308 2000-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5309
5310 * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always
5311 use t-aix41 when host == target.
5312
5313 2000-08-16 Richard Henderson <rth@cygnus.com>
5314
5315 * reload.c (push_secondary_reload): Revert last change.
5316 If we use a reload_in/out pattern, make the when the same
5317 as the primary reload.
5318 (find_reloads): Likewise.
5319
5320 2000-08-16 Manfred Hollstein <manfredh@redhat.com>
5321
5322 * configure.in (libstdcxx-v3): Fix test.
5323 * configure: Regenerate.
5324
5325 Wed Aug 16 08:10:32 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5326
5327 * calls.c (calls_function_1, expand_call): Only test
5328 TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
5329 * function.c (thread_prologue_and_epilogue_insns): Likewise.
5330
5331 2000-08-16 Richard Henderson <rth@cygnus.com>
5332
5333 * combine.c (simplify_shift_const): Revert previous two
5334 changes. If SHIFT_COUNT_TRUNCATED, crop the shift count
5335 before the main loop.
5336
5337 2000-08-15 Richard Henderson <rth@cygnus.com>
5338
5339 * combine.c (simplify_shift_const): Bound shift count when
5340 combining shifts.
5341
5342 Tue Aug 15 17:33:05 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5343
5344 * calls.c (ECF_SP_DEPRESSED): New macro.
5345 (calls_function_1): Treat calling sp-depressed function as alloca.
5346 (emit_call_1): Don't adjust SP if calling sp-depressed function.
5347 (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
5348 If sp-depressed, ensure block saves and restores SP.
5349 * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
5350 for INTEGER_TYPE.
5351 * function.c (keep_stack_depressed): New function.
5352 (thread_prologue_and_epilogue_insns): Call it.
5353 * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
5354 to print DECL_OFFSET_ALIGN.
5355 Print no-force-blk and transparent-union flags properly.
5356 * stmt.c (expand_goto_internal): Don't restore stack if last block
5357 and function returns with sp depressed.
5358 (fixup_gotos): Likewise.
5359 (save_stack_pointer): New function, from code in expand_decl.
5360 (expand_decl): Call new function.
5361 * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
5362 (TYPE_RETURNS_STACK_DEPRESSED): New macro.
5363 (save_stack_pointer): New declaration.
5364
5365 * diagnostic.c (fatal_function): New variable.
5366 (set_fatal_function): New function.
5367 (fatal): Call it.
5368 * diagnostic.h (set_fatal_function): New declaration.
5369
5370 2000-08-15 William Cohen <wcohen@redhat.com>
5371
5372 * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
5373 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
5374 (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
5375
5376 2000-08-15 Richard Henderson <rth@cygnus.com>
5377
5378 * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
5379
5380 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
5381
5382 * arm.c (arm_function_ok_for_sibcall): New function.
5383 * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
5384 * arm.md (call expanders): Don't check here for calls that can't
5385 be sibling calls.
5386
5387 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
5388
5389 * arm.md (splits generating cond_exec): Disable.
5390
5391 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
5392
5393 * arm/linux-elf.h (text_section): Delete declaration.
5394
5395 2000-08-15 Richard Earnshaw <rearnsha@arm.com>
5396
5397 ARM support for unordered FP operations.
5398 * arm-protos.h (arm_comparison_operator): Declare.
5399 * arm.c (arm_comparison_operator): New function.
5400 (arm_select_cc_mode): Add unordered comparison codes.
5401 (get_arm_condition_code): Likewise.
5402 (arm_final_prescan_insn): Can't handle unordered jumps that can't
5403 be done in one insn.
5404 * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
5405 * arm.md (all uses of comparison_operator): Replace with
5406 arm_comparison_operator.
5407 (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
5408 expands.
5409 (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
5410 patterns.
5411
5412 Tue Aug 15 00:36:36 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
5413
5414 * gthr-posix.h: Conditionally include <sched.h>; include
5415 <config.h> from libobjc/.
5416
5417 2000-08-14 Richard Henderson <rth@cygnus.com>
5418
5419 * config/i386/i386.c (legitimize_pic_address): Use Pmode
5420 for all CONSTs.
5421
5422 2000-08-14 Richard Henderson <rth@cygnus.com>
5423
5424 * configure.in (ia64-*): Set float_format for i386 long double.
5425
5426 * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
5427 as we would for i386 XFmode.
5428 (PUT_REAL): Likewise.
5429 (endian, ereal_atof, real_value_truncate): Likewise.
5430 (ereal_isneg, toe64, etens, make_nan): Likewise.
5431 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
5432
5433 * config/ia64/ia64-protos.h: Update.
5434 * config/ia64/ia64.c (general_tfmode_operand): New.
5435 (destination_tfmode_operand): New.
5436 (tfreg_or_fp01_operand): New.
5437 (ia64_split_timode): New.
5438 (spill_tfmode_operand): New.
5439 (ia64_expand_prologue): Use TFmode not XFmode.
5440 (ia64_expand_epilogue): Likewise.
5441 (ia64_function_arg): Likewise.
5442 (ia64_function_arg_advance): Likewise.
5443 (ia64_return_in_memory): Likewise.
5444 (ia64_function_value): Likewise.
5445 (ia64_print_operand): Likewise.
5446 (ia64_register_move_cost): Set GR<->FR to 5.
5447 (ia64_secondary_reload_class): Get GR for TImode memory op.
5448 * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
5449 (ROUND_TYPE_ALIGN): Remove.
5450 (LONG_DOUBLE_TYPE_SIZE): Set to 128.
5451 (INTEL_EXTENDED_IEEE_FORMAT): Define.
5452 (HARD_REGNO_NREGS): Use TFmode, not XFmode.
5453 (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs.
5454 (MODES_TIEABLE_P): Use TFmode, not XFmode.
5455 (CLASS_MAX_NREGS): Likewise.
5456 (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
5457 (PREDICATE_CODES): Update.
5458 * config/ia64/ia64.md (movti): New.
5459 (movti_internal): Use a clobber for memory alternatives.
5460 (reload_inti, reload_outti): New.
5461 (movsfcc_astep): Predicate properly.
5462 (movdfcc_astep): Likewise.
5463 (movxf): Remove.
5464 (movtf): New.
5465 (extendsftf2, extenddftf2): New.
5466 (trunctfsf2, trunctfdf2): New.
5467 (floatditf2, fix_trunctfdi2): New.
5468 (floatunsditf2, fixuns_trunctfdi2): New.
5469 (addtf3, subtf3, multf3, abstf2): New.
5470 (negtf2, nabstf2, mintf3, maxtf3): New.
5471 (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
5472 (cmptf): New.
5473 (fr_spill): Use TFmode, not XFmode.
5474 (fr_restore): Likewise.
5475 * config/ia64/lib1funcs.asm (__divtf3): New.
5476 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
5477
5478 2000-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5479
5480 * cse.c (fold_rtx): Avoid empty body in an if-statement.
5481
5482 * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
5483 `U' integer constant suffix.
5484
5485 * dwarf2out.c (add_subscript_info): Avoid empty body in an
5486 else-statement.
5487
5488 * sparc/sol2.h (__enable_execute_stack): Prototype.
5489
5490 2000-08-14 David Edelsohn <edelsohn@gnu.org>
5491
5492 * collect2.c: Remove use of AIX import file.
5493
5494 * longlong.h: Test ARCH_PWR not ARCH_POWER.
5495
5496 * rs6000.c (print_operand, case 'E'): Add else.
5497
5498 2000-08-14 Richard Henderson <rth@cygnus.com>
5499
5500 * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
5501 (movdi_symbolic): New.
5502
5503 2000-08-14 Jim Wilson <wilson@cygnus.com>
5504
5505 * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
5506 to GNU as. For Intel as, pass -M const_gp and -M no_plabel.
5507 * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
5508 to GNU as.
5509
5510 2000-08-14 Richard Henderson <rth@cygnus.com>
5511
5512 * expr.c (emit_group_load): Don't force constants into registers.
5513 Special case source already in the correct mode.
5514
5515 2000-08-14 Zack Weinberg <zack@wolery.cumb.org>
5516
5517 * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
5518 * fixinc/inclhack.def: Likewise.
5519 * fixinc/mkfixinc.sh: Likewise.
5520 * configure: Regenerate.
5521 * fixinc/fixincl.x: Regenerate.
5522 * install.texi: Document equivalence of linux and linux-gnu.
5523
5524 Mon Aug 14 18:51:44 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
5525
5526 * cse.c (insert_regs): Also in REG case: When finding an invalid
5527 value, and we make a new quantity, make sure that it won't be
5528 mistaken by for a valid one by mention_regs.
5529
5530 2000-08-13 Ralf Gütlein <ralf.guetlein@aranea.de>
5531
5532 * h8300.md: Remove obsolete peepholes.
5533
5534 2000-08-13 Kazu Hirata <kazu@hxi.com>
5535
5536 * invoke.texi (H8/300 Options): Fix typos.
5537 * config/h8300.c: Fix formatting.
5538 * config/h8300.h: Fix comment typos.
5539 (OVERRIDE_OPTIONS): Fix formatting.
5540
5541 * function.c: Fix formatting.
5542
5543 * cse.c: Fix formatting.
5544
5545 2000-08-13 Geoff Keating <geoffk@cygnus.com>
5546
5547 * flow.c (attempt_auto_inc): Remove unused variable `bb'.
5548 (attempt_auto_inc): Suppress parentheses warning.
5549 * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
5550 * loop.c (load_mems): Remove `u' suffix in two places.
5551 * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
5552 hex constants.
5553 * config/rs6000/rs6000.h: Likewise.
5554 * config/rs6000/sol-c0.c: Prototype some functions. Remove the
5555 __eabi dummy routine.
5556 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
5557 variable `buf_ptr'.
5558
5559 * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
5560 not put stuff in .sdata unnecessarily.
5561 (rs6000_unique_section): New function.
5562 * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
5563 * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
5564
5565 * c-typeck.c (build_array_ref): Don't complain about non-lvalue
5566 arrays in C99. Don't try to look at DECL_REGISTER of a
5567 COMPONENT_REF. Don't complain twice about the same error.
5568
5569 * fixinc/inclhack.def (aix_pthread): New fix.
5570 (aix_sysmachine): New fix.
5571 * fixinc/fixincl.x: Regenerate.
5572
5573 * expr.c (expand_expr): Call convert_modes when turning a large
5574 multiply into a small one.
5575
5576 2000-08-12 Geoff Keating <geoffk@cygnus.com>
5577
5578 * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
5579 the tree structure an exponent rather than an explicit alignment
5580 so it doesn't overflow.
5581 (SET_DECL_OFFSET_ALIGN): New macro.
5582 * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
5583 rather than DECL_OFFSET_ALIGN.
5584 (place_field): Likewise.
5585 * expmed.c (store_bit_field): Abort on align==0 to avoid
5586 antisocial machine behaviour.
5587
5588 2000-08-12 Richard Henderson <rth@cygnus.com>
5589
5590 * sibcall.c (uses_addressof): Accept both addressof and
5591 current_function_internal_arg_pointer inside a mem.
5592 (optimize_sibling_and_tail_recursive_call): Fail tail recursion
5593 if current_function_uses_addressof.
5594 * stmt.c (expand_return): Kill tail recursion and HAVE_return
5595 optimizations.
5596
5597 2000-08-11 Richard Henderson <rth@cygnus.com>
5598
5599 * config/ia64/ia64.md (addsi3): Remove expander.
5600 (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
5601 (*addsi3_shladd): New.
5602
5603 2000-08-11 Richard Henderson <rth@cygnus.com>
5604
5605 * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
5606 (do_restore): Likewise.
5607 (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
5608 (ia64_expand_prologue, ia64_expand_epilogue): Use them.
5609 (rtx_needs_barrier): Track actual bit manipulation for
5610 ar.unat moves, gr_spill, and gr_restore.
5611 (emit_insn_group_barriers): Special case gr_spill/gr_restore.
5612 (process_set): Don't handle varargs spills.
5613 * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit
5614 .mem.offset here instead of in process_set.
5615 (gr_restore): Likewise.
5616
5617 2000-08-11 Richard Henderson <rth@cygnus.com>
5618
5619 * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
5620
5621 2000-08-11 Mark Elbrecht <snowball3@bigfoot.com>
5622
5623 * gcc.texi (The Configuration File): Document
5624 COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
5625 UPDATE_PATH_HOST_CANONICALIZATION.
5626
5627 2000-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5628
5629 * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
5630 unprototyped function pointer casts on integer constants.
5631
5632 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
5633
5634 * fixproto: Recognize DOS paths with drive letters as absolute paths.
5635
5636 2000-08-11 Nathan Sidwell <nathan@codesourcery.com>
5637
5638 * extend.texi (Volatiles): Fix typos.
5639
5640 2000-08-11 Kazu Hirata <kazu@hxi.com>
5641
5642 * flow.c: Fix formatting.
5643
5644 2000-08-11 Richard Henderson <rth@cygnus.com>
5645
5646 * reload.c (push_secondary_reload): When invoking a reload_{in,out}
5647 pattern, always allocate a tertiary scratch register.
5648
5649 * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
5650 (reload_inhi): Likewise.
5651
5652 2000-08-11 Richard Henderson <rth@cygnus.com>
5653
5654 * function.c (put_reg_into_stack): Allow type to be NULL.
5655 (schedule_fixup_var_refs): Likewise.
5656 (gen_mem_addressof): Allow decl to be NULL.
5657 (put_addressof_into_stack): Likewise.
5658
5659 * flow.c (merge_blocks_nomove): Be more careful about
5660 locating the beginning of block A.
5661
5662 * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
5663
5664 Thu Aug 10 22:47:09 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
5665
5666 * configure.in:
5667 * configure:
5668 * gthr-posix.h:
5669 * config.in: Reverted the check for <sched.h>.
5670
5671 2000-08-10 Chris Demetriou <cgd@sibyte.com>
5672
5673 * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
5674 macros define the name of CTOR and DTOR sections.
5675 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
5676 DTOR_LIST_END): Change to use attributes to specify
5677 sections.
5678 * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
5679 (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
5680 DTOR_LIST_END): Same as in mips/elf.h.
5681
5682 2000-08-10 Drew Moseley <dmoseley@redhat.com>
5683
5684 * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
5685 disabling just crt0.o.
5686
5687 2000-08-10 Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton <nickc@cygnus.com>
5688
5689 * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
5690 (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
5691 (EXTRA_SPECS): Add them.
5692 * arm/lib1funcs.asm: Support builds for interworking.
5693 Use macros to eliminate duplicated pieces of code.
5694
5695 2000-08-10 Kazu Hirata <kazu@hxi.com>
5696
5697 * h8300.c (expand_a_rotate): New.
5698 (emit_a_rotate): Likewise.
5699 (h8300_adjust_insn_length): Add support for the rotate insns.
5700 * h8300.md (rotlqi3): New.
5701 (*rotlqi3_1): Likewise.
5702 (rotlhi3): Likewise.
5703 (*rotlhi3_1): Likewise.
5704 (rotlhi3): Likewise.
5705 (*rotlhi3_1): Likewise.
5706 * h8300-proto.h: Add prototypes for expand_a_rotate and
5707 emit_a_rotate.
5708
5709 * h8300.c: Fix comment typos.
5710 (dosize): Declare the variable amount as unsigned.
5711 (get_shift_alg): Fix a comparison between signed and unsigned.
5712 (emit_a_shift): Likewise.
5713 (h8300_adjust_insn_length): Simplify the code.
5714
5715 * c-decl.c: Fix formatting.
5716
5717 2000-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5718
5719 * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
5720 warning about non-traditional numeric constant suffixes.
5721
5722 * cppexp.c (parse_number): Likewise.
5723
5724 * invoke.texi: (-Wtraditional): Document new behavior.
5725
5726 Thu Aug 10 00:11:04 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
5727
5728 * gthr-posix.h: Include auto-host.h. Conditionally include
5729 <sched.h>.
5730 * configure.in: Check for the <sched.h> header file.
5731 * config.in: Added define for HAVE_SCHED_H.
5732
5733 2000-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5734
5735 * c-typeck.c (process_init_element): For -Wtraditional, warn about
5736 initialization of unions.
5737
5738 * invoke.texi (-Wtraditional): Document new behavior.
5739
5740 2000-08-09 Zack Weinberg <zack@wolery.cumb.org>
5741
5742 * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE
5743 instead of extra_c_flags.
5744 (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
5745 * configure: Regenerate.
5746 * config.in: Regenerate.
5747
5748 * cpperror.c (cpp_type2name): New function.
5749 * cpplex.c (lex_line): If we issued an error for an invalid
5750 preprocessing directive, discard that logical line.
5751 * cpplib.c (do_line): Call a hook function if the current file
5752 is renamed by #line.
5753 (do_ident): Pass the contents of the string, not the entire
5754 token, to the callback function.
5755 * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
5756 (cb.rename_file): New hook function.
5757 (cb.ident): Adjust prototype.
5758 (cpp_type2name): Prototype.
5759 * cppmacro.c (dump_macro_args): Correct precedence lossage.
5760
5761 * cppmain.c (cb_ident): Update for changed interface.
5762 (cb_rename_file): New function.
5763 (main): Set rename callback.
5764
5765 2000-08-09 Alexandre Oliva <aoliva@redhat.com>
5766
5767 * caller-save.c (mark_referenced_regs): Mark partially-overwritten
5768 multi-word registers.
5769
5770 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
5771
5772 * c-common.c (combine_strings, check_format_info): Refer to ISO C
5773 or ISO C89 instead of ANSI C.
5774 * c-decl.c (grokdeclarator, xref_tag, finish_struct,
5775 build_enumerator, do_case): Likewise.
5776 * c-lex.c (parse_float, yylex): Likewise.
5777 * c-parse.in: Likewise.
5778 * c-typeck.c (common_type, build_array_ref, build_binary_op,
5779 build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
5780 build_c_cast, convert_for_assignment, set_init_index,
5781 set_init_label, c_expand_start_case): Likewise.
5782 * toplev.c (documented_lang_options, display_help): Likewise.
5783
5784 2000-08-08 Kazu Hirata <kazu@hxi.com>
5785
5786 * h8300.c: Fix formatting.
5787 * h8300.h: Likewise.
5788 * h8300.md: Likewise.
5789 (movsi_h8300hs): Fix formatting of the resulting assembly code.
5790
5791 * reload1.c: Fix formatting.
5792
5793 2000-08-08 Rodney Brown <RodneyBrown@mynd.com>
5794
5795 * alpha/alpha.c (alpha_emit_xfloating_libcall):
5796 Use GEN_CALL_VALUE define.
5797 * alpha/alpha.md (untyped_call): Use GEN_CALL define.
5798 * clipper/clipper.md (untyped_call): Likewise.
5799 * dsp16xx/dsp16xx.md (untyped_call): Likewise.
5800 * fx80/fx80.md (untyped_call): Likewise.
5801 * mips/mips.md (untyped_call): Likewise.
5802 * ns32k/ns32k.md (untyped_call): Likewise.
5803 * pa/pa.md (untyped_call): Likewise.
5804 * romp/romp.md (untyped_call): Likewise.
5805 * sparc/sparc.md (untyped_call): Likewise.
5806
5807 2000-08-08 Jason Eckhardt <jle@cygnus.com>
5808
5809 * config/i860/i860.c (singlemove_string): Do not generate assembler
5810 pseudo instructions that must be expanded (that is, with signed
5811 constants larger than 16 bits).
5812
5813 2000-08-08 Richard Henderson <rth@cygnus.com>
5814
5815 * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
5816 PROP_AUTOINC at -O0. Don't collect alias info at -O0.
5817 (init_propagate_block_info): Don't kill memory stores at -O0.
5818 (mark_set_1, mark_used_regs): Likewise.
5819
5820 2000-08-08 David Edelsohn <edelsohn@gnu.org>
5821
5822 * rs6000.c (optimization_options): Decorate 'level' as
5823 ATTRIBUTE_UNUSED.
5824 (mask64_operand): Remove sign-extend thinko.
5825 (rldic_operand): New function.
5826 (load_multiple_operation): regno's are unsigned ints.
5827 (store_multiple_operation): Likewise.
5828 (lmw_operation): Likewise.
5829 (stmw_operation): Likewise.
5830 (includes_lshift_p): shift_mask is unsigned int.
5831 (includes_lshift64_p): New function.
5832 (addrs_ok_for_quad_peep): unsigned int reg1.
5833 (print_operand): Consistently add "else" after
5834 output_operand_lossage().
5835 (print_operand, case 'b'): Fold in case 'W'.
5836 (print_operand, case 'W'): Print rldic MB value.
5837 (output_epilogue): Update Objective-C language string.
5838 (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
5839 * rs6000.h (PREDICATE_CODES): Add rldic_operand.
5840 * rs6000.md (ashldi3): Add rldic instruction.
5841 (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
5842 (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
5843 modifier.
5844
5845 2000-08-08 Richard Henderson <rth@cygnus.com>
5846
5847 * config/ia64/ia64-protos.h: Remove duplicates. Update
5848 for massive code rearrangements.
5849 * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
5850 (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
5851 (ia64_local_regs, ia64_need_regstk): Remove.
5852 (ar_ccv_reg_operand): New.
5853 (ia64_gp_save_reg): New.
5854 (struct ia64_frame_info): Combine most of the size elements;
5855 add new gr save elements.
5856 (find_gr_spill): New.
5857 (next_scratch_gr_reg): New.
5858 (mark_reg_gr_used_mask): New.
5859 (ia64_compute_frame_size): Rewrite. Allocate special AR regs
5860 to GR backing store regs when possible.
5861 (ia64_initial_elimination_offset): New.
5862 (ia64_rap_fp_offset): Remove.
5863 (save_restore_insns): Remove.
5864 (setup_spill_pointers): New.
5865 (finish_spill_pointers): New.
5866 (spill_restore_mem): New.
5867 (do_spill, do_restore): New.
5868 (ia64_expand_prologue): Rewrite to use them.
5869 (ia64_expand_epilogue): Likewise.
5870 (ia64_direct_return): Update for current_frame_info changes.
5871 (ia64_function_prologue): Simplify .prologue emission. Emit
5872 .spill when needed.
5873 (ia64_setup_incoming_varargs): Don't ever emit rtl.
5874 (ia64_dbx_register_number): New.
5875 (ia64_initialize_trampoline): New.
5876 (ia64_secondary_reload_class): Request GR_REGS for integer
5877 arithmetic destined for FR_REGS.
5878 (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
5879 (ia64_mark_machine_status): Mark ia64_gp_save.
5880 (rws_access_regno): Rename from rws_access_reg; don't treat
5881 predicates specially.
5882 (rws_access_reg): New. Update all callers.
5883 (rtx_needs_barrier): Remove dead unspecs.
5884 (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
5885 (ia64_encode_section_info): Silence signed/unsigned warnings.
5886 (spill_offset, sp_offset, spill_offset_emitted): Remove.
5887 (tmp_reg, tmp_saved): Remove.
5888 (process_set): Rewrite to expect complicated bits via
5889 REG_FRAME_RELATED_EXPR.
5890 (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
5891 in the use of ar.ccv; never set RTX_UNCHANGING_P.
5892 (ia64_expand_op_and_fetch): Likewise.
5893 (ia64_expand_compare_and_swap): Likewise.
5894 (ia64_expand_builtin): Likewise.
5895 * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
5896 (FIRST_PSEUDO_REGISTER): Update.
5897 (AR_M_REGNO_P): Update.
5898 (FIXED_REGS): Don't mark three local registers as used.
5899 (EXTRA_CC_MODES): New.
5900 (SELECT_CC_MODE): New.
5901 (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
5902 (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
5903 (FRAME_GROWS_DOWNWARD): Unset.
5904 (STARTING_FRAME_OFFSET): Zero.
5905 (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
5906 (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
5907 (HARD_FRAME_POINTER_REGNUM): New.
5908 (CAN_DEBUG_WITHOUT_FP): Define.
5909 (TRAMPOLINE_TEMPLATE): Remove.
5910 (TRAMPOLINE_SIZE): Lower to 32.
5911 (TRAMPOLINE_ALIGNMENT): Lower to 64.
5912 (INITIALIZE_TRAMPOLINE): Defer to out of line function.
5913 (PREDICATE_CODES): Update.
5914 (struct machine_function): Add ia64_gp_save.
5915 * config/ia64/ia64.md: Purge unused unspecs.
5916 (movsi patterns): Allow moves to/from AR_M_REGS.
5917 (movdi patterns): Allow moves to/from p0.
5918 (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
5919 (gr_spill, gr_restore): Indicate ar.unat read/written.
5920 (nonlocal_goto): Don't pass old frame_pointer.
5921 (nonlocal_goto_receiver): Remove.
5922 (exception_receiver): New.
5923 (builtin_setjmp_setup): New.
5924 (builtin_setjmp_receiver): New.
5925 * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
5926 (__ia64_nonlocal_goto): Bundle. Don't kill r7.
5927 (__ia64_restore_stack_nonlocal): Likewise.
5928 (__ia64_trampoline): New.
5929 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
5930 function.
5931 * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
5932
5933 2000-08-08 Richard Henderson <rth@cygnus.com>
5934
5935 * frame.h (ia64_frame_state): Add my_psp.
5936 * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
5937 (__throw): Pass it in. Don't clobber r7.
5938 * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
5939 (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
5940 and nothing to do with sp.
5941 (normalize_reg_loc): Use frame->my_psp.
5942 (frame_translate): Handle frame-pointer-less functions. Set
5943 spill_base correctly, in absence of being told.
5944 (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp.
5945 (__ia64_backtrace_helper): New sp argument. Use
5946 builtin_return_address instead of label addresses.
5947 (print_record) [mem_stack_v]: No size member.
5948
5949 2000-08-08 Richard Henderson <rth@cygnus.com>
5950
5951 * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
5952
5953 2000-08-08 Richard Henderson <rth@cygnus.com>
5954
5955 * tm.texi (LOCAL_REGNO): Document.
5956 * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
5957 (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
5958 * reload1.c (reload): Likewise when considering nonlocal labels.
5959
5960 * config/ia64/ia64.h (LOCAL_REGNO): New.
5961 * config/sparc/sparc.h (LOCAL_REGNO): New.
5962
5963 2000-08-08 Joseph S. Myers <jsm28@cam.ac.uk>
5964
5965 * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
5966
5967 2000-08-07 Nick Clifton <nickc@redhat.com>
5968
5969 * config/mips/mips.c: Fix compile time warning messages.
5970 * config/mips/mips-protos.h: Add prototype for equality_op.
5971
5972 * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
5973
5974 2000-08-07 Graham Stott <grahams@cygnus.co.uk>
5975
5976 * mn10300.md: Use nonimmediate_operand instead of general_operand
5977 on output operands.
5978
5979 * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
5980
5981 2000-08-07 Alexandre Oliva <aoliva@redhat.com>
5982
5983 * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
5984 * sh.c (expand_block_move): Break long lines.
5985 (expand_ashiftrt, fpscr_set_from_mem): Likewise.
5986 * sh.md (mulsi3): Likewise.
5987 (movdi): Adjust spacing.
5988
5989 2000-08-07 Richard Henderson <rth@cygnus.com>
5990
5991 * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
5992 * expr.c (emit_group_store): Don't set it.
5993
5994 2000-08-07 Kazu Hirata <kazu@hxi.com>
5995
5996 * invoke.texi (Options for Debugging Your Program or GCC): Remove
5997 duplicate entries for 'w' and 'z'.
5998
5999 * flow.c: Fix a comment typo.
6000
6001 Sun Aug 6 23:47:35 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
6002
6003 * c-parse.in: Changed the language string for Objective-C to "GNU
6004 Objective-C".
6005
6006 Sun Aug 6 11:54:03 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
6007
6008 * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
6009 to improve the Posix thread support for Objective-C.
6010
6011 2000-08-06 Joseph S. Myers <jsm28@cam.ac.uk>
6012
6013 * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
6014 CTI_UNSIGNED_PTRDIFF_TYPE.
6015 (signed_size_type_node): Define.
6016 (unsigned_ptrdiff_type_node): Define.
6017 * c-decl.c (init_decl_processing): Create the
6018 signed_size_type_node and unsigned_ptrdiff_type_node types.
6019 * c-common.c (T_SC): Define.
6020 (T_SST): Define.
6021 (T_UPD): Define.
6022 (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for
6023 %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for
6024 %s and %p.
6025 (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for
6026 %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the
6027 flags for %c, %s and %[.
6028 (check_format_info): Only allow leniency for signedness of targets
6029 of character pointers (when pedantic) for formats flagged with
6030 "c", so for strings but not for %hh formats. When pedantic, don't
6031 allow character pointers to substitute for void pointers if a
6032 second level of indirection is present.
6033
6034 2000-08-06 Kazu Hirata <kazu@hxi.com>
6035
6036 * invoke.texi (Options for Debugging Your Program or GCC): Update
6037 the names of dump files.
6038
6039 * h8300.c (dosize): Rearrange code for conciseness.
6040 (split_adds_subs): Likewise.
6041
6042 * loop.c: Fix formatting.
6043
6044 * dwarf2out.c: Fix formatting.
6045
6046 * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
6047
6048 * expr.c: Fix formatting.
6049
6050 2000-08-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6051
6052 * rs6000.c (rs6000_maybe_dead): Prototype.
6053
6054 2000-08-06 Richard Henderson <rth@cygnus.com>
6055
6056 * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
6057 HAVE_nonlocal_goto as well.
6058 * config/i960/i960.md (nonlocal_goto): Don't do it here.
6059 * config/pj/pj.md (nonlocal_goto): Likewise.
6060
6061 2000-08-07 Michael Hayes <mhayes@cygnus.com>
6062
6063 * loop.c (try_swap_copy_prop): New function.
6064 (load_mems): Rename copies to load_copies and add new regset
6065 store_copies. Check for sets of shadow registers and mark
6066 in store_copies. Call try_swap_copy_prop for registers
6067 marked in store_copies.
6068
6069 Sun Aug 6 00:54:42 2000 Ovidiu Predescu <ovidiu@cup.hp.com>
6070
6071 * objc/objc-act.c: New command line option -fconstant-string-class
6072 to allow specifying a user defined constant string class,
6073 different from NXConstantString.
6074
6075 * toplev.c: Moved the Objective-C specific options to
6076 objc/lang-options.h.
6077
6078 * objc/lang-options.h: Moved the Objective-C specific options from
6079 toplev.c. Added -fconstant-string-class.
6080
6081 2000-08-05 Chris Demetriou <cgd@sibyte.com>
6082
6083 * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
6084 DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
6085 __CTOR_LIST__ from func_ptr array to just func_ptr, to
6086 avoid extra alignment imposed on arrays.
6087 * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
6088 DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
6089
6090 * mips.h: Clean up comments and spacing near MASKs.
6091 (TARGET_UNIX_ASM): Delete.
6092 (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
6093 MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
6094 values contiguous.
6095
6096 2000-08-05 Joseph S. Myers <jsm28@cam.ac.uk>
6097
6098 * c-common.c (print_char_table): Add entries for the X/Open '
6099 format flag (print decimals with locale's thousands grouping
6100 character). Make %C expect wint_t.
6101 (check_format_info): If pedantic, warn when the %n$ operand
6102 number form is used. Allow for the ' flag; warn about it if
6103 pedantic.
6104
6105 2000-08-05 Zack Weinberg <zack@wolery.cumb.org>
6106
6107 * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return
6108 type is a float mode, cfun->decl's return type is not, and
6109 TARGET_FLOAT_RETURNS_IN_80387.
6110
6111 2000-08-04 Andreas Schwab <schwab@suse.de>
6112
6113 * cppmain.c (cb_def_pragma): Skip the first two tokens from the
6114 token list, which are always `#' and `pragma'.
6115
6116 2000-08-04 Zack Weinberg <zack@wolery.cumb.org>
6117
6118 * tree.c (tree_expr_nonnegative_p): Move to...
6119 * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR.
6120 (rtl_expr_nonnegative_p): New.
6121 * tree.h: Add prototype for rtl_expr_nonnegative_p.
6122
6123 * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
6124 CONST_DOUBLE_CHAIN: Move to...
6125 * rtl.h: ...here. Use XCINT/XCEXP.
6126
6127 * Makefile.in: Remove toplev.o from OBJS. Add rule to make
6128 libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND
6129 variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND
6130 to VOL_FILES.
6131
6132 * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
6133
6134 2000-08-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6135
6136 * config/c4x/c4x.md (return_indirect_internal): New.
6137 * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
6138
6139 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
6140
6141 * c-common.c (time_char_table): Mark up formats added in C99 and
6142 make other corrections. %D and %g were added in C99. %Og is an
6143 extension. %EX is permitted. %R, %T, %n, %r, %t were added in
6144 C99. %e was added in C99. %Oj is an extension. %G and %z are in
6145 C99 rather than GNU extensions, but %OG and %Oz are extensions.
6146 %h was added in C99. %C was added in C99. %OY and %OC are
6147 extensions. Add the C99 format %F.
6148 (check_format_info): If pedantic and not in C99 mode, warn for C99
6149 formats, %E and %O.
6150
6151 Fri Aug 4 23:01:58 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
6152
6153 * function.c (schedule_fixup_var_refs): New function, broken out
6154 of put_reg_into_stack.
6155 (put_reg_into_stack): Use it.
6156 (put_var_into_stack): In CONCAT case, fixup up references for
6157 components only after fixing up references to the whole concat.
6158
6159 2000-08-04 Rodney Brown <RodneyBrown@pmsc.com>
6160
6161 * alias.c (mark_constant_function): Use INSN_P.
6162 (init_alias_analysis): Likewise.
6163 * combine.c (combine_instructions): Use INSN_P.
6164 (can_combine_p): Likewise.
6165 (try_combine): Likewise.
6166 (distribute_notes): Likewise.
6167 (distribute_links): Likewise.
6168 * cse.c (cse_around_loop): Use INSN_P.
6169 (invalidate_skipped_block): Likewise.
6170 (cse_set_around_loop): Likewise.
6171 (cse_end_of_basic_block): Likewise.
6172 (delete_trivially_dead_insns): Likewise.
6173 * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
6174 (unshare_all_rtl_1): Likewise.
6175 (next_cc0_user): Likewise.
6176 (try_split make_insn_raw): Likewise.
6177 (remove_unnecessary_notes): Likewise.
6178 * final.c (shorten_branches): Use INSN_P.
6179 (leaf_renumber_regs): Likewise.
6180 (leaf_renumber_regs_insn): Likewise.
6181 * flow.c (find_label_refs): Use INSN_P.
6182 (verify_wide_reg): Likewise.
6183 (notice_stack_pointer_modification): Likewise.
6184 (count_or_remove_death_notes): Likewise.
6185 (verify_flow_info): Likewise.
6186 (clear_log_links): Likewise.
6187 * function.c (fixup_var_refs_insns): Use INSN_P.
6188 (compute_insns_for_mem): Likewise.
6189 * gcse.c (alloc_gcse_mem): Use INSN_P.
6190 (compute_sets): Likewise.
6191 (compute_hash_table): Likewise.
6192 (classic_gcse): Likewise.
6193 (cprop): Likewise.
6194 (insert_insn_end_bb): Likewise.
6195 (delete_null_pointer_checks_1): Likewise.
6196 * global.c (expand_preferences): Use INSN_P.
6197 (build_insn_chain): Likewise.
6198 * graph.c (node_data): Use INSN_P.
6199 * haifa-sched.c (priority): Use INSN_P.
6200 (rm_line_notes): Likewise.
6201 (rm_other_notes): Likewise.
6202 (find_insn_reg_weight): Likewise.
6203 (init_target_units): Likewise.
6204 (schedule_block): Likewise.
6205 (compute_block_forward_dependences): Likewise.
6206 (debug_dependencies): Likewise.
6207 (set_priorities): Likewise.
6208 * integrate.c (function_cannot_inline_p): Use INSN_P.
6209 (save_parm_insns): Likewise.
6210 (copy_insn_list): Likewise.
6211 * jump.c (mark_all_labels): Use INSN_P.
6212 (never_reached_warning): Likewise.
6213 * lcm.c (optimize_mode_switching): Use INSN_P.
6214 * local-alloc.c (validate_equiv_mem): Use INSN_P.
6215 (memref_used_between_p): Likewise.
6216 (update_equiv_regs): Likewise.
6217 (block_alloc): Likewise.
6218 (no_conflict_p): Likewise.
6219 * loop.c (scan_loop): Use INSN_P.
6220 (find_and_verify_loops): Likewise.
6221 (count_loop_regs_set): Likewise.
6222 (loop_reg_used_before_p): Likewise.
6223 (strength_reduce): Likewise.
6224 (recombine_givs): Likewise.
6225 (check_dbra_loop): Likewise.
6226 (load_mems): Likewise.
6227 (try_copy_prop): Likewise.
6228 * print-rtl.c (print_rtx): Use INSN_P.
6229 * recog.c (find_single_use): Use INSN_P.
6230 * reg-stack.c (stack_regs_mentioned): Use INSN_P.
6231 (next_flags_user): Likewise.
6232 (swap_rtx_condition): Likewise.
6233 * regmove.c (mark_flags_life_zones): Use INSN_P.
6234 (optimize_reg_copy_1): Likewise.
6235 (optimize_reg_copy_2): Likewise.
6236 (optimize_reg_copy_3): Likewise.
6237 (reg_is_remote_constant_p): Likewise.
6238 (fixup_match_2): Likewise.
6239 (regmove_optimize): Likewise.
6240 (fixup_match_1): Likewise.
6241 * regrename.c (build_def_use): Use INSN_P.
6242 (replace_reg_in_block): Likewise.
6243 (consider_use): Likewise.
6244 * reload.c (find_equiv_reg): Use INSN_P.
6245 * reload1.c (reload): Use INSN_P.
6246 (maybe_fix_stack_asms): Likewise.
6247 (calculate_needs_all_insns): Likewise.
6248 (reload_as_needed): Likewise.
6249 (emit_output_reload_insns): Likewise.
6250 (delete_address_reloads_1): Likewise.
6251 (reload_cse_regs_1): Likewise.
6252 (reload_combine): Likewise.
6253 (reload_cse_move2add): Likewise.
6254 * reorg.c (redundant_insn): Use INSN_P.
6255 (dbr_schedule): Likewise.
6256 * resource.c (find_dead_or_set_registers): Use INSN_P.
6257 (mark_target_live_regs): Likewise.
6258 * rtlanal.c (reg_used_between_p): Use INSN_P.
6259 (reg_referenced_between_p): Likewise.
6260 (reg_set_between_p): Likewise.
6261 (reg_set_p): Likewise.
6262 (single_set): Likewise.
6263 (multiple_sets): Likewise.
6264 (find_last_value): Likewise.
6265 (reg_set_last): Likewise.
6266 (find_reg_note): Likewise.
6267 (find_regno_note): Likewise.
6268 * sibcall.c (sequence_uses_addressof): Use INSN_P.
6269 * simplify-rtx.c (cselib_process_insn): Use INSN_P.
6270 * ssa.c (find_evaluations): Use INSN_P.
6271 (rename_block): Likewise.
6272 (rename_equivalent_regs): Likewise.
6273 * unroll.c (loop_find_equiv_value): Use INSN_P.
6274 (set_dominates_use): Likewise.
6275 * varasm.c (mark_constant_pool): Use INSN_P.
6276 (mark_constants): Likewise.
6277 * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
6278 (alphaev4_next_group): Likewise.
6279 (alphaev5_next_group): Likewise.
6280 * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
6281 (c4x_rptb_rpts_p): Likewise.
6282 * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
6283 * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
6284 (rs6000_adjust_priority): Likewise.
6285 * config/sh/sh.c (sh_loop_align): Use INSN_P.
6286 (machine_dependent_reorg): Likewise.
6287 (split_branches): Likewise.
6288 * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
6289
6290 Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com)
6291
6292 * combine.c (recog_for_combine): Remove the old notes
6293 prior to attempting to recognize the new pattern.
6294 (distribute_notes): Ignore REG_NONNEG notes.
6295
6296 2000-08-04 Chandrakala Chavva <cchavva@redhat.com>
6297
6298 * varasm.c (output_constructor): Add .align 0 for packed vars.
6299
6300 2000-08-04 J. David Anglin <dave@hiauly1.hia.nrc.ca>
6301
6302 * configure.in: Use default thread_file even when enable_threads is
6303 yes or dce because hpux10.20 pa port uses MULTILIB implementation.
6304 * configure: Rebuilt.
6305
6306 * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
6307
6308 2000-08-04 Donn Terry (donnte@microsoft.com)
6309
6310 * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
6311
6312 2000-08-04 Mark Elbrecht <snowball3@bigfoot.com>
6313
6314 * i386/x-djgpp: Delete code that conditionally modifies target_alias.
6315 Delete code that conditionally modifies 'version'.
6316 Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
6317 * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
6318 * gcc.c (main): Use it.
6319 * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
6320 * prefix.c (update_path): Use it.
6321 * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
6322 (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
6323 (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
6324 code.
6325 (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
6326 (SUBTARGET_SWITCHES): Adjust.
6327 (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
6328 defining.
6329 (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
6330
6331 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
6332
6333 * c-common.h (flag_isoc94): Declare.
6334 * c-decl.c (flag_isoc94): Define.
6335 (c_decode_option): Set flag_isoc94 as appropriate.
6336 * c-common.c (T_PD, T_IM, T_UIM): Define.
6337 (format_char_info): Add tlen and jlen.
6338 (print_char_table): Add entries for %t and %j. Allow %zn. Allow
6339 %F. Allow %lf.
6340 (scan_char_table): Add entries for %t and %j. Allow %F. Allow
6341 %l[.
6342 (time_char_table): Add NULL entries for %t and %j.
6343 (check_format_info): Allow for %t and %j. Warn for %F if pedantic
6344 and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94.
6345 Warn for printf %lf if pedantic and not C99. Don't warn for empty
6346 precision. Allow precision argument to be unsigned int. If
6347 pedantic, warn for %p passed an argument not a pointer to possibly
6348 qualified void or a possibly qualified character type, and for
6349 pointer targets of the wrong sign, except for character pointers.
6350
6351 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
6352
6353 * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
6354 * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
6355 (wint_type_node): Define.
6356 * c-decl.c (WINT_TYPE): Define.
6357 (init_decl_processing): Create the wint_type_node type.
6358 * c-common.c (T_WI): Define.
6359 (print_char_table): Use T_WI for %lc format.
6360
6361 2000-08-04 Bruce Korb <bkorb@gnu.org>
6362
6363 * fixinc/: Verified that the MSDOS patch does not break
6364 the UNIX functionality and applied the next three patches
6365 from July:
6366
6367 2000-07-28 Eli Zaretskii <eliz@is.elta.co.il>
6368
6369 * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
6370 output file with the temporary one by appending ".X" to generate
6371 the temporary fuile's name. If the output file already has an
6372 extension, replace it with ".X".
6373
6374 * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
6375 not $DESTDIR, to find applyfix. Use sprintf instead of snprintf;
6376 reallocate the command buffer while copying the command-line
6377 argument. Redirect the output directly to the temporary file,
6378 instead of going through another temporary file.
6379 (process): Close the temporary file before unlinking it.
6380 (machine_matches) [__MSDOS__]: If the machine doesn't match, set
6381 the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag.
6382 (run_compiles): Pass p_fixd argument to machine_matches, as it
6383 expects.
6384
6385 * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the
6386 environment, assume there are no symlinks in the include
6387 directory. When cleaning up the DONE files, look for them
6388 case-insensitively. Don't try to remove symlinks if they aren't
6389 there.
6390
6391 * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
6392 all callers changed. Declare pz "const char *", to avoid compiler
6393 warnings.
6394
6395 * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
6396 Change prototype of make_raw_shell_str.
6397
6398 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
6399
6400 * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
6401 (initialize) [__MSDOS__]: Use tempnam.
6402 (initialize): Don't use SIGPIPE if it is not defined.
6403
6404 * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
6405 return stdout.
6406
6407 2000-07-25 Bruce Korb <bkorb@gnu.org>
6408
6409 * fixinc/fix*.[ch]: substantially reworked to make it possible
6410 to run this program without using fork(2) or pipe(2) (i.e. in
6411 a DOS environment).
6412
6413 2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
6414
6415 * cppdefault.h (WINT_TYPE): Define.
6416 * cppinit.c (builtin_array): Define __WINT_TYPE__.
6417 * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
6418 * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
6419
6420 Fri Aug 4 06:53:46 2000 Clinton Popetz <cpopetz@cygnus.com>
6421
6422 * (mips_legitimate_address_p): Don't allow register+offset
6423 if the offset is large and negative, and we are compiling
6424 for 64 bit registers.
6425
6426 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6427
6428 * gencodes.c (main): Define CODE_FOR_nothing as the last possible
6429 insn_code_number + 1.
6430
6431 2000-08-04 Kazu Hirata <kazu@hxi.com>
6432
6433 * h8300.c (function_prologue): Rearrange code for conciseness.
6434 (function_epilogue): Likewise.
6435 * h8300.h (OK_FOR_U): Fix formatting.
6436
6437 * cse.c: Fix a comment typo. Fix formatting.
6438
6439 2000-08-03 Richard Henderson <rth@cygnus.com>
6440
6441 * config/i386/i386.md (return_indirect_internal): New.
6442 * config/i386/i386.c (ix86_expand_epilogue): Use it.
6443
6444 2000-08-03 Zack Weinberg <zack@wolery.cumb.org>
6445
6446 * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
6447 before the name.
6448 (lex_line): Glue @ onto the beginning of identifiers and
6449 string constants, in Objective-C mode.
6450 (output_token, spell_token): Handle CPP_OSTRING.
6451 (can_paste, maybe_paste_with_next): Handle pasting @ onto the
6452 beginning of a NAME or a STRING, in objc mode.
6453
6454 * cpplib.c (get_define_node): Do not permit identifiers that
6455 begin with @ to be #defined.
6456 * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
6457 * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
6458
6459 * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
6460 * c-tree.h (build_objc_string): Delete prototype.
6461 * objc/objc-tree.def: Delete OBJC_STRING_CST.
6462 * c-lex.c (yylex): Use build_string for all three kinds of strings.
6463
6464 * c-parse.in, objc/objc-act.c: Update commentary.
6465
6466 2000-08-03 Mark Mitchell <mark@codesourcery.com>
6467
6468 * extend.texi: Fix typo in last change.
6469
6470 * extend.texi: Add commentary on statement-expressions and their
6471 interactions with C++.
6472
6473 2000-08-03 Nick Clifton <nickc@cygnus.com>
6474
6475 * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
6476 * dwarf.h (LANG_JAVA): Change value to 0x000b.
6477
6478 2000-08-03 Anthony Green <green@cygnus.com>
6479
6480 * dwarf2out.c (gen_compile_unit_die): Add java language support.
6481 (add_bound_info): Check for java language.
6482 (is_java): New function.
6483 * dwarfout.c (output_compile_unit_die): Ditto.
6484 * dwarf.h (dwarf_source_language): Add java source language type.
6485 * dwarf2.h (dwarf_source_language): Ditto.
6486
6487 Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
6488
6489 * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap
6490 operands.
6491
6492 * i386.c (ix86_expand_branch): Mode of comparison in
6493 IF_THEN_ELSE is VOIDmode.
6494
6495 Thu Aug 3 10:05:53 2000 Akiko Matsushita <matusita@sra.co.jp>
6496
6497 * gengenrtl.c, rtl.c: Avoid #elif.
6498
6499 2000-08-03 Michael Poole <poole@troilus.org>
6500
6501 * tm.texi (Register Classes): Clarify order of sub-initializers
6502 in REG_CLASS_CONTENTS.
6503
6504 Thu Aug 3 15:53:03 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
6505
6506 From SAITOH Masanobu:
6507 * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
6508
6509 2000-08-03 David Billinghurst <David.Billinghurst@riotinto.com.au>
6510
6511 * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
6512 is not supported by tradcpp and isn't actually needed for cygwin.
6513
6514 2000-08-03 Kazu Hirata <kazu@hxi.com>
6515
6516 * h8300.c: Fix a comment typo.
6517 * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
6518
6519 * jump.c: Fix formatting.
6520
6521 * toplev.c: Fix formatting.
6522
6523 Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com)
6524
6525 * flow.c (find_auto_inc): Verify that we've got a REG before
6526 peeking at its regno. Fail, don't abort if we can't find
6527 the increment of the desired register.
6528
6529 * pa.md (shadd height reduction patterns/splitters): Remove.
6530
6531 2000-08-02 Jim Wilson <wilson@cygnus.com>
6532
6533 * config/ia64/ia64-protos.h (flag_ssa): Declare.
6534 * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
6535
6536 2000-08-02 Mark Mitchell <mark@codesourcery.com>
6537
6538 * dce.c: Remove all uses of assert.
6539 * dwarf2out.c: Likewise.
6540 * dwarfout.c: Likewise.
6541 * ssa.c: Likewise.
6542
6543 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
6544
6545 * gcc.h (lang_specific_driver): Constify second argument.
6546 * gcc.c (translate_options, process_command, main): Likewise.
6547 Constify variables to match. Cast second argument to
6548 pexecute.
6549
6550 * cppspec.c, gccspec.c: Adjust type of second argument to
6551 lang_specific_driver, and update code as necessary.
6552
6553 2000-08-02 Jakub Jelinek <jakub@redhat.com>
6554
6555 * loop.c (scan_loop): Ensure update_end label does not
6556 go away until reg_scan_update is run.
6557
6558 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
6559
6560 * c-common.h: Prototype min_precision and c_build_qualified_type here...
6561 * c-tree.h: ... not here.
6562 * errors.h: Prototype fancy_abort.
6563
6564 * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
6565 HOST_BITS_PER_WIDE_INT == 64 ifdef block.
6566 * regrename.c (regrename_optimize): Make control flow explicit.
6567 (replace_reg_in_block): Initialize reg_use to 0.
6568
6569 * i386.c (legitimate_address_p): Rename error label to
6570 report_error to avoid namespace clash.
6571
6572 2000-08-02 Kazu Hirata <kazu@hxi.com>
6573
6574 * fold-const.c: Fix formatting.
6575
6576 Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka <jh@suse.cz>
6577
6578 * i386.c (legitimate_address_p): Accept other bases than
6579 pic_offset_table_rtx for GOTOFF constructs.
6580
6581 Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
6582
6583 * i386.md (shift to lea splitter): Use const_int_operand.
6584
6585 2000-08-02 Zack Weinberg <zack@wolery.cumb.org>
6586
6587 * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
6588 cppspec.c: Do not use 'legal' or 'illegal' in error messages
6589 and comments.
6590
6591 * cppmain.c (cb_define, cb_undef): Don't generate any output
6592 if not done_initializing.
6593 * cpplex.c (maybe_paste_with_next): When the token after a ##
6594 is an omitted rest argument, only delete the token before it
6595 if that token is a comma. Do not warn about bogus token
6596 pastes for , ## rest_arg.
6597
6598 * cpp.texi: Update.
6599 * cpp.1: Regenerate.
6600
6601 2000-08-02 Fred Fish <fnf@be.com>
6602
6603 * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
6604 when user gives -p option. Add init_term_dyn.o for BeOS 5.0
6605 and later.
6606
6607 * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
6608 Be directories to search path.
6609
6610 Remove support for __declspec(dllimport) and __declspec(dllexport).
6611 This is leftover cruft from the earlier BeOS gcc port when BeOS
6612 used Microsoft's PE object file format.
6613 * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
6614 * config/i386/t-beos (winnt.o): Remove Makefile frag.
6615 * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
6616 (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
6617 (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
6618 (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
6619 (REDO_SECTION_INFO_P): Remove.
6620 (ASM_EXPORT_DECL): Remove.
6621 (ASM_DECLARE_FUNCTION_NAME): Remove.
6622 (ASM_DECLARE_OBJECT_NAME): Remove.
6623 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
6624 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
6625 (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
6626 (STRIP_NAME_ENCODING): Remove.
6627
6628 Remove support for obsolete version of BeOS that is no longer
6629 supported by Be.
6630 * configure.in (i*86-*-beospe*): Remove.
6631 * config/i386/beos-pe.h: Remove.
6632
6633 2000-08-01 Jeffrey Oldham <oldham@codesourcery.com>
6634 Mark Mitchell <mark@codesourcery.com>
6635
6636 * Makefile.in (OBJS): Added dce.o.
6637 (ssa.o): Updated target to include ssa.h.
6638 (flow.o): Likewise.
6639 (toplev.o): Likewise.
6640 (dce.o): Created target.
6641 * basic-block.h: Added comments.
6642 (INVALID_BLOCK): Added definition.
6643 (connect_infinite_loops_to_exit): Added declaration.
6644 Moved SSA declarations to ssa.h.
6645 * flow.c: Added inclusion of ssa.h.
6646 (struct depth_first_search_dsS, depth_first_search_ds):
6647 Added definitions.
6648 (compute_immediate_postdominators): Added definition.
6649 (connect_infinite_loops_to_exit): Likewise.
6650 (flow_dfs_compute_reverse_init): Likewise.
6651 (flow_dfs_compute_reverse_add_bb): Likewise.
6652 (flow_dfs_compute_reverse_execute): Likewise.
6653 (flow_dfs_compute_reverse_finish): Likewise.
6654 * rtl.h (rtx/in_struct): Added use to determine insn necessity.
6655 (LABEL_P): Added definition.
6656 (JUMP_P): Likewise.
6657 (NOTE_P): Likewise.
6658 (BARRIER_P): Likewise.
6659 (JUMP_TABLE_DATA_P): Likewise.
6660 (INSN_DEAD_CODE_P): Likewise.
6661 * ssa.c: Replaced inclusions with ssa.h inclusion.
6662 (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
6663 (rename_registers): Removed unnecessary variables.
6664 * ssa.h: Created by moving declarations from ssa.c and
6665 basic-block.h.
6666 * timevar.def: Defined TV_DEAD_CODE_ELIM.
6667 * toplev.c: Added ssa.h inclusion.
6668 (dump_file_index): Added DFI_dce.
6669 (dump_file): Added "dce" entry.
6670 Defined flag_ssa.
6671 (f_options): Added dce entry.
6672 * invoke.texi: Document -fdce. Emphasize experimental status of
6673 -fssa.
6674 * dce.c: New file.
6675
6676 2000-08-01 Zack Weinberg <zack@wolery.cumb.org>
6677
6678 * cpperror.c (v_message): Split into _cpp_begin_message and
6679 v_message macro. All callers updated.
6680 (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
6681 checks here.
6682
6683 * cppfiles.c (cpp_syshdr_flags): New function.
6684 (read_include_file): Don't call cpp_output_tokens. Call
6685 enter_file hook.
6686 * cppinit.c (dump_macros_helper): Moved to cppmain.c.
6687 (cpp_reader_init): Don't initialize token_buffer. Call
6688 _cpp_init_internal_pragmas.
6689 (cpp_cleanup): Don't clear token_buffer.
6690 (cpp_start_read): Don't worry about output from -D processing.
6691 Don't call cpp_output_tokens.
6692 (cpp_finish): Don't dump macros here. Don't call
6693 cpp_output_tokens.
6694 * cppmacro.c (_cpp_dump_definition): Rename
6695 cpp_dump_definition. Write directly to a FILE *.
6696 (dump_funlike_macro): Delete.
6697 (dump_macro_args): New.
6698
6699 * cpplex.c (TOKEN_LEN): Convert to inline function.
6700 (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
6701 cpp_scan_line, _cpp_dump_list): Delete.
6702 (cpp_printf, cpp_output_list): New.
6703 (output_line_command): Don't worry about entering or leaving files.
6704 (cpp_scan_buffer): Just output each token as we hit it.
6705 (process_directive): Don't call cpp_output_tokens.
6706 (_cpp_glue_header_name): Don't use token_buffer.
6707 (output_token, dump_param_spelling): Write directly to a FILE *.
6708
6709 * cpplib.c (pass_thru_directive, dump_macro_name,
6710 pragma_dispatch, do_pragma_gcc): Delete.
6711 (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
6712 do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
6713 functions.
6714 (do_error, do_warning, pragma_dependency): Call
6715 _cpp_begin_message, then cpp_output_list.
6716 (cpp_register_pragma, cpp_register_pragma_space,
6717 _cpp_init_internal_pragmas): New.
6718 (do_pragma): Walk the pragmas table here.
6719 (do_pragma_once, do_pragma_poison, do_pragma_system_header,
6720 do_pragma_dependency): Return void.
6721 (do_pragma_implementation): Moved to cppmain.c.
6722
6723 * cpplib.h: Update prototypes.
6724 (struct cpp_reader): Remove printer, token_buffer,
6725 token_buffer_size, and limit. Add struct cb, and pragmas.
6726 (struct cpp_printer): Remove last_id and written.
6727 (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
6728 CPP_ADJUST_WRITTEN): Delete.
6729 * cpphash.h: Update prototypes.
6730 (ufputs): New wrapper.
6731
6732 * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
6733 cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
6734 (main): Set up callbacks. Register #pragma implementation.
6735 Dump macros from here.
6736
6737 2000-08-01 Geoff Keating <geoffk@cygnus.com>
6738
6739 * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
6740 * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
6741 * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
6742 insns if they have a REG_MAYBE_DEAD note attached.
6743 * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
6744 (rs6000_emit_load_toc_table): TOC loads may go dead.
6745
6746 2000-08-01 Jim Wilson <wilson@cygnus.com>
6747
6748 * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify
6749 type exists before using it. Use number of words as alignment
6750 otherwise.
6751 (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
6752 ia64_va_arg): Propagate ia64_function_args changes here.
6753
6754 2000-08-01 Richard Henderson <rth@cygnus.com>
6755
6756 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
6757 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
6758
6759 2000-08-01 Bernd Schmidt <bernds@cygnus.co.uk>
6760
6761 From Joern Rennecke:
6762 * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
6763 * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
6764 unless TARGET_SH3E is set.
6765 * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
6766
6767 * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
6768 (ashlsi3_std): New pattern.
6769 (ashlsi3 expander): Use it for TARGET_SH3.
6770 * sh.c (gen_ashift): Use it instead of ashlsi3_k.
6771
6772 Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
6773
6774 * loop.c (canonicalize_condition): Use destination, not source to
6775 determine SET's mode.
6776
6777 2000-07-31 Mark Mitchell <mark@codesourcery.com>
6778
6779 * flow.c (clear_log_links): Fix typo.
6780
6781 Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com)
6782
6783 * loop.c (check_dbra_loop): Make change from July 17, 2000 work
6784 on targets which need more than one insn for a compare/cbranch
6785 operation.
6786
6787 2000-07-31 Jim Wilson <wilson@cygnus.com>
6788
6789 * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
6790 when computing offset.
6791
6792 Mon Jul 31 20:35:50 2000 Denis Chertykov <denisc@overta.ru>
6793
6794 * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
6795
6796 2000-07-31 Geoff Keating <geoffk@cygnus.com>
6797
6798 * flow.c (clear_log_links): Nuke global_live_at_start and
6799 global_live_at_end data, since if the log_links stuff is invalid
6800 so is global_live_at_*.
6801
6802 2000-07-31 Richard Henderson <rth@cygnus.com>
6803
6804 * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
6805
6806 2000-07-31 Jakub Jelinek <jakub@redhat.com>
6807
6808 * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
6809 (_cpp_get_token): Don't macro expand a just pasted token if it
6810 was pasted at no_expand_level.
6811
6812 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
6813
6814 * cppmacro.c (find_param, count_params, save_expansion):
6815 Permit 'defined' as a macro parameter name.
6816
6817 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
6818
6819 * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
6820 xcpp to cpp throughout.
6821 (native): Remove unnecessary dependency on cpp.
6822
6823 * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
6824 tradcpp to tradcpp0.
6825 (.i spec): Add missing output-file spec to cc1 command line.
6826 * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
6827
6828 2000-07-31 Zack Weinberg <zack@wolery.cumb.org>
6829
6830 * c-decl.c (mesg_implicit_function_declaration): Init to -1.
6831 (implicit_decl_warning): New function.
6832 (implicitly_declare): Use it.
6833 * c-typeck.c (build_external_ref): Use implicit_decl_warning
6834 to complain about implicit decls of builtins.
6835
6836 * c-lang.c (lang_init): Set mesg_implicit_function_declaration
6837 based on pedantic && flag_isoc99, if not already set.
6838 * c-tree.h: Declare mesg_implicit_function_declaration.
6839 Prototype implicit_decl_warning.
6840
6841 2000-07-30 Jeffrey D. Oldham <oldham@codesourcery.com>
6842
6843 * Makefile.in (ssa.o): Updated header files in dependences.
6844 * basic-block.h: Added compute_immediate_postdominators declaration.
6845 * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
6846 definition.
6847 * flow.c (compute_immediate_dominators): Updated comment.
6848 (compute_immediate_postdominators): Added definition.
6849 * rtl.h (HARD_REGISTER_P): Added definition.
6850 * ssa.c: Include additional header files.
6851 (assert): Added definition.
6852 (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
6853 include select hard registers.
6854 (ssa_rename_to_insert): Likewise.
6855 (ssa_rename_from_initialize): Likewise.
6856 (ssa_rename_from_lookup): Likewise.
6857 (original_register): Likewise.
6858 (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
6859 include select hard reigsters.
6860 (ssa_rename_from_traverse): Likewise.
6861 (ssa_rename_from_free): Likewise.
6862 (ssa_rename_from_print): Likewise.
6863 (ssa_rename_from_print_1): Likewise.
6864 (ssa_rename_from_hash_function): Likewise.
6865 (ssa_rename_from_equal): Likewise.
6866 (ssa_rename_from_delete): Likewise.
6867 (simplify_to_immediate_dominators): Removed in favor of
6868 flow.c:compute_immediate_dominators.
6869 (find_evaluations_1): Modified to work with hard registers.
6870 (insert_phi_node): Likewise.
6871 (insert_phi_nodes): Likewise.
6872 (struct rename_set_data): Updated prev_reg comment.
6873 (create_delayed_rename): Modified to work with hard registers.
6874 (RENAME_NO_RTX): Updated comment.
6875 (apply_delayed_renames): Modified to work with hard registers.
6876 (rename_insn_1): Likewise and added handling of CLOBBER rtls.
6877 (rename_block): Updated to use revised ssa_rename_to interface.
6878 (rename_registers): Updated to use revised ssa_rename_to and
6879 ssa_rename_from interface.
6880 (convert_to_ssa): Revised to use compute_immediate_dominators and
6881 deal with hard registers.
6882 (make_regs_equivalent_over_bad_edges): Modified to work with hard
6883 registers. Added check for illegal unification of hard register.
6884 (make_equivalent_phi_alternatives_equivalent): Modified to work
6885 with hard registers.
6886 (compute_conservative_reg_partition): Likewise.
6887 (coalesce_if_unconflicting): Modified to work with hard registers
6888 and check for conflicting hard registers.
6889 (mark_phi_and_copy_regs): Revised loop to work only on pseudo
6890 registers.
6891 (rename_equivalent_regs_in_insn): Modified to work with hard
6892 registers.
6893 (record_canonical_element_1): Added definition.
6894 (check_hard_regs_in_partition): Added definition.
6895 (convert_from_ssa): Added data structure deallocation and check
6896 for illegal hard register unification.
6897 (conflict_hard_regs_p): Added definition.
6898 * toplev.c (rest_of_compilation): Added comment.
6899
6900 2000-07-31 Anthony Green <green@redhat.com>
6901
6902 * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
6903
6904 2000-07-31 Jason McMullan <jmcmullan@linuxcare.com>
6905
6906 * builtins.c (expand_builtin_apply): Don't defer pop during
6907 argument setup.
6908
6909 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6910
6911 * calls.c (combine_pending_stack_adjustment_and_call): Only use
6912 preferred_unit_stack_boundary when it is > 1.
6913
6914 2000-07-31 Joseph S. Myers <jsm28@cam.ac.uk>
6915
6916 * c-common.c (init_function_format_info): Add C99 format functions
6917 in C99 mode.
6918
6919 * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
6920 void' or 'register void' as being the special case of 'void' alone
6921 in a parameter list.
6922
6923 * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
6924 discarding qualifiers into a plain warning.
6925
6926 2000-07-31 Kazu Hirata <kazu@hxi.com>
6927
6928 * combine.c: Fix formatting.
6929
6930 * h8300.md: Fix formatting.
6931
6932 * local-alloc.c: Fix formatting.
6933
6934 * h8300.c (get_shift_alg): Remove the variable alg.
6935 (emit_a_shift): Rearrange code to improve readability.
6936
6937 * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
6938
6939 * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
6940 HImode on all architectures and a combination of HImode and SImode
6941 on H8/300H and H8/S.
6942
6943 * h8300.c (split_adds_subs): Rearrange code for conciseness.
6944
6945 Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka <jh@suse.cz>
6946
6947 * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
6948 in my last checkin.
6949
6950 Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
6951
6952 * recog.c (extract_insn): Set operand_mode according to
6953 operand if match_operand is VOIDmode.
6954
6955 Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
6956
6957 * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
6958
6959 2000-07-31 Geoff Keating <geoffk@cygnus.com>
6960
6961 * c-parse.in (extdefs): Call ggc_collect between external
6962 definitions.
6963
6964 2000-07-30 Michael Hayes <mhayes@cygnus.com>
6965 Richard Henderson <rth@cygnus.com>
6966
6967 * Makefile.in (OBJS): Add doloop.o.
6968 * doloop.c: New file.
6969
6970 * final.c (insn_current_reference_address): Return 0 before final.
6971 * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
6972 * jump.c (any_uncondjump_p): Likewise.
6973 * loop.c (indirect_jump_in_function): Make static.
6974 (strength_reduce): Call doloop_optimize.
6975 (insert_bct, instrument_loop_bct): Remove.
6976 * loop.h (doloop_optimize): Prototype.
6977 * recog.c (split_all_insns): Split all INSN_P.
6978 * toplev.c (flag_branch_on_count_reg): Default on.
6979
6980 * config/c4x/c4x.c (c4x_optimization_options): Don't set
6981 flag_branch_on_count_reg.
6982 * config/i386/i386.c (override_options): Likewise.
6983 * config/rs6000/rs6000.c (optimization_options): Likewise.
6984
6985 * config/i386/i386.md (decrement_and_branch_on_count): Remove.
6986 (doloop_end): New.
6987 (dbra_ge): Remove, as well as all it's splitters.
6988
6989 * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
6990 (doloop_end): New.
6991
6992 * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
6993 (ia64_register_move_cost): Declare.
6994 * config/ia64/ia64.c (ar_lc_reg_operand): New.
6995 (struct ia64_frame_info): Add ar_size.
6996 (ia64_compute_frame_size): Set it.
6997 (save_restore_insns): Save and restore ar.lc.
6998 (ia64_register_move_cost): New, moved from header file. Handle
6999 application registers.
7000 (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers.
7001 (emit_insn_group_barriers): Special case doloop_end_internal.
7002 (ia64_epilogue_uses): Mark ar.lc live at end.
7003 * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
7004 (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
7005 (FIRST_PSEUDO_REGISTER): Make room.
7006 (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
7007 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
7008 (REG_ALLOC_ORDER): Update.
7009 (HARD_REGNO_MODE_OK): Update.
7010 (REGISTER_NAMES): Update.
7011 (enum reg_class): Add AR_M_REGS and AR_I_REGS.
7012 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
7013 (REGNO_REG_CLASS): Update.
7014 (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
7015 (REGISTER_MOVE_COST): Move out of line.
7016 (PREDICATE_CODES): Update.
7017 * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
7018 (addsi3_plus1_alt, adddi3_plus1_alt): New.
7019 (shladd_elim splitter): Allow constants in the predicate.
7020 (doloop_end, doloop_end_internal): New.
7021
7022 2000-07-30 Richard Henderson <rth@cygnus.com>
7023
7024 * genattrtab.c (struct insn_def): Add lineno member.
7025 (struct insn_ent): Likewise.
7026 (struct attr_desc): Likewise.
7027 (struct delay_desc): Likewise.
7028 (struct function_unit_op): Likewise.
7029 (struct function_unit): Likewise.
7030 (check_attr_value): Use message_with_line.
7031 (check_defs): Likewise.
7032 (expand_units): Likewise.
7033 (check_attr_test): Take a lineno argument.
7034 (gen_attr): Likewise.
7035 (gen_insn): Likewise.
7036 (gen_delay): Likewise.
7037 (gen_unit): Likewise.
7038 (main): Give it to them.
7039 (convert_set_attr_alternative): Take an insn_def argument
7040 instead of num_alt and insn_index.
7041 (convert_set_attr): Likewise.
7042 (write_test_expr): Protect INSN_ADDRESSES load
7043 with INSN_ADDRESSES_SET_P.
7044
7045 2000-07-30 Richard Henderson <rth@cygnus.com>
7046
7047 * flow.c (init_propagate_block_info): Use pc_set.
7048
7049 Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka <jh@suse.cz>
7050
7051 * i386.md (*lea_general_[123]) New insns and splits.
7052 (addsi3 to lea splitter): Handle other modes too.
7053 (shlsi3 to lea splitter): Likewise.
7054 (addhi_1_lea, shlhi_1_lea): New patterns.
7055 (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
7056
7057 Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
7058
7059 * recog.c (general_operand, nonimmediate_operand): Accept
7060 any mode for VOIDmode CONSTANT_P operands.
7061
7062 Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
7063
7064 * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
7065 instead of replace_rtx.
7066 * recog.c (validate_replace_rtx_subexp): New function.
7067 * recog.h (validate_replace_rtx_subexp): Declare.
7068
7069 Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
7070
7071 * combine.c (simplify_set, make_extraction, make_compound_operation
7072 make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
7073 as force_to_mode argument.
7074
7075 Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka <jh@suse.cz>
7076
7077 * combine.c (if_then_else_cond): Be sure that mode fits in
7078 HOST_WIDE_INT.
7079
7080 Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka <jh@suse.cz>
7081
7082 * combine.c (record_promoted_value): Allow bitsize of mode
7083 to be equivalent to HOST_BITS_PER_WISE_INT.
7084
7085 Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka <jh@suse.cz>
7086
7087 * function.c (assign_stack_local_1, assign_stack_temp_for_type):
7088 Do not call gen_mode_alignment when mode is BLKmode.
7089
7090 Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka <jh@suse.cz>
7091
7092 * loop.c (express_from_1): Fix call of simplify_gen_binary.
7093
7094 Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka <jh@suse.cz>
7095
7096 * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
7097 VOIDmode implies both operands to be VOIDmode.
7098 (simplify_ternary_operation): Compute properly the mode of comparison.
7099 * combine.c (combine_simplify_rtx): Likewise.
7100
7101 2000-07-25 Michael Hayes <mph@paradise.net.nz>
7102
7103 * basic-block.h (struct loops): New field rc_order.
7104 * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
7105 (flow_loops_free): Free rc_order.
7106 (flow_depth_first_order_compute): New parameter rc_order.
7107 (flow_loops_find): Allocate rc_order and swap usage with
7108 dfs_order.
7109
7110 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7111 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7112
7113 * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
7114 (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
7115 (nodb_call, return_from_epilogue): Likewise.
7116 (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
7117 * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
7118 * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
7119 (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
7120 (c4x_valid_type_attribute_p): Likewise.
7121 * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
7122 (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
7123
7124 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7125
7126 * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
7127 and loadhi_big_constant if applicable.
7128 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
7129 and add new splitter.s
7130
7131 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7132
7133 * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
7134
7135 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7136
7137 * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
7138
7139 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7140
7141 * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
7142
7143 2000-07-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
7144
7145 * config/c4x/libgcc.S (divqf3): Improve accuracy.
7146
7147 2000-07-27 Mark Mitchell <mark@codesourcery.com>
7148
7149 Put phi nodes after NOTE_INSN_BASIC_BLOCK.
7150 * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
7151 * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
7152 (get_prev_bb_note): Likewise.
7153 (remove_scope_notes): Likewise.
7154 * flow.c (commit_one_edge_insertion): Likewise.
7155 (merge_blocks_nomove): Likewise.
7156 (verify_flow_info): Likewise.
7157 * gcse.c (insert_insn_end_bb): Likewise.
7158 * reg-stack.c (emit_swap_insn): Likewise.
7159 * ssa.c (first_insn_after_basic_block_note): New function.
7160 (insert_phi_node): Use it.
7161 (rename_block): Likewise.
7162 (eliminate_phi): Likewise.
7163 (make_regs_equivalent_over_bad_edges): Likewise.
7164 (make_equivalent_phi_alternatives_equivalent): Likewise.
7165 (for_each_successor_phi): Likewise.
7166 (convert_from_ssa): Modify phi-node deletion algorithm.
7167
7168 2000-07-29 Andreas Jaeger <aj@suse.de>
7169
7170 * configure.in (mips*-*-linux*): Use mips*el to check for little
7171 endian MIPS, add tmake_file.
7172
7173 * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
7174 (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
7175 Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
7176
7177 2000-07-28 Richard Henderson <rth@cygnus.com>
7178
7179 * config/ia64/ia64.c (ia64_print_operand): Fix typos.
7180 Sign extend mode size before negating.
7181
7182 2000-07-28 Richard Henderson <rth@cygnus.com>
7183
7184 * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
7185
7186 2000-07-28 Bernd Schmidt <bernds@cygnus.co.uk>
7187
7188 * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
7189 (cse_insn): Likewise.
7190 (addr_affects_sp_p): Likewise.
7191 * expr.c (move_by_pieces): Likewise.
7192 (clear_by_pieces): Likewise.
7193 * gcse.c (oprs_unchanged_p): Likewise.
7194 * haifa-sched.c (sched_analyze_2): Likewise.
7195 * recog.c (offsettable_address_p): Likewise.
7196 * regclass.c (record_address_regs): Likewise.
7197 * reload.c (find_reusable_reload): Likewise.
7198 (push_reload): Likewise.
7199 (operands_match_p): Likewise.
7200 (decompose): Likewise.
7201 (find_reloads_address_1): Likewise.
7202 (find_inc_amount): Likewise.
7203 * reload1.c (elimination_effects): Likewise.
7204 * resource.c (mark_set_resources): Likewise.
7205 * flow.c (attempt_auto_inc): New function; mostly broken out
7206 of find_auto_inc.
7207 (find_auto_inc): Split into two functions and enhanced to
7208 generate POST_MODIFY.
7209 * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
7210 * rtl.h (count_all_occurrences): Declare.
7211 (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
7212 defined.
7213 * rtlanal.c (count_all_occurrences): New function.
7214 * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
7215 HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
7216
7217 * config/ia64/ia64-protos.h (destination_operand): Declare.
7218 * config/ia64/ia64.c (destination_operand): New function.
7219 (ia64_print_operand): Handle POST_MODIFY.
7220 (rtx_needs_barrier): Likewise.
7221 * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
7222 (HAVE_POST_MODIFY_REG): Define to 1.
7223 (MAX_REGS_PER_ADDRESS): Change to 2.
7224 (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
7225 (LEGITIMATE_ADDRESS_REG): New helper macro.
7226 (LEGITIMATE_ADDRESS_DISP): Likewise.
7227 (PREDICATE_CODES): Add entry for destination_operand.
7228 * config/ia64/ia64.md (all mov patterns): Use destination_operand
7229 predicate for operand 0.
7230
7231 2000-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7232
7233 * dwarf2out.c: Indent #error directive.
7234
7235 * gbl-ctors.h: Fix typo in comment.
7236 (__do_global_ctors): Prototype.
7237
7238 * gcse.c (record_one_set, pre_delete): Remove unused variables.
7239
7240 * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
7241 (print_operand): Initialize variable `t'.
7242
7243 2000-07-27 Aldy Hernandez <aldyh@redhat.com>
7244
7245 * config/arm/arm.md ("call_value"): removed constraints.
7246 Constraints are ignored in expanders.
7247 (*call_value_reg): split =rf into various constraints.
7248 (*call_value_mem): same
7249 (*call_value_symbol): same
7250 (*sibcall_value_insn): same
7251
7252 2000-07-28 Philipp Thomas <pthomas@suse.de>
7253
7254 * install.texi (--enable-nls): Change the description of the NLS
7255 related configure options to match the current state.
7256 (--with-included-gettext): Likewise.
7257 (--enable-maintainer-mode): New description added.
7258 * extend.texi (-fstrict-prototype): Add missing '.'.
7259
7260 2000-07-27 Jim Wilson <wilson@cygnus.com>
7261
7262 * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
7263 DECL_INITIAL (decl) == NULL_TREE.
7264
7265 2000-07-27 Alexandre Oliva <aoliva@redhat.com>
7266
7267 * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies
7268 on insn-attr.h with it.
7269 * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
7270 * insn-addr.h: New header.
7271 (insn_addresses_): Renamed from insn_addresses.
7272 (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
7273 INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
7274 INSN_ADDRESSES_NEW): New macros.
7275 * genattrtab.c (write_test_expr): Use new macros.
7276 * final.c (insn_addresses, init_insn_lengths): Likewise.
7277 (align_fuzz, shorten_branches): Likewise.
7278 (final): Likewise. Do not reject new insns if their addresses
7279 have been added to INSN_ADDRESSES.
7280 * config/arm/arm.c, config/avr/avr.c: Use new macros.
7281 * config/h8300/h8300.c, config/i370/i370.c: Likewise.
7282 * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
7283 * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
7284 * config/sh/sh.c: Likewise.
7285 (output_branchy_insn): Use INSN_ADDRESSES_NEW.
7286
7287 * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
7288
7289 2000-07-27 Andrew Cagney <cagney@b1.cygnus.com>
7290
7291 * gcc.c (struct prefix_list): Add member priority.
7292 (enum path_prefix_priority): Declare.
7293 (add_prefix): Replace ``first'' with ``priority''. Append new
7294 entry but keep list in priority order.
7295 (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or
7296 PREFIX_PRIORITY_LAST to add_prefix.
7297 (process_command): Move include kludge - foo/stageN - to before
7298 foo/include.
7299
7300 2000-07-27 Jason Merrill <jason@redhat.com>
7301
7302 * dwarf2out.c (gen_typedef_die): Abort if we get identical
7303 TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
7304
7305 2000-07-27 RodneyBrown <RodneyBrown@pmsc.com>
7306
7307 * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
7308 * tree.h (get_alias_set, lang_get_alias_set): Prototype.
7309
7310 2000-07-27 Joseph S. Myers <jsm28@cam.ac.uk>
7311
7312 * c-decl.c (finish_function): Don't treat 'main' specially unless
7313 flag_hosted. In C99 mode, return 0 from 'main' unless
7314 DEFAULT_MAIN_RETURN is otherwise defined.
7315
7316 * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
7317 parameters defaulting to int in an old-style function definition.
7318
7319 2000-07-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7320
7321 * c-parse.in (string): For -Wtraditional, warn about string
7322 concatenation only once per line.
7323
7324 Thu Jul 27 09:25:17 2000 Akiko Matsushita <matusita@sra.co.jp>
7325
7326 * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
7327 for HI-UX/WE2 systems.
7328
7329 2000-07-24 Bruce Korb <bkorb@gnu.org>
7330
7331 * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
7332 defining the __xxx_TYPE__ macros.
7333 * fixincl/fixincl.tpl(gnu_type_map): now obsolete
7334 * fixincl/fixlib.h: don't need to include "tm.h" anymore
7335 * fixincl/inclhack.def(type_map): now obsolete
7336
7337 Thu Jul 27 11:54:17 2000 Andrew Cagney <cagney@b1.cygnus.com>
7338
7339 * cpp.texi: Append a trailing full-stop to xrefs where needed.
7340
7341 2000-07-26 Dave Pitts <dpitts@cozx.com>
7342
7343 * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
7344 routine constants.
7345 (mvs_hash_alias): New function.
7346 (mvs_add_alias): Change argument spacing.
7347 (mvs_need_alias): Change aliasing criteria. Added documentation.
7348 (mvs_get_alias): Change to use hashed name. The hashed name prevents
7349 CSECT name collisions.
7350 (mvs_check_alias): Likewise.
7351 (handle_pragma): Change documentation.
7352 * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
7353 mode from SImode to DImode.
7354 (iorhi3): Changed LTORG size for insn.
7355
7356 Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
7357
7358 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
7359 mem if the address is a mode_dependent_address_p.
7360
7361 2000-07-26 Kazu Hirata <kazu@hxi.com>
7362
7363 * h8300.c (print_operand): Print ":8" when the 'R' operand is
7364 suitable for 8-bit absolute.
7365 * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
7366 (OK_FOR_U): Add a case for the 8-bit constant address on the
7367 H8/300H.
7368
7369 Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson <hp@axis.com>
7370
7371 * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
7372 && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
7373 ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
7374 lack of implemented alignment.
7375
7376 2000-07-26 Geoffrey Keating <geoffk@cygnus.com>
7377
7378 * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
7379 cross-compiling between 64-bit and 32-bit machines.
7380
7381 2000-07-27 Richard Henderson <rth@cygnus.com>
7382
7383 * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
7384 (movhicc_astep, movhi_internal_astep): New.
7385 (movsicc_astep, movsi_internal_astep): New.
7386 (movdicc_astep, movdi_internal_astep): New.
7387 (movsfcc_astep, movsf_internal_astep): New.
7388 (movdfcc_astep, movdf_internal_astep): New.
7389 (movxfcc_astep, movxf_internal_astep): New.
7390 (cmovdi_internal_astep, cmovsi_internal_astep): New.
7391 Unify the cmov[ds]i splitters.
7392
7393 2000-07-27 Rodney Brown <RodneyBrown@pmsc.com>
7394
7395 * real.c (asctoeg): Rename `error' label to unexpected_char_error
7396
7397 2000-07-26 Nick Clifton <nickc@cygnus.com>
7398
7399 * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
7400 __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h
7401
7402 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
7403 well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
7404
7405 2000-07-26 Alexandre Oliva <aoliva@redhat.com>
7406
7407 * c-decl.c (finish_enum): Convert enumerations that fit in an
7408 `int' to `int'.
7409 (build_enumerator): In pedantic mode, cast to `int' those that
7410 don't.
7411
7412 2000-07-25 Rodney Brown <RodneyBrown@pmsc.com>
7413
7414 * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
7415
7416 Tue Jul 25 23:08:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
7417
7418 * sh.md (cmpgtdi_t): Must be split.
7419 (cmpgtdi_t+1): New splitter.
7420
7421 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
7422
7423 * cpplib.c (_cpp_check_directive): Issue -Wtraditional
7424 warnings for indented directives even if we are skipping.
7425
7426 2000-07-25 Nathan Sidwell <nathan@codesourcery.com>
7427
7428 * invoke.texi (strict-prototypes): Remove.
7429 * extend.texi (Deprecated Features): Add strict-prototypes.
7430 (Backwards Compatibility): New node.
7431
7432 2000-07-25 Jakub Jelinek <jakub@redhat.com>
7433
7434 * config/i386/i386.md (andsi_1+1): Allow HImode.
7435 (andsi_1+2): Require q_regs_operand.
7436
7437 2000-07-25 Jakub Jelinek <jakub@redhat.com>
7438
7439 * config/i386/i386.md (call_pop): Check operands[0],
7440 not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
7441 (call): Likewise.
7442 (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
7443 (call_value): Likewise.
7444
7445 2000-07-25 Zack Weinberg <zack@wolery.cumb.org>
7446
7447 * toplev.c (pipe_closed): Delete.
7448 (crash_signal): New. Generate ICE for a fatal signal.
7449 (float_signal): Call crash_signal outside a float-handler
7450 block, not abort.
7451 (main): Install crash_signal as handler for core-dumping signals.
7452
7453 2000-07-25 David Edelsohn <edelsohn@gnu.org>
7454
7455 * rs6000.c (print_operand, case 'T'): New case.
7456
7457 * rs6000.md (call_indirect_aix32): Convert to expander of
7458 scheduled instructions.
7459 (call_indirect_aix64): Likewise.
7460 (call_value_indirect_aix{32,64}): Likewise.
7461 (call, call_value): Invoke expanders for AIX. Fall through to
7462 matchers for SysV.
7463 (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
7464 (call_value_indirect_nonlocal_aix{32,64}): New patterns.
7465 (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1
7466 only "g" constraint.
7467 (call_nonlocal_aix64): Likewise.
7468 (call_value_nonlocal_aix{32,64}): Likewise.
7469 (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
7470 operands.
7471 (call_value_nonlocal_sysv): New pattern.
7472 (indirect_jump{si,di}): Use new 'T' modifier.
7473 (tablejump{si,di} matchers): Likewise.
7474 (return_internal_{si,di}): Likewise.
7475 (return_eh_{si,di}): Likewise.
7476
7477 2000-07-24 Richard Henderson <rth@cygnus.com>
7478
7479 * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
7480 * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
7481 * config/ia64/ia64.md (movdi_internal): Use it.
7482
7483 2000-07-24 Zack Weinberg <zack@wolery.cumb.org>
7484
7485 * cppexp.c: Warn about unary + if -Wtraditional.
7486 * cpplex.c (lex_line): Always set BOL on the first token of a line.
7487
7488 2000-07-24 Michael Meissner <meissner@redhat.com>
7489
7490 * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
7491 unsupported macro.
7492
7493 2000-07-24 Nick Clifton <nickc@cygnus.com>
7494
7495 * config/arm/arm.c (emit_multi_reg_push): Generate a
7496 REG_FRAME_RELEATED_NOTE that is compatable with the code in
7497 dwarf2out_debug_frame_expr.
7498
7499 2000-07-24 Jason Merrill <jason@redhat.com>
7500
7501 * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
7502 UNALIGNED_INT_ASM_OP.
7503 (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
7504 a location expression.
7505 (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't
7506 assume indirect access if we're saving the CFA address exactly.
7507
7508 * Makefile.in (bootstrap): Move -BstageN/ to the end.
7509
7510 2000-07-24 Jakub Jelinek <jakub@redhat.com>
7511
7512 * tradcpp.c (main): Update max_include_len for cpp_include_defaults
7513 as well.
7514
7515 2000-07-24 Michael Meissner <meissner@redhat.com>
7516
7517 * invoke.texi (D30V Options): Add d30v options.
7518
7519 Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com)
7520
7521 * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
7522 needed by our gcse pass anymore.
7523 (free_pre_mem): Corresponding changes.
7524 (compute_pre_data): Do not call compute_transpout anymore.
7525
7526 * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
7527 (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
7528 changes.
7529
7530 * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
7531 (compute_pre_data): Do it here instead.
7532
7533 * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
7534 'temp_bitmap'.
7535 (pre_delete): Corresponding changes.
7536
7537 2000-07-23 Mark Mitchell <mark@codesourcery.com>
7538
7539 * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
7540 to figure out whether or not a variable has already been emitted.
7541
7542 Sun Jul 23 14:49:12 2000 Jason Eckhardt <jle@cygnus.com>
7543
7544 * config/i860/i860.md (untyped_call expander): Use GEN_CALL
7545 instead of gen_call.
7546
7547 Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk)
7548
7549 * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
7550
7551 2000-07-23 Kazu Hirata <kazu@hxi.com>
7552
7553 * h8300.c: Fix formatting.
7554
7555 2000-07-23 Joseph S. Myers <jsm28@cam.ac.uk>
7556
7557 * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
7558 for `long' switch expression into a plain warning.
7559
7560 * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
7561 (yylex): Don't pedwarn for "inline" in C99 mode.
7562
7563 * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
7564 with %p.
7565 * ggc-page.c (debug_print_page_list, alloc_page, free_page,
7566 ggc_alloc): Likewise.
7567 * bb-reorder.c (dump_scope_forest_1): Likewise.
7568
7569 2000-07-22 Aldy Hernandez <aldyh@redhat.com>
7570
7571 * reload.c (find_reloads_toplev): Add new parameter
7572 "address_reloaded".
7573 (find_reloads): Add new parameter to find_reloads_toplev calls.
7574
7575 2000-07-22 Jeffrey Oldham <oldham@codesourcery.com>
7576
7577 * collect2.c (main): Typo fixed.
7578 * diagnostic.c: Typo fixed.
7579 * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
7580 * eh-common.h: Typo fixed.
7581 * emit-rtl.c (start_sequence): Typo fixed.
7582 * flow.c (find_label_refs): Typo fixed.
7583 (calculate_global_regs_live): Typo fixed.
7584 (mark_regno_cond_dead): Typo fixed.
7585 (create_edge_list): Typos fixed.
7586 (verify_edge_list): Typo fixed.
7587 * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
7588 * loop.c (strength_reduce): Typo in function name fixed.
7589 * rtl.h: Added comments. Typo in function name fixed.
7590 * rtlanal.c: Typo in function name fixed.
7591 (insn_dependant_p): Rename to ...
7592 (insn_dependent_p): ... this.
7593 (computed_jumo_p): Typo fixed.
7594
7595 2000-07-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7596
7597 * system.h (__FUNCTION__): Wrap definition in #ifndef.
7598
7599 2000-07-21 David Edelsohn <edelsohn@gnu.org>
7600
7601 * rs6000.h (SIZE_TYPE): Define.
7602
7603 2000-07-21 Mark Mitchell <mark@codesourcery.com>
7604
7605 * ssa.c (rename_insn_1): Don't rename registers that are
7606 CLOBBERed.
7607
7608 2000-07-21 Zack Weinberg <zack@wolery.cumb.org>
7609
7610 * diagnostic.c (trim_filename, fancy_abort): Moved here from
7611 rtl.c.
7612 (fatal_function, set_fatal_function): Removed.
7613 (fatal): Don't prepare for or call the fatal_function.
7614 (diagnostic_lock, error_recursion): New.
7615 (diagnostic_for_decl, report_diagnostic): Guard against
7616 re-entering the error reporting routines.
7617 (fancy_abort): Assume function is not NULL.
7618
7619 * errors.c (fancy_abort): New. Assume function is not NULL.
7620 * tradcpp.c (fancy_abort): Assume function is not NULL.
7621
7622 * system.h: Provide default definition of __FUNCTION__.
7623 * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
7624 Always use __FUNCTION__ in definition of abort.
7625 * tree.h: Likewise.
7626 * varray.h: Likewise.
7627 * toplev.h: Likewise. Don't prototype set_fatal_function.
7628
7629 2000-07-20 Geoff Keating <geoffk@cygnus.com>
7630
7631 * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
7632 in 64-bit mode.
7633 * glimits.h: Don't do #if defined for ARCH_PPC.
7634
7635 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
7636 constants of size no larger than a pointer should go in the TOC.
7637 Add 'MODE' parameter.
7638 (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
7639 ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
7640 (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
7641 * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
7642 * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
7643 * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
7644 (rs6000_legitimize_address): Likewise.
7645 (rs6000_emit_move): Likewise.
7646 (rs6000_select_rtx_section): Likewise.
7647 (output_toc): Deal properly with outputting small constants like
7648 HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
7649 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
7650 MODE parameter. Put small constants in the TOC.
7651
7652 * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
7653 easy in SImode.
7654 (rs6000_emit_move): When reload calls us with an illegitimate
7655 address, exit early. Move the change_address calls to one place
7656 at the end of the routine. Merge the SImode and DImode expanders.
7657 When called by reload to put an integer into a FP register, force
7658 it to memory.
7659
7660 * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
7661 field.
7662 (rs6000_hash_constant): Hash mode too.
7663 (toc_hash_function): Allow for key_mode.
7664 (toc_hash_eq): Structures are different if key_mode differs.
7665 (output_toc): Add 'mode' parameter. Save key_mode.
7666 * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
7667 Pass 'mode' parameter.
7668 * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
7669
7670 * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
7671 for vtable references.
7672
7673 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
7674 choice, don't put integer values in FP regs.
7675
7676 Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com)
7677
7678 * flow.c (verify_flow_info): Revamp code to verify that the
7679 head and end of each basic block are in the insn chain.
7680
7681 Thu Jul 20 18:02:35 2000 Michael Matz <matzmich@cs.tu-berlin.de>
7682
7683 * gcse.c (record_one_set): Prepend instead of append onto
7684 reg_set_table, making it O(n) instead O(n^2).
7685 * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
7686 Use a queue instead of a stack as worklist.
7687
7688 2000-07-20 Kazu Hirata <kazu@hxi.com>
7689
7690 * h8300.c (two_insn_adds_subs_operand): Fix a typo.
7691 * h8300.h (OK_FOR_T): New.
7692 (EXTRA_CONSTRAINT): Support OK_FOR_T.
7693 * h8300.md: Use inc/dec.[wl] for increment/decrement
7694 by 1 and 2 in HI and SI modes.
7695
7696 2000-07-20 Jim Wilson <wilson@cygnus.com>
7697
7698 * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
7699 larger than 14 bits.
7700
7701 2000-07-20 Zack Weinberg <zack@wolery.cumb.org>
7702
7703 * cppmacro.c (CAN_PASTE_AFTER): New macro.
7704 (count_params): Don't set GNU_REST_ARGS on anything.
7705 (save_expansion): Set PASTE_LEFT only on tokens for which
7706 CAN_PASTE_AFTER is true, or which are named operators.
7707
7708 * cpplex.c (parse_args): Distinguish between a rest argument
7709 given one empty argument, and a rest argument given zero arguments.
7710 (maybe_paste_with_next): Look for VOID_REST tag, and trigger
7711 deletion of previous token based on that.
7712 (get_raw_token): Flatten some control structure.
7713
7714 * cpplib.h (CPP_LAST_EQ): Correct.
7715 (VOID_REST): New token flag.
7716 (GNU_REST_ARGS): Delete.
7717
7718 * tradcpp.c (main): Don't munge -D options.
7719 (make_definition): Bring -D handling in line with cpplib.
7720 (do_define): Strip all leading whitespace from macro definitions.
7721
7722 2000-07-20 David Billinghurst <David.Billinghurst@riotinto.com.au>
7723
7724 * Makefile.in (tradcpp): Depend on intl.o and version.o.
7725
7726 2000-07-20 Bruce Korb <bkorb@gnu.org>
7727
7728 * fixincl/check.tpl: strip the platform specific types before testing
7729 * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
7730 * fixincl/fixincl.tpl: use platform specific types
7731 * fixincl/fixlib.h: include the platform specific types
7732 * fixincl/inclhack.def(gnu_types): don't supply the types
7733 * fixincl/fixincl.x: regen
7734
7735 2000-07-19 Jim Wilson <wilson@cygnus.com>
7736
7737 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
7738 GR_REGS.
7739
7740 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
7741
7742 * tradcpp.c (rescan): Do not recognize directives when the #
7743 is indented.
7744
7745 2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
7746
7747 Implement C++ named operators.
7748
7749 * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
7750 of operators allowed in #if and having an _EQ variant. Add
7751 CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
7752 (cpp_token flags): Add NAMED_OP.
7753 (enum node_type): Add T_OPERATOR.
7754 (struct cpp_hashnode): Add code slot to value union.
7755 * cpphash.h (spec_nodes): Remove n_defined.
7756
7757 * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
7758 (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
7759 (is_macro_disabled): Tweak error messages.
7760
7761 * cpplib.c (get_define_node): Disallow all named operators as
7762 macro names. Tweak error messages.
7763 (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
7764
7765 * cppinit.c (builtin_array): Add entries for the named operators.
7766 * cppexp.c (lex): Check for CPP_DEFINED token.
7767 (priority table): Add entries for CPP_MIN and CPP_MAX.
7768 (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
7769
7770 2000-07-19 Bernd Schmidt <bernds@cygnus.co.uk>
7771
7772 * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
7773 larger than the array of cuids.
7774 (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
7775 cuids.
7776
7777 2000-07-19 Bruce Korb <bkorb@gnu.org>
7778
7779 * fixinc/fixincl.c: Convert to using a table of environment variables
7780 and activate the auto-edit marker on the fixed output files.
7781 * fixinc/fixlib.h: Define the environment table
7782 * fixinc/fixincl.sh: export the ${INPUT} dir
7783 * fixinc/check.tpl: likewise
7784
7785 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
7786
7787 * gcc.c (.h spec): Fix typo.
7788
7789 Wed Jul 19 01:22:15 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
7790
7791 * Makefile.in: Fix tradcif.c path.
7792
7793 2000-07-18 Zack Weinberg <zack@wolery.cumb.org>
7794
7795 * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
7796 macros, not five.
7797
7798 * cpphash.h (TOKEN_NAME): New macro.
7799 (_cpp_spell_operator): Deleted.
7800 (token_spellings): Now _cpp_token_spellings.
7801
7802 * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
7803 * cpplex.c: Use OP and TK macros when expanding the
7804 TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens,
7805 store the stringification of the enumeration name (CPP_CHAR,
7806 etc.) in the name slot of token_spellings.
7807 Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
7808 token_spellings directly.
7809 * cpplib.c: Use TOKEN_SPELL.
7810
7811 * cpplex.c (_cpp_push_token): If the token being pushed back
7812 is the previous token in this context, just subtract one from
7813 context->posn.
7814 * cppmacro.c (save_expansion): Clear aux field when storing a
7815 placemarker.
7816
7817 2000-07-18 Jakub Jelinek <jakub@redhat.com>
7818
7819 * cpplex.c (cpp_scan_buffer): Output line command even at the stop
7820 buffer, provided it is not NULL.
7821
7822 2000-07-18 Alexandre Oliva <aoliva@redhat.com>
7823
7824 * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
7825 case of invalid volatile re-declaration.
7826
7827 2000-07-18 Jakub Jelinek <jakub@redhat.com>
7828
7829 * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
7830 (expand_call): Adjust caller.
7831
7832 2000-07-17 Gabriel Dos Reis <gdr@codesourcery.com>
7833
7834 * diagnostic.h (report_diagnostic): Change prototype.
7835
7836 * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
7837 diagnostic_for_decl): Change prototype.
7838 (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
7839 error, warning, error_with_file_and_line,
7840 warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
7841 Adjust call to report_diagnostic, diagnostic_for_decl.
7842 (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
7843 (output_verbatim, verbatim): Adjust call to output_do_verbatim.
7844
7845 * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
7846 varaible argument list.
7847
7848 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
7849
7850 * cpphash.c: Don't include hashtab.h. Most macro-handling code
7851 moved to cppmacro.c.
7852 (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
7853 dump_hash_helper): Delete.
7854 (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
7855 cpp_forall_identifiers): New. Implement specialized version of
7856 Vlad's expandable hash table.
7857 (cpp_lookup): Use new functions.
7858 (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
7859 implementation.
7860 * cppmacro.c: New file.
7861 * cppinit.c (dump_macros_helper): New.
7862 (cpp_finish): Iterate over the identifier table directly.
7863 * cpplex.c (parse_name): Calculate the hash of the identifier
7864 while we scan it. Use _cpp_lookup_with_hash when we can.
7865
7866 * cpphash.h: Update prototypes.
7867 (xcnewvec, HASHSTEP): New helper macros.
7868 * cpplib.h: Update prototypes.
7869 * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
7870 (cppmacro.o): New rule.
7871 (cpphash.o): Update deps.
7872
7873 * cppmain.c: Do not set pfile->printer if no_output is on.
7874
7875 2000-07-15 Neil Booth <neilb@earthling.net>
7876
7877 * cpplib.c: Change all directive-handler functions to return
7878 void, not int.
7879 * cpphash.h: Update typedefs.
7880
7881 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
7882
7883 * configure: Regenerate.
7884
7885 * extend.texi (Extended Asm): Mention that a memory clobber
7886 does not count as a side-effect.
7887
7888 * unroll.c (copy_loop_body): Fix one instance of using host
7889 arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
7890 cross-compile.
7891
7892 * tlink.c (scan_linker_output): Tweak for output of AIX ld.
7893
7894 2000-07-17 Richard Henderson <rth@cygnus.com>
7895
7896 * config/ia64/ia64.md (movdi): Split out load address code.
7897 New post-reload splitter for symbolic operands.
7898 (movdi_internal): Abort if we didn't split symbolic operands
7899 when we should have.
7900 * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
7901 (ia64_reorg): Split insns when not optimizing.
7902 * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
7903
7904 Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka <jh@suse.cz>
7905
7906 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
7907 instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
7908
7909 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
7910
7911 * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
7912
7913 2000-07-17 Jason Merrill <jason@redhat.com>
7914
7915 * Makefile.in (clean): Remove libgcc directory.
7916
7917 * configure.in (-Wno-long-long check): Use higher-level macros.
7918
7919 2000-07-17 Zack Weinberg <zack@wolery.cumb.org>
7920
7921 * simplify-rtx.c (simplify_binary_operation): Recognize
7922 (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
7923 (simplify_ternary_operation): Do not examine MODE_BITSIZE of
7924 a CONST_INT, it will always be zero.
7925
7926 2000-07-17 Chandrakala Chavva <cchavva@cygnus.com>
7927
7928 * loop.c (check_dbra_loop) : Return if more than one condition is
7929 present to control the loop.
7930
7931 Mon Jul 17 08:26:35 2000 Clinton Popetz <cpopetz@cygnus.com>
7932
7933 * mips.c (mips_expand_prologue): Don't calculate the last argument
7934 register unless we need it. When we are calculating this, make
7935 sure FUNCTION_ARG is giving us a REG.
7936
7937 2000-07-17 Stephane Carrez <Stephane.Carrez@worldnet.fr>
7938
7939 * flow.c (libcall_dead_p): Use single_set to verify the insn
7940 has only one set and get for analysis.
7941 (propagate_one_insn): Don't pass the PATTERN of the insn.
7942
7943 2000-07-17 Mark Klein <mklein@dis.com>
7944
7945 * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
7946
7947 2000-07-17 J. David Anglin <dave@hiauly1.hia.nrc.ca>
7948
7949 * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
7950 * configure.in (TARGET_GETGROUPS_T): Evaluate.
7951 * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
7952 of second argument of getgroups.
7953 * configure, config.in: Rebuilt.
7954
7955 2000-07-17 Geoffrey Keating <geoffk@cygnus.com>
7956
7957 * simplify-rtx.c (simplify_relational_operation): Two signed
7958 values with equal high words are less/greater than each other if
7959 their low words are less/greater when considered as unsigned.
7960
7961 Mon Jul 17 02:37:06 2000 Marc Espie <espie@openbsd.org>
7962
7963 * configure.in (vax-*-openbsd): Change to new style configuration,
7964 add collect2/float_format information.
7965 * configure: Rebuilt.
7966 * config/vax/openbsd1.h: New.
7967 * config/vax/openbsd.h: New.
7968 * config/vax/t-openbsd: New.
7969
7970 2000-07-17 Chip Salzenberg <chip@valinux.com>
7971
7972 * c-common.c (shorten_compare): Quiet warnings about unsigned
7973 comparisons with zero when they occur in a system header.
7974
7975 2000-07-17 Joseph S. Myers <jsm28@cam.ac.uk>
7976
7977 * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
7978 update to describe current practice.
7979
7980 * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
7981
7982 * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
7983 references to C9X. Change references to -fstd and -flang-isoc9x
7984 to refer to -std.
7985
7986 * c-common.c (scan_char_table): Allow "z" length modifiers on
7987 diouxXn formats.
7988 (check_format_info): Use TYPE_DOMAIN on the type matched against
7989 for "z" formats, to retrieve the language size_t rather than the
7990 internal one.
7991
7992 * c-common.c (check_format_info): Do not make a pedantic objection
7993 to the 'L' length modifier if used with a floating point type
7994 character.
7995
7996 * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
7997 constants in C99 mode.
7998
7999 2000-07-17 Kazu Hirata <kazu@hxi.com>
8000
8001 * h8300.md: Fix the format of mac.
8002 (movsi_h8300hs): Output a tab after stmac instead of a space.
8003
8004 * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
8005 profitable adds/subs sequences.
8006
8007 * fold-const.c: Fix comment typos.
8008
8009 2000-07-16 Laurynas Biveinis <lauras@softhome.net>
8010
8011 * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
8012
8013 2000-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8014
8015 * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
8016
8017 2000-07-16 Neil Booth <NeilB@earthling.net>
8018
8019 * cpplex.c: Update comments.
8020 * README.Portability: Small update.
8021
8022 2000-07-16 Neil Booth <NeilB@earthling.net>
8023
8024 * README.Portability: Small update.
8025
8026 2000-07-15 Richard Henderson <rth@cygnus.com>
8027
8028 * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
8029 * config/ia64/ia64.c (ia64_move_ok): New function.
8030 * config/ia64/ia64.md (movqi, movqi_internal): Use it.
8031 (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
8032
8033 2000-07-15 Zack Weinberg <zack@wolery.cumb.org>
8034
8035 * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
8036 immediately following a paste operator.
8037 * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
8038 (cpp_reader_init): Call it, if HOST_EBCDIC.
8039 (cpp_handle_options): Do not sort option list here.
8040 (handle_option): Rename to cpp_handle_option and export.
8041 * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
8042 _cpp_get_token directly.
8043 (cpp_scan_line): Return 0 at EOF, 1 otherwise.
8044 * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
8045 * cpplib.h: Prototype cpp_handle_option. Update prototype of
8046 cpp_scan_line.
8047
8048 2000-07-15 Richard Henderson <rth@cygnus.com>
8049
8050 * fold-const.c (extract_muldiv): Don't optimize past an unsigned
8051 cast around an expression. Tidy other unsigned tests.
8052
8053 2000-07-15 Gabriel Dos Reis <gdr@codesourcery.com>
8054
8055 * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
8056 v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
8057 (v_message_with_decl): Rename to ...
8058 (format_with_decl): ... this. Tweak
8059 (diagnostic_for_decl): New function.
8060 (fatal_io_error): Use verbatim in lieu of notice.
8061 (announce_function): Use verbatim.
8062 (default_print_error_function): Likewise.
8063 (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
8064 infratructure.
8065
8066 2000-07-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8067
8068 * mips.c (function_arg_pass_by_reference): Don't do automatic
8069 aggregate initialization.
8070 (machine_dependent_reorg): Initialize variable `mode'.
8071
8072 * mips.md (absdi2): Change variable `regno1' to unsigned int.
8073 (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
8074 conflicts with sys/param.h macro of the same name.
8075 (reload_outdi): Likewise.
8076
8077 2000-07-15 Michael Meissner <meissner@redhat.com>
8078
8079 * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
8080 == CONST + INCREMENT, don't overwrite the tree node for FOO++,
8081 create a new node instead.
8082
8083 2000-07-15 Neil Booth <NeilB@earthling.net>
8084
8085 * README.Portability: Correct example about calling a function
8086 through a pointer to function. Format wide paragraphs.
8087
8088 2000-07-15 Michael Meissner <meissner@redhat.com>
8089
8090 * README.Portability: Update integer suffixes and function
8091 prototype sections.
8092
8093 2000-07-15 Neil Booth <NeilB@earthling.net>
8094
8095 * README.Portability: Small update.
8096
8097 2000-07-15 Neil Booth <NeilB@earthling.net>
8098
8099 * README.Portability: New file.
8100
8101 Fri Jul 14 18:13:53 2000 Mark P Mitchell <mark@codesourcery.com>
8102
8103 * INSTALL: Give special instructions for building GCC on Irix 6.
8104 * config/mips/x-iris6 (CC): Don't set it.
8105 (OLDCC): Likewise.
8106
8107 2000-07-14 Jason Merrill <jason@redhat.com>
8108
8109 * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
8110 register in the stack and later in another register, use the new
8111 register.
8112
8113 Fri Jul 14 10:25:53 2000 Clinton Popetz <cpopetz@cygnus.com>
8114
8115 * config/mips/mips.md: (absdi2): Handle sign_extend for
8116 second operand.
8117
8118 2000-07-14 Nathan Sidwell <nathan@codesourcery.com>
8119
8120 * cpplib.c (do_pragma_dependency): Tidy warning messages.
8121
8122 2000-07-14 Zack Weinberg <zack@wolery.cumb.org>
8123
8124 * .cvsignore: Correct typo.
8125
8126 2000-07-13 Mark Mitchell <mark@codesourcery.com>
8127
8128 * .cvsignore: Add generated YACC files.
8129 * objc/.cvsignore: New file.
8130
8131 2000-07-14 Neil Booth <NeilB@earthling.net>
8132
8133 * cpplex.c (adjust_column): New funcion.
8134 (skip_whitespace): Use it.
8135 (skip_block_comment): Use it, and warn about /*/* with
8136 -Wcomments.
8137
8138 2000-07-14 Neil Booth <NeilB@earthling.net>
8139
8140 * cpphash.c (struct macro_info): Add new members.
8141 (_cpp_free_definition): Delete the macro directly.
8142 (count_params): Return void, with first token of
8143 expansion in struct macro_info on success.
8144 (parse_define): Return int. Hoist syntax checking from
8145 save_macro_expansion. Leave call to save_expansion to
8146 _cpp_create_definition.
8147 (alloc_macro): Needs just 2 arguments.
8148 (free_macro): Delete.
8149 (save_expansion): Don't perform syntax check.
8150 (_cpp_create_definition): Call save_expansion.
8151
8152 2000-07-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8153
8154 * genrecog.c (write_header): Split long string.
8155
8156 * cpphash.c (macro_info): Don't use the `signed' keyword.
8157
8158 * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
8159
8160 2000-07-13 Jakub Jelinek <jakub@redhat.com>
8161
8162 * calls.c (stored_args_map): New variable.
8163 (check_sibcall_argument_overlap_1): New.
8164 (check_sibcall_argument_overlap): New.
8165 (expand_call): Initialize stored_args_map.
8166 Call check_sibcall_argument_overlap.
8167
8168 2000-07-13 Bruce Korb <bkorb@gnu.org>
8169
8170 * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
8171 (emit_gnu_type): utility procedure for gnu_type_fix
8172 (gnu_type_fix): implement various pre-processor guards around
8173 standard types so these types can be defined over and over
8174 * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
8175 types alluded to above will have GNU-compliant base types
8176 * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
8177 * fixinc/inclhack.def: add test_text entries and utilize the new
8178 "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
8179 * fixinc/fixincl.x: regenerate
8180
8181 2000-07-12 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
8182
8183 * diagnostic.c (vline_wrapper_message_with_location,
8184 v_message_with_file_and_line, v_error_with_file_and_file,
8185 v_error_for_asm, v_warning_for_asm, vfatal,
8186 v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
8187 vsorry, verror, vwarning, vpedwarn): Remove.
8188 (diagnostic_for_asm): New function.
8189 (pedwarn, error, warning, pedwarn_with_file_and_line,
8190 error_with_file_and_line, warning_with_file_and_line, sorry,
8191 error_for_asm, warning_for_asm, fatal): Reimplement.
8192 (finish_diagnostic): Clear diagnostic info as well.
8193
8194 2000-07-13 Neil Booth <NeilB@earthling.net>
8195
8196 * c-common.h (flag_digraphs): New.
8197 * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
8198 * c-lex.c (yylex): Use flag_digraphs to decide whether to
8199 honour digraphs.
8200
8201 2000-07-13 Zack Weinberg <zack@wolery.cumb.org>
8202
8203 * gcc.c (do_spec_1): Add new %B operator.
8204 (set_input): Prepare for %B.
8205
8206 (link_command_spec): Move up with the other tm.h-
8207 overrideable specs. Factor out the portion conditional on
8208 LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
8209 (struct compiler): Just have a single spec string. All users
8210 updated.
8211 (default_compilers): Remove unnecessary braces.
8212 (static_specs): Update.
8213
8214 (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
8215 named specs.
8216 (C and assembly specs): Use the new named specs, as appropriate.
8217
8218 * objc/lang-specs.h: Use the new named specs.
8219 Remove unnecessary braces.
8220
8221 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
8222
8223 * gcc.c (execute): If a subprocess gets a fatal signal, report
8224 strsignal() of the signal number, and ask for a bug report.
8225 Do not do this for SIGPIPE if there's already been an error.
8226
8227 * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE.
8228 Delete pipe_closed.
8229
8230 * tradcif.c: Remove.
8231
8232 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
8233
8234 * final.c (profile_function): Do not emit profile counters in
8235 the data section, if NO_PROFILE_COUNTERS is defined.
8236 * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for
8237 FUNCTION_PROFILER.
8238
8239 * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
8240 (FUNCTION_PROFILER): Just emit a call to mcount.
8241
8242 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
8243
8244 * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
8245
8246 * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
8247 cpplib.c, cpplib.h: Eradicate all traces of code dependent on
8248 traditional, lang_chill, or lang_fortran.
8249
8250 * cppfiles.c: #undef strcmp to suppress warning about macros
8251 used without arguments.
8252 (_cpp_execute_include): Use f, not fname, in "No include path"
8253 error.
8254 (_cpp_pop_file_buffer): New function.
8255 * cpplib.c: Don't include <sys/mman.h>.
8256 (cpp_push_buffer): Set line_base and lineno in new buffer.
8257 (cpp_pop_buffer): Use _cpp_pop_file_buffer.
8258
8259 * cpplex.c: Move all prototypes and structure declarations to the
8260 top of the file. Properly parenthesise some macro arguments.
8261 (cpp_scan_line): New function.
8262 (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
8263 don't need to walk up the stack counting.
8264
8265 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8266
8267 * c-common.c (combine_strings): Emit a pedantic warning when a
8268 string length is greater than the minimum ANSI C is required
8269 to support.
8270
8271 Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com)
8272
8273 * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
8274 * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
8275
8276 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8277
8278 * c-decl.c (define_label): Warn about identifier conflicts with
8279 labels in traditional C.
8280
8281 * c-parse.in (unop +): Warn about the unary plus operator for
8282 traditional C.
8283
8284 * c-typeck.c (store_init_value): Warn about automatic aggregate
8285 initialization for traditional C.
8286
8287 * invoke.texi (-Wtraditional): Document new warnings.
8288
8289 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
8290
8291 * Makefile.in (c-errors.o): Fix thinko in dependency.
8292
8293 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
8294
8295 * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
8296 -traditional, -ftraditional, or -traditional-cpp was given.
8297 Do not pass -traditional to the preprocessor.
8298 (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the
8299 preprocessor does it automatically.
8300 * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__.
8301
8302 * ch/lang-specs.h: Always use tradcpp. Do not pass
8303 -traditional, -trigraphs, or -pedantic to the preprocessor.
8304 * f/lang-specs.h (.F spec): Likewise. Don't bother defining
8305 _LANGUAGE_FORTRAN.
8306
8307 2000-07-12 Zack Weinberg <zack@wolery.cumb.org>
8308
8309 * cppexp.c (LOGICAL): Delete macro.
8310 (_cpp_parse_expr): Do not use UNARY for unary +. Implement ||
8311 and && directly.
8312
8313 * cpphash.c (HASHSIZE): Increase to 4096.
8314 (struct hashdummy): Add hash field.
8315 (eq_HASHNODE): Compare unreduced hashes, then lengths, then
8316 the string values using memcmp.
8317 (cpp_lookup): Set dummy.hash.
8318
8319 Wed Jul 12 13:15:16 2000 Marc Espie <espie@openbsd.org>
8320
8321 * configure.in (m88k-openbsd): Express configuration using new fragment
8322 style.
8323 * configure: Rebuilt.
8324 * m88k/aout-dbx.h: New.
8325 * m88k/openbsd.h: New.
8326 * m88k/xm-openbsd.h: New.
8327
8328 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8329
8330 * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
8331
8332 2000-07-12 Richard Henderson <rth@cygnus.com>
8333
8334 * reload.c (push_secondary_reload): Make sure to add the new
8335 reload at the end, after acquiring secondary memory.
8336
8337 2000-07-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8338
8339 * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
8340
8341 * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
8342 lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
8343
8344 * c-parse.in (stmt): Delete unused variables.
8345
8346 * convert.c (convert_to_vector): Likewise.
8347
8348 * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
8349
8350 * tree.c (finish_vector_type): Prototype.
8351
8352 2000-07-12 Bruce Korb <bkorb@gnu.org>
8353
8354 * fixinc/fixfixes.c: use xmalloc
8355 * fixinc/fixincl.c(initialize): set program name for xmalloc
8356 * fixinc/fixlib.c(must_malloc): obsolete
8357 (is_cxx_header): no longer used - disabled
8358 (skip_quote): inserted and disabled for future use
8359 * fixinc/fixlib.h: reflects above
8360 * fixinc/fixtests.c: removed dinkleberries
8361
8362 2000-07-12 Neil Booth <NeilB@earthling.net>
8363
8364 * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
8365 * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
8366
8367 * cpphash.c: (struct macro_info, alloc_macro, free_macro,
8368 struct toklist_dummy): New.
8369 (cpp_free_definition): Free macros with free_macro.
8370 (count_params): Don't save paramter spellings. Save macro
8371 information in a struct macro_info.
8372 (parse_define): Don't allocate a token list.
8373 (save_expansion): Allocate the macro's token list, and
8374 save parameter spellings if necessary. Use TOKEN_SPELL.
8375 (cpp_create_definition): Make list const.
8376
8377 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
8378
8379 * c-typeck.c (pedwarn_c99): Move to
8380 * c-errors.c: ... Here.
8381 * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
8382 * diagnostic.c (verror, vwarning, vpedwarn): Make static.
8383 * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
8384 (c-errors.o): List dependency.
8385
8386 2000-07-12 Mark Mitchell <mark@codesourcery.com>
8387
8388 * c-parse.c: Remove.
8389 * c-parse.h: Likewise.
8390 * c-parse.y: Likewise.
8391 * objc/objc-parse.c: Likewise.
8392 * objc/objc-pasre.y: Likewise.
8393
8394 2000-07-11 Rodney Brown <RodneyBrown@pmsc.com>
8395
8396 * gcc.texi: Fix minor typos
8397 * extend.texi: Fix minor typos
8398
8399 2000-07-11 Marc Espie <espie@openbsd.org>
8400
8401 * collect2.c (main): Recognize .lo as object files.
8402
8403 2000-07-11 J. David Anglin <dave@hiauly1.hia.nrc.ca>
8404
8405 * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
8406 true.
8407
8408 * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
8409 with MAP_ANONYMOUS and MAP_ANON.
8410 * configure, config.in: Rebuilt.
8411
8412 2000-07-12 Gabriel Dos Reis <gdr@codesourcery.com>
8413
8414 * diagnostic.c (save_output_state): Remove.
8415 (restore_output_state): Likewise.
8416 (clear_text_info): New function.
8417 (clear_diagnostic_info): Likewise.
8418 (output_text_length, is_starting_newline, output_prefix,
8419 line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
8420 prefixing_policy, output_buffer_ptr_to_format_args): New macros
8421 (set_real_maximum_length, output_set_maximum_length,
8422 output_set_prefix, output_get_prefix, output_set_maximum_length,
8423 output_destroy_prefix, init_output_buffer,
8424 reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
8425 output_add_newline, output_add_character, output_add_space,
8426 output_append_r, output_append, wrap_text, output_format,
8427 output_do_printf, output_printf, output_do_verbatim,
8428 output_verbatim, verbatim): Use them.
8429 (output_clear): Split into cleat_text_info and
8430 clear_diagnostic_info.
8431 (struct output_state): Move to...
8432
8433 * diagnostic.h: ...Here
8434 (struct output_buffer): Adjust.
8435
8436 2000-07-11 Zack Weinberg <zack@wolery.cumb.org>
8437
8438 * cpplex.c (parse_name): No longer inline (premature optimization).
8439 (do_pop_context): Fold into pop_context.
8440 (pop_context): Returns int.
8441 (lex_next): Hoist test for end of directive into pop_context.
8442 (push_macro_context): Returns int; takes just reader and token.
8443 Hoist test for excessive nesting to caller.
8444 (push_arg_context): Returns void; takes just reader and token.
8445 Do not call stringify_arg or get_raw_token.
8446 (get_raw_token): Convert tail recursion through push_arg_context
8447 to a loop at this level. Call stringify_arg here if appropriate.
8448 (maybe_paste_with_next): Convert tail recursion to a while loop.
8449 Hoist test of paste_level to caller.
8450
8451 (stringify_arg): Push arg context at beginning.
8452 (cpp_get_token): Split out core into _cpp_get_token. Call
8453 process_directive here. Throw away CPP_PLACEMARKER tokens.
8454 (_cpp_get_token): Convert tail recursion through
8455 push_macro_context to a loop at this level.
8456 (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
8457 _cpp_get_raw_token): Use _cpp_get_token.
8458 (_cpp_skip_rest_of_line): Drop the context stack directly; do
8459 not call pop_context.
8460 (_cpp_run_directive): Call lex_next directly.
8461
8462 * cpphash.h: Prototype _cpp_get_token.
8463 * cppexp.c (lex): Use it.
8464 * cpphash.c (parse_define): Use it.
8465 * cpplib.c (get_define_node, do_undef, parse_include,
8466 read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
8467 do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
8468 parse_ifdef, validate_else): Use it.
8469 (cpp_push_buffer): Tweak error message; abort if anyone tries
8470 to push a buffer while macro expansions are stacked.
8471
8472 2000-07-11 Donn Terry <donnte@microsoft.com>
8473
8474 * cpplex.c (free_macro_args, save_token): Cast arg of free
8475 and/or xrealloc to PTR.
8476 (_cpp_init_input_buffer): Clear all fields of the base context.
8477
8478 Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz <cpopetz@cygnus.com>
8479
8480 * gensupport.c (process_rtx): Make rtl checking stop
8481 complaining about the define_insn while it is being
8482 converted from a define_insn_and_split.
8483
8484 Tue Jul 11 16:26:17 2000 Clinton Popetz <cpopetz@cygnus.com>
8485
8486 * config/mips/mips.c (simple_memory_operand): Access the
8487 INTVAL of the address, not it's containing MEM.
8488
8489 2000-07-11 Bruce Korb <bkorb@gnu.org>
8490
8491 * fixinc/fixtests.c(double_slash): obsolete
8492 (else_endif_label): likewise
8493 * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
8494 (libc1_ifdefd_memx): correct initial comment
8495 and omit the #if/#endif pair from the memxxx declarations
8496 * fixinc/fixincl.x: regen
8497
8498 2000-07-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8499
8500 * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
8501
8502 2000-07-11 Neil Booth <NeilB@earthling.net>
8503
8504 * cpp.texi: Update.
8505
8506 2000-07-11 Neil Booth <NeilB@earthling.net>
8507
8508 * cppinit.c: (cpp_reader_init): Allow digraphs by default.
8509 (handle_option): Set digraphs according to standard.
8510 Merge OPT_lang_c89 handler with OPT_std_c89.
8511
8512 * cpplex.c: (lex_line, can_paste): Honour digraphs in
8513 accordance with the digraphs flag.
8514
8515 * cpplib.h: (struct cpp_options): New option digraphs.
8516
8517 2000-07-10 Hans-Peter Nilsson <hp@axis.com>
8518 Bruce Korb <bkorb@gnu.org>
8519
8520 * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
8521 * fixinc/fixincl.x: Regenerate.
8522 * fixinc/tests/base/testing.h: Add testcase.
8523
8524 2000-07-10 Richard Henderson <rth@cygnus.com>
8525
8526 * config/ia64/ia64.c (got_symbolic_operand): New.
8527 (symbolic_operand, move_operand): Revert 0701 change.
8528 * config/ia64/ia64.h (PREDICATE_CODES): Update.
8529 * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
8530 * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
8531 split the offset into a 14-bit low part instead of a 13-bit low part.
8532 (load_fptr): Mark the mem as unchanging.
8533 (load_symptr): Use got_symbolic_operand.
8534
8535 2000-07-10 Nick Clifton <nickc@cygnus.com>
8536
8537 * libgcc2.c (next_stack_level): Cast result of computation to
8538 (void **) so that the assignment does not generate a warning.
8539
8540 2000-07-10 Chandrakala Chavva <cchavva@redhat.com>
8541
8542 * flags.h : Add new variable flag_single_precision_constant.
8543 * toplev.c (display_help) : Add -fsingle-precision-constant option.
8544 (flag_single_precision_constant): New.
8545 * c-lex.c (yylex): Convert floating point constant to single
8546 precision constant.
8547 * invoke.texi : Add documentation for this new option.
8548
8549 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
8550
8551 * diagnostic.c (output_octal): Second parameter is unsigned.
8552 (output_long_octal): Likewise.
8553 (output_hexadecimal): Likewise.
8554 (output_long_hexadecimal): Likewise.
8555 (output_format): Adjust arguments extraction. Tweak.
8556 (output_verbatim, verbatim): End variable argument list.
8557 (report_diagnostic): Improve documentation.
8558
8559 2000-07-10 Benjamin Chelf <chelf@codesourcery.com>
8560
8561 * c-common.h (build_stmt): Declare.
8562 (build_continue_stmt): Likewise.
8563 (build_break_stmt): Likewise.
8564 (build_return_stmt): Likewise.
8565
8566 * c-decl.c (do_case): Rewrite to do what previously done in
8567 c-parse.in.
8568
8569 * c-semantics.c (build_stmt): Define.
8570 (build_return_stmt): Likewise.
8571 (build_break_stmt): Likewise.
8572 (build_continue_stmt): Likewise.
8573 (build_case_label): Likewise.
8574
8575 * c-parse.in (BREAK): Change to build tree, then generate RTL.
8576 (CONTINUE): Likewise.
8577 (RETURN): Likewise.
8578 (CASE): Likewise.
8579 (DEFAULT): Likewise.
8580
8581 * c-parse.y: Regenerate.
8582 * c-pasre.c: Likewise.
8583
8584 2000-07-09 Jason Merrill <jason@redhat.com>
8585
8586 * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
8587
8588 * tree.h (STRIP_NOPS): Check for error_mark_node.
8589 (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
8590 (dwarf2out_*): Remove duplicate declarations.
8591
8592 * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
8593 DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
8594
8595 2000-07-10 Gabriel Dos Reis <gdr@codesourcery.com>
8596
8597 * diagnostic.c (wrap_text): New function.
8598 (maybe_wrap_text): Likewise.
8599 (output_add_string): Use it.
8600 (output_format): Likewise.
8601 (count_error): Use verbatim instead of notice.
8602 (report_error_function): Likewise. Don't use plain fprintf.
8603 (finish_diagnostic): New function.
8604 (output_do_verbatim): Tweak. Commonalize functionalities in
8605 output_verbatim and verbatim.
8606 (output_verbatim): Adjust.
8607 (verbatim): Likewise.
8608 (report_diagnostic): Define.
8609
8610 * diagnostic.h (report_diagnostic): Prototype.
8611
8612 2000-07-09 Zack Weinberg <zack@wolery.cumb.org>
8613
8614 * cppexp.c (_cpp_parse_expr): Don't use unary plus.
8615
8616 2000-07-09 Neil Booth <NeilB@earthling.net>
8617
8618 * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
8619 IShspace, ISspace: Update.
8620
8621 * cppinit.c: ISTABLE: Update.
8622 V: New.
8623
8624 * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
8625 (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
8626 (skip_block_comment, skip_line_comment, parse_string,
8627 lex_line): Use is_vspace rather than IS_NEWLINE.
8628 (skip_whitespace, lex_line): Clean up to use is_nvspace.
8629 (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive
8630 gets a BOL flag.
8631 (lex_next): Unconditionally stop if within a directive.
8632 Treat directives within macro invocations as directives
8633 (after parse_args emits error), not as the argument.
8634
8635 2000-07-09 Gabriel Dos Reis <gdr@codesourcery.com>
8636
8637 * diagnostic.c (diagnostic_args): New macro.
8638 (diagnostic_msg): Likewise.
8639 (output_formatted_integer): Likewise.
8640 (output_state): New data type.
8641 (digit_buffer): Make global.
8642 (output_add_integer): Rename to output_decimal. Squeeze
8643 digit_buffer.
8644 (output_long_decimal, output_unsigned_decimal,
8645 output_long_unsigned_decimal, output_octal, output_long_octal,
8646 output_hexadecimal, output_long_hexadecimal): New functions.
8647 (output_append_r): New function.
8648 (output_append): Tweak.
8649 (output_flush_on): Rename to output_to_stream.
8650 (output_format): Change prototype. Improve documentation. Handle
8651 more format specifiers.
8652 (build_location_prefix): Rename to context_as_prefix.
8653 (output_notice): Rename to output_do_printf.
8654 (output_printf): Tweak.
8655 (line_wrapper_printf): Likewise.
8656 (vline_wrapper_message_with_location): Adjust call to renamed
8657 functions.
8658 (v_message_with_decl): Likewise.
8659 (default_print_error_function): Likewise.
8660 (save_output_state): New function.
8661 (restore_output_state): Likewise.
8662 (output_do_verbatim): Likewise.
8663 (output_verbatim): Define.
8664 (verbatim): Likewise.
8665
8666 * diagnostic.h (printer_fn): Change return type from void to int.
8667 Improve documentation.
8668 (output_add_integer): Rename to output_decimal.
8669 (output_flush_on, output_format): Don't export.
8670 (output_verbatim, verbatim): Declare.
8671
8672 2000-07-08 Toon Moene <toon@moene.indiv.nluug.nl>
8673
8674 * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
8675 Check whether c divides op1 exactly if operation is not
8676 multiplication.
8677
8678 2000-07-08 Richard Henderson <rth@cygnus.com>
8679
8680 * final.c (final): Do not abort when reg-stack introduces
8681 a new insn.
8682
8683 2000-07-08 Zack Weinberg <zack@wolery.cumb.org>
8684
8685 * cpplib.h (struct cpp_name): Now struct cpp_string.
8686 (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
8687 CPP_HEADER_NAME): Change to type S.
8688 (struct cpp_token): Rename 'name' field to 'str'. Add 'node'
8689 field, a cpp_hashnode *. All references to val.name updated
8690 to use val.str or val.node as appropriate.
8691 (struct cpp_reader): Add spec_nodes field.
8692 (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
8693
8694 * cpphash.h (struct spec_nodes): New.
8695 (enum spell_type): Reorder. Only SPELL_STRING tokens use
8696 val.str. All references to 'spelling > SPELL_NONE' updated to
8697 match.
8698
8699 (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
8700 pfile->buffer->inc are not NULL before dereferencing them.
8701
8702 * cpplex.c (parse_name): Take a pointer to the current token,
8703 plus current position and limit as args; return the new
8704 position; don't copy the text of a name into the string
8705 buffer, instead call cpp_lookup and store the node pointer.
8706 If extending a token, copy out the text of the old into a
8707 scratch buffer, append the new, look that up and store the new
8708 node pointer. Inline.
8709 (maybe_paste_with_next): If the result of paste is a NAME,
8710 then look up the pasted text and store its node pointer.
8711 (lex_line): Adjust for new parse_name interface.
8712 Check for L"str", L'str' using spec_nodes->n_L.
8713 (spell_token): SPELL_IDENT tokens have their spelling in
8714 val.node->name. Handle SPELL_STRING tokens that don't have
8715 string delimiters.
8716 (_cpp_expand_name_space,
8717 (can_paste): Check for L ## "str" using spec_nodes->n_L.
8718 (cpp_get_token, special_symbol): No need to call cpp_lookup.
8719 (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
8720 return 1=equal 0=not, not a tristate.
8721
8722 * cpphash.c (var_args_str): Delete.
8723 (find_param): Compare node fields directly.
8724 (is__va_args__): Use CPP_PEDANTIC. Just compare
8725 token->val.node with spec_nodes->n__VA_ARGS__.
8726 (dump_funlike_macro): Don't use var_args_str.
8727
8728 * cpplib.c (_cpp_check_directive): Just walk through
8729 spec_nodes->dirs comparing pointers.
8730 (get_define_node, do_pragma_poison, detect_if_not_defined,
8731 parse_ifdef): The identifier has already been looked up.
8732 (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
8733 node.
8734 (do_if): Only call detect_if_not_defined at beginning of file.
8735 (_cpp_parse_assertion): Only copy string pointers for
8736 SPELL_STRING tokens.
8737 (pragma_dispatch): Take a node pointer and examine its name
8738 field.
8739 (_cpp_init_stacks): Also initialize the spec_nodes structure.
8740
8741 * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
8742 _cpp_init_macros.
8743 (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in
8744 reverse order from the corresponding _cpp_init_* routines.
8745
8746 * cppexp.c (parse_number, parse_charconst, parse_defined,
8747 lex): Check val.node->type instead of calling cpp_defined.
8748 Use spec_nodes entries where appropriate.
8749
8750 * fix-header.c, scan-decls.c: Update for interface changes.
8751
8752 2000-07-08 Geoffrey Keating <geoffk@cygnus.com>
8753
8754 * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
8755 emitting aux_truncdfsf2.
8756
8757 2000-07-03 Donn Terry (donnte@microsoft.com)
8758
8759 * cppinit.c (print_help): split overlong line into ISO C89
8760 maximum chunks.
8761
8762 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
8763
8764 * cppexp.c: Update all code for new lexer interface.
8765 (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
8766 (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
8767 * cpplex.c (token_names): Trim leading CPP_ from names; make
8768 the strings unsigned.
8769 (_cpp_spell_operator): New.
8770 (is_macro_disabled): Disable all macros if rescanning
8771 preprocessed text.
8772 (_cpp_get_directive_token): Remove.
8773
8774 * cppinit.c: Don't set no_macro_expand.
8775 * cpplib.c (read_line_number, do_line): Check only for EOF,
8776 not VSPACE.
8777 * cpphash.h: Update prototypes.
8778 * cpplib.h (CPP_VSPACE): Remove.
8779 (struct cpp_reader): Remove no_macro_expand.
8780
8781 2000-07-08 Neil Booth <NeilB@earthling.net>
8782
8783 * cpphash.c (is__va_args__): New function.
8784 (count_params): Fix line reported in error messages. Use
8785 is__va_args__. Don't return ')' on error. Flag GNU style
8786 rest args macro definitions.
8787 (parse_define): Check macro name is not __VA_ARGS__.
8788 (save_expansion): Check identifier in non-varargs-macro is
8789 not __VA_ARGS__. Don't flag GNU_VARARGS.
8790 * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
8791 (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
8792 than per-token GNU_VARARGS.
8793 * cpplib.h (GNU_VARARGS): Remove.
8794 (GNU_REST_ARGS): New.
8795
8796 Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka <jh@suse.cz>
8797
8798 * i386.md (call_pop, call, call_value_pop): Do not set
8799 current_function_uses_pic_offset_table for calls to static
8800 functions or indirect calls.
8801
8802 2000-07-07 Jim Wilson <wilson@cygnus.com>
8803
8804 * config/ia64/ia64.c (rws_access_reg): New local write_count. If
8805 is_predicate_reg, then take max write_count of register pair.
8806
8807 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8808
8809 * tradcpp.c (main): Rename label `include' to `add_include' to
8810 avoid conflicts with variable `include' in traditional C.
8811
8812 2000-07-07 Jakub Jelinek <jakub@redhat.com>
8813
8814 * integrate.c (copy_insn_list): Remove REG_LABEL notes.
8815
8816 2000-07-07 Jakub Jelinek <jakub@redhat.com>
8817
8818 * sibcall.c (uses_addressof): Add INMEM argument, check for
8819 current_function_internal_arg_pointer outside of MEM rtxs in addition
8820 to ADDRESSOFs.
8821 (sequence_uses_addressof): Update caller.
8822
8823 2000-07-07 Zack Weinberg <zack@wolery.cumb.org>
8824
8825 * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
8826 and friends.
8827
8828 2000-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8829
8830 * system.h (UNION_INIT_ZERO): New macro for initializing union
8831 members in structs.
8832
8833 * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
8834
8835 2000-07-07 Neil Booth <NeilB@earthling.net>
8836
8837 * cpp.texi: Update.
8838
8839 Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com)
8840
8841 * final.c (final): Detect out of bounds array access to
8842 the insn_lengths array.
8843
8844 2000-07-07 Kazu Hirata <kazu@hxi.com>
8845
8846 * fold-const.c (fold): Fix a comment typo.
8847
8848 2000-07-07 Neil Booth <NeilB@earthling.net>
8849
8850 * cpp.texi: Update to new lexer.
8851
8852 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
8853
8854 * tradcpp.c: New file.
8855 * tradcif.y: New file.
8856 * tradcif.c: New generated file.
8857
8858 * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
8859 $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and
8860 dependencies of C. Install tradcpp from install-common, in
8861 $(libsubdir).
8862
8863 2000-07-06 Zack Weinberg <zack@wolery.cumb.org>
8864
8865 * cppinit.c: Include cppdefault.h. Refer to
8866 cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
8867 to GCC_INCLUDE_DIR and its length.
8868 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
8869 USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
8870 STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to
8871 cppdefault.h.
8872 (include_defaults_array): Move to cppdefault.c.
8873
8874 * cppdefault.h: New file.
8875 * cppdefault.c: New file.
8876
8877 * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
8878 (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
8879 (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
8880 this file.
8881
8882 Thu Jul 6 18:30:36 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8883
8884 * reload.c (push_reload): When seeing if can reuse a register,
8885 check extra registers against widest of INMODE and OUTMODE.
8886
8887 2000-07-06 Neil Booth <NeilB@earthling.net>
8888
8889 * cpplib.c: (_cpp_parse_assertion): Perform hash lookups
8890 based on full length of predicate.
8891
8892 2000-07-06 Hans-Peter Nilsson <hp@axis.com>
8893
8894 * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
8895 [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
8896
8897 2000-07-05 Kazu Hirata <kazu@hxi.com>
8898
8899 * h8300-proto.h: Fix formatting.
8900 * h8300.c: Likewise.
8901 * h8300.h: Likewise.
8902
8903 2000-07-05 Jim Wilson <wilson@cygnus.com>
8904
8905 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
8906 CCmode.
8907
8908 2000-07-05 Rodney Brown <RodneyBrown@pmsc.com>
8909
8910 * invoke.texi: Fix minor typos
8911 * md.texi: Fix minor typos
8912
8913 2000-07-05 Zack Weinberg <zack@wolery.cumb.org>
8914
8915 * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
8916
8917 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
8918
8919 * cpplex.c: Don't include sys/mman.h.
8920 (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
8921
8922 * cpplib.c: Include sys/mman.h and obstack.h.
8923 (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
8924 obstack.
8925 (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
8926 (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't
8927 bother freeing if stack entries (they will be freed with their buffer).
8928 (do_endif): Free if stack entries from the buffer obstack.
8929 (push_conditional): Allocate if stack entries from the buffer obstack.
8930
8931 (find_answer): Rename to _cpp_find_answer.
8932 (do_assert, do_unassert): Update.
8933
8934 * cpphash.h: Update prototypes.
8935 (xobnew): New convenience macro.
8936 * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
8937 Update comments.
8938 (struct cpp_hashnode): Remove disabled field.
8939
8940 * cppinit.c: Don't include hashtab.h or splay-tree.h.
8941 (report_missing_guard): Moved to cppfiles.c.
8942 (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
8943 cpp_init_includes.
8944 (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
8945 cpp_cleanup_includes. Don't destroy hashtab or
8946 all_include_files here.
8947 (cpp_finish): Use _cpp_report_missing_guards.
8948
8949 * cppfiles.c (report_missing_guard): Moved from cppinit.c.
8950 (_cpp_init_include_table): Rename _cpp_init_includes.
8951 (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
8952
8953 * cppexp.c (parse_assertion): Update for new name of
8954 find_answer.
8955
8956 * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
8957
8958 2000-07-04 Zack Weinberg <zack@wolery.cumb.org>
8959
8960 * cpplib.c (do_ident): s/VSPACE/EOF/
8961
8962 2000-07-05 Neil Booth <NeilB@earthling.net>
8963
8964 * cpplex.c: Fix trigraph replacement within strings.
8965
8966 2000-07-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8967
8968 * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
8969
8970 * xcoffout.c (assign_type_number): Constify.
8971 (xcoffout_source_file): Add static prototype. Don't needlessly
8972 cast away const-ness.
8973
8974 2000-07-04 Jason Merrill <jason@redhat.com>
8975
8976 * frame.h (frame_state): Move base_offset to end.
8977
8978 Mon Jul 3 21:31:43 2000 Clinton Popetz <cpopetz@cygnus.com>
8979
8980 * calls.c (emit_library_call_value_1): Revert previous change.
8981
8982 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
8983
8984 * fix-header.c (struct partial_proto): Remove unnecessary fields.
8985 (recognized_extern, recognized_function, read_scan_file):
8986 Update for new scheme.
8987 (check_protection): It's still a multiple include guard even
8988 if it doesn't always trigger.
8989 * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
8990 new scheme.
8991 * scan.h: Declare struct cpp_token. Update prototypes.
8992
8993 2000-07-03 Neil Booth <neilb@earthling.net>
8994 Zack Weinberg <zack@wolery.cumb.org>
8995
8996 Complete overhaul of the lexer and macro expander.
8997
8998 * cpphash.c (object_defn, funct_defn, push_macro_expansion,
8999 arg, arglist, argdata, reflist, collect_objlike_expansion,
9000 collect_funlike_expansion, collect_params,
9001 warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
9002 unsafe_chars, macarg, compare_defs, special_symbol,
9003 scan_arguments, stringify, funlike_macroexpand,
9004 _cpp_quote_string, monthnames): Delete.
9005 (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
9006 _cpp_create_definition, _cpp_dump_definition,
9007 dump_hash_helper): Adjust.
9008 (find_param, count_params, parse_define, var_args_str,
9009 check_macro_redefinition, save_expansion): New.
9010
9011 * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
9012 parse_string, output_line_command, trigraph_replace,
9013 lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
9014 cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
9015 cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
9016 _cpp_skip_rest_of_line): Modify.
9017
9018 (maybe_macroexpand, skip_comment, copy_comment, skip_string,
9019 find_position, null_warning, bump_column, expand_name_space,
9020 pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
9021 _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
9022 _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
9023 _cpp_prescan): Delete.
9024
9025 (dump_param_spelling, process_directive, lex_next,
9026 is_macro_disabled, stringify_arg, expand_context_stack,
9027 output_token, make_string_token, alloc_number_token,
9028 special_symbol, duplicate_token, maybe_paste_with_next,
9029 can_paste, prevent_macro_expansion, restore_macro_expansion,
9030 get_temp_token, release_temp_tokens, quote_string,
9031 token_names, token_spellings, _cpp_expand_name_space,
9032 _cpp_glue_header_name, _cpp_reserve_name_space,
9033 digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
9034 placemarker_token, eof_token, cpp_context, macro_args,
9035 get_raw_token, parse_arg, parse_args, save_token,
9036 push_arg_context, push_macro_context, pop_context,
9037 do_pop_context, free_macro_args, _cpp_get_line,
9038 _cpp_run_directive): New.
9039
9040 * cpplib.c (validate_else, parse_include, push_conditional,
9041 pass_thru_directive, read_line_number, parse_ifdef,
9042 detect_if_not_defined, _cpp_check_directive, do_define,
9043 do_undef, do_include, do_import, do_include_next, do_error,
9044 do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
9045 top_pragmas, do_pragma_gcc, do_pragma_implementation,
9046 do_pragma_poison, do_pragma_system_header,
9047 do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
9048 dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
9049 do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
9050 cpp_defined): Update for new scheme.
9051 (strtoul_for_line, get_define_node, dump_macro_name,
9052 _cpp_check_linemarker, _cpp_parse_assertion): New.
9053 (_cpp_handle_directive, do_pragma_default): Delete.
9054
9055 * cpphash.h (struct predicate): Now struct answer.
9056 (enum spell_type, struct token_spelling, struct directive,
9057 directive_handler): New.
9058 Update prototypes. Remove unused macros.
9059 * cpplib.h: Update prototypes. Remove unused macros,
9060 structure definitions, and fields.
9061
9062 * cpperror.c (print_containing_files, v_message): Adjust.
9063 * cppexp.c (parse_assertion, lex, parse_escape,
9064 _cpp_parse_expr): Adjust.
9065 * cppfiles.c (open_include_file, _cpp_execute_include,
9066 _cpp_compare_file_date, cpp_read_file, read_include_file):
9067 Adjust.
9068 * cppinit.c (dump_special_to_buffer): Delete.
9069 (append_include_chain, merge_include_chains, cpp_reader_init,
9070 cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
9071 cpp_finish, handle_option, print_help): Adjust.
9072 * cppmain.c (main): Adjust.
9073
9074 2000-07-03 Zack Weinberg <zack@wolery.cumb.org>
9075
9076 * cppspec.c (lang_specific_driver): Use double quotes in error
9077 message.
9078
9079 Mon Jul 3 16:53:43 2000 Clinton Popetz <cpopetz@cygnus.com>
9080
9081 * calls.c (emit_library_call_value_1): Use valreg instead
9082 of hard_libcall_value.
9083
9084 2000-07-03 Geoff Keating <geoffk@cygnus.com>
9085
9086 * config/rs6000/rs6000.c (rs6000_emit_move): New function.
9087 * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
9088 * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
9089 (movhi): Likewise.
9090 (movqi): Likewise.
9091 (movdf): Likewise.
9092 (movsf): Likewise.
9093 (movdi): Likewise.
9094 (movti): Likewise.
9095
9096 * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
9097 mode instead of wider_mode is being used.
9098
9099 2000-07-03 Jakub Jelinek <jakub@redhat.com>
9100
9101 * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
9102 of 'r'. Use q_regs_operand.
9103 (andsi_1+2): Use q_regs_operand.
9104
9105 2000-07-03 Jakub Jelinek <jakub@redhat.com>
9106
9107 * builtins.c (get_memory_rtx): Always put into alias set 0.
9108
9109 2000-07-03 Nick Clifton <nickc@cygnus.com>
9110
9111 * config/arm/arm.md: Fix post increment and pre increment
9112 peepholes so that they do not generate UNPREDICATBLE opcodes.
9113 (ie ones where the increment clobbers the source/destination).
9114
9115 2000-07-01 Marek Michalkiewicz <marekm@linux.org.pl>
9116
9117 * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
9118 change too big for -mtiny-stack" a warning, if larger than 63.
9119 (out_set_stack_ptr): Change the logic so -mno-interrupts is
9120 always safe to use on possible future devices.
9121 (function_prologue): Write SPH before SPL, for consistency.
9122 If interrupt_func_p true, we know we have enabled interrupts.
9123 (avr_num_arg_regs): New function. Round up to even number of
9124 bytes if no -mpack-args or if calling a libgcc function.
9125 (function_arg, function_arg_advance): Use it.
9126 (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
9127 Output "movw" if available.
9128 (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
9129 of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
9130 (asm_output_section_name): Add blanks for consistent output.
9131 (encode_section_info): Set TREE_READONLY for progmem data to
9132 avoid gas warnings about changed section attributes.
9133 (avr_hard_regno_mode_ok): Force non-QImode data to start in
9134 even numbered registers on devices with "movw".
9135 * config/avr/avr.h (MASK_*): Define bits for target_flags.
9136 (TARGET_SWITCHES): Mark help strings for translation.
9137 Add new -mpack-args and -menhanced switches.
9138 (TARGET_OPTIONS): Mark help strings for translation.
9139 (progmem_section): Add section attributes.
9140 * config/avr/avr.md (*movhi, call_insn, call_value_insn):
9141 Output "movw" if available.
9142 (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
9143 New patterns.
9144 * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
9145 call convention (arguments aligned on even registers).
9146 (_cleanup, _exit): Make weak symbols libc can override.
9147
9148 2000-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9149
9150 * fp-bit.h: New file.
9151
9152 * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
9153 Comment #endif statements.
9154 (__thenan_sf, __thenan_df): Add missing braces around initializer.
9155
9156 Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com)
9157
9158 * gcse.c (compute_pre_data): Compute ae_kill using other local
9159 properties instead of calling compute_ae_kill.
9160
9161 * alias.c (init_alias_analysis): Do not call
9162 prologue_epilogue_contains until after reload has completed.
9163
9164 2000-07-02 Benjamin Chelf <chelf@codesourcery.com>
9165
9166 * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
9167 (genrtl_finish_compound_stmt): Likewise.
9168 (genrtl_compound_stmt): Change to return void.
9169
9170 * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
9171 move code from here to ...
9172 (genrtl_compound_stmt): ... here.
9173 (genrtl_finish_compound_stmt): Remove.
9174 (expand_stmt): Add comment.
9175
9176 2000-07-02 Zack Weinberg <zack@wolery.cumb.org>
9177
9178 * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
9179 and VOID_TYPE_P.
9180
9181 2000-07-02 Jakub Jelinek <jakub@redhat.com>
9182
9183 * cpplib.h (struct cpp_reader): New field include_depth.
9184 (struct cpp_printer): Rename last_bsd to last_id.
9185 * cppfiles.c (read_include_file): Bump include_depth.
9186 * cpplex.c (cpp_pop_buffer): Decrement include_depth.
9187 (output_line_command): Output correct #line if a header
9188 is including itself and is not protected against multiple inclusion.
9189 Use include_depth instead of buffer_stack_depth, last_id instead of
9190 last_bsd.
9191 * cppinit.c (cpp_start_read): Initialize last_id instead of
9192 last_bsd.
9193
9194 2000-07-01 Benjamin Chelf <chelf@codesourcery.com>
9195
9196 * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
9197 (c-semantics.o): New target.
9198
9199 * c-common.h (TREE_LANG_FLAG_?): Added documentation.
9200 (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
9201 (genrtl_clear_out_block): Likewise.
9202 (genrtl_goto_stmt): Likewise.
9203 (genrtl_expr_stmt): Likewise.
9204 (genrtl_decl_stmt): Likewise.
9205 (genrtl_if_stmt): Likewise.
9206 (genrtl_while_stmt): Likewise.
9207 (genrtl_do_stmt): Likewise.
9208 (genrtl_return_stmt): Likewise.
9209 (genrtl_for_stmt): Likewise.
9210 (genrtl_break_stmt): Likewise.
9211 (genrtl_continue_stmt): Likewise.
9212 (genrtl_scope_stmt): Likewise.
9213 (genrtl_switch_stmt): Likewise.
9214 (genrtl_case_label): Likewise.
9215 (genrtl_begin_compound_stmt): Likewise.
9216 (gerntl_finish_compound_stmt): Likewise.
9217 (genrtl_compound_stmt): Likewise.
9218 (genrtl_asm_stmt): Likewise.
9219 (genrtl_decl_cleanup): Likewise.
9220 (DECL_ANON_UNION_ELEMS): Likewise.
9221 (emit_local_var): Likewise.
9222 (make_rtl_for_local_static): Likewise.
9223 (expand_cond): Likewise.
9224 (expand_stmt): Likewise.
9225 (c_expand_return): Likewise.
9226 (c_expand_start_case): Likewise.
9227 (do_case): Likewise.
9228 (COMPOUND_STMT_NO_SCOPE): Likewise.
9229 (c_expand_asm_operands): Likewise.
9230 (NEW_FOR_SCOPE_P): New macro.
9231 (expand_expr_stmt_fn): New type.
9232
9233 (set_current_function_name_declared): Likewise.
9234 (current_function_name_declared): Likewise.
9235 (lang_expand_stmt): Likewise.
9236 (stmts_are_full_exprs_p): Likewise.
9237 (anon_aggr_type_p): Likewise.
9238 (lang_expand_expr_stmt): Likewise.
9239 (build_case_label): Likewise.
9240
9241 * c-decl.c (lang_expand_expr_stmt): Initialize.
9242 (stmts_are_full_exprs_p): Define.
9243 (current_function_name_declared): Likewise.
9244 (do_case): Likewise.
9245 (lang_expand_stmt): Likewise.
9246 (set_current_function_name_declared): Likewise.
9247 (anon_aggr_type_p): Likewise.
9248
9249 * c-semantics.c: New file.
9250 (expand_cond): Moved from cp/semantics.c.
9251 (genrtl_do_pushlevel): Likewise.
9252 (genrtl_clear_out_block): Likewise.
9253 (genrtl_goto_stmt): Likewise.
9254 (genrtl_expr_stmt): Likewise.
9255 (genrtl_decl_stmt): Likewise.
9256 (genrtl_if_stmt): Likewise.
9257 (genrtl_while_stmt): Likewise.
9258 (genrtl_do_stmt): Likewise.
9259 (genrtl_return_stmt): Likewise.
9260 (genrtl_for_stmt): Likewise.
9261 (genrtl_break_stmt): Likewise.
9262 (genrtl_continue_stmt): Likewise.
9263 (genrtl_scope_stmt): Likewise.
9264 (genrtl_switch_stmt): Likewise.
9265 (genrtl_case_label): Likewise.
9266 (genrtl_begin_compound_stmt): Likewise.
9267 (genrtl_finish_compound_stmt): Likewise.
9268 (genrtl_compound_stmt): Likewise.
9269 (genrtl_asm_stmt): Likewise.
9270 (genrtl_decl_cleanup): Likewise.
9271 (make_rtl_for_local_static): Moved from cp/decl.c.
9272 (emit_local_var): Likewise.
9273 (expand_stmt): Define.
9274
9275 * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
9276 (c_expand_return): Likewise.
9277 (c_expand_start_case): Likewise.
9278
9279 2000-07-01 Richard Henderson <rth@cygnus.com>
9280
9281 * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
9282 with the low 13 bits set.
9283 (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
9284 * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one
9285 of the low 13 bits into a CONST plus an adddi3.
9286 (load_symptr): Set RTX_UNCHANGING_P.
9287
9288 See ChangeLog.3 for earlier changes.