]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Merge from pch-branch up to tag pch-commit-20020603.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
1f3233d1 12002-06-03 Geoffrey Keating <geoffk@redhat.com>
2
3 Merge from pch-branch:
4
5 * gengtype.h (UNION_OR_STRUCT_P): New macro.
6 * gengtype.c (write_gc_structure_fields): Use it.
7 (write_gc_root): Use it here too.
8
9 * gengtype.c (write_gc_structure_fields): Assume that lengths
10 of typenames fit into an 'int'; don't pass a size_t to "%d" in
11 printf.
12 (write_gc_marker_routine_for_structure): Likewise.
13 (write_gc_types): Likewise.
14 (write_gc_root): Likewise.
15
16 * varray.h (VARRAY_CLEAR): New.
17 (varray_clear): Prototype.
18 * varray.c (varray_clear): New.
19 * cselib.c (reg_values_old): New.
20 (used_regs_old): New.
21 (cselib_init): Use cached varrays if available to avoid
22 generating large amounts of garbage.
23 (cselib_finish): Don't throw away old varrays.
24
25 * final.c (insn_addresses_): Move out of ifdef.
26
27 * varray.c (uses_ggc): Make more varray kinds GCable.
28 * varray.h (union varray_data_tag): Let gengtype see
29 fields 'generic' and 'te'.
30 * reg-stack.c: Include gt-reg-stack.h, ggc.h.
31 (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype.
32 (reg_to_stack): Don't call VARRAY_FREE.
33 * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE.
34 (insn_addresses_): Use gengtype to mark.
35 * gengtype.c (write_gc_structure_fields): Handle arrays of generic
36 pointers; handle generic pointers in unused union fields.
37 (get_output_file_with_visibility): Include cselib.h,
38 insn-addr.h in gtype-desc.c.
39 * function.c (prologue): Use gengtype to mark.
40 (epilogue): Likewise.
41 (sibcall_epilogue): Likewise.
42 * dependence.c: Include gt-dependence.h, ggc.h.
43 (struct def_use): Use gengtype to mark.
44 (struct loop): Likewise.
45 (struct induction): Likewise.
46 (struct dependence): Likewise.
47 (def_use_chain): Likewise.
48 (dep_chain): Likewise.
49 (loop_chain): Likewise.
50 (induction_chain): Likewise.
51 (init_dependence_analysis): Don't free anything, just clear pointers.
52 (build_def_use): Use GGC to allocate def_use.
53 (add_loop): Use GGC to allocate loop.
54 (find_induction_variable): Use GGC to allocate induction.
55 (check_node_dependence): Use GGC to allocate induction, dependence.
56 (dump_node_dependence): Don't free varrays.
57 (end_dependence_analysis): Likewise.
58 * cselib.h (struct cselib_val_struct): Use gengtype to mark.
59 (struct elt_loc_list): Likewise.
60 (struct elt_list): Likewise.
61 * cselib.c: Don't include obstack.h.
62 (hash_table): Use gengtype to mark.
63 (reg_values): Use gengtype to mark.
64 (used_regs): Use gengtype to mark.
65 (cselib_obstack): Delete.
66 (cselib_startobj): Delete.
67 (empty_vals): Mark as deletable.
68 (empty_elt_lists): Mark as deletable.
69 (empty_elt_loc_lists): Mark as deletable.
70 (new_elt_list): Use GGC to allocate struct elt_list.
71 (new_elt_loc_list): Use GGC to allocate struct elt_loc_list.
72 (clear_table): Don't delete obstack; don't unnecessarily clear
73 deletable variables.
74 (new_cselib_val): Use GGC to allocate struct cselib_val.
75 (cselib_init): Don't set up obstacks. Use GGC to allocate
76 hash table.
77 (cselib_finish): Just clear variables, don't free anything.
78 * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H).
79 (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H).
80 (dependence.o): Add dependency on gt-dependence.h, $(GGC_H).
81 (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c.
82 (gt-reg-stack.h): New rule.
83 (gt-dependence.h): New rule.
84 (gtype-desc.o): Add cselib.h, insn-addr.h.
85
86 * varray.c: Use only necessary headers.
87 (element_size): New.
88 (uses_ggc): New.
89 (varray_init): Take type, not size. Use GGC if appropriate.
90 (varray_grow): Update for change to struct varray_head_tag.
91 Use GGC if appropriate.
92 * varray.h (struct const_equiv_data): Use gengtype.
93 (enum varray_data_enum): New.
94 (union varray_data_tag): Use gengtype.
95 (struct varray_head_tag): Use gengtype. Replace size field with
96 enum varray_data_enum.
97 (varray_init): Update prototype.
98 (VARRAY_SCHED_INIT): Delete.
99 (VARRAY_*_INIT): Update for change to varray_init.
100 (VARRAY_SCHED): Delete.
101 (VARRAY_PUSH_SCHED): Delete.
102 (VARRAY_TOP_SCHED): Delete.
103 * tree.h: Update for change to length specifier.
104 * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE.
105 (clone_body): Likewise.
106 * ssa.h (ssa_definition): Use gengtype to mark.
107 * ssa.c (convert_from_ssa): Don't use VARRAY_FREE.
108 * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE.
109 * rtl.h (struct rtvec_def): Update for change to length specifier.
110 * integrate.c (expand_inline_function): Don't use VARRAY_FREE.
111 (struct initial_value_struct): Update for change to length specifier.
112 * ggc.h (ggc_add_rtx_varray_root): Delete prototype.
113 (ggc_add_tree_varray_root): Delete prototype.
114 (ggc_mark_rtx_varray): Delete prototype.
115 (ggc_mark_tree_varray): Delete prototype.
116 * ggc-common.c (ggc_add_rtx_varray_root): Delete.
117 (ggc_add_tree_varray_root): Delete.
118 (ggc_mark_rtx_varray): Delete.
119 (ggc_mark_tree_varray): Delete.
120 (ggc_mark_rtx_varray_ptr): Delete.
121 (ggc_mark_tree_varray_ptr): Delete.
122 * gengtype.h (enum typekind): Remove TYPE_VARRAY.
123 (create_varray): Delete prototype.
124 * gengtype.c (varrays): Delete.
125 (create_varray): Delete.
126 (adjust_field_type): Detect array of string pointers.
127 (process_gc_options): Remove code to handle varray_type option.
128 (set_gc_used_type): Remove TYPE_VARRAY case.
129 (output_escaped_param): New.
130 (write_gc_structure_fields): Use output_escaped_param on all
131 parameters. Handle 'skip' with 'use_param' option. Handle
132 arrays of strings. Remove TYPE_VARRAY handling.
133 (write_gc_roots): Use boolean to detect 'length' option.
134 * gengtype-yacc.y (VARRAY_TYPE): Delete token.
135 (struct_fields): Call adjust_field_type on array fields.
136 (type): Remove VARRAY_TYPE case.
137 (type_option): Likewise.
138 * gengtype-lex.l: Don't consider varray_type a keyword.
139 * function.h: Update for change to length specifier.
140 (free_eh_status): Delete prototype.
141 * function.c (free_after_compilation): Don't call free_eh_status.
142 (reorder_blocks): Don't use VARRAY_FREE.
143 * except.c (struct eh_status): Update for change to length specifier.
144 remove varray_type specifier.
145 (free_eh_status): Delete.
146 * dwarf2out.c: Include gt-dwarf2out.h.
147 (used_rtx_varray): Use gengtype to mark, move
148 outside ifdefs.
149 (incomplete_types): Likewise.
150 (decl_scope_table): Likewise.
151 (dwarf2out_init): Don't call ggc_add_tree_varray_root.
152 * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE.
153 * c-tree.h (struct lang_type): Update for change to length specifier.
154 * c-parse.in (yylexstring): Don't use VARRAY_FREE.
155 * c-objc-common.c: Include gt-c-objc-common.h.
156 (deferred_fns): Mark for gengtype.
157 (c_objc_common_init): Don't call ggc_add_tree_varray_root.
158 (expand_deferred_fns): Just set deferred_fns to 0 to free it.
159 * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h.
160 (gtype-desc.o): Update dependencies.
161 (dwarf2out.o): Add gt-dwarf2out.h.
162 (varray.o): Update dependencies.
163 (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c.
164 (gt-c-objc-common.h): New rule.
165 (gt-dwarf2out.h): New rule.
166 * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE.
167
168 * doc/gty.texi (GTY Options): Correct spelling.
169 (GGC Roots): Likewise.
170 * Makefile.in (TEXI_CPP_FILES): New.
171 (TEXI_GCC_FILES): New.
172 (TEXI_GCCINT_FILES): New.
173 (TEXI_CPPINT_FILES): New.
174 ($(docdir)/cpp.info): Use new macros.
175 ($(docdir)/gcc.info): Likewise.
176 ($(docdir)/gccint.info): Likewise.
177 ($(docdir)/cppinternals.info): Likewise.
178 (cpp.dvi): Likewise.
179 (gcc.dvi): Likewise.
180 (gccint.dvi): Likewise.
181 (cppinternals.dvi): Likewise.
182
183 * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi.
184 * doc/gccint.texi (Top): Include gty.texi.
185 * doc/gty.texi: New file.
186
187 * bitmap.c: Include ggc.h, gt-bitmap.h.
188 (bitmap_ggc_free): New.
189 (bitmap_elem_to_freelist): New.
190 (bitmap_element_free): Use bitmap_elem_to_freelist.
191 (bitmap_element_allocate): Allow use of GGC.
192 (bitmap_clear): Use bitmap_elem_to_freelist.
193 (bitmap_copy): Update for change to bitmap_element_allocate.
194 (bitmap_set_bit): Likewise.
195 (bitmap_operation): Update for changes elsewhere.
196 (bitmap_initialize): Allow to create bitmaps that will use GGC.
197 * bitmap.h (struct bitmap_element_def): Use gengtype.
198 (struct bitmap_head_def): Likewise. Also add 'using_obstack' field.
199 (bitmap_initialize): Add extra parameter.
200 (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize.
201 (BITMAP_ALLOCA): Delete.
202 (BITMAP_XMALLOC): Update for change to bitmap_initialize.
203 (BITMAP_GGC_ALLOC): New.
204 * Makefile.in (gtype-desc.o): Add bitmap.h.
205 (bitmap.o): Add gt-bitmap.h, $(GGC_H).
206 (GTFILES): Add bitmap.c.
207 (gt-bitmap.h): New rule.
208 ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h.
209 * basic-block.h: Update for changes to bitmap_initialize.
210 * except.c (exception_handler_label_map): Move into...
211 (struct eh_status): Here.
212 (struct eh_region): Make 'aka' GCable.
213 (free_eh_status): Don't need to specially handle
214 exception_handler_label_map.
215 (add_ehl_entry): Update for changes to exception_handler_label_map.
216 (find_exception_handler_labels): Likewise.
217 (remove_exception_handler_label): Likewise.
218 (maybe_remove_eh_handler): Likewise.
219 (for_each_eh_label): Likewise.
220 (remove_eh_handler): Allocate 'aka' using GGC.
221 * gengtype.c (get_output_file_with_visibility): Add bitmap.h
222 to list of includes.
223
224 * gengtype.c (write_gc_marker_routine_for_structure): Name
225 the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'.
226 (write_gc_types): Arrange for the tests with NULL to be inlined.
227 (write_gc_roots): Update uses of procedure pointers.
228 * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def.
229
230 * Makefile.in (explow.o): Add dependency on gt-explow.h.
231 (sdbout.o): Add dependency on gt-sdbout.h.
232
233 * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries.
234 (mem_attrs_htab): Likewise.
235 (init_emit_once): Don't call ggc_add_deletable_htab.
236 * fold-const.c (size_htab): Use gengtype to clear unused entries.
237 (size_int_type_wide): Don't call ggc_add_deletable_htab.
238 * gengtype.c (finish_root_table): Add LASTNAME and TNAME
239 parameters, use them, change callers.
240 (write_gc_root): Add IF_MARKED parameter, use it, change callers.
241 (write_gc_roots): Handle 'if_marked' option.
242 (main): Don't need to call set_gc_used_type any more.
243 * ggc.h (ggc_htab_marked_p): Delete.
244 (ggc_htab_mark): Delete.
245 (struct ggc_cache_tab): New.
246 (gt_ggc_cache_rtab): New declaration.
247 * ggc-common.c (struct d_htab_root): Delete.
248 (d_htab_roots): Delete.
249 (ggc_add_deletable_htab): Delete.
250 (ggc_htab_delete): Handle new htab-deleting mechanism.
251 (ggc_mark_roots): Use new htab-deleting mechanism.
252 * tree.c (type_hash_table): Use gengtype to clear unused entries.
253 Make static.
254 (init_obstacks): Don't call ggc_add_deletable_htab.
255
256 * objc/objc-act.h (struct hashed_attribute): Use gengtype.
257 (struct hashed_entry): Likewise.
258 (nst_method_hash_list): Likewise.
259 (cls_method_hash_list): Likewise.
260 (HASH_ALLOC_LIST_SIZE): Delete.
261 (ATTR_ALLOC_LIST_SIZE): Delete.
262 * objc/objc-act.c (hash_init): Use ggc to allocate
263 nst_method_hash_list, cls_method_hash_list.
264 (hash_enter): Use ggc to allocate; allocate one entry at a time.
265 (hash_add_attr): Likewise.
266 (ggc_mark_hash_table): Delete.
267 (objc_act_parse_init): Delete.
268 (objc_init): Delete reference to objc_act_parse_init.
269 * tlink.c: Replace hash.h with hashtab.h. Explicitly include
270 obstack.h. Replace references to 'struct hash_table' with htab_t.
271 (struct symbol_hash_entry): Replace hash header with key field.
272 (struct file_hash_entry): Replace hash header with key field.
273 (struct demangled_hash_entry): Replace hash header with key field.
274 (hash_string_eq): New.
275 (hash_string_hash): New.
276 (symbol_hash_newfunc): Delete.
277 (symbol_hash_lookup): Modify to use htab_t.
278 (file_hash_newfunc): Delete.
279 (file_hash_lookup): Modify to use htab_t.
280 (demangled_hash_newfunc): Delete.
281 (demangled_hash_lookup): Modify to use htab_t.
282 (tlink_init): Modify to use htab_t.
283 * hash.h: Delete.
284 * hash.c: Delete.
285 * ggc.h: Delete forward structure declarations.
286 Delete prototypes for deleted functions.
287 * ggc-common.c: Don't include hash.h.
288 (ggc_add_tree_hash_table_root): Delete.
289 (ggc_mark_tree_hash_table_entry): Delete.
290 (ggc_mark_tree_hash_table): Delete.
291 (ggc_mark_tree_hash_table_ptr): Delete.
292 * gengtype.c (write_gc_structure_fields): Allow param_is option.
293 (write_gc_marker_routine_for_structure): Use visibility of
294 the parameter if there is one.
295 * function.c: Replace hash.h with hashtab.h. Replace references
296 to 'struct hash_table *' with htab_t.
297 (struct insns_for_mem_entry): Include a plain key.
298 (fixup_var_refs_insns_with_hash): Update to use htab_t.
299 (insns_for_mem_newfunc): Delete.
300 (insns_for_mem_hash): Update to use htab_t.
301 (insns_for_mem_comp): Likewise.
302 (insns_for_mem_walk): Likewise.
303 * c-lang.c: Include ggc.h.
304 * Makefile.in (OBJS): Remove hash.o.
305 (c-lang.o): Add GGC_H.
306 (COLLECT2_OBJS): Remove hash.o.
307 (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H.
308 (ggc-common.o): Remove hash.h.
309 (function.o): Remove hash.h, add HASHTAB_H.
310 (genautomata.o): Remove hash.h, add HASHTAB_H.
311
312 * varasm.c (mark_const_str_htab_1): Delete.
313 (mark_const_str_htab): Delete.
314 (const_str_htab_del): Delete.
315 (const_str_htab): Use gengtype to mark.
316 (init_varasm_once): Use gengtype to mark hashtables. Use GC to
317 allocate them.
318 * tree.c (mark_tree_hashtable_entry): Delete.
319 (mark_tree_hashtable): Delete.
320 * tree.h (mark_tree_hashtable): Delete prototype.
321 * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL.
322 (ggc_mark): Likewise.
323 (ggc_calloc): New.
324 (htab_create_ggc): New.
325 * ggc-common.c (ggc_calloc): New.
326 * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT.
327 (struct type): Add param_struct structure.
328 * gengtype.c (param_structs): New.
329 (adjust_field_type): Handle param_is option.
330 (set_gc_used_type): Handle TYPE_PARAM_STRUCT.
331 (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c.
332 (write_gc_structure_fields): Add new PARAM parameter. Update
333 callers. Handle use_param option. Handle TYPE_PARAM_STRUCT.
334 (write_gc_marker_routine_for_structure): Add new PARAM parameter.
335 Use it to generate function name. Update callers.
336 (write_gc_types): Add new PARAM_STRUCTS parameter. Update callers.
337 Process them.
338 (write_gc_roots): Handle TYPE_PARAM_STRUCT. Allow param_is
339 option.
340 (main): Define PTR as pointer-to-scalar. Don't specially
341 mark deferred_string or ehl_map_entry.
342 * gengtype-yacc.y (PARAM_IS): Add new token.
343 (externstatic): Use adjust_field_type.
344 (type_option): Add PARAM_IS.
345 * gengtype-lex.l: Add rule for typedef of function pointers.
346 Add rule for PARAM_IS.
347 (IWORD): Add size_t.
348 * except.c (exception_handler_label_map): Use gengtype to mark.
349 (type_to_runtime_map): Likewise.
350 (mark_ehl_map_entry): Delete.
351 (mark_ehl_map): Delete.
352 (init_eh): Use gengtype for roots; use GC to allocate hash tables.
353 (t2r_mark_1): Delete.
354 (t2r_mark): Delete.
355 * Makefile.in (gtype-desc.o): Correct dependencies.
356 (GTFILES): Add hashtab.h.
357 (genautomata.o): Actually uses hashtab.h.
358
359 * Makefile.in (stringpool.o): Add $(GGC_H).
360 (dwarf2asm.o): Likewise.
361 (GTFILES): Add hashtable.h.
362 * c-common.h (struct c_common_identifier): Use gengtype.
363 * c-decl.h (c_mark_tree): Delete.
364 * c-lang.c (LANG_HOOKS_MARK_TREE): Delete.
365 * c-tree.h (struct lang_identifier): Use gengtype.
366 (union lang_tree_node): New.
367 (c_mark_tree): Delete prototype.
368 * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy
369 dwarf2_debug_hooks.
370 * gengtype-lex.l (IWORD): Allow 'bool'.
371 (ptr_alias): Match.
372 * gengtype-yacc.y (ALIAS): New token.
373 (type_option): New rule.
374 (option): Use type_option.
375 * gengtype.c (process_gc_options): New.
376 (set_gc_used_type): Use it.
377 (write_gc_structure_fields): Add 'bitmap' parameter, change callers.
378 Add new variable 't' to hold the type of the field being processed.
379 Add more error checking. Use UNION_P when looking at 'desc' option.
380 Handle language-specific structures containing other
381 language-specific structures.
382 (write_gc_types): Handle 'ptr_alias' option.
383 (main): Don't need to specially output lang_type, lang_decl, lang_id2.
384 * ggc-common.c (ggc_pending_trees): Delete.
385 (ggc_mark_roots): Don't manipulate ggc_pending_trees.
386 (ggc_mark_trees): Delete.
387 (gt_ggc_m_tree_node): Delete.
388 * ggc.h (ggc_pending_trees): Delete.
389 (ggc_mark_tree): Make alias of gt_ggc_m_tree_node.
390 * hashtable.h (ht_identifier): Use gengtype.
391 * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete.
392 * langhooks.h (struct lang_hooks): Delete mark_tree.
393 * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks
394 anyway.
395 * system.h: Poison LANG_HOOKS_MARK_TREE.
396 * tree.c (tree_node_structure): New.
397 * tree.h (struct tree_common): Use gengtype.
398 (struct tree_int_cst): Likewise.
399 (struct tree_real_cst): Likewise.
400 (struct tree_string): Likewise.
401 (struct tree_complex): Likewise.
402 (struct tree_vector): Likewise.
403 (struct tree_identifier): Likewise.
404 (struct tree_list): Likewise.
405 (struct tree_vec): Likewise.
406 (struct tree_exp): Likewise.
407 (struct tree_block): Likewise.
408 (struct tree_type): Likewise.
409 (struct tree_decl): Likewise.
410 (enum tree_structure_enum): New.
411 (union tree_node): Use gengtype, with an alias.
412 (tree_node_structure): Prototype.
413 * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete.
414
415 Merge to tag pch-merge-20020430. The LANG_HOOKS_FUNCTION_MARK
416 macro was deleted. The LANG_HOOKS_FUNCTION_FREE macro was renamed
417 to LANG_HOOKS_FUNCTION_FINAL.
418 * Makefile.in (GTFILES): Add bitmap.h.
419 * except.c (struct eh_region): Mark field 'aka' to be skipped.
420
421 * config/alpha/alpha.c [TARGET_ABI_UNICOSMK]
422 (alpha_init_machine_status): Give proper type.
423 * Makefile.in (c-lang.o): Depend on gtype-c.h.
424 (optabs.o): Depend on gt-optabs.h.
425 (GTFILES): Add optabs.o.
426 (gt-optabs.h): Add rule.
427 * optabs.c: Include gt-optabs.h.
428
429 * gengtype.c (set_gc_used_type): Correct some errors in last change.
430 (write_gc_structure_fields): If a field which should be NULL is
431 not, abort.
432 * c-pragma.c: Move struct align_stack and variable alignment_stack
433 out from the ifdef.
434
435 * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h.
436 * config/xtensa/xtensa.c: Include gt-cris.h.
437 (struct machine_function): Use gengtype to mark.
438 * config/mmix/mmix.h (struct machine_function): Use gengtype
439 to mark.
440 * config/cris/t-cris: Add dependencies for gt-cris.h.
441 * config/cris/cris.c: Include gt-cris.h.
442 (struct machine_function): Use gengtype to mark.
443 * config/rs6000/rs6000.h (struct machine_function): Use gengtype
444 to mark.
445 * doc/tm.texi (Per-Function Data): Delete references to
446 mark_machine_status.
447 * config/ia64/ia64.c (ia64_override_options): Don't set
448 mark_machine_status.
449 * config/i386/i386.c (override_options): Likewise.
450 * config/d30v/d30v.c (d30v_init_expanders): Likewise.
451 * config/arm/arm.c (arm_init_expanders): Likewise.
452 * config/alpha/alpha.c (override_options): Likewise.
453 * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO.
454 * gengtype.c (set_gc_used_type): Handle 'maybe_null' option.
455 (write_gc_structure_fields): Don't handle 'really' option.
456 Handle 'maybe_null' option.
457 (write_gc_types): Handle 'maybe_null' option.
458 * function.h (struct function): Don't use "really".
459 (mark_machine_status): Delete declaration.
460 (mark_lang_status): Delete declaration.
461 (gt_ggc_mr_machine_function): Delete prototype.
462 (gt_ggc_mr_language_function): Delete prototype.
463 * function.c (mark_machine_status): Delete.
464 (mark_lang_status): Delete.
465 (gt_ggc_mr_machine_function): Delete.
466 (gt_ggc_mr_language_function): Delete.
467 * c-tree.h (mark_c_function_context): Delete prototype.
468 * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status.
469 * c-decl.c (struct language_function): Rename from struct
470 c_language_function. Update uses. Use gengtype to mark.
471 (mark_c_function_context): Delete.
472 * c-common.h (struct c_language_function): Rename from struct
473 language_function.
474 (mark_stmt_tree): Delete prototype.
475 (c_mark_lang_decl): Delete prototype.
476 (mark_c_language_function): Delete prototype.
477 * c-common.c (mark_stmt_tree): Delete.
478 (c_mark_lang_decl): Delete.
479 (mark_c_language_function): Delete.
480
481 * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT.
482 (lang_bitmap): New typedef. Use where appropriate.
483 (struct type): Add gc_used field, lang_struct field.
484 (UNION_P): New macro.
485 (new_structure): New prototype.
486 (find_structure): Remove 'pos' parameter. Change all callers.
487 * gengtype-lex.l: Update for changes to find_structure.
488 * gengtype-yacc.y (typedef_struct): Use new_structure.
489 (yacc_ids): Suppress warning.
490 (type): Use new_structure.
491 * gengtype.c (string_type): Update for changes to struct type.
492 (find_structure): Just find a structure, don't worry about
493 creating one.
494 (new_structure): New.
495 (note_yacc_type): Use new_structure.
496 (set_gc_used_type): New.
497 (set_gc_used): New.
498 (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT.
499 (write_gc_types): Handle TYPE_LANG_STRUCT.
500 (write_gc_marker_routine_for_structure): New.
501 (main): Call set_gc_used. Add some calls to set_gc_used_type
502 for places where GCC doesn't use gengtype properly yet.
503 * ggc.h (gt_ggc_m_rtx_def): Don't prototype.
504 (gt_ggc_m_tree_node): Likewise.
505
506 * varasm.c (copy_constant): Call expand_constant if we hit
507 something we can't recognise.
508
509 * ggc-common.c (ggc_mark_rtvec_children): Delete.
510 (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec.
511 (lang_mark_false_label_stack): Delete.
512 * rtl.h (struct rtvec_def): Use gengtype to mark.
513 * ggc.h (ggc_mark_rtvec): Delete.
514 (gt_ggc_m_rtvec_def): Delete.
515 (ggc_mark_nonnull_tree): Delete.
516 (ggc_mark_rtvec_children): Delete prototype.
517 (lang_mark_false_label_stack): Delete declaration.
518
519 * gengtype.h (note_yacc_type): Add prototype.
520 * gengtype.c (note_yacc_type): New function.
521 * gengtype-lex.l: Add lexer support for yacc files.
522 * gengtype-yacc.y (start): Extract union from yacc files.
523 (yacc_union): New rule.
524 (yacc_typematch): New rule.
525 (yacc_ids): New rule.
526 (enum_items): Tweak for efficiency.
527 (optionseq): Likewise.
528
529 * c-common.h (struct language_function): Use gengtype.
530 (struct c_lang_decl): Likewise.
531 * c-tree.h (struct lang_decl): Likewise.
532 (struct lang_type): Likewise.
533 * c-decl.c (lang_mark_tree): Use generated marker routines to mark
534 tree language substructures.
535
536 * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with
537 ggc_mark_tree.
538 * dwarf2asm.c (mark_indirect_pool_entry): Likewise.
539
540 * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays.
541
542 * stmt.c (struct nesting): Add discriminator. Use gengtype to
543 mark. Remove 'data.block.cleanup_ptr' field.
544 (struct stmt_status): Use usual technique to mark struct nesting.
545 (gt_ggc_mr_nesting_cond): Delete.
546 (gt_ggc_mr_nesting_loop): Delete.
547 (gt_ggc_mr_nesting_block): Delete.
548 (gt_ggc_mr_nesting_case_stmt): Delete.
549 (expand_start_cond): Set discriminator.
550 (expand_start_loop): Likewise.
551 (expand_start_null_loop): Likewise.
552 (expand_start_bindings_and_block): Set discriminator. Don't set
553 deleted fields.
554 (expand_decl_cleanup): Replace 'cleanup_ptr' with
555 &thisblock->data.block.cleanups.
556 (expand_start_case): Set discriminator.
557 (expand_start_case_dummy): Set discriminator.
558
559 * ggc-callbacks.c: Remove.
560
561 * gengtype.h (struct type): Add 'u.s.bitmap' field.
562 (find_structure): Add 'pos' parameter.
563 * gengtype-lex.l: Update callers to find_structure.
564 * gengtype-yacc.y: Likewise.
565 * gengtype.c (find_structure): Allow for structures to be defined
566 in multiple language backends.
567 (get_output_file_with_visibility): Include debug.h in gtype-desc.c.
568 (counter): Rename to gc_counter.
569 (write_gc_structure_fields): Fail when writing out fields for
570 an incomplete structure. Ignore arrays of scalars. Handle
571 'tree_vec' special.
572 (write_gc_types): Reset counter for each procedure written.
573
574 * stmt.c (add_case_node): Use GGC to allocate struct case_node.
575 (free_case_nodes): Delete.
576 (expand_end_case_type): Delete call to free_case_nodes.
577
578 * Makefile.in (cselib.o): Include gt-<filename>.h.
579 (gcse.o): Likewise.
580 (profile.o): Likewise.
581 (alias.o): Likewise.
582 (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and
583 alphabetize backend files.
584 (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules.
585 * alias.c: Use gengtype for roots.
586 * c-common.h (struct stmt_tree_s): Use gengtype.
587 * c-decl.c: Use gengtype for roots.
588 * cselib.c: Use gengtype for roots.
589 * expr.c: Use gengtype for roots.
590 * fold-const.c: Use gengtype for roots.
591 * gcse.c: Use gengtype for roots.
592 * gengtype-lex.l: Handle typedefs of function types.
593 Allow for empty array bounds.
594 Allow processing to stop on initialisers.
595 * gengtype-yacc.y (externstatic): Stop processing on initialisers.
596 (semiequal): New rule.
597 * gengtype.c (create_file): Tidy output files.
598 (get_output_file_with_visibility): Fix paren warning. Fix bug
599 involving multiple input files mapping to one output file.
600 (write_gc_structure_fields): Skip arrays of scalars.
601 (write_gc_types): Tidy output files.
602 (write_gc_root): New function.
603 (write_gc_roots): Fix bugs, add support for roots that are
604 structures.
605 * ggc-common.c (ggc_mark_rtx_ptr): Delete.
606 (ggc_mark_tree_ptr): Delete.
607 (ggc_add_rtx_root): Delete.
608 (ggc_add_tree_root): Delete.
609 (ggc_del_root): Delete.
610 * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to
611 allocate struct initial_value_struct.
612 * profile.c: Use gengtype for roots.
613 * sdbout.c: Use gengtype for roots.
614 * varasm.c (mark_weak_decls): Delete unused prototype.
615 (mark_const_hash_entry): Delete unused function.
616 * config/darwin-protos.h: Use gengtype for roots.
617 (machopic_add_gc_roots): Delete.
618 * config/arm/arm.c: Use gengtype for roots.
619 * config/arm/arm.h: Use gengtype for roots.
620 * config/c4x/c4x-protos.h: Use gengtype for roots.
621 * config/c4x/c4x.c (c4x_add_gc_roots): Delete.
622 * config/d30v/d30v-protos.h: Use gengtype for roots.
623 * config/d30v/d30v.c (d30v_add_gc_roots): Delete.
624 * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots.
625 * config/dsp16xx/dsp16xx.h: Use gengtype for roots.
626 * config/ia64/ia64-protos.h: Use gengtype for roots.
627 * config/ia64/ia64.c (ia64_add_gc_roots): Delete.
628 * config/m68hc11/m68hc11-protos.h: Use gengtype for roots.
629 * config/m68hc11/m68hc11.c (z_reg): Make global.
630 (z_reg_qi): Make global.
631 (m68hc11_add_gc_roots): Delete.
632 * config/mcore/mcore-protos.h: Use gengtype for roots.
633 * config/mcore/mcore.c (mcore_add_gc_roots): Delete.
634 * config/mips/mips.c (mips_add_gc_roots): Delete.
635 * config/mips/mips.h: Use gengtype for roots.
636 * config/mmix/mmix.c (override_options): Use gengtype for roots.
637 * config/mmix/mmix.h: Use gengtype for roots.
638 * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots.
639 * config/mn10200/mn10200.h: Use gengtype for roots.
640 * config/pa/pa.c: Use gengtype for roots, marking.
641 (struct deferred_plabel): Use GGC, gengtype.
642 (pa_add_gc_roots): Delete.
643 (mark_deferred_plabels): Delete.
644 * config/pj/pj-protos.h: Use gengtype for roots.
645 * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define.
646 * config/rs6000/rs6000.c: Use gengtype for roots. Don't call
647 machopic_add_gc_roots.
648 * config/rs6000/rs6000.h: Use gengtype for roots.
649 * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h.
650 (gt-darwin.h): Add rule.
651 * config/sh/sh.c: Use gengtype for roots.
652 * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h.
653 (gt-sh.h): Add rule.
654 * config/sparc/sparc.c: Use gengtype for roots.
655 (sparc_add_gc_roots): Delete.
656 (struct ultrasparc_pipeline_state): Use GGC, gengtype.
657 (mark_ultrasparc_pipeline_state): Delete.
658 * config/sparc/sparc.h: Use gengtype for roots.
659
660 * Makefile.in (c-parse.o): Update dependencies.
661 (c-common.o): Likewise.
662 (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in.
663 Add dependencies for the files they generate.
664 * c-common.c: Replace ggc_add_* uses with GTY annotations.
665 * c-common.h: Likewise.
666 * c-decl.c: Likewise.
667 (gt_ggc_mp_binding_level): Delete.
668 * c-lang.c: Include gtype-c.h.
669 * c-parse.in: Replace ggc_add_* uses with GTY annotations. Include
670 gt-c-parse.h.
671 * c-pragma.h: Replace ggc_add_* uses with GTY annotations.
672 (gt_ggc_mp_align_stack): Delete.
673 * c-tree.h: Replace ggc_add_* uses with GTY annotations.
674 * function.c: Replace ggc_add_* uses with GTY annotations.
675 (gt_ggc_mp_function): Delete.
676 * function.h: Replace ggc_add_* uses with GTY annotations.
677 * gengtype.c (lang_names): New.
678 (NUM_BASE_FILES): New.
679 (open_base_files): Create language base files.
680 (startswith): New.
681 (get_file_basename): New.
682 (get_base_file_bitmap): New.
683 (get_output_file_with_visibility): Rename from get_output_file.
684 Add more mappings for various C/Objc filenames.
685 (finish_root_table): New.
686 (write_gc_roots): Handle dependencies and scoping properly.
687 * gengtype.h: Add prototypes for new functions.
688 * ggc-common.c (struct deletable_root): Delete.
689 (deletables): Delete.
690 (ggc_add_deletable_root): Delete.
691 (ggc_mark_roots): No need to deal with deleted functionality.
692 * ggc.h (ggc_add_deletable_root): Delete prototype.
693 * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency.
694 (gtype-objc.h): Add rule to create.
695 * objc/config-lang.in (gtfiles): New.
696 * objc/objc-act.c: Allocate imp_list using GGC. Replace uses of
697 ggc_add_* with GTY markers. Include gtype-objc.h.
698 (ggc_mark_imp_list): Delete.
699 * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers.
700 * objc/objc-lang.c: Random Whitespace Change.
701
702 * except.h (exception_handler_labels): Delete.
703 (get_exception_handler_labels): New.
704 * except.c (exception_handler_labels): Delete.
705 (struct eh_status): Add exception_handler_labels field.
706 (doing_eh): Don't add exception_handler_labels as root.
707 (free_eh_status): Don't need to free exception_handler_labels.
708 (get_exception_handler_labels): New.
709 (find_exception_handler_labels): Update for move of
710 exception_handler_labels.
711 (remove_exception_handler_label): Likewise.
712 * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels.
713 * jump.c (rebuild_jump_labels): Likewise.
714 * loop.c (find_and_verify_loops): Likewise.
715 * sched-rgn.c (is_cfg_nonregular): Likewise.
716
717 * gengtype.c (write_gc_structure_fields): Handle variable-length
718 TYPE_ARRAYs.
719
720 * varasm.c (struct weak_syms): Use GGC, gengtype.
721 (mark_weak_decls): Delete.
722 (weak_decls): Likewise.
723 (add_weak): Likewise.
724 (remove_from_pending_weak_list): Likewise.
725 (init_varasm_once): Likewise.
726
727 * Makefile.in (gtype-desc.o): Add libfuncs.h dependency.
728 (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c,
729 stor-layout.c, regclass.c, and lists.c.
730 Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h
731 gt-regclass.h and gt-lists.h on s-gtype.
732 * emit-rtl.c: Use gengtype for roots. Include gt-emit-rtl.h.
733 * except.c: Use gengtype for roots.
734 * explow.c: Use gengtype for roots. Include gt-explow.h.
735 * expr.h (init_stor_layout_once): Delete prototype.
736 * function.c: Use gengtype for roots.
737 * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing.
738 * gengtype-yacc.y (start): Can also be an externstatic.
739 (externstatic): New production.
740 (struct_fields): Correct array bounds inversion for 2-d arrays.
741 * gengtype.c (variables): New variable.
742 (note_variable): New function.
743 (get_output_file): Include libfuncs.h into gtype-desc.c.
744 (get_output_file_name): New function.
745 (write_gc_structure_fields): Suppress warnings.
746 (write_gc_types): Make static.
747 (put_mangled_filename): New function.
748 (write_gc_roots): New function.
749 (main): Call write_gc_roots.
750 * gengtype.h (note_variable): Prototype.
751 (get_output_file_name): Prototype.
752 (write_gc_types): Delete prototype.
753 * ggc.h: Clean up unnecessary structure predefinitions.
754 (struct ggc_root_tab): Define.
755 (gt_ggc_m_rtx_def): Make function, not macro.
756 (gt_ggc_m_tree_node): Likewise.
757 * libfuncs.h: Use gengtype for roots.
758 * lists.c: Use gengtype for roots. Include gt-lists.h.
759 (init_EXPR_INSN_LIST_cache): Delete.
760 * optabs.c: Use gengtype for roots.
761 (gt_ggc_mp_optab): Delete.
762 * optabs.h: Use gengtype for roots.
763 * regclass.c: Use gengtype for roots. Include gt-regclass.h.
764 * rtl.h: Use gengtype for roots.
765 (init_EXPR_INSN_LIST_cache): Delete prototype.
766 * stor-layout.c: Use gengtype for roots.
767 Include gt-stor-layout.h.
768 (init_stor_layout_once): Delete.
769 * toplev.c: Use gengtype for roots. Delete calls to deleted
770 routines.
771 * tree.c: Use gengtype for roots.
772 * tree.h: Use gengtype for roots.
773 * varasm.c: Use gengtype for roots.
774
775 * Makefile.in (GTFILES): Add @all_gtfiles@.
776 * configure: Regenerate.
777 * configure.in: Construct all_gtfiles from the gtfiles definitions
778 in config-lang.in.
779 * gengtype-yacc.y (type): Warn about duplicate structure names.
780 * gengtype.c (get_output_file): Handle .c files in language
781 subdirectories.
782
783 * Makefile.in (GTFILES): Run gengtype on all the config files
784 and on the target .c file.
785 * except.c (mark_eh_region): Delete.
786 (init_eh_for_function): Use GGC on struct eh_status.
787 (mark_eh_status): Delete.
788 (free_eh_status): Use GGC.
789 (expand_eh_region_start): Use GGC to
790 (collect_eh_region_array): Allocate last_region_number using GGC.
791 (duplicate_eh_region_1): Use GGC to allocate struct eh_region.
792 (remove_eh_handler): Let GGC free struct eh_region.
793 (add_call_site): Use GGC to reallocate call_site_record array.
794 * function.c (init_machine_status): Update calling sequence.
795 (mark_machine_status): Likewise.
796 (mark_lang_status): Likewise.
797 (prepare_function_start): Update init_machine_status call.
798 (mark_function_status): Delete.
799 (maybe_mark_struct_function): Delete.
800 (ggc_mark_struct_function): Delete.
801 (gt_ggc_mp_function): New.
802 (gt_ggc_mr_machine_function): New.
803 (gt_ggc_mr_language_function): New.
804 (init_function_once): Use canonical names.
805 * function.h (struct function): Use gengtype.
806 (init_machine_status): Return the structure.
807 (mark_machine_status): Take a 'void *'.
808 (mark_lang_status): Likewise.
809 * ggc-common.c (ggc_mark_trees): Use canonical name for
810 ggc_mark_struct_function.
811 * tree.h (ggc_mark_struct_function): Delete prototype.
812 * config/alpha/alpha.c (alpha_mark_machine_status): Delete.
813 (alpha_init_machine_status): Likewise.
814 (override_options): Use canonical name for alpha_mark_machine_status.
815 * config/alpha/unicosmk.h (struct machine_function): Use gengtype.
816 * config/arm/arm.h (struct machine_function): Use gengtype.
817 * config/arm/arm.c (arm_mark_machine_status): Delete.
818 (arm_init_machine_status): Update calling sequence.
819 (arm_init_expanders): Use canonical name for arm_mark_machine_status.
820 * config/cris/cris.c (cris_init_machine_status): Update
821 calling sequence.
822 * config/d30v/d30v.h (struct machine_function): Use gengtype.
823 * config/d30v/d30v.c (d30v_init_machine_status): Update
824 calling sequence.
825 (d30v_mark_machine_status): Delete.
826 * config/i386/i386.c: Include gt-i386.h.
827 (struct machine_function): Use gengtype.
828 (ix86_init_machine_status): Update calling sequence.
829 (ix86_mark_machine_status): Delete.
830 (override_options): Use canonical namke for ix86_mark_machine_status.
831 * config/ia64/ia64.h (struct machine_function): Use gengtype.
832 * config/ia64/ia64.c (ia64_init_machine_status): Update calling
833 sequence.
834 (ia64_mark_machine_status): Delete.
835 (ia64_override_options): Use canonical name for
836 ia64_mark_machine_status.
837 * config/mmix/mmix.c (mmix_init_machine_status): Update calling
838 sequence.
839 * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise.
840 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
841 * gengtype.c (get_output_file): Fix warning.
842 (main): Add prototype to suppress warning.
843 * tree.c: Remove tree_hash_mark prototype.
844
845 * tree.h (init_stmt): Delete prototype.
846 * toplev.c (lang_independent_init): Don't call init_stmt.
847 * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'.
848 (stmt_obstack): Delete.
849 (POPSTACK): No need to free 'struct nesting'.
850 (gt_ggc_mr_nesting_cond): Use canonical names.
851 (gt_ggc_mr_nesting_loop): Use canonical names.
852 (gt_ggc_mr_nesting_block): Use canonical names.
853 (gt_ggc_mr_nesting_case_stmt): Use canonical names.
854 (mark_stmt_status): Delete.
855 (init_stmt): Delete.
856 (clear_last_expr): Clear both last_expr_type and last_expr_value.
857 Use it everywhere that last_expr_type was cleared.
858 * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root.
859 (zap_lists): Delete.
860 * ggc.h (ggc_add_deletable_root): Prototype.
861 (mark_stmt_status): Remove prototype.
862 * ggc-common.c (ggc_add_deletable_root): New.
863 (ggc_mark_roots): Handle deletable roots.
864 * function.c (ggc_mark_struct_function): Use canonical name
865 for mark_stmt_status.
866 * emit-rtl.c (free_sequence_stack): New.
867 (start_sequence): Use a freelist for sequences.
868 (end_sequence): Likewise.
869 (init_emit_once): Add free_sequence_stack as a deleteable root.
870 * c-pragma.c Include gt-c-pragma.h.
871 (struct align_stack): Use gengtype.
872 (push_alignment): Use GGC for struct align_stack.
873 (mark_align_stack): Delete.
874 (gt_ggc_mp_align_stack): New.
875 (init_pragma): Use canonical name for mark_align_stack.
876 * c-decl.c: Include gt-c-decl.h.
877 (struct binding_level): Use gengtype.
878 (make_binding_level): Use GGC; handle the freelist here.
879 (pop_binding_level): New.
880 (pushlevel): Move code into make_binding_level.
881 (push_label_level): Likewise.
882 (poplevel): Move code into pop_binding_level.
883 (pop_label_level): Likewise.
884 (mark_binding_level): Delete.
885 (gt_ggc_mp_binding_level): New.
886 (c_init_decl_processing): Use canonical name for mark_binding_level.
887 Add free_binding_level as deletable root.
888 (mark_c_function_context): Use canonical name for mark_binding_level.
889 * Makefile.in (c-decl.o): Add gt-c-decl.h.
890 (c-pragma.o): Add gt-c-pragma.h.
891 (GTFILES): Add c-decl.c and c-pragma.c.
892 (gt-c-decl.h, gt-c-pragma.h): Create using gengtype.
893
894 * tree.c (struct type_hash): Use gengtype.
895 (init_obstacks): Use canonical name for type_hash_mark.
896 (type_hash_mark): Delete.
897 Include gt-tree.h.
898 * rtl.h (struct mem_attrs): Use gengtype.
899 * optabs.h (struct optab): Use gengtype.
900 * optabs.c (expand_binop): Squish signed/unsigned warning.
901 (mark_optab): Make local, use canonical name, use autogenerated
902 marker procedure.
903 (init_optabs): Use canonical name for mark_optab.
904 (new_optab): Use GGC to allocate optabs.
905 * ggc.h: Delete mark_optab prototype.
906 * ggc-common.c (ggc_mark_rtx_children): Use canonical name for
907 mem_attrs marker procedure.
908 * gengtype.c (get_output_file): Include headers in gtype-desc.c
909 explicitly rather than deducing them from file names.
910 (write_gc_structure_fields): Handle arrays of structures.
911 (main): Return non-zero exit code if errors occur during output.
912 * emit-rtl.c (mem_attrs_mark): Delete.
913 (init_emit_once): Use canonical name for mem_attrs marker procedure.
914 * Makefile.in (gtype-desc.o): Explicitly name dependencies.
915 (tree.o): Depend on gt-tree.h.
916 (GTFILES): Add rtl.h, optabs.h, tree.c.
917 (gt-tree.h): Add it to s-gtype rule.
918
919 * .cvsignore: Ignore gengtype flex/bison generated files.
920 * Makefile.in (GGC_H): Add gtype-desc.h.
921 (OBJS): Add gtype-desc.o.
922 (GEN): Add gengtype.
923 (STAGESTUFF): Add gengtype.
924 (varasm.o): Add gt-varasm.h.
925 (stmt.o): Add gt-stmt.h.
926 (except.o): Add gt-except.h.
927 (integrate.o): Add gt-integrate.h.
928 (GTFILES): New.
929 Add new rules for new files.
930 * configure: Regenerate.
931 * configure.in: Correct defaults.h paths.
932 * emit-rtl.c (mark_sequence_stack): Delete.
933 (mark_emit_status): Delete.
934 (start_sequence): Allocate sequence structures using GGC.
935 (end_sequence): Allocate sequence structures using GGC.
936 * except.c: Use gengtype for various structures. Include
937 gt-except.h.
938 * expr.c (mark_expr_status): Delete.
939 * function.c: Use gengtype for various structures. Include
940 gt-function.h.
941 (mark_function_status): Use standard gt_ggc names for marker functions.
942 (ggc_mark_struct_function): Likewise.
943 * function.h: Use gengtype for various structures.
944 * gengtype-lex.l: New file.
945 * gengtype-yacc.y: New file.
946 * gengtype.c: New file.
947 * gengtype.h: New file.
948 * ggc.h: Include gtype-desc.h. Alias some marker procedures to
949 the standard names. Remove some now-unnecessary prototypes.
950 * integrate.c: Use gengtype for various structures. Include
951 gt-integrate.h.
952 (mark_hard_reg_initial_vals): Delete.
953 * integrate.h (mark_hard_reg_initial_vals): Delete.
954 * stmt.c: Use gengtype for various structures. Include
955 gt-stmt.h.
956 (mark_case_node): Delete.
957 (mark_goto_fixup): Delete.
958 (mark_stmt_status): Use standard gt_ggc names for marker functions.
959 * system.h: Define GTY to empty. In flex/bison files,
960 don't poison malloc or realloc, instead just define them to
961 xmalloc and xrealloc.
962 * varasm.c: Use gengtype for various structures. Include
963 gt-varasm.h. Use standard gt_ggc names for marker functions.
964 (mark_pool_constant): Delete.
965 (mark_varasm_status): Delete.
966 (decode_rtx_const): #if 0 out non-typesafe hack.
967
968 * function.h (free_lang_status): Mark as obsolete.
969 * function.c (free_lang_status): Mark as obsolete.
970 * c-decl.c (push_c_function_context): Use GC to allocate and free
971 struct language_function.
972 (pop_c_function_context): Likewise.
973 * c-common.c (mark_c_language_function): Mark struct
974 language_function.
975
976 * doc/tm.texi (Per-Function Data): Don't document free_machine_status.
977 Document that the machine_function structures must be allocated
978 using GC. Update mark_machine_status documentation.
979 * function.h: Don't declare free_machine_status.
980 * function.c (free_machine_status): Don't define.
981 (free_after_compilation): Don't call free_machine_status.
982 (ggc_mark_struct_function): Mark f->machine. Call
983 mark_machine_status only on non-NULL pointers.
984 * system.h: Poison free_machine_status.
985 * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on
986 struct machine_function.
987 (xtensa_free_machine_status): Delete.
988 (override_options): Don't set free_machine_status.
989 * config/rs6000/rs6000.c (rs6000_override_options): Don't set
990 free_machine_status.
991 (rs6000_init_machine_status): Use GC on struct machine_function.
992 (rs6000_free_machine_status): Delete.
993 * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct
994 machine_function.
995 (ia64_mark_machine_status): Likewise.
996 (ia64_free_machine_status): Delete.
997 (ia64_override_options): Don't set free_machine_status.
998 * config/i386/i386.c (override_options): Don't set
999 free_machine_status.
1000 (ix86_init_machine_status): Use GC on struct machine_function.
1001 (ix86_mark_machine_status): Likewise.
1002 (ix86_free_machine_status): Delete.
1003 * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct
1004 machine_function.
1005 (d30v_mark_machine_status): Likewise.
1006 (d30v_free_machine_status): Delete.
1007 (d30v_init_expanders): Don't set free_machine_status.
1008 * config/arm/arm.c (arm_mark_machine_status): Use GC on struct
1009 machine_function.
1010 (arm_init_machine_status): Likewise.
1011 (arm_free_machine_status): Delete.
1012 (arm_init_expanders): Don't set free_machine_status.
1013 * config/alpha/alpha.c (override_options): Don't set
1014 free_machine_status.
1015 (alpha_init_machine_status): Use GC on struct machine_function.
1016 (alpha_mark_machine_status): Likewise.
1017 (alpha_free_machine_status): Delete.
1018
1019 * varasm.c (compare_constant): Fix typo.
1020
1021 * varasm.c: Don't include obstack.h.
1022 (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes.
1023 (struct rtx_const): Give substructures names, improve formatting.
1024 (struct constant_descriptor): Delete.
1025 (struct constant_descriptor_tree): New, based on constant_descriptor.
1026 (const_hash_table): Is a hash table of trees.
1027 (mark_const_hash_entry): Is used for hashes of trees. Mark
1028 constant_descriptor_tree structure.
1029 (mark_const_str_htab_1): Mark deferred_string structure.
1030 (compare_constant): Rewrite to compare trees.
1031 (compare_constant_1): Delete.
1032 (record_constant): Delete.
1033 (record_constant_1): Delete.
1034 (output_constant_def): Use struct constant_descriptor_tree.
1035 Don't duplicate trees twice.
1036 (struct constant_descriptor_rtx): New.
1037 (struct pool_constant): Used for rtx constants.
1038 (init_varasm_status): Update for change to struct varasm_status.
1039 (mark_varasm_status): Likewise.
1040 (free_varasm_status): Delete.
1041 (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx.
1042 (record_constant_rtx): Likewise.
1043 (mem_for_const_double): Update to use struct constant_descriptor_rtx.
1044 (force_const_mem): Likewise.
1045 * Makefile.in (varasm.o): Doesn't depend on obstack.h.
1046 * function.c (free_after_compilation): Don't use free_varasm_status.
1047 * function.h: Don't prototype free_varasm_status.
1048
1049 * ggc-common.c (ggc_realloc): Handle X being NULL.
1050
1051 * ggc-common.c (ggc_realloc): New function.
1052 * ggc.h: Prototype it.
1053 * emit-rtl.c (free_emit_status): Delete.
1054 (init_emit): Allocate emit subarrays using GC.
1055 (gen_reg_rtx): Reallocate subarrays using GC.
1056 (init_emit): Use GC to allocate 'struct emit_status' and its
1057 subarrays.
1058 (mark_emit_status): Mark structure and its subarrays.
1059 * stmt.c (free_stmt_status): Delete.
1060 * expr.c (free_expr_status): Delete.
1061 * function.h: Remove prototypes for deleted functions.
1062 * function.c (free_after_compilation): Don't use deleted functions.
1063 Don't call free() on x_parm_reg_stack_loc.
1064 (free_after_parsing): Don't use free_stmt_status.
1065 (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc.
1066 (mark_function_status): Mark x_parm_reg_stack_loc.
1067
1068 * varasm.c (init_varasm_status): Use GC to allocate
1069 'struct varasm_status' and its fields x_const_rtx_hash_table
1070 and x_const_rtx_sym_hash_table.
1071 (mark_varasm_status): Mark them.
1072 (free_varasm_status): Use GC to free them.
1073 * expr.c (init_expr): Use GC to allocate 'struct expr_status'.
1074 (mark_expr_status): Mark the structure itself.
1075 (free_expr_status): Use GC to free the structure.
1076 * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'.
1077 (mark_stmt_status): Mark the 'struct stmt_status' itself.
1078 (init_stmt_for_function): Allocate the structure for GC.
1079
1080 * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE.
1081 (equate_type_number_to_die): Likewise.
1082 * tree.h (TYPE_SYMTAB_DIE): New macro.
1083 (struct die_struct): Predeclare.
1084 (struct tree_type): Add field symtab.die. Add a tag
1085 to the union type of field symtab.
1086
1087 * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains
1088 'struct rtvec_def *', not 'struct rtvec_def'.
1089
1090 * function.h (original_arg_vector): Make a real rtvec.
1091 * function.c (ggc_mark_struct_function): Adjust.
1092 * integrate.c (expand_inline_function): Adjust.
1093
dca09811 10942002-06-04 Jason Thorpe <thorpej@wasabisystems.com>
1095
1096 * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*)
1097 (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets.
1098 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN)
1099 (TARGET_VERSION_CPU): Define according to the
1100 default target.
1101 (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and
1102 TARGET_VERSION_CPU.
1103 (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64
1104 if TARGET_SHMEDIA64.
1105 (LINK_DEFAULT_CPU_EMUL): Define according to the
1106 default target.
1107 (SUBTARGET_LINK_EMUL_SUFFIX): Define.
1108 (SUBTARGET_LINK_SPEC): Define.
1109 (LINK_SPEC): Use SH_LINK_SPEC.
1110 (ASM_SPEC): Remove.
1111 (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT.
1112 (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32
1113 and TARGET_SHMEDIA64 which abort, for now.
1114 * config/sh/t-netbsd-sh5: New file.
1115 * config/sh/t-netbsd-sh5-32: New file.
1116 * config/sh/t-netbsd-sh5-64: New file.
1117
f2cc13dc 11182002-06-03 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
1119 Richard Henderson <rth@redhat.com>
1120
1121 * config/alpha/alpha.c (reg_or_const_int_operand): New.
1122 (some_operand, input_operand): Accept CONST_VECTOR.
1123 (alpha_extra_constraint): Add 'W'.
1124 (alpha_expand_zap_mask): New.
1125 (alpha_expand_builtin_vector_binop): New.
1126 (enum alpha_builtin): New.
1127 (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New.
1128 (alpha_init_builtins, alpha_expand_builtin): New.
1129 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New.
1130 * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New.
1131 (PREDICATE_CODES): Update.
1132 * config/alpha/alpha-protos.h: Update.
1133 * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP,
1134 UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New.
1135 (movv8qi, movv8qi_fix, movv8qi_nofix): New.
1136 (movv4hi, movv4hi_fix, movv4hi_nofix): New.
1137 (movv2si, movv2si_fix, movv2si_nofix): New.
1138 (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New.
1139 (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New.
1140 (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap,
1141 builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask,
1142 builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8,
1143 builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8,
1144 builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb,
1145 pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl,
1146 builtin_unpkbw, unpkbw): New.
1147 * doc/extend.texi (Alpha Built-in Functions): New.
1148
fabbeb08 11492002-06-03 Richard Henderson <rth@redhat.com>
1150
1151 * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on
1152 USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME.
1153
5ce11454 11542002-06-03 Richard Henderson <rth@redhat.com>
1155
a04268b2 1156 * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs.
1157
5ce11454 1158 * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX.
1159 (const0_operand): New.
1160 (reg_or_fp0_operand, fp0_operand): Remove.
1161 * config/alpha/alpha.h (PREDICATE_CODES): Update.
1162 * config/alpha/alpha-protos.h: Update.
1163 * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand
1164 and fp0_operand with reg_or_0_operand and const0_operand.
1165
906923ba 11662002-06-03 Dan Nicolaescu <dann@godzilla.ics.uci.edu>
1167
1168 * alias.c (nonoverlapping_memrefs_p): Fix off by one error.
1169
6237f2b2 11702002-06-03 Roger Sayle <roger@eyesopen.com>
1171
1172 * gcse.c (cprop_jump): Use single_set to get the pattern
1173 from the setcc argument.
1174
5397e5a3 11752002-06-03 Gabriel Dos Reis <gdr@codesourcery.com>
1176
1177 * diagnostic.h (diagnostic_count): Move from output_buffer to
1178 diagnostic_context.
1179 (diagnostic_kind_count): Adjust definition.
1180
0c2263a7 1181Mon Jun 3 19:11:53 CEST 2002 Jan Hubicka <jh@suse.cz>
1182
1183 * except.c (except.c): Do not rebuild CFG.
1184 * toplev.c (rest_of_compilation): Recompute CFG after sibcall
1185 optimization.
1186
29cc5ce8 1187Mon Jun 3 11:53:01 CEST 2002 Jan Hubicka <jh@suse.cz>
1188
1189 * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies.
1190 * toplev.c: Include cfglahout.h
1191 * Makefile.in (toplev.c): Add dependnecy.
1192
7dbd6483 11932002-06-03 Neil Booth <neil@daikokuya.demon.co.uk>
1194
1195 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New.
1196 (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill.
1197 (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC.
1198
5c10d801 11992002-06-03 Jason Thorpe <thorpej@wasabisystems.com>
1200
1201 * config/ns32k/netbsd.h: Update copyright years.
1202 (TARGET_OS_CPP_BUILTINS): Define.
1203 (CPP_PREDEFINES): Remove.
1204 * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove.
1205 (TARGET_CPU_CPP_BUILTINS): Define.
1206
ff385626 12072002-06-02 Kazu Hirata <kazu@cs.umass.edu>
1208
1209 * emit-rtl.c: Likewise.
1210 * errors.h: Likewise.
1211 * except.c: Likewise.
1212 * explow.c: Likewise.
1213 * expmed.c: Likewise.
1214 * expr.c: Likewise.
1215 * expr.h: Likewise.
1216
7b426127 12172002-06-02 Kazu Hirata <kazu@cs.umass.edu>
1218
1219 * config/h8300/elf.h: Fix formatting.
1220 * config/h8300/rtems.h: Likewise.
1221
cf362c21 12222002-06-03 Jason Thorpe <thorpej@wasabisystems.com>
1223
1224 * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove.
1225
451d3894 12262002-06-02 Tom Tromey <tromey@redhat.com>
1227
1228 * fixinc/fixincl.x: Rebuilt.
1229 * fixinc/inclhack.def (thread_keyword): Match `*__thread'.
1230
756d0f7c 12312002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1232
1233config/i370:
1234 * i370.h (TARGET_CPU_CPP_BUILTINS): Use.
1235 * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES.
1236 * mvs.h: Similarly.
1237 * oe.h: Similarly.
1238
7021895a 1239Mon Jun 3 00:18:20 CEST 2002 Jan Hubicka <jh@suse.cz>
1240
1241 * final.c (final): Allow notes to not have computed addresses;
1242 kill no longer needed STACK_REGS ifdef.
1243
1247b8fd 12442002-06-02 Richard Henderson <rth@redhat.com>
1245
1246 * gcse.c (bypass_conditional_jumps): Fix typo last change.
1247
ab87d1bc 1248Sun Jun 2 23:02:11 CEST 2002 Jan Hubicka <jh@suse.cz>
1249
1247b8fd 1250 * loop.c (emit_prefetch_instructions): Properly place the address
1251 computation.
ab87d1bc 1252
1253Sun Jun 2 22:56:48 CEST 2002 Jan Hubicka <jh@suse.cz>
1254
1255 * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
1256 (set_block_for_insn): Turn into macro.
1257 * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
1258 * cfglayout.c (insn_scopes): Kill.
1259 (scope_to_insns_initialize): Do not use insn_scopes.
1260 (scope_to_insns_finalize): Likewise.
1261 (duplicate_insn_chain): Likewise.
1262 (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
1263 * cfgrtl.c (basic_block_for_insn): Kill.
1264 (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
1265 (create_basic_block_structure): Use reorder_insns.
1266 (compute_bb_for_insn): Do not use basic_block_for_insn.
1267 (merge_blocks_nomove): Likewise.
1268 (update_bb_for_insn): Likewise.
1269 (verify_flow_info): Likewise.
1270 (set_block_for_insn): Kill.
1271 * combine.c (try_combine): Update gen_rtx_INSN call.
1272 * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
1273 (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
1274 scopes and BBs.
1275 (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
1276 (emit_note_before, emit_note_after, emit_line_note_after, emit_note):
1277 Clear BB.
1278 (emit_insns_after): Simplify.
1279 (emit_copy_of_insn_after): Copy scope.
1280 * final.c (final_start_function): Lower scopes.
1281 * flow.c (check_function_return_warnings): Do not rely on deleted insn.
1282 * integrate.c (copy_insn_list): Cope scopes.
1283 * jump.c (duplicate_loop_exit_test): LIkewise; simplify.
1284 * loop.c (loop_optimize): Do not care block notes.
1285 * print-rtl.c (print_rtx): Print BB.
1286 * recog.c (apply_change_group): Simplify.
1287 * rtl.c (copy_rtx): Handle 'B'.
1288 * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
1289 * rtl.h (Field accessors): Update indexes.
1290 * sched-ebb.c (schedule_ebbs): Do not lower notes.
1291 * sched-rgn.c (schedule_insns): Likewise.
1292 * toplev.c (rest_of_compilation): Lower notes.
1293 * unroll.c (unroll_loop): Do not care scoping notes.
1294 (copy_loop_body): Copy scopes.
1295
b2e455f8 12962002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1297
1298config/h8300:
1299 * elf.h: Use TARGET_OS_CPP_BUILTINS rather than
1300 SUBTARGET_SPEC.
1301 * rtems.h: Similarly.
1302 * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC,
1303 EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
1304 (TARGET_CPU_CPP_BUILTINS): Use.
1305
4f8e9d5c 13062002-06-02 Richard Henderson <rth@redhat.com>
1307
1308 * alias.c: Include target.h.
1309 (mark_constant_function): Use targetm.binds_local_p instead
1310 of checking TREE_PUBLIC ourselves.
1311 * Makefile.in (alias.o): Add TARGET_H.
1312
3eb82013 13132002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1314
1315 * c-lex.c: Update copyright and file description.
1316
08a444cb 13172002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1318
1319 * config/fr30/fr30.h: Update to new CPP macros.
1320
1396ec95 13212002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1322
1323 * config/dsp16xx/dsp16xx.h: Update to new CPP macros.
1324
f5ec8cb5 13252002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
cb8d9c43 1326 Zack Weinberg <zack@codesourcery.com>
f5ec8cb5 1327
1328 * c-common.c (c_common_init): Override cpplib's default
1329 warn_long_long setting.
1330 * c-lex.c (lex_number): Replace with interpret_integer,
1331 interpret_float, narrowest_unsigned_type and
1332 narrowest_signed_type, taking advantage of the new
1333 cpplib functionality.
1334 * cpperror.c (_cpp_begin_message): If a warning is turned
1335 into an error, avoid printing "warning:".
1336 * cppexp.c (cpp_num_sign_extend): New.
1337 * cppinit.c: Update comment.
1338 * cpplib.h (cpp_num_sign_extend): New.
1339 * tree.h: Update comment.
1340
c003992a 13412002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
1342
1343 * diagnostic.h (struct diagnostic_context): Add new member
1344 internal_error.
1345 (internal_error_function): Remove declaration.
1346 * diagnostic.c (internal_error_function): Remove definition..
1347 (internal_error): Adjust use.
1348
40f7ee9a 13492002-06-02 Richard Henderson <rth@redhat.com>
1350
1351 * rtl.h (CC0_P): New.
1352 * gcse.c (cprop_jump): Use it with single_set. Tweak dump text.
1353 (cprop_insn): Allow any mode register; use CC0_P. CSE out single_set.
1354 (bypass_block): Save old dest block for dump text.
1355 (bypass_conditional_jumps): Allow any mode register; use CC0_P.
1356 Allow only true SET insns, not single_set.
1357
a7d2041b 13582002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
1359
1360 * diagnostic.c (diagnostic_finish): Rename to output_flush.
1361 (clear_disgnostic_info): Rename to output_clear_data. Use false
1362 instead of 0 for boolean value.
1363 Adjust function call throughout.
1364
f1593de0 1365Sun Jun 2 19:15:27 CEST 2002 Jan Hubicka <jh@suse.cz>
1366
1367 * cfgrtl.c (commit_one_edge_insertion): Fix warning.
1368 * gcse.c (bypass_conditional_jumps): CSE out single_set call.
1369
99cb7610 13702002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1371
1372 * d30v.h (CPP_PREDEFINES): Replace with
1373 (TARGET_CPU_CPP_BUILTINS): New.
1374
7440354e 13752002-06-02 Roger Sayle <roger@eyesopen.com>
1376
1377 * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo.
1378
780dbbe4 1379Sun Jun 2 12:11:52 CEST 2002 Jan Hubicka <jh@suse.cz>
1380
1381 * gcse.c (bypass_conditional_jumps): Use single set to obtain set.
1382
413b705c 13832002-06-02 Richard Henderson <rth@redhat.com>
1384
1385 * rtlanal.c (volatile_refs_p): Not automatically true for CALL.
1386
9aa7484c 13872002-06-02 Marek Michalkiewicz <marekm@amelek.gda.pl>
1388
1389 Support for C++ constructors/destructors.
1390 * config/avr/avr.c (avr_output_function_epilogue): Jump to exit()
1391 instead of looping if main() returns.
1392 (asm_file_start): Output global symbols that cause .data and .bss
1393 initialization code to be linked in, unconditionally for now.
1394 (avr_asm_out_ctor, avr_asm_out_dtor): New functions.
1395 * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New.
1396 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
1397 (LIBSTDCXX): New.
1398 * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections.
1399 (__tablejump__): New.
1400 (__do_copy_data, __do_clear_bss): New.
1401 (__do_global_ctors, __do_global_dtors): New.
1402 * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss,
1403 _ctors, _dtors.
1404
8aba4286 14052002-06-02 Neil Booth <neil@daikokuya.demon.co.uk>
1406
1407 * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New.
1408 (CPP_SPEC, CPP_PREDEFINES): Kill.
1409 * c4x/rtems.h (CPP_PREDEFINES): Kill.
1410 (TARGET_OS_CPP_BUILTINS): New.
1411
fa99ab3d 1412Sat Jun 1 23:29:51 CEST 2002 Jan Hubicka <jh@suse.cz>
1413
1414 * Makefile.in (tracer.o): New.
1415 * params.def (TRACER_*): New options.
1416 * rtl.h (tracer): Declare.
1417 * timevar.def (TV_TRACER): New.
1418 * toplev.c (dump_file_index): Add DFI_tracer.
1419 (dump_file_info): Add tracer.
1420 (flag_tracer): New.
1421 (lang_indepdenent_options): Add tracer.
1422 (rest_of_compilation): Call tracer.
1423 * tracer.c: New file.
1424 * invoke.texi (-ftracer): Document.
1425 (--param tracer-*): Document.
1426
8d0b5876 14272002-06-01 Daniel Berlin <dberlin@dberlin.org>
1428
1429 * tree-inline.c (expand_call_inline): Make the statement
1430 expression we generate have a COMPOUND_STMT.
1431
23e5207c 14322002-06-01 Roger Sayle <roger@eyesopen.com>
1433
1434 * gcse.c (cprop_cc0_jump): Function deleted.
1435 (cprop_jump): Take an additional argument which is the possibly
1436 NULL cc setting insn immediately before the conditional jump.
1437 When a MODE_CC set is present, substitute it into the JUMP_INSN
1438 before attempting the constant propagation.
1439 (cprop_insn): Recognize cc setters followed by conditional jumps
1440 as a special case. Use cprop_jump instead of cprop_cc0_jump.
1441 (cprop_one_pass): Call bypass_conditional_jumps if altering jumps.
1442 (find_bypass_set): New function based upon find_avail_set used by
1443 cprop, but finds constant expressions available at the end of
1444 basic blocks.
1445 (bypass_block): New function. Given a basic block that begins
1446 with a conditional jump and multiple incoming edges, perform
1447 the jump bypass optimization.
1448 (bypass_conditional_jumps): New function. Call bypass_block with
1449 each suitable basic block in the CFG using a simple single pass.
1450
19fe5401 14512002-06-01 Roger Sayle <roger@eyesopen.com>
1452
1453 * tree.c (real_minus_onep): New function to test for -1.0.
1454 * fold-const.c (fold) [MULT_EXPR]: Optimize -1.0*x into -x.
1455
0425437e 14562002-06-01 Roger Sayle <roger@eyesopen.com>
1457
1458 * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0"
1459 and "!p && !q" into "(p|q) == 0" under suitable conditions.
1460
3a83429d 14612002-06-01 Andreas Jaeger <aj@suse.de>
1462
1463 * cppexp.c (cpp_classify_number): Cast precission to int for
1464 correct printf format.
1465
c5450332 14662002-06-01 Marek Michalkiewicz <marekm@amelek.gda.pl>
1467
1468 * config/avr/avr.c (avr_mcu_types): Remove devices that were once
1469 expected, but don't really exist: atmega83, atmega85, attiny10.
1470 * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld
1471 emulations for all devices.
1472 (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10.
1473 * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85.
1474
6b30b2e6 14752002-06-01 Kazu Hirata <kazu@cs.umass.edu>
1476
1477 * config/h8300/h8300-protos.h: Add a prototype for
1478 h8300_shift_needs_scratch_p.
1479 * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New.
1480 * config/h8300/h8300.h (OK_FOR_R): New.
1481 (OK_FOR_S): Likewise.
1482 (OK_FOR_T): Likewise.
1483 (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T.
1484 * config/h8300/h8300.md (anonymous shift patterns): Use
1485 constraints R, S, and T.
1486
7fb12188 1487Sat Jun 1 11:23:22 CEST 2002 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1488
1489 * basic-block.h (struct basic_block_def): New field loop_father.
1490 (BB_VISITED): New flag.
1491 (struct loop): New field pred, removed field shared.
1492 (struct loops): New field parray.
1493 (LOOP_EXITS_DOMS): Removed.
1494 (flow_loop_tree_node_add, flow_loop_tree_node_remove,
1495 flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body,
1496 dfs_enumerate_from, loop_preheader_edge, loop_latch_edge,
1497 add_bb_to_loop, remove_bb_from_loops, find_common_loop,
1498 verify_loop_structure): Declare.
1499 * cfg.c (entry_exit_blocks): Initialize loop_father field.
1500 * cfganal.c (dfs_enumerate_from): New function.
1501 * cfgloop.c (HEAVY_EDGE_RATIO): New constant.
1502 (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
1503 flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p,
1504 flow_loop_dump, flow_loops_dump, flow_loops_free,
1505 flow_loop_tree_node_add, flow_loop_level_compute,
1506 flow_loops_level_compute, flow_loop_scan, flow_loops_update,
1507 flow_loop_outside_edge_p): Modified for new infrastructure.
1508 (make_forwarder_block, canonicalize_loop_headers, glb_enum_p,
1509 redirect_edge_with_latch_update, flow_loop_free): New static functions.
1510 (flow_loop_tree_node_remove, flow_bb_inside_loop_p,
1511 get_loop_body, add_bb_to_loop, remove_bb_from_loops,
1512 find_common_loop, verify_loop_structure, loop_latch_edge,
1513 loop_preheader_edge): New functions.
1514 (flow_loops_cfg_dump): Do not show dominators, as this information
1515 does not remain up to date long.
1516 (flow_loops_find): Store results in new format.
1517 * predict.c (propagate_freq, estimate_probability,
1518 estimate_loops_at_level, estimate_bb_frequencies): Use new loop
1519 infrastructure.
1520
cf18e6ff 15212002-06-01 Alan Lehotsky <apl@alum.mit.edu>
3a83429d 1522
cf18e6ff 1523 * except.c (nothrow_function_p): Walk epilogue delay list
1524 checking the insn, not the chain for potential throws.
3a83429d 1525
caa6c567 15262002-05-31 Zack Weinberg <zack@codesourcery.com>
1527
1528 * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove.
1529 (install): Refer to install-cpp directly.
1530 (uninstall-cpp): Folded into uninstall rule.
1531 * configure.in: Delete all code relating to --disable-cpp.
1532 * configure: Regenerate.
1533 * config/t-install-cpp: Delete.
1534
5f7b9df8 15352002-05-31 Richard Henderson <rth@redhat.com>
1536
1537 * configure.in (HAVE_AS_TLS): Add alpha tests.
1538 * configure: Rebuild.
1539 * config/alpha/alpha.c (TARGET_AS_TLS): New.
1540 (alpha_tls_size, alpha_tls_size_string): New.
1541 (overide_options): Set it. Always install machine_status hooks.
1542 (input_operand): Accept got tls predicates.
1543 (local_symbol_p): Merge into ...
1544 (local_symbolic_operand): ... here. Reject tls symbols.
1545 (global_symbolic_operand): Likewise.
1546 (tls_symbolic_operand_1, dtp16_symbolic_operand): New.
1547 (dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
1548 (tp16_symbolic_operand, tp32_symbolic_operand): New.
1549 (gottp_symbolic_operand, tls_symbolic_operand_type): New.
1550 (alpha_encode_section_info): Handle TLS symbols.
1551 (alpha_strip_name_encoding): Likewise.
1552 (alpha_legitimate_address_p): Likewise.
1553 (alpha_legitimize_address): Likewise.
1554 (alpha_expand_mov): Early exit to avoid nop moves.
1555 (struct machine_function): Move from unicosmk.h. Add some_ld_name.
1556 (alpha_init_machine_status, alpha_mark_machine_status,
1557 alpha_free_machine_status): Always define.
1558 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
1559 (print_operand, print_operand_address): Add TLS relocs.
1560 * config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
1561 (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
1562 (TARGET_SWITCHES): Add -mtls-kernel.
1563 (alpha_tls_size, alpha_tls_size_string): New.
1564 (TARGET_OPTIONS): Add -mtls-size=.
1565 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
1566 REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
1567 (ASM_OUTPUT_LABELREF): Skip %.
1568 (PRINT_OPERAND_PUNCT_VALID_P): Add &.
1569 (PREDICATE_CODES): Update.
1570 * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
1571 UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
1572 UNSPEC_TP, UNSPECV_SET_TP): New.
1573 (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
1574 adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
1575 set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
1576 movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
1577 (call_value_osf_2_er): Accept anything as op4.
1578 * config/alpha/alpha-protos.h: Update.
1579 * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
1580
3bef1ae8 15812002-05-31 Zack Weinberg <zack@codesourcery.com>
1582
1583 * cppinit.c (append_include_chain): Always pay attention to
1584 cxx_aware when setting new->sysp. Remove ATTRIBUTE_UNUSED
1585 marker on argument.
1586
6c34d0c2 15872002-05-31 Kazu Hirata <kazu@cs.umass.edu>
1588
1589 * target.h: Fix formatting.
1590 * timevar.h: Likewise.
1591 * tlink.c: Likewise.
1592 * toplev.c: Likewise.
1593 * toplev.h: Likewise.
1594 * tree.c: Likewise.
1595 * tree-dump.h: Likewise.
1596 * tree.h: Likewise.
1597 * tree-inline.h: Likewise.
1598 * unroll.c: Likewise.
1599 * unwind-dw2.c: Likewise.
1600 * unwind-dw2-fde.c: Likewise.
1601 * unwind-dw2-fde-glibc.c: Likewise.
1602 * unwind-dw2-fde.h: Likewise.
1603 * unwind.h: Likewise.
1604 * unwind-sjlj.c: Likewise.
1605 * varasm.c: Likewise.
1606 * varray.h: Likewise.
1607 * vmsdbg.h: Likewise.
1608 * vmsdbgout.c: Likewise.
1609 * xcoffout.h: Likewise.
1610
ff11430a 16112002-05-31 Igor Shevlyakov <igor@microunity.com>
1612
caa6c567 1613 * expr.c (compare_from_rtx): Generate comparison between op0 and op1
ff11430a 1614 rather than cc0 and 0 in a case when HAVE_cc0 is not defined.
1615
4702fc25 16162002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
1617
1618 * gcc.c (cpp_unique_options): Remove "-d" options.
1619 (cpp_debug_options): New spec string.
1620 (default_compilers): Use it.
1621 * objc/lang-specs.h: Likewise.
1622
1d087a87 16232002-05-31 Nathanael Nerode <neroden@twcny.rr.com>
1624
caa6c567 1625 * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with
1d087a87 1626 BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature.
1627 * gcc/mklibgcc.in: Likewise.
1628 * gcc/config/arc/t-arc: Likewise.
1629 * gcc/configure.in: Likewise.
1630 * gcc/configure: Regenerate.
1631
f2663f8d 16322002-05-31 Stan Shebs <shebs@apple.com>
1633 Turly O'Connor <turly@apple.com>
1634
1635 * c-decl.c (struct binding_level): Change int field n_incomplete
1636 to tree list incomplete_list.
1637 (clear_binding_level): Init field with NULL.
1638 (pushdecl): Add incomplete type to list.
1639 (mark_binding_level): Mark the incomplete list.
1640 (finish_struct): Scan the incomplete list for types instead
1641 of all decls in the current binding level.
1642
100797c8 16432002-05-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
1644
1645 * pa.c (output_millicode_call): Add missing '%' characters.
1646 (output_call): Likewise.
1647
ce7e2f0c 16482002-05-31 David Edelsohn <edelsohn@gnu.org>
1649
1650 * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define.
1651 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1652
478e3127 16532002-05-31 Alan Lehotsky <apl@alum.mit.edu>
3a83429d 1654
478e3127 1655 * varasm.c (mark_constant_pool): Walk epilogue delay list
1656 checking the insn, not the chain for potential constants.
caa6c567 1657
75c8f94e 1658Fri May 31 12:38:43 2002 J"orn Rennecke <joern.rennecke@superh.com>
1659
1660 * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec.
1661
33f90206 1662Fri May 31 13:50:19 CEST 2002 Jan Hubicka <jh@suse.cz>
1663
1664 * i386.c (classify_argument): Properly handle base types.
1665
1666 * dwarf2out.c (expand_builin_init_dwarf_reg_sizes):
1667 Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo
1668 registers.
1669
51f6e244 1670Fri May 31 13:37:54 CEST 2002 Jan Hubicka <jh@suse.cz>
1671
1672 * gcse.c (gcse_emit_move_after): New.
1673 (pre_delete, hoist_store): Use it.
1674
1675 * reload1.c (emit_input_reload_insns): Use constrain_operands
1676 instead of constraint_accepts_reg_p to verify optimization.
1677 (constraint_accepts_reg_p): Kill
1678
1679 * reload1.c (reload_cse_delete_noop_set): Kill.
1680 (reload_cse_simplify): use delte_insn_and_edges.
1681
1bc9f141 16822002-05-31 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1683
1684 * cfgloop.c (flow_loops_find): Initialize first and last fields
1685 correctly.
1686
8ca22b26 16872002-05-31 Neil Booth <neil@daikokuya.demon.co.uk>
1688
1689 * c-common.c (builtin_define_std): Correct logic.
1690
356267e0 16912002-05-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
1692
1693 * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20.
1694 (output_call): Likewise.
1695
9d2d8bd6 16962002-05-31 John David Anglin <dave@hiauly1.hia.nrc.ca>
1697
1698 * pa.c: Move output.h include after tree.h include.
1699 (pa_asm_output_mi_thunk): Constify identifier lab.
1700
9befa5f1 17012002-05-31 Jason Thorpe <thorpej@wasabisystems.com>
1702
1703 * config/ns32k/ns32k.h: Define named constants for the
1704 bits in target_flags and use them.
1705 * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants.
1706
b3b62da8 17072002-05-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
1708
1709 * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0
1710 architecture and pa/pa-7100.h for PA1.1 architecture, respectively.
1711 * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select
1712 default scheduling model.
1713 * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000".
1714 * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling.
1715 * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling.
1716 * doc/install.texi (hppa*-*-*): Document default scheduling.
1717
ed1b0769 17182002-05-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
1719
1720 * pa.c (following_call): Check TARGET_JUMP_IN_DELAY.
1721
5f16a202 17222002-05-31 Jason Thorpe <thorpej@wasabisystems.com>
1723
1724 * config.gcc (ns32k-*-netbsd*): Set tm_file to
1725 "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
1726 * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h,
1727 netbsd.h, or netbsd-aout.h.
1728
f149ef60 17292002-05-31 Jason Thorpe <thorpej@wasabisystems.com>
1730
1731 * longlong.h (count_trailing_zeros): Add missing \, and clean up
1732 whitespace in __ns32000__ case.
1733
a43fa0dd 17342002-05-31 Aldy Hernandez <aldyh@redhat.com>
1735
caa6c567 1736 * expr.c (expand_expr): Output partially zeroed out vectors with
1737 output_constant_def.
a43fa0dd 1738
4ee34c70 17392002-05-30 Jason Thorpe <thorpej@wasabisystems.com>
1740
1741 * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh.
1742 (sh-*-netbsdelf*)
1743 (shl*-*-netbsdelf*): New targets.
1744 * config/sh/netbsd-elf.h: New file.
51349668 1745 * config/sh/t-netbsd: New file.
4ee34c70 1746
5bbf85e7 17472002-05-30 Richard Henderson <rth@redhat.com>
1748 Eric Botcazou <ebotcazou@multimania.com>
1749
1750 PR optimization/6822
1751 * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL
1752 to unsigned int for op1 comparisons. Use gen_int_mode.
1753
9ae13cc6 17542002-05-30 Eric Botcazou <ebotcazou@multimania.com>
1755
1756 * expmed.c (const_mult_add_overflow_p): New.
1757 * expr.h: Declare it.
1758 * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it.
1759 Don't eliminate the biv if the giv has a constant multiplier and
1760 the rhs argument of the comparison does satisfy the predicate.
1761 Use expand_mult_add to compute the replacement constant.
1762
cb59f969 17632002-05-30 Osku Salerma <osku@iki.fi>
1764
1765 * c-common.c (c_common_attribute_table): Add "may_alias" entry.
1766 (c_common_get_alias_set): Handle it.
1767 * doc/extend.texi: Document it.
1768
8c615611 17692002-05-30 Richard Henderson <rth@redhat.com>
1770
1771 * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1772 * toplev.c (process_options): Don't check it.
1773 * doc/tm.texi: Don't document it.
1774 * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New.
1775 (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill.
1776 * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf
1777 frame pointer optimization if current_function_profile.
1778
8851e806 17792002-05-30 Kazu Hirata <kazu@cs.umass.edu>
1780
1781 * langhooks.c: Fix formatting.
1782 * langhooks.h: Likewise.
1783 * lcm.c: Likewise.
1784 * libgcc2.c: Likewise.
1785 * lists.c: Likewise.
1786 * local-alloc.c: Likewise.
1787 * loop.c: Likewise.
1788 * loop.h: Likewise.
1789
17902002-05-30 Marc Espie <espie@openbsd.org>
1791
1792 * config.gcc (sparc64-*-openbsd*): New.
1793 * config/sparc/openbsd1-64.h: New.
1794 * config/sparc/openbsd64.h: New.
61f2f0de 1795
c82ce26c 17962002-05-30 Jeff Law <law@redhat.com>
1797
1798 * flow.c (propagate_one_insn): Revise yesterday's patch. Delete
1799 a dead insn with a REG_RETVAL note when the entire libcall is not
1800 dead and remove the associated REG_LIBCALL note at the same time.
1801
742ee135 1802Thu May 30 19:54:30 2002 J"orn Rennecke <joern.rennecke@superh.com>
1803
1804 * lcm.c (output.h): #include.
1805 (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK
1806 as an ordinary block.
1807 (optimize_mode_switching): Don't pretend that the exit block is
1808 an ordinary block, or handle sucessors of entry block specially.
1809 Instead, split edges from entry block and to exit block, and
1810 put a computing definition on the thus gained post-entry-block,
1811 and a need on the pre-exit-block.
1812
c100ae55 1813Thu May 30 20:28:01 CEST 2002 Jan Hubicka <jh@suse.cz>
1814
1815 * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'.
1816 * rtl.texi: Document 'B'
1817
f20145a2 18182002-05-30 Jason Thorpe <thorpej@wasabisystems.com>
1819
1820 * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute
1821 at run-time.
1822 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__.
1823
0b70ff0f 18242002-05-30 Aldy Hernandez <aldyh@redhat.com>
1825
caa6c567 1826 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
1827 const0_rtx instead of NULL_RTX when in error.
1828 (altivec_expand_abs_builtin): Same.
1829 (rs6000_expand_binop_builtin): Same.
1830 (altivec_expand_predicate_builtin): Same.
1831 (altivec_expand_stv_builtin): Same.
1832 (rs6000_expand_ternop_builtin): Same.
1833 (altivec_expand_builtin): Same.
0b70ff0f 1834
c8905a57 18352002-05-29 David S. Miller <davem@redhat.com>
1836
1837 * rtl.h (clear_emit_caches): Delete.
1838 * integrate.c (output_inline_function): Don't call it.
1839 * emit-rtl.c (restore_emit_status, init_emit): Likewise.
1840 (clear_emit_caches): Delete definition.
1841 (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise.
1842
b744252f 18432002-05-30 Hans-Peter Nilsson <hp@bitrange.com>
1844
1845 * config/mmix/mmix.c: Include real.h.
1846 (mmix_constant_address_p): Remove redundant test before switch.
1847
f275e6d9 18482002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
1849
1850 * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define
1851 only if not already defined.
1852
c7619744 18532002-05-29 Kazu Hirata <kazu@cs.umass.edu>
1854
1855 * config/h8300/h8300-protos.h: Remove prototypes for
1856 ok_for_bclr and small_power_of_two.
1857 * config/h8300/h8300.c (small_power_of_two): Remove.
1858 (ok_for_blcr): Likewise.
1859 (fix_bit_operand): Make WHAT deal with an integer instead of a
1860 constraint character.
1861 * config/h8300/h8300.h (CONST_OK_FOR_O): Remove.
1862 (CONST_OK_FOR_P): Likewise.
1863 (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or
1864 CONST_OK_FOR_P any more.
1865 * config/h8300/h8300.md (andqi3): Adjust to the new prototype
1866 of fix_bit_operand.
1867 (iorqi3): Likewise.
1868 (xorqi3): Likewise.
1869
b7d8785c 18702002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
1871
1872 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
1873 (CPP_PREDEFINES): Make sure this is undefined.
1874 (CPP_SPEC): Place -D__mips=1 at the beginning of the spec,
1875 since it is no longer in CPP_PREDEFINES. Don't -U__MIPSEL__
1876 or -U__MIPSEB__ before defining one or the other. Instead,
1877 use %(subtarget_endian_default) if neither -EB nor -EL are
1878 specified.
1879 (SUBTARGET_EXTRA_SPECS): Define.
1880 (SUBTARGET_CPP_SPEC): Remove __LONG64 handling. Use
1881 %(netbsd_cpp_spec).
1882
443076c3 18832002-05-29 Hans-Peter Nilsson <hp@axis.com>
1884
1885 * doc/md.texi (Patterns): Note pattern condition pitfall
1886 for unnamed insn.
1887
6d829a46 18882002-05-29 Aldy Hernandez <aldyh@redhat.com>
1889
caa6c567 1890 * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins
1891 when TARGET_ALTIVEC. Move handling of generic unary, binary, and
1892 ternary operations from here...
1893 (rs6000_expand_builtin): ...to here.
1894 New argument expandedp.
1895 Change all instances of altivec_expand_binop_builtin to
1896 rs6000_expand_binop_builtin.
1897 (altivec_expand_unop_builtin): Rename to
1898 rs6000_expand_unop_builtin.
1899 (altivec_expand_binop_builtin): Rename to
1900 rs6000_expand_binop_builtin.
1901 (altivec_expand_ternop_builtin): Rename to
1902 rs6000_expand_ternop_builtin.
6d829a46 1903
76b5af68 19042002-05-29 Richard Henderson <rth@redhat.com>
1905
1906 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value.
1907 (TARGET_BI_ARCH): Likewise.
1908 * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value.
1909 (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT.
1910 (TARGET_64BIT_DEFAULT): Default to 0.
1911 (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER.
1912
a4d618bf 19132002-05-29 Richard Henderson <rth@redhat.com>
1914
1915 * config/i386/i386.c (USE_HIDDEN_LINKONCE): New.
1916 (get_pc_thunk_name): New.
1917 (output_set_got): Use it.
1918 (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks
1919 into linkonce sections.
1920
1f2fe497 19212002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
1922
1923 * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
1924 (CPP_PREDEFINES): Make sure this is undefined.
1925 (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove.
1926 (CPP_SUBTARGET_SPEC): Don't provide different versions for
1927 default-32 and default-64. Just always use %(netbsd_cpp_spec).
1928 (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and
1929 cpp_subtarget_spec64. Add netbsd_cpp_spec.
1930 * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
1931 (CPP_PREDEFINES): Make sure this is undefined.
1932 (SUBTARGET_EXTRA_SPECS): Define.
1933 (CPP_SPEC): Use %(netbsd_cpp_spec).
1934
f1752b7e 19352002-05-29 Jeff Law <law@redhat.com>
1936
6183ce8c 1937 * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon.
1938
51d18c44 1939 * flow.c (propagate_one_insn): Do not remove a dead insn if it
1940 contains a REG_RETVAL note.
1941
61940a36 1942 * haifa-sched (sched_analyze): Remove another useless clearing
1943 of SCHED_GROUP_P I missed yesterday.
1944
f1752b7e 1945 * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c.
1946 * pa.c (pa_asm_output_mi_thunk): New function.
1947 * pa-protos.h (pa_asm_output_mi_thunk): Declare.
1948
c284a148 19492002-05-29 Neil Booth <neil@daikokuya.demon.co.uk>
1950 Marek Michalkiewicz <marekm@amelek.gda.pl>
1951
1952 * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New.
1953 (avr_asm_only_p): Make non-static.
1954 (enum avr_arch): Remove.
1955 (avr_arch_types): New.
1956 (avr_mcu_types): Update.
1957 (avr_override_options): Use avr_arch_types table instead of switch.
1958 * avr.h (CPP_PREDEFINES): Die.
1959 (avr_base_arch_macro, avr_extra_arch_macro): New.
1960 (TARGET_CPU_CPP_BUILTINS): New.
1961 (CPP_SPEC, EXTRA_SPECS): Simplify.
1962 (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC,
1963 CPP_AVR5_SPEC): Die.
1964
a07f1341 19652002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
1966
1967 * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
1968 NETBSD_OS_CPP_BUILTINS_AOUT.
1969 (SUBTARGET_EXTRA_SPECS): Define.
1970 (CPP_SPEC): Use %(netbsd_cpp_spec).
1971
e3abf694 19722002-05-29 Richard Henderson <rth@redhat.com>
1973
1974 * config/i386/i386.c (ix86_output_function_epilogue): New.
1975 (TARGET_ASM_FUNCTION_EPILOGUE): New.
1976 (pic_label_name): Remove.
1977 (pic_labels_used): New.
1978 (ix86_asm_file_end): Emit one pc load stub for each register used.
1979 (output_set_got): Generate deep pc load to any register.
1980 (ix86_select_alt_pic_regnum): New.
1981 (ix86_save_reg): Don't save pic register if we can find a valid
1982 call-clobbered replacement.
1983 (ix86_expand_prologue): If we found a valid replacement, renumber
1984 pic_offset_table_rtx.
1985 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at
1986 pic_offset_table_rtx after reload.
1987 (REAL_PIC_OFFSET_TABLE_REGNUM): New.
1988 * config/i386/i386.md (set_got): Make insn, not expander.
1989 (set_got_nopic, set_got_deep, set_got_nodeep): Remove.
1990
3ad630c5 19912002-05-29 Richard Henderson <rth@redhat.com>
1992
1993 * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom
1994 alignment for alloca.
1995
cc79d0fa 19962002-05-29 Richard Henderson <rth@redhat.com>
1997
1998 * config/i386/i386.c (output_pic_addr_const): Lowercase rip.
1999 (print_operand_address): Only add rip for symbolic addresses
2000 for which we do not have another relocation type.
2001
b59a7a5a 20022002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
2003
2004 * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2005 (EXTRA_SPECS): Add netbsd_cpp_spec.
2006 (CPP_SPEC): Use %(netbsd_cpp_spec).
2007 (CPP_PREDEFINES): Remove.
2008 * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2009 (EXTRA_SPECS): Define.
2010 (CPP_SPEC): Use %(netbsd_cpp_spec).
2011 (CPP_PREDEFINES): Remove.
2012
f6bf950b 20132002-05-29 Neil Booth <neil@daikokuya.demon.co.uk>
2014
2015 PR preprocessor/6844
2016 * cppmacro.c (cpp_macro_definition): Reserve space for terminating
2017 NUL.
2018
50d6ccf9 20192002-05-29 Eric Christopher <echristo@redhat.com>
2020
2021 * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for
2022 mips5/mips32/mips64 and _MIPS_ISA_MIPSXX.
2023
64282dfc 20242002-05-29 Nick Clifton <nickc@cambridge.redhat.com>
2025
2026 * config/fr30/fr30.md: Remove previous restriction on splits.
2027 Enforce conformance through gen_lowpart and cont_int_operand.
caa6c567 2028 * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss"
64282dfc 2029 as the assembler does not support ".bss".
2030
415e4dbd 20312002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
2032
2033 * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define.
2034 (CPP_PREDEFINES): Remove.
2035 (SUBTARGET_EXTRA_SPECS): Define.
2036 (CPP_SPEC): Use %(netbsd_cpp_spec).
2037 * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define.
2038 (CPP_PREDEFINES): Remove.
2039 (SUBTARGET_EXTRA_SPECS): Define.
2040 (CPP_SPEC): Use %(netbsd_cpp_spec).
2041 * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define.
2042 (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove.
2043 (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget.
2044 Add netbsd_cpp_spec.
2045 (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec).
2046
4baf0479 20472002-05-29 Neil Booth <neil@daikokuya.demon.co.uk>
2048 Zack Weinberg <zack@codesourcery.com>
2049
2050 * cppexp.c (cpp_num): Move to cpplib.h.
2051 (CPP_ERROR): Remove.
2052 (interpret_float_suffix, interpret_int_suffix): New.
2053 (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove.
2054 (cpp_classify_number, cpp_interpret_integer): New.
2055 (interpret_number): Remove.
2056 (eval_token): Update to use new routines.
2057 * cpphash.h (cpp_num_part): Move to cpplib.h.
2058 * cppinit.c (cpp_post_options): Set warn_long_long.
2059 * cpplib.h (struct cpp_options): Add warn_long_long.
2060 (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID,
2061 CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL,
2062 CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX,
2063 CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number,
2064 cpp_interpret_integer): New.
2065
f9557322 20662002-05-29 Joel Sherrill <joel@OARcorp.com>
2067
2068 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405.
2069
c7f72028 20702002-05-29 Jason Thorpe <thorpej@wasabisystems.com>
2071
2072 * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use
50d6ccf9 2073 NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64.
2074 (CPP_SUBTARGET_SPEC): Define.
2075 (SUBTARGET_EXTRA_SPECS): Define.
c7f72028 2076 (CPP_SPEC): Remove.
2077
13dab7c3 20782002-05-29 Chris Lattner <sabre@nondot.org>
2079
caa6c567 2080 * ssa.c (rename_insn_1): Rename uses of undefined registers to
2081 prevent confusion if/when the register is defined.
13dab7c3 2082
7503e80f 20832002-05-29 Hans-Peter Nilsson <hp@axis.com>
2084
2085 PR target/6838
2086 * config/cris/cris.md: Fix typos and thinkos in comments.
2087 ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4,
2088 second alternative.
2089 ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto.
2090 ("*mov_sideqi_mem"): Similar, but for operand 3.
2091 ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto.
2092 (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem):
2093 Remove spurious mode specifier on operand 2.
2094
3a59a065 20952002-05-29 Kazu Hirata <kazu@cs.umass.edu>
2096
2097 * config/h8300/h8300-protos.h: Remove the prototype for
2098 o_operand.
2099 Add prototypes for single_one_operand and single_zero_operand.
2100 * config/h8300/h8300.c (o_operand): Remove.
2101 (single_one_operand): New.
2102 (single_zero_operand): Likewise.
2103 (print_operand): For 'V' operand, and the operand with 0xff.
2104 For 'V' and 'W' operands, do not and the bit position with 7.
2105 * config/h8300/h8300.md (various anonymous patterns): Replace
2106 use of exact_log2 with single_one_operand/single_zero_operand.
2107
b785fba2 21082002-05-29 Ulrich Weigand <uweigand@de.ibm.com>
2109
2110 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
2111
dbca793d 21122002-05-29 Ulrich Weigand <uweigand@de.ibm.com>
2113
2114 * config/s390/s390.c (legitimate_pic_operand_p): Do not
2115 accept symbolic LARL operands.
50d6ccf9 2116 (s390_emit_epilogue): Do not set FRAME_RELATED_P on
dbca793d 2117 epilogue insns.
50d6ccf9 2118
e3233937 21192002-05-29 Hartmut Penner <hpenner@de.ibm.com>
2120
2121 * config/s390/s390.md (cmpstr_64/31): Mark whole
50d6ccf9 2122 input registers as used.
e3233937 2123
f29d6a0a 21242002-05-28 Richard Henderson <rth@redhat.com>
2125
2126 * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live,
2127 not current_function_uses_pic_offset_table and
2128 current_function_uses_const_pool; examine current_function_profile.
2129 (ix86_expand_prologue): Likewise. Add pic_offset_table_rtx as
2130 input to blockage if needed.
2131 (ix86_expand_call): Do not set current_function_uses_pic_offset_table.
2132 (legitimize_pic_address): Likewise. Set regs_ever_live for
2133 pic_offset_table_rtx when invoked during reload.
2134 * config/i386/i386.h (FINALIZE_PIC): Remove.
2135 * config/i386/i386.md (tablejump): Reformat. Do not set
2136 current_function_uses_pic_offset_table.
2137 (tls_global_dynamic, tls_local_dynamic_base): Likewise.
2138 (blockage): Accept anything as operand 0.
2139
65c9b105 21402002-05-28 Jason Thorpe <thorpej@wasabisystems.com>
2141
2142 * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define
2143 common CPP built-ins for all NetBSD a.out targets.
2144 * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define
2145 common CPP built-ins for all NetBSD ELF targets.
2146 * config/netbsd.h: Add missing notice.
2147 (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins
2148 for all NetBSD targets.
2149 (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins
2150 for all NetBSD targets using an LP64 code model.
2151 (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all
2152 NetBSD targets.
2153
9817b015 21542002-05-28 Richard Henderson <rth@redhat.com>
2155
2156 * flow.c (update_life_info_in_dirty_blocks): Only do a partial
2157 update if UPDATE_LIFE_LOCAL.
2158
21592002-05-28 Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
30ab56ba 2160
2161 * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
2162
87ab0a3d 2163Tue May 28 21:16:18 2002 J"orn Rennecke <joern.rennecke@superh.com>
caa6c567 2164 Jason R. Thorpe <thorpej@wasabisystems.com>
87ab0a3d 2165
2166 config/sh reorganization to factor out endianness and coff:
2167
2168 * config/sh/little.h: New file.
caa6c567 2169 * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already
2170 defined, define to 0 to select big-endian.
87ab0a3d 2171 (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT.
caa6c567 2172 (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2173 * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2174 * config/sh/t-be: New file.
2175 * config/sh/t-le: New file.
87ab0a3d 2176
2177 * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h.
2178 (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise.
2179 (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise.
2180 (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise.
2181 (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2182 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
2183 (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted.
2184 (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise.
2185 (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise.
2186 (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and
2187 CPP_DEFAULT_CPU_SPEC. Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL,
2188 SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC.
2189 (LINK_SPEC): Define to SH_LINK_SPEC.
2190 (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define.
2191 (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise.
2192 (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2193 (CPP_SPEC): Reduce to %(subtarget_cpp_spec).
2194 (TARGET_ENDIAN_DEFAULT): Define if not already defined.
2195 * config/sh/coff.h: New file.
2196 (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section
2197 (TARGET_OBJFMT_CPP_BUILTINS): Define.
2198 * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start.
2199 (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise.
2200 (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise.
2201 (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise.
2202 (PTRDIFF_TYPE): Likewise.
2203 ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include.
2204 (CPP_PREDEFINES): Don't define.
2205 (TARGET_OBJFMT_CPP_BUILTINS): Define.
2206 (LINK_SPEC): Define to SH_LINK_SPEC.
2207 (LINK_EMUL_PREFIX): Redefine.
2208 * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases.
2209 (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition.
2210 (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise.
2211 (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise.
2212 (TARGET_OS_CPP_BUILTINS): Define.
2213 (TARGET_DEFAULT): Redefine.
2214 (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise.
2215 * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove.
2216 (LINK_SPEC): Don't redefine.
2217 (LINK_DEFAULT_CPU_EMUL): Redefine.
2218 (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT.
2219 * sh.c (sh_asm_named_section): Don't declare / define.
2220 * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option.
2221 * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h.
2222 (sh64-*-elf* tm_file): Likewise.
2223 (sh-*-rtemself* tm_file): Likewise.
2224 (sh-*-linux* tm_file): Likewise. Add sh/little.h.
2225 (sh-*-linux* tmake_file): Add sh/t-le.
2226 (sh-*-rtems* tm_file): Add sh/coff.h
2227 (sh-*-* tm_file): Likewise.
2228
2229Tue May 28 21:16:18 2002 J"orn Rennecke <joern.rennecke@superh.com>
2230
2231 * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using
2232 CONSTANT_POOL_ADDRESS_P.
2233
2234 * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define.
2235
61940a36 22362002-05-28 David Edelsohn <edelsohn@gnu.org>
cb0e348a 2237 Jeff Law <law@redhat.com>
2238
e4b82a55 2239 * optabs.c (expand_binop): Fix nwords sign warnings.
2240 generate pseudo for add_optab.
2241
cb0e348a 2242 * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P.
2243 * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used.
2244
33c4b334 22452002-05-28 Marc Espie <espie@openbsd.org>
cb0e348a 2246
50d6ccf9 2247 * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN): Remove,
33c4b334 2248 inherited from gas.h.
2249 (ASM_QUAD): Undef. OpenBSD does not support it.
2250
cd89e22c 22512002-05-28 Danny Smith <dannysmith@users.sourceforge.net>
2252
2253 * doc/install.texi (binaries): Change mingw binaries
2254 link to www.mingw.org.
2255
03bfa804 22562002-05-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2257
2258 * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i.
2259
b002d972 22602002-05-28 Richard Henderson <rth@redhat.com>
2261
2262 * config/i386/i386.c (ix86_compute_frame_layout): Do not add
2263 bottom alignment for leaf functions.
2264
773e91a0 22652002-05-28 Zack Weinberg <zack@codesourcery.com>
2266
2267 * config/pa/milli32.S, config/pa/lib1funcs.asm,
2268 config/sparc/sol2-g1.asm: Delete unused files.
2269
4034fd92 22702002-05-28 Richard Henderson <rth@redhat.com>
2271
2272 * cfg.c (dump_flow_info): Print bb->index, not i, for block number.
2273
1da8586a 2274 * flow.c (calculate_global_regs_live): Rename call_used to
2275 invalidated_by_call. Initialize from regs_invalidated_by_call
2276 instead of call_used_regs.
2277
4d3af842 2278 * varasm.c (default_binds_local_p): Check TREE_PUBLIC before
2279 DECL_EXTERNAL.
2280
ef258422 22812002-05-28 Zack Weinberg <zack@codesourcery.com>
2282
f72bc3f3 2283 * tree.h: Don't include real.h.
2284 Forward-declare struct realvaluetype.
ef258422 2285 (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not
2286 contain it.
2287 (TREE_REAL_CST_PTR): New accessor.
2288 (TREE_REAL_CST): Update.
2289 * real.h: Include machmode.h.
50d6ccf9 2290 (realvaluetype): Make it struct realvaluetype, not a typedef.
ef258422 2291 (build_real): Prototype here.
2292
2293 * tree.c: Include real.h.
50d6ccf9 2294 (build_real): Allocate the REAL_VALUE_TYPE as a separate
2295 object in GC memory, set TREE_REAL_CST_PTR to point to it.
ef258422 2296 (build_real_from_int_cst): Use build_real.
2297 * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a
2298 REAL_CST.
2299
2300 * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c,
2301 fold-const.c, print-tree.c, real.c: Include real.h.
2302 * Makefile.in: Update dependency lists.
2303
3c0a32c9 23042002-05-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2305
2306 * basic-block.h (last_basic_block): Declare.
2307 (expunge_block_nocompact): Declaration removed.
2308 (compact_blocks): Declare.
2309 * cfg.c (last_basic_block): New variable.
2310 (expunge_block_nocompact): Removed.
2311 (expunge_block): Do not compact basic blocks.
2312 (compact_blocks): New.
2313 * cfganal.c (flow_call_edges_add): Use the fact that bb indices no
2314 longer change.
2315 * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set
2316 last_basic_block.
2317 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change
2318 real positions of blocks.
2319 (delete_unreachable_blocks): Simplified -- quadratic behavior now
2320 cannot occur.
2321 (cleanup_cfg): Compact blocks.
2322 * cfgrtl.c (create_basic_block): Insert basic blocks to the end of
2323 basic_block_info varray.
2324 (flow_delete_block): Comment update.
2325 (back_edge_of_syntactic_loop_p): Modify position check code.
2326 (verify_flow_info): Update checking.
2327 * flow.c (calculate_global_regs_live): Use FOR_EACH_BB.
2328 * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
2329 (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb
2330 indices no longer change.
2331 * lcm.c (optimize_mode_switching): Replace n_basic_blocks with
2332 last_basic_block.
2333 * predict.c (estimate_bb_frequencies): Remove unneccessary code.
2334 * profile.c (branch_prob): Compact blocks.
2335 * sched-rgn.c (find_rgns): Replace n_basic_blocks with
2336 last_basic_block.
2337
39ebe913 23382002-05-28 Kazu Hirata <kazu@cs.umass.edu>
2339
2340 * config/h8300/h8300.md (two anonymous patterns): New.
2341
e30b7bae 23422002-05-28 David S. Miller <davem@redhat.com>
2343
2344 * config/sparc/sparc.md (cpu): Tidy.
2345 (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and
2346 'trap'.
2347 (in_call_delay): Delete reference to 'return' type.
2348 (eligible_for_return_delay, in_return_delay, define_delay
2349 referencing those): Delete.
2350 (rest of file): Use new type attributes as appropriate.
2351 * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete.
2352 * config/sparc/sparc.c (eligible_for_return_delay): Likewise.
2353 * config/sparc/ultra1_2.md (us1_single): New reservation.
2354 (us1_ialuX): Likewise.
2355 * config/sparc/ultra3.md (us3_single): Likewise.
2356 (us3_ialuX): Likewise.
2357 (us3_imul, us3_idiv): Tweak.
50d6ccf9 2358
0aad4cd2 23592002-05-28 Richard Henderson <rth@redhat.com>
2360
2361 * config/alpha/alpha.c (alpha_in_small_data_p): Return false for
2362 STRING_CST.
2363
c7678f69 23642002-05-28 Richard Henderson <rth@redhat.com>
2365
2366 * config.gcc: Obsolete mn10200.
2367
b412f568 23682002-05-28 Neil Booth <neil@daikokuya.demon.co.uk>
2369
2370 * cppexp.c (interpret_number): Optimize for single-digit
2371 and less-than-half-precision cases.
2372 (num_trim, num_positive, num_div_op): Cast constants.
2373
968b0d1e 23742002-05-27 Bo Thorsen <bo@suse.de>
2375
2376 * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the
2377 3.1 branch. The file was made by Jakub Jelinek.
2378 * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386
2379 support so multilib doesn't break. And don't define this at all
2380 when -Dinhibit_libc is used.
2381 (MULTILIB_DEFAULTS): Always set default to 64 bit compilation.
2382 * config/i386/t-linux64: Implement full multilib support. Patch
2383 originally done by Andreas Jaeger and Jakub Jelinek.
2384
fa987697 23852002-05-27 Roger Sayle <roger@eyesopen.com>
2386
2387 * c-common.c: Add support for __attribute__((nothrow)) to specify
2388 that a function cannot throw an exception (using TREE_NOTHROW).
2389 (handle_nothrow_attribute): New function to process this attribute.
2390
2391 * doc/extend.texi: Document the new nothrow function attribute.
2392
11aafc65 23932002-05-27 H.J. Lu (hjl@gnu.org)
2394
2395 * cppexp.c (num_trim): Use 1UL instead of 1 for long int.
2396 (num_positive): Likewise.
2397 (num_div_op): Likewise.
2398
e7e697e4 23992002-05-27 Neil Booth <neil@daikokuya.demon.co.uk>
2400
2401 * c-common.c (c_common_init): Always use intmax_t.
2402
9194733e 24032002-05-27 Neil Booth <neil@daikokuya.demon.co.uk>
2404
2405 * c-common.c (c_common_init): Use intmax_t for now.
2406
7effcd30 24072002-05-24 Andrew Haley <aph@redhat.com>
2408
2409 * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c
2410 if T is a boolean type.
2411
f20183e6 24122002-05-27 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2413
2414 * basic-block.h (last_basic_block): Defined as synonym for
2415 n_basic_blocks.
2416 * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute,
2417 flow_depth_first_order_compute, flow_preorder_transversal_compute,
2418 flow_dfs_compute_reverse_init): Replaced relevant occurences of
2419 n_basic_blocks with last_basic_block.
2420 * cfgbuild.c (make_edges): Likewise.
2421 * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise.
2422 * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise.
2423 * combine.c (combine_instructions): Likewise.
2424 * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap,
2425 iterative_dataflow_bitmap): Likewise.
2426 * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
2427 calc_idoms, idoms_to_doms): Likewise.
2428 * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars):
2429 Likewise.
2430 * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties,
2431 compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass,
2432 one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p,
2433 one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1,
2434 delete_null_pointer_checks, compute_code_hoist_vbeinout,
2435 hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
2436 compute_store_table, build_store_vectors): Likewise.
2437 * haifa-sched.c (sched_init): Likewise.
2438 * ifcvt.c (if_convert): Likewise.
2439 * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
2440 pre_edge_lcm, compute_available, compute_nearerout,
2441 compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching):
2442 Likewise.
2443 * predict.c (estimate_probability, process_note_prediction,
2444 note_prediction_to_br_prob): Likewise.
2445 * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise.
2446 * recog.c (split_all_insns, peephole2_optimize): Likewise.
2447 * regrename.c (copyprop_hardreg_forward): Likewise.
2448 * resource.c (init_resource_info): Likewise.
2449 * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info,
2450 init_regions, schedule_insns): Likewise.
2451 * ssa-ccp.c (ssa_const_prop): Likewise.
2452 * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
2453 * ssa.c (compute_dominance_frontiers,
2454 compute_iterated_dominance_frontiers, convert_to_ssa): Likewise.
2455
2456 * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code)
2457 * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector
2458 sizes consistently.
2459
fa3cb24d 2460Mon May 27 14:28:12 CEST 2002 Jan Hubicka <jh@suse.cz>
2461
2462 * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge):
2463 new.
2464 * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store,
2465 hoist_insn_after, hoist_insn_to_edge): New.
2466
2d30935d 2467Mon May 27 12:14:02 CEST 2002 Jan Hubicka <jh@suse.cz>
2468
2469 * basic-block.h (PEOP_SCAN_DEAD_STORES): New.
2470 (PROP_FINAL): Include.
2471 * flow.c (life_analysis, update_life_info,
2472 init_propagate_block_info, mark_set_1, mark_used_rgs):
2473 Support SCAN_DEAD_STORE.
2474
dc0b244f 24752002-05-27 Neil Booth <neil@daikokuya.demon.co.uk>
2476
2477 * c-common.c (c_common_init): Set CPP arithmetic precision.
2478 * cppexp.c (cpp_num_part): Move typedef ...
2479 * cpphash.h: ...here; make unsigned HOST_WIDE_INT.
2480 * cppinit.c (cpp_create_reader): Default to host long arithmetic.
2481 (sanity_checks): Update.
2482
336ff1b3 24832002-05-26 Geoffrey Keating <geoffk@redhat.com>
2484
2485 * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'.
2486 (mkheaders): New rule.
2487 (install-mkheaders): New rule.
2488 * configure.in (all_outputs): Add mkheaders.
2489 * configure: Regenerate.
2490 * mkheaders.in: New file.
2491
eb08d403 24922002-05-26 Jakub Jelinek <jakub@redhat.com>
2493
2494 * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class.
2495
2cb44ec0 24962002-05-26 Andreas Jaeger <aj@suse.de>
2497
2498 * cfg.c (dump_flow_info): Remove extra argument to fprintf.
2499
b444d47a 25002002-05-26 Neil Booth <neil@daikokuya.demon.co.uk>
2501
2502 * cppexp.c (possible_sum_sign, integer_overflow, left_shift,
2503 right_shift): Remove.
2504 (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART,
2505 HIGH_PART): New.
2506 (struct op): Use cpp_num.
2507 (num_zerop, num_eq, num_positive, num_greater_freq, num_trim,
2508 num_part_mul, num_unary_op, num_binary_op, num_negate,
2509 num_bitwise_op, num_inequality_op, num_equality_op, num_mul,
2510 num_div_op, num_lshift, num_rshift, append_digit): New.
2511 (interpret_number, parse_defined, eval_token, reduce): Update
2512 for two-integer arithmetic.
2513 (binary_handler): New typedef.
2514 (optab): Update.
2515 (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete.
2516 (_cpp_parse_expr, reduce): Update to handle two-integers.
2517 * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF.
2518
4af90ac0 25192002-05-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
2520
2521 * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
2522 * config/avr/avr.c (jump_over_one_insn_p): Take length of the
2523 branch insn into account, do not assume 1.
2524 (avr_out_sbxx_branch): New function. Optimize cases of skipping
2525 over single word insn. Handle upper half of I/O space too.
2526 * config/avr/avr.md (*sbrx_branch): Use it.
2527 (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
2528 (*sbix_branch, *sbix_branch_bit7): Likewise.
2529 (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
2530 Use RTL peepholes to optimize register operand sign tests.
2531
235d7594 25322002-05-26 Marek Michalkiewicz <marekm@amelek.gda.pl>
2533
2534 * config/avr/avr.c (avr_asm_only_p): New variable.
2535 (avr_override_options): Set it here if AVR1.
2536 (asm_file_start): Test it here, report an error if set.
2537
9342ee68 25382002-05-26 Kazu Hirata <kazu@cs.umass.edu>
2539
2540 * alias.c: Fix formatting.
2541 * attribs.c: Likewise.
2542 * bb-reorder.c: Likewise.
2543 * bitmap.c: Likewise.
2544 * bitmap.h: Likewise.
2545 * builtins.c: Likewise.
2546
35e2e148 2547Sun May 26 14:00:44 CEST 2002 Jan Hubicka <jh@suse.cz>
2548
2549 * reload.c (find_valid_class): Accept new argument DEST,
2550 choose class accordingly.
2551 (push_reload): Update callers.
2552
650acf9d 25532002-05-26 Andreas Jaeger <aj@suse.de>
2554
2555 * combine.c (combine_instructions): Do not indent #if for
2556 traditional C.
2557
9cca51ff 25582002-05-25 Richard Henderson <rth@redhat.com>
2559
2560 * c-pragma.c (apply_pragma_weak): Convert value identifier to
2561 string for decl_attributes.
2562 (handle_pragma_weak): Call assemble_alias if we're modifying
2563 an existing decl.
2564
776507d0 25652002-05-25 Richard Henderson <rth@redhat.com>
2566
2567 PR target/6788
2568 * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation
2569 using rtl instead of fprintf.
2570 * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it.
2571 * config/sparc/sparc-protos.h: Update.
2572
90cc7820 25732002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
2574
2575 * Makefile.in (C_COMMON_H): Fix.
2576 Update other targets.
2577 * c-common.c: Don't include c-lex.h.
2578 (builtin_define_with_value): Make static and prototype.
2579 (builtin_define_std): Move from c-lex.h.
2580 * c-common.h (init_c_lex): Move from c-lex.h.
2581 * c-decl.c: Don't include c-lex.h.
2582 (make_pointer_declarator): Move from c-parse.in.
2583 * c-lex.c: Don't include c-lex.h.
2584 * c-lex.h: Remove.
2585 * c-parse.in: Don't include c-lex.h; include c-pragma.h.
2586 (make_pointer_declarator): Move to c-decl.c.
2587 * c-pragma.c: Don't include c-lex.h.
2588 * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h.
2589 * c-tree.h (make_pointer_declarator): New.
2590doc:
2591 * passes.texi, tm.texi: Update.
2592objc:
2593 * Make-lang.in: Update and correct.
2594 * objc-act.c: Don't include c-lex.h or cpplib.h.
2595treelang:
2596 * treetree.c: Don't include c-lex.h.
2597config:
2598 * darwin-c.c: Don't include c-lex.h.
2599 * c4x/c4x-c.c: Don't include c-lex.h.
2600 * c4x/t-c4x: Update.
2601 * i370/i370-c.c: Don't include c-lex.h.
2602 * i370/t-i370: Update.
2603 * i960/i960-c.c: Don't include c-lex.h.
2604 * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h.
2605 * i960/t-960bare: Update.
2606 * i960/t-vxworks: Update.
2607 * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h.
2608 * rs6000/t-darwin: Update.
2609 * rs6000/t-rs6000-c-rule: Update.
2610 * v850/v850-c.c: Don't include c-lex.h.
2611 * v850/v850.c: Don't include c-lex.h or cpplib.h.
2612
2613
428d04ec 26142002-05-25 Kazu Hirata <kazu@cs.umass.edu>
2615
2616 * tree.def: Fix typos.
2617 * doc/install.texi: Likewise.
2618
c87e09ad 26192002-05-25 Richard Henderson <rth@redhat.com>
2620
2621 * configure.in (HAVE_AS_TLS): Add ia64 test.
2622 * configure: Rebuild.
2623 * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
2624 (override_options): Set it.
2625 (TARGET_HAVE_TLS): New.
2626 (sdata_symbolic_operand): Look for 's'.
2627 (tls_symbolic_operand): New.
2628 (ia64_expand_load_address): Abort for tls symbols.
2629 (gen_tls_get_addr): New.
2630 (gen_thread_pointer): New.
2631 (ia64_expand_move): Split out from movdi. Handle tls symbols.
2632 (rtx_needs_barrier): Add new unspecs.
2633 (ia64_encode_section_info): Handle tls symbols.
2634 (ia64_strip_name_encoding): Strip two encoding chars.
2635 * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
2636 (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
2637 (TARGET_OPTIONS): Add tls-size.
2638 (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
2639 * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
2640 UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
2641 (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
2642 (movsf, movdf): Likewise.
2643 (movdi_symbolic): Use match_scratch. Don't split if we won't
2644 have a scratch availiable.
2645 (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
2646 add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
2647 load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
2648 * config/ia64/ia64-protos.h: Update.
2649 * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
2650 sdata_symbolic_operand.
2651 (ASM_OUTPUT_LABELREF): Strip two characters.
2652
fe4ca37c 26532002-05-25 Kazu Hirata <kazu@cs.umass.edu>
2654
2655 * combine.c (simplify_set): Remove an unnecessary subreg.
2656
68e7ca0a 26572002-05-25 Marek Michalkiewicz <marekm@amelek.gda.pl>
2658
2659 * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL.
2660
2661 * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New.
2662
ac909de7 26632002-05-25 Gabriel Dos Reis <gdr@codesourcery.com>
2664
2665 * toplev.c (output_clean_symbol_name): Fix another thinko. Gosh.
2666
a7937bc7 26672002-05-25 Roger Sayle <roger@eyesopen.com>
2668
2669 * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
2670 (cond (compare x y) 0) into the equivalent (cond x y).
2671
0b24eca6 26722002-05-25 Gabriel Dos Reis <gdr@codesourcery.com>
2673
2674 * toplev.c (output_clean_symbol_name): Use xstrdup. Fix thinko.
2675
41e38a87 26762002-05-24 Zack Weinberg <zack@codesourcery.com>
2677
2678 * config.gcc: Remove all stanzas for previously obsoleted
2679 systems. Where necessary, add explicit error stanzas to
2680 prevent removed systems from being misidentified as something
2681 else. Begin a fresh obsoletions list, with the systems that
2682 were reprieved last round.
2683 * doc/install.texi: Remove all mention of dead targets.
2684 * fixinc/mkfixinc.sh: Likewise.
2685
2686 * config/arm/arm.h: Bit 31 of target_flags is no longer
2687 reserved.
2688
2689 * config/1750a/1750a-protos.h, config/1750a/1750a.c,
2690 config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc,
2691 config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h,
2692 config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare,
2693 config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h,
2694 config/alpha/osf12.h, config/alpha/osf2or3.h,
2695 config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h,
2696 config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix,
2697 config/clipper/clipper-protos.h, config/clipper/clipper.c,
2698 config/clipper/clipper.h, config/clipper/clipper.md,
2699 config/clipper/clix.h, config/convex/convex-protos.h,
2700 config/convex/convex.c, config/convex/convex.h,
2701 config/convex/convex.md, config/convex/fixinc.convex,
2702 config/convex/proto.h, config/elxsi/elxsi-protos.h,
2703 config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md,
2704 config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h,
2705 config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h,
2706 config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h,
2707 config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm,
2708 config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h,
2709 config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h,
2710 config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h,
2711 config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h,
2712 config/i386/t-dgux, config/i386/t-next, config/i386/t-osf,
2713 config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h,
2714 config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c,
2715 config/i860/i860.h, config/i860/i860.md, config/i860/mach.h,
2716 config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h,
2717 config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h,
2718 config/m68k/altos3068.h, config/m68k/apollo68.h,
2719 config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm,
2720 config/m68k/aux-crtn.asm, config/m68k/aux-exit.c,
2721 config/m68k/aux-low.gld, config/m68k/aux-mcount.c,
2722 config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h,
2723 config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h,
2724 config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h,
2725 config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h,
2726 config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h,
2727 config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h,
2728 config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h,
2729 config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next,
2730 config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld,
2731 config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld,
2732 config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h,
2733 config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas,
2734 config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas,
2735 config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld,
2736 config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h,
2737 config/mips/dec-osf1.h, config/mips/elflorion.h,
2738 config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h,
2739 config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h,
2740 config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h,
2741 config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd,
2742 config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas,
2743 config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix,
2744 config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c,
2745 config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h,
2746 config/ns32k/merlin.h, config/ns32k/pc532-mach.h,
2747 config/ns32k/pc532-min.h, config/ns32k/pc532.h,
2748 config/ns32k/sequent.h, config/ns32k/tek6000.h,
2749 config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S,
2750 config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c,
2751 config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj,
2752 config/sparc/rtems.h, config/we32k/we32k-protos.h,
2753 config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md:
2754 Delete file.
2755
d595210a 27562002-05-24 Richard Henderson <rth@redhat.com>
2757
2758 * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1.
2759 * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC.
2760 * config/i386/i386.c (tls_model_chars): Add leading space.
2761 (tls_symbolic_operand): Don't bias by 1.
2762 (legitimize_address): Don't unbias by 1.
2763
236764d9 27642002-05-24 Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
2765
2766 * lcm.c (optimize_mode_switching): Change bb used as indices
2767 to bb->index.
2768
a3b9ff4d 27692002-05-24 Richard Henderson <rth@redhat.com>
2770
2771 * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead
2772 of update_life_info_in_dirty_blocks.
2773
22c56c6a 27742002-05-24 Jakub Jelinek <jakub@redhat.com>
2775
2776 PR other/6782
2777 * final.c (get_mem_expr_from_op): Return 0 if op is NULL.
2778
606942e3 27792002-05-24 Neil Booth <neil@daikokuya.demon.co.uk>
2780
2781 PR preprocessor/6780
2782 * cppmacro.c (enter_macro_context): Clear state.angled_headers.
2783
323583a1 27842002-05-24 Jim Blandy <jimb@redhat.com>
2785
2786 * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final
2787 entry with a type code of zero, marking the end of the compilation
2788 unit's macro info.
2789
99c46869 27902002-05-24 Richard Henderson <rth@redhat.com>
2791
41e38a87 2792 * varasm.c (asm_output_bss): Always output one byte.
2793 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
99c46869 2794
e9750a4e 27952002-05-24 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2796
2797 * tree.c (decl_type_context): Return NULL_TREE if decl's context is a
2798 namespace.
2799
29e7390a 28002002-05-24 Andreas Jaeger <aj@suse.de>
2801
2802 * ggc-page.c (alloc_page): Cast variables of type size_t to
2803 unsigned long, adjust printf format string.
2804 (ggc_alloc): Likewise.
2805 (ggc_print_statistics): Likewise.
2806 (ggc_print_statistics): Correct printf format string for SCALE to
2807 use unsigned long.
2808
eec065b5 28092002-05-24 Danny Smith <dannysmith@users.sourceforge.net>
2810
2811 * config/i386/mingw32.h (CPP_SPEC): Remove -remap.
2812
6e957326 28132002-05-23 Gabriel Dos Reis <gdr@codesourcery.com>
41e38a87 2814 Zack Weinberg <zack@codesourcery.com>
6e957326 2815
2816 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output
2817 quoted strings.
2818 * dwarf2out.c (lookup_filename): Properly quote filename in .file
29e7390a 2819 directive in assembly file.
6e957326 2820 * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2821 * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise.
2822 * config/pj/pj.h (ASM_FILE_START): Likewise.
2823 * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
2824 * config/avr/avr.c (asm_file_end): Likewise.
2825 * toplev.c (output_quoted_string): Handle possibly signed plain
29e7390a 2826 char.
6e957326 2827 * toplev.h (output_clean_symbol_name): Declare
2828 * toplev.c (output_clean_symbol_name): Define.
2829 * config/alpha/alpha.c (unicosmk_output_module_name): Use it.
2830 * config/1750a/1750a.h (ASM_FILE_START): Likewise.
2831
b6dc1ff7 28322002-05-24 Alan Modra <amodra@bigpond.net.au>
2833
2834 * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits.
2835
4c6603bd 28362002-05-23 Vladimir Makarov <vmakarov@redhat.com>
2837
2838 * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4
2839 of size of unsigned.
2840
2d6788fe 28412002-05-23 Richard Henderson <rth@redhat.com>
2842
2843 * configure.in (HAVE_AS_TLS): New test.
2844 * config.in, configure: Rebuild.
2845 * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
2846 (ix86_tls_dialect_string, ix86_tls_dialect): New.
2847 (override_options): Set it.
2848 (tls_model_chars, tls_symbolic_operand): New.
2849 (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
2850 (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
2851 (local_exec_symbolic_operand): New.
2852 (get_pic_label_name): Merge into output_set_got.
2853 (ix86_asm_file_end): Emit pic_label_name if defined.
2854 (legitimate_constant_p, constant_address_p): New.
2855 (legitimate_pic_operand_p): New.
2856 (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
2857 (legitimate_address_p): Likewise.
2858 (ix86_encode_section_info): Rename from i386_; handle tls decls.
2859 (ix86_strip_name_encoding): New.
2860 (get_thread_pointer): New.
2861 (legitimize_address): Handle tls symbols.
2862 (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
2863 Remove UNSPEC_PLT.
2864 (struct machine_function): Add some_ld_name.
2865 (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
2866 (print_operand) [&]: Use it. Handle UNSPEC_TP.
2867 (output_addr_const_extra): New.
2868 (maybe_get_pool_constant): New.
2869 (ix86_split_to_parts): Use it.
2870 (ix86_expand_move): Handle tls symbols.
2871 (ix86_tls_get_addr): New.
2872 * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
2873 (TARGET_OPTIONS): Add tls-dialect.
2874 (CONSTANT_ADDRESS_P): Use new out-of-line function.
2875 (LEGITIMATE_CONSTANT_P): Likewise.
2876 (LEGITIMATE_PIC_OPERAND_P): Likewise.
2877 (TARGET_STRIP_NAME_ENCODING): New.
2878 (ASM_OUTPUT_LABELREF): New.
2879 (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
2880 (OUTPUT_ADDR_CONST_EXTRA): New.
2881 (PREDICATE_CODES): Update.
2882 (ix86_tls_dialect, ix86_tls_dialect_string): New.
2883 * config/i386/i386.md: Regroup and renumber unspec constants.
2884 (tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
2885 (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
2886 (tls_global_dynamic, tls_local_dynamic_base): New.
2887 (tls_local_dynamic_once): New.
2888 * config/i386/i386-protos.h: Update.
2889
f1c96ec2 28902002-05-23 Richard Henderson <rth@redhat.com>
2891
2892 * genemit.c (gen_insn): Print file:lineno comment before function.
2893 (main): likewise.
2894 * gensupport.c (struct queue_elem): Add filename member.
2895 (queue_pattern): Initialize it; update all callers.
2896 (process_include): Don't free filename.
2897 (read_md_rtx): Set read_rtx_filename.
2898
cf5be812 28992002-05-23 Hans Boehm <Hans_Boehm@hp.com>
f1c96ec2 2900
2901 * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages.
cf5be812 2902
38bf9e23 29032002-05-23 Richard Henderson <rth@redhat.com>
2904
2905 * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case.
2906
4facf21c 29072002-05-23 Richard Henderson <rth@redhat.com>
2908
2909 * doc/extend.texi (C++98 Thread-Local Edits): Update with
2910 commentary from Mark.
2911
4c26117a 29122002-05-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2913
2914 * bb-reorder.c (make_reorder_chain, make_reorder_chain_1):
2915 Use FOR_EACH_BB macros to iterate over basic block chain.
2916 * cfg.c (clear_edges, clear_bb_flags, dump_flow_info,
2917 alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges):
2918 Likewise.
2919 * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add,
2920 find_unreachable_blocks, create_edge_list, verify_edge_list,
2921 remove_fake_edges, add_noreturn_fake_exit_edges,
2922 flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute):
2923 Likewise.
2924 * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
2925 find_sub_basic_blocks): Likewise.
2926 * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks):
2927 Likewise.
2928 * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps):
2929 Likewise.
2930 * cfgloop.c (flow_loops_cfg_dump, flow_loops_find):
2931 Likewise.
2932 * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges,
2933 commit_edge_insertions, commit_edge_insertions_watch_calls,
2934 print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise.
2935 * combine.c (combine_instructions, reg_dead_at_p): Likewise.
2936 * conflict.c (conflict_graph_compute): Likewise.
2937 * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
2938 df_modified_p, df_refs_unlink, df_dump): Likewise.
2939 * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise.
2940 * final.c (compute_alignments): Likewise.
2941 * flow.c (update_life_info, update_life_info_in_dirty_blocks,
2942 delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data,
2943 count_or_remove_death_notes): Likewise.
2944 * gcse.c (oprs_unchanged_p, record_last_reg_set_info,
2945 compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill,
2946 classic_gcse, compute_transp, cprop, compute_pre_data,
2947 compute_transpout, invalidate_nonnull_info,
2948 delete_null_pointer_checks_1, delete_null_pointer_checks,
2949 compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems,
2950 compute_store_table, build_store_vectors, store_motion): Likewise.
2951 * global.c (global_conflicts, mark_elimination): Likewise.
2952 * graph.c (print_rtl_graph_with_bb): Likewise.
2953 * haifa-sched.c (sched_init): Likewise.
2954 * ifcvt.c (if_convert): Likewise.
2955 * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete,
2956 compute_available, compute_nearerout, compute_rev_insert_delete,
2957 optimize_mode_switching): Likewise.
2958 * local-alloc.c (local_alloc, update_equiv_regs): Likewise.
2959 * predict.c (estimate_probability, note_prediction_to_br_prob,
2960 propagate_freq, counts_to_freqs, expensive_function_p,
2961 estimate_bb_frequencies): Likewise.
2962 * profile.c (instrument_edges, get_exec_counts,
2963 compute_branch_probabilities, compute_checksum, branch_prob,
2964 find_spanning_tree): Likewise.
2965 * recog.c (split_all_insns, peephole2_optimize): Likewise.
2966 * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs):
2967 Likewise.
2968 * regclass.c (scan_one_insn, regclass): Likewise.
2969 * regmove.c (mark_flags_life_zones, regmove_optimize,
2970 record_stack_memrefs): Likewise.
2971 * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise.
2972 * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise.
2973 * resource.c (find_basic_block): Likewise.
2974 * sched-ebb.c (schedule_ebbs): Likewise.
2975 * sched-rgn.c (is_cfg_nonregular, build_control_flow,
2976 find_single_block_region, find_rgns, schedule_insns)
2977 * sibcall.c (optimize_sibling_and_tail_recursive_call)
2978 * ssa-ccp.c (optimize_unexecutable_edges,
2979 ssa_ccp_df_delete_unreachable_insns): Likewise.
2980 * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
2981 * ssa.c (find_evaluations, compute_dominance_frontiers_1,
2982 rename_block, convert_to_ssa, compute_conservative_reg_partition,
2983 compute_coalesced_reg_partition, rename_equivalent_regs,
2984 convert_from_ssa): Likewise.
2985 * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue,
2986 process_for_unwind_directive): Likewise.
2987
2988 * df.c (FOR_ALL_BBS): Removed.
2989 * gcse.c (struct null_pointer_info): Type of current_block field
2990 changed.
2991 (struct reg_avail_info): Type of last_bb field changed.
2992 * config/ia64/ia64.c (block_num): Removed.
2993 (need_copy_state): Type changed.
2994 (last_block): New.
2995
df64d85e 29962002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
2997
2998 * cppinit.c (mark_named_operators): Split out from init_builtins.
2999 (cpp_finish_options): Call it from here instead.
3000
314bd4cf 30012002-05-23 Jason Thorpe <thorpej@wasabisystems.com>
3002
3003 * builtin-attrs.def: Update copyright years.
3004 (ATTR_NONNULL): New attribute identifier.
3005 (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New
3006 attribute tree lists.
3007 (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the
3008 format operand.
3009 (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use...
3010 (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg
3011 attribute lists. Chain the appropriate nonnull attribute.
3012 * c-format.c (check_format_arg): Remove null format string
3013 warning.
3014 * testsuite/gcc.dg/format/null-1.c: New test.
3015
0ba0ef70 30162002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3017
3018 * Makefile.in (ADAC): Define.
3019 (SYSLIBS): Define.
3020 (.SUFFIXES): Move before language makefile fragments.
3021 (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC.
3022
15bccea9 30232002-05-23 Mark Mitchell <mark@codesourcery.com>
3024
3025 * varasm.c (make_decl_rtl): Don't allow weak variables to be
3026 placed in common.
3027
cdd43af8 3028Thu May 23 19:43:41 CEST 2002 Jan Hubicka <jh@suse.cz>
3029
3030 * cfg.c (dump_flow_info): Print results of
3031 maybe_hot/probably_never_executed predicates.
3032 * toplev.c (open_dump_file): Print function frequency.
3033
88bc3f54 30342002-05-23 David S. Miller <davem@redhat.com>
3035
3036 * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use
3037 regsets.
3038
dbf6c367 30392002-05-23 Jason Thorpe <thorpej@wasabisystems.com>
3040
3041 * c-common.c (warn_nonnull): Declare.
3042 (c_common_attribute_table): Add "nonnull" attribute.
3043 (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p,
3044 check_nonnull_arg, get_nonnull_operand, check_function_arguments,
3045 check_function_arguments_recurse): New functions.
3046 * c-common.h (warn_nonnull): Declare extern.
3047 (check_function_arguments, check_function_arguments_recurse): New
3048 prototypes.
3049 * c-decl.c (c_decode_option): Add -Wnonnull option.
3050 * c-format.c (set_Wformat): Set warn_nonnull if enabling
3051 format checking.
3052 (format_check_context): New structure.
3053 (check_format_info_recurse): Remove recursion and rename to...
3054 (check_format_arg): ...this. Update comment.
3055 (check_format_info): Use check_function_arguments_recurse.
3056 * c-typeck.c (build_function_call): Call check_function_arguments
3057 instead of check_function_format.
3058 * doc/extend.texi: Document "nonnull" attribute.
3059 * doc/invoke.texi: Docuemnt -Wnonnull option.
3060 * testsuite/gcc.dg/nonnull-1.c: New test.
3061 * testsuite/gcc.dg/nonnull-2.c: New test.
3062
43a852ea 30632002-05-23 David S. Miller <davem@redhat.com>
3064
3065 * basic-block.h (CLEANUP_NO_INSN_DEL): Define it.
3066 * cfgcleanup.c (cleanup_cfg): If it is set do not
3067 attempt to delete trivially dead insns.
3068 * except.c (finish_eh_generation): Pass it to cleanup_cfg.
3069 * toplev.c (rest_of_compilation): Document non-trivial aspect
3070 the RTL before optimize_save_area_alloca is run.
3071
2c64e1a1 30722002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
3073
3074 * c-lex.c (indent_level): Remove.
3075 (cb_file_change, c_lex): Remove indent level handling.
3076 * c-lex.h (indent_level): Remove.
3077 * input.h (struct file_stack): Remove indent_level.
3078 * toplev.c (push_srcloc): Remove indent_level handling.
3079
b478fd74 30802002-05-23 Jakub Jelinek <jakub@redhat.com>
3081
3082 PR target/6753
3083 * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead
3084 of x in constraints for clarity.
3085 (sse_mov?fcc split): abort if op2 == op3.
3086 (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3,
3087 sse_movsfcc_const0_4): Add earlyclobber.
3088 (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
3089 sse_movdfcc_const0_4): Likewise. Use DFmode, not SFmode.
3090 Use Y instead of x in constraints.
3091
d25a2a8c 30922002-05-23 Richard Henderson <rth@redhat.com>
3093
abf68e10 3094 * doc/extend.texi (C99 Thread-Local Edits): New subsection.
3095 (C++98 Thread-Local Edits): New subsection.
3096
d25a2a8c 3097 * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace.
3098 (ix86_arch): Set type to enum processor_type.
3099
29e7390a 3100 * config/i386/i386.md (movsi_1, movdi_1_rex64): Use
d25a2a8c 3101 LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST.
3102
1aa4bbf2 31032002-05-23 Jakub Jelinek <jakub@redhat.com>
3104
3105 * configure.in: Fix as version test for binutils 2.12.1 releases
3106 (without dates).
3107 * configure: Rebuilt.
3108
2b8ca299 31092002-05-23 Richard Henderson <rth@redhat.com>
3110
3111 * config/i386/i386.c (get_pic_label_name): New.
3112 (load_pic_register): Remove.
3113 (output_set_got): New.
3114 (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD.
3115 * config/i386/i386.md (UNSPEC_SET_GOT): New.
3116 (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove.
3117 (prologue_set_got, prologue_get_pc): Remove.
3118 (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New.
3119 (builtin_setjmp_receiver): Use gen_set_got.
3120 * config/i386/i386-protos.h: Update.
3121
f993b230 3122Thu May 23 09:22:23 CEST 2002 Jan Hubicka <jh@suse.cz>
3123
3124 * gcse.c (hash_expr): Do not use alias set for hashing.
3125
d251e975 31262002-05-22 Kevin Buettner <kevinb@redhat.com>
3127
3128 * dbxout.c (dbxout_class_name_qualifiers): New function.
3129 (dbxout_symbol): Output class/struct qualifiers for a .stabs entry.
3130
b9093358 31312002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
3132
3133 * cpperror.c (_cpp_begin_message): No special casing
3134 of CPP_FATAL_LIMIT.
3135 * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/.
3136 (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR.
3137 * cpplib.c (do_include_common): Use DL_ERROR.
3138 * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove.
3139 (DL_ICE): Renumber.
3140 * fix-header.c (read_scan_file): Update.
3141
a3c9b3b6 31422002-05-22 Richard Henderson <rth@redhat.com>
3143
3144 * config/i386/i386.c (ix86_expand_call): New function, extracted
3145 from md call patterns. Add pic_offset_table_rtx to
3146 CALL_INSN_FUNCTION_USAGE when needed.
3147 * config/i386/i386.md (call_pop, call): Use ix86_expand_call.
3148 (call_value_pop, call_value, untyped_call): Likewise.
3149 (call_exp, call_value_exp): Remove.
3150 * config/i386/i386-protos.h: Update.
3151
81c8f37e 31522002-05-22 Richard Henderson <rth@redhat.com>
3153
3154 * varasm.c (default_section_type_flags): Check for VAR_DECL
3155 before using DECL_THREAD_LOCAL.
3156
17fb2af4 31572002-05-22 David Edelsohn <edelsohn@gnu.org>
3158
3159 * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer.
3160 (STARTFILE_SPEC): Delete PE crt0.o.
3161 * config/rs6000/aix51.h: Same.
3162 * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF.
3163 * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to
3164 function descriptor symbol. Use RS6000_OUTPUT_BASENAME.
3165 (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME.
3166 * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define.
3167
1a201dc6 31682002-05-22 Richard Henderson <rth@redhat.com>
3169
3170 * varasm.c (default_section_type_flags): Handle tls data and
3171 default sections.
3172 (default_unique_section): Handle tls sections.
3173
4ae4e5e8 31742002-05-23 Alan Modra <amodra@bigpond.net.au>
3175
3176 * configure.in (CROSS): Define NATIVE_CROSS.
3177 * configure: Regenerate.
3178 * gcc.c (STARTFILE_PREFIX_SPEC): Define.
3179 (startfile_prefix_spec): New var.
3180 (static_specs): Add startfile_prefix_spec.
3181 (do_spec_2): Split out from..
3182 (do_spec): ..here.
3183 (main): Process startfile_prefix_spec.
3184 * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of
3185 dynamic linker.
3186 (STARTFILE_PREFIX_SPEC): Define.
3187 (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without
41e38a87 3188 absolute paths.
4ae4e5e8 3189
b1a9ff83 31902002-05-22 Kazu Hirata <kazu@cs.umass.edu>
3191
3192 * cpperror.c: Fix formatting.
3193 * cppexp.c: Likewise.
3194 * cppfiles.c: Likewise.
3195 * cpphash.c: Likewise.
3196 * cpphash.h: Likewise.
3197 * cppinit.c: Likewise.
3198 * cpplex.c: Likewise.
3199 * cpplib.c: Likewise.
3200 * cppmacro.c: Likewise.
3201 * cppmain.c: Likewise.
3202 * cppspec.c: Likewise.
3203
b87d7646 32042002-05-22 Jakub Jelinek <jakub@redhat.com>
3205
3206 * combine.c (force_to_mode): Use gen_int_mode.
3207 Don't clear CONST_INT bits outside of mode.
3208
4a2f5ba2 32092002-05-22 Richard Henderson <rth@redhat.com>
3210
3211 * fixinc/inclhack.def (thread_keyword): Match __thread as last arg.
3212 * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3213
40c4e66e 32142002-05-22 Jakub Jelinek <jakub@redhat.com>
3215
3216 PR c/6643
3217 * emit-rtl.c (widen_memory_access): Only call compare_tree_int
3218 if DECL_SIZE_UNIT is INTEGER_CST.
3219
6ce48f9b 32202002-05-22 Richard Henderson <rth@redhat.com>
3221
3222 * flow.c (life_analysis): Delete broken reg_label check.
3223
472b5cb1 32242002-05-22 Richard Henderson <rth@redhat.com>
3225
3226 * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg.
3227 * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild.
3228
e184feda 3229Wed May 22 18:39:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
e3286780 3230
3231 * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c.
3232 (embed-bb.c): New rule.
e184feda 3233 * t-sh64 (LIB2FUNCS_EXTRA): Don't change.
e3286780 3234 * config/sh/embed_bb.c: Delete.
3235
e184feda 3236Wed May 22 18:25:29 2002 J"orn Rennecke <joern.rennecke@superh.com>
3237
3238 * c-common.c (cb_register_builtins): Don't indent '#' of #define.
3239
9052cb60 32402002-05-22 Kazu Hirata <kazu@cs.umass.edu>
3241
3242 * config/h8300/h8300.md (*andorqi3): New.
3243
dd436eaf 32442002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
3245
3246 PR preprocessor/6517
3247 * Makefile.in: Update.
3248 * c-common.c (c_common_post_options): Add preprocessor
3249 errors to the error count.
3250 * c-lang.c (c_post_options): Kill.
3251 (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3252 * hooks.h: Add header guards.
3253 * langhooks-def.h: Include hooks.h.
3254 (LANG_HOOKS_POST_OPTIONS): Update.
3255 * langhooks.h (struct lang_hooks): Update post_options.
3256 * toplev.c (parse_options_and_default_flags): Update.
3257objc:
3258 * objc-lang.c (objc_post_options): Kill.
3259 (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3260
0c0bfc96 32612002-05-21 Bruce Korb <bkorb@gnu.org>
3262
3263 * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check
bfdbdaf0 3264 * fixinc/inclhack.def(thread_keyword): use c_fix = format.
3265 * fixinc/fixincl.x: regen.
0c0bfc96 3266
db34a109 32672002-05-21 Kazu Hirata <kazu@cs.umass.edu>
3268
3269 * cfgbuild.c: Fix formatting.
3270 * cfg.c: Likewise.
3271 * cfgcleanup.c: Likewise.
3272 * cfglayout.c: Likewise.
3273 * cfgloop.c: Likewise.
3274 * cfgrtl.c: Likewise.
3275
2a6f0f81 32762002-05-21 Richard Henderson <rth@redhat.com>
3277
3278 * c-common.h (enum rid): Add RID_THREAD.
3279 * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables.
3280 (grokdeclarator): Grok __thread.
3281 * c-parse.in (reswords): Add __thread.
3282 (rid_to_yy): Add RID_THREAD.
3283
3284 * tree.h (DECL_THREAD_LOCAL): New.
3285 (struct tree_decl): Add thread_local_flag.
3286 * print-tree.c (print_node): Dump DECL_THREAD_LOCAL.
3287 * tree.c (staticp): TLS variables are not static.
3288
3289 * target-def.h (TARGET_HAVE_TLS): New.
3290 * target.h (have_tls): New.
3291 * output.h (SECTION_TLS): New.
3292 * varasm.c (assemble_variable): TLS variables can't be common for now.
3293 (default_section_type_flags): Handle .tdata and .tbss.
3294 (default_elf_asm_named_section): Handle SECTION_TLS.
3295 (categorize_decl_for_section): Handle DECL_THREAD_LOCAL.
3296
3297 * flags.h (flag_tls_default): Declare.
3298 * toplev.c (flag_tls_default): Define.
3299 (display_help): Display help for it.
3300 (decode_f_option): Set it.
3301
3302 * doc/extend.texi (Thread-Local): New node describing language-level
3303 thread-local storage.
3304 * doc/invoke.texi (-ftls-model): Document.
3305
3306 * fixinc/inclhack.def (thread_keyword): New.
3307 * fixinc/fixincl.x: Rebuild.
3308
90eb65aa 33092002-05-21 Jeffrey A Law <law@redhat.com>
3310
29e7390a 3311 * optabs.c (expand_binop): For double-word integer multiplies,
e22b1f65 3312 do not compute intermediate results into something that is
3313 not a register (such as a SUBREG or MEM).
3314
90eb65aa 3315 * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko.
3316 (ix86_sched_reorder): Make sure to initialize scheduling
3317 data even when there's only one insn in the ready queue.
3318
490aba6d 33192002-05-21 Vladimir Makarov <vmakarov@redhat.com>
3320
3321 * genautomata.c (reserv_sets_hash_value): Fix a typo.
3322
8d578a5b 33232002-05-21 Vladimir Makarov <vmakarov@redhat.com>
3324
3325 * genautomata.c (reserv_sets_hash_value): Define hash_value as
3326 set_el_t. Transform the hash value into unsigned.
3327 (output_cycle_reservs): Fix bug with output of repeated `nothing'.
3328 (transform_3): Add code to process `(A,B)+(D,E)'.
3329
752fbe10 33302002-05-21 NIIBE Yutaka <gniibe@m17n.org>
3331
3332 * reload1.c (do_output_reload): Run delete_output_reload
3333 only if optimizing.
3334
d1f6ae0c 33352002-05-21 Roger Sayle <roger@eyesopen.com>
3336
3337 PR middle-end/6600
3338 * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants
3339 larger than INTEGER_CST. (store_by_pieces_1): Use it here...
3340 (can_store_by_pieces): ... and here to limit the largest mode used.
3341 Add a comment to document this function.
3342
c249c299 33432002-05-21 Richard Henderson <rth@redhat.com>
3344
3345 * flow.c (life_analysis): Fix test for deleted label.
3346
4fa57f2d 33472002-05-21 Neil Booth <neil@daikokuya.demon.co.uk>
3348
3349 * doc/tm.texi: Fix typo.
3350
965e9876 33512002-05-21 Zack Weinberg <zack@codesourcery.com>
3352
3353 * c-common.c (c_common_init): Set options->unsigned_char from
3354 flag_signed_char.
3355 (cb_register_builtins): Define __STRICT_ANSI__ and
3356 __CHAR_UNSIGNED__ here...
3357 * cppinit.c (init_builtins): Not here.
3358 (cpp_create_reader): unsigned_char option defaults to 0, not
3359 !DEFAULT_SIGNED_CHAR.
3360 (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char
3361 and -funsigned-char.
3362
3363 * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__.
3364 * cpphash.c (_cpp_init_hashtable): Don't set it.
3365 * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting
3366 directly. Clarify comment.
3367
f7fd47b9 33682002-05-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
965e9876 3369
84ac08a4 3370 * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to
3371 neighbouring basic blocks. Use ENTRY_BLOCK_PTR->next_bb instead of
3372 BASIC_BLOCK (0). Use EXIT_BLOCK_PTR->prev_bb instead of
3373 BASIC_BLOCK (n_basic_blocks - 1).
f7fd47b9 3374 * cfganal.c (can_fallthru, flow_call_edges_add,
84ac08a4 3375 flow_preorder_transversal_compute): Too.
f7fd47b9 3376 * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks,
84ac08a4 3377 find_sub_basic_blocks): Too.
3378 * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too.
f7fd47b9 3379 * cfglayout.c (skip_insns_after_block, fixup_reorder_chain,
84ac08a4 3380 fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too.
3381 * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too.
f7fd47b9 3382 * combine.c (this_basic_block): Type changed to basic_block.
3383 (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine,
3384 nonzero_bits, num_sign_bit_copies, get_last_value_validate,
84ac08a4 3385 get_last_value, distribute_notes, distribute_links): Too.
3386 * final.c (compute_alignments): Too.
3387 * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too.
3388 * function.c (thread_prologue_and_epilogue_insns): Too.
3389 * gcse.c (compute_code_hoist_vbeinout): Too.
3390 * global.c (build_insn_chain): Too.
3391 * ifcvt.c (find_if_block, find_cond_trap): Too.
3392 * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too.
3393 * regmove.c (regmove_optimize): Too.
3394 * resource.c (find_basic_block): Too.
3395 * sched-ebb.c (schedule_ebbs): Too.
3396 * ssa-dce.c (find_control_dependence, find_pdom): Too.
f7fd47b9 3397
e4ab85e6 33982002-05-21 Andreas Jaeger <aj@suse.de>
3399
3400 * cppinit.c (sanity_checks): Avoid printf mismatch warnings.
3401
372310d2 34022002-05-21 Richard Henderson <rth@redhat.com>
3403
3404 * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use
3405 unspec names, not numbers.
3406
ecf4b7b8 34072002-05-21 Joseph S. Myers <jsm28@cam.ac.uk>
3408
3409 * doc/sourcebuild.texi: Mention snapshot-README and
3410 snapshot-index.html as needing updating for new front ends.
3411
8d780c0b 34122002-05-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3413
3414 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when
3415 disabling checking, and avoid multiple evaluation of RTX.
3416
9a3823f4 34172002-05-21 Richard Earnshaw <rearnsha@arm.com>
3418
3419 * bitmap.c (bitmap_find_bit): Return early if we have the correct
3420 element cached.
3421
4c45e018 3422Tue May 21 10:51:54 CEST 2002 Jan Hubicka <jh@suse.cz>
3423
3424 * profile.c (gen_edge_profiler): Set alias set before the memory is
3425 used.
3426
362ed03f 34272002-05-20 David S. Miller <davem@redhat.com>
3428
3429 * cselib.c (max_value_regs): New.
3430 (cselib_lookup, cselib_invalidate_regno): Initialize it when
3431 adding new entries to the REG_VALUES table and we are dealing with
3432 a hard register.
3433 (clear_table): Initialize it.
3434 (cselib_invalidate_regno): Use it to determine which hard
3435 registers to scan when mode is not VOIDmode.
3436
e4ab85e6 34372002-05-20 Duraid Madina <duraid@fl.net.au>
4a1b94fc 3438
3439 * tradcpp.c (fixup_newlines): Use old-style function header.
3440
b213eefe 34412002-05-20 Krister Walfridsson <cato@df.lth.se>
3442
3443 * reload1.c (reload_cse_simplify): Fix typo in rtx code check.
3444
6cddbfd4 34452002-05-20 H.J. Lu (hjl@gnu.org)
3446
3447 Base on suggestions from Zhang Fuxin <fxzhang@ict.ac.cn>:
3448
3449 * config/mips/mips.h (DFMODE_NAN): Defined.
3450 (SFMODE_NAN): Likewise.
3451
1549464a 34522002-05-20 Dale Johannesen <dalej@apple.com>
6cddbfd4 3453
965e9876 3454 * combine.c (cant_combine_insn_p): Back out my
3455 previous patch.
1549464a 3456
195731ad 34572002-05-20 Kazu Hirata <kazu@cs.umass.edu>
3458
3459 * params.c: Fix formatting.
3460 * params.h: Likewise.
3461 * predict.c: Likewise.
3462 * prefix.c: Likewise.
3463 * print-rtl.c: Likewise.
3464 * print-tree.c: Likewise.
3465 * profile.c: Likewise.
3466
b0486b55 34672002-05-20 H.J. Lu (hjl@gnu.org)
3468
3469 * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine.
3470
a454f6a0 34712002-05-20 Nick Clifton <nickc@cambridge.redhat.com>
3472
3473 * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march
3474 switches straight on to the assembler, do not abbreviate them.
3475 * config/arm/elf.h (ASM_SPEC): As above.
3476 * config/arm/semi.h (ASM_SPEC): As above.
3477 * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above.
3478 * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass
3479 -mcpu=xscale on to the assembler by default.
3480 * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above.
3481
755ffada 34822002-05-20 Richard Henderson <rth@redhat.com>
3483
3484 * cse.c (canon_hash): Reorder do_not_record test. Always
3485 allow pic_offset_table_rtx.
3486
1f4eab62 34872002-05-19 Toon Moene <toon@moene.indiv.nluug.nl>
3488
3489 * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p.
3490 (expand_binop): Ditto (3 times).
3491
7f52823c 34922002-05-19 Mark Mitchell <mitchell@doubledemon.codesourcery.com>
3493
3494 * Makefile.in (distclean): Remove QMTest stuff.
3495 (QMTEST_PATH): New variable.
3496 (QMTESTFLAGS): Likewise.
3497 (QMTESTRUNFLAGS): Likewise.
3498 (QMTEST): Likewise.
3499 (QMTEST_GPP_TESTS): Likewise.
3500 (QMTEST_DIR): Likewise.
3501 (QMTEST_DIR/context): New target.
3502 (qmtest-g++): Likeise.
3503 (qmtest-gui): Likewise.
3504 (QMTEST_DIR/gpp-expected.qmr): Likewise.
3505
018ca13c 35062002-05-19 Aldy Hernandez <aldyh@redhat.com>
3507
965e9876 3508 * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in
3509 an altivec register if TARGET_ALTIVEC.
018ca13c 3510
965e9876 3511 * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P
3512 to ALTIVEC_VECTOR_MODE.
3513 (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned.
3514 (rs6000_va_arg): Vectors may go in registers if they are not
3515 altivec vectors.
018ca13c 3516
507baee5 35172002-05-19 Kazu Hirata <kazu@cs.umass.edu>
3518
3519 * protoize.c: Fix formatting.
3520
c93cef3a 35212002-05-19 Richard Henderson <rth@redhat.com>
3522
3523 * gensupport.c (init_include_reader): Merge into ...
3524 (process_include): ... here. Simplify composite path creation.
3525 Plug memory leaks. Fix file/line number tracking. Do not
3526 process_define_cond_exec. Return void.
3527 (process_rtx): Don't check process_include return value.
3528
7fa55aef 35292002-05-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3530
3531 * basic_block.h (struct basic_block_def): Added prev_bb and next_bb
3532 fields.
3533 (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
3534 traversing basic block chain.
3535 (create_basic_block_structure, create_basic_block): Declaration changed.
3536 (link_block, unlink_block): Declare.
3537 * cfg.c (entry_exit_blocks): Initialize new fields.
3538 (link_block, unlink_block): New.
3539 (expunge_block_nocompact): Unlink basic block.
3540 (dump_flow_info): Print prev_bb/next_bb fields.
3541 * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified.
3542 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified.
3543 * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified.
3544 * cfgrtl.c (create_basic_block_structure, create_basic_block,
3545 split_block, force_nonfallthru_and_redirect, split_edge): Modified.
3546 (verify_flow_info): Check that list agrees with numbering.
3547
08eedad6 35482002-05-19 Neil Booth <neil@daikokuya.demon.co.uk>
3549
3550 * c-common.c (preprocessing_asm): New macro.
3551 * c-lex.h (builtin_define, builtin_assert): Use pfile.
3552doc:
3553 * tm.texi: Update.
3554config/alpha:
3555 * alpha.h (CPLUSPLUS_CPP_SPEC): Remove.
3556 (CPP_SPEC): Simplify.
3557 (TARGET_CPU_CPP_BUILTINS): Update.
3558 * freebsd.h (TARGET_OS_CPP_BUILTINS): New.
3559 (CPP_SPEC): Simplify.
3560 * linux.h (CPLUSPLUS_CPP_SPEC): Remove.
3561 (TARGET_OS_CPP_BUILTINS): Update.
3562 * osf.h (CPP_XFLOAT_SPEC): Kill.
3563 (TARGET_OS_CPP_BUILTINS): Update.
3564 (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify.
3565 * osf5.h (CPP_XFLOAT_SPEC): Kill.
3566 * vms.h (CPP_SUBTARGET_SPEC): Kill.
3567 (TARGET_OS_CPP_BUILTINS): Update.
3568
eb2c0385 35692002-05-19 Richard Henderson <rth@redhat.com>
3570
3571 * varasm.c (default_binds_local_p): Fix typo.
3572
f4d3a3e0 35732002-05-19 Marek Michalkiewicz <marekm@amelek.gda.pl>
3574
3575 * config/avr/avr.c (machine_dependent_reorg): Sign extend the
3576 CONST_INT operand to the correct mode after adding 1 to it.
3577
16d627c6 35782002-05-19 Mark Mitchell <mark@codesourcery.com>
3579
3580 * config.gcc (powerpc-wrs-windiss*): New target.
3581
5ccbc357 35822002-05-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3583
3584 * config/rs6000/rs6000.md (ashrdi3_no_power): New.
3585 (ashrdi3): Use it.
3586
e98fb73e 35872002-05-18 Mark Mitchell <mark@codesourcery.com>
3588
3589 * configure.in (AC_CHECK_FUNCS): Add checks for scandir and
3590 alphasort.
3591 * config.in: Regenerated.
3592 * configure: Regenerated.
3593
33459320 35942002-05-19 Richard Henderson <rth@redhat.com>
3595
3596 * target-def.h (TARGET_BINDS_LOCAL_P): New.
3597 * target.h (struct gcc_target): Move boolean fields to the end.
3598 Add binds_local_p.
3599 * varasm.c (default_binds_local_p): New.
3600 * output.h: Declare it.
3601
3602 * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook.
3603 * config/cris/cris.c (cris_encode_section_info): Likewise.
3604 * config/i386/i386.c (i386_encode_section_info): Likewise.
3605 * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
3606 * config/sh/sh.c (sh_encode_section_info): Likewise.
3607
3608 * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New.
3609 (TARGET_BINDS_LOCAL_P): New.
3610
43db11ad 36112002-05-19 Richard Henderson <rth@redhat.com>
3612
3613 * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE,
3614 FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT,
3615 MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison.
3616
3617 * toplev.c (display_help): Kill -a -ax help.
3618
e4ab85e6 3619 * config/1750a/1750a.h, config/alpha/alpha.h,
43db11ad 3620 config/clipper/clipper.h, config/dsp16xx/dsp16xx.h,
3621 config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h,
3622 config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h:
3623 (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill.
3624
3625 * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill.
3626 * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill.
3627
3628 * config/i386/i386-protos.h (ix86_output_block_profiler): Kill.
3629 (ix86_output_function_block_profiler): Kill.
3630 * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill.
3631 (m68hc11_function_block_profiler): Kill.
3632 * config/m68hc11/m68hc11-protos.h: Update.
3633 * config/m88k/m88k.c (output_block_profiler): Kill.
3634 (output_function_block_profiler): Kill.
3635 * config/m88k/m88k-protos.h: Update.
3636
7b4a38a6 36372002-05-19 Richard Henderson <rth@redhat.com>
3638
3639 * system.h (STRIP_NAME_ENCODING): Poison it.
3640 * output.h (STRIP_NAME_ENCODING): Remove.
3641 (default_strip_name_encoding): Declare.
3642 * target-def.h (TARGET_STRIP_NAME_ENCODING): New.
3643 * target.h (strip_name_encoding): New.
3644 * varasm.c (default_strip_name_encoding): New.
3645
3646 * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h,
3647 config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c,
3648 config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c,
3649 config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h,
3650 config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h,
3651 config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h,
3652 config/pa/pa.c, config/pa/pa.h, config/pa/som.h,
3653 config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h,
3654 config/v850/v850.h: Use the hook, not the macro.
3655
3656 * config/darwin-protos.h, config/darwin.c, config/darwin.h,
3657 config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c,
3658 config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h,
3659 config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c,
3660 config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c,
3661 config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h,
e4ab85e6 3662 config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
7b4a38a6 3663 config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h,
3664 config/v850/v850.c, config/v850/v850.h:
3665 Move STRIP_NAME_ENCODING to out-of-line function and add
3666 TARGET_STRIP_NAME_ENCODING.
3667
3668 * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h,
3669 config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING
3670 with TARGET_STRIP_NAME_ENCODING referencing existing function;
3671 make function static.
3672
3673 * xcoffout.c: Include target.h
3674 * Makefile.in (xcoffout.o): Update.
3675
3676 * config/avr/avr.c (avr_encode_section_info): Correct prototype.
3677 * config/avr/avr.h (STRIP_NAME_ENCODING): Remove.
3678 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark
3679 reloc argument unused.
3680 * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New.
3681
3682 * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous
3683 STRIP_NAME_ENCODING docs.
3684
307e368b 36852002-05-19 Andreas Jaeger <aj@suse.de>
3686
3687 * gengenrtl.c: Add prototype for excluded_rtx.
3688
3689 * real.h: Add prototype for exact_real_truncate.
3690
7811991d 36912002-05-18 Richard Henderson <rth@redhat.com>
3692
3693 * system.h (ENCODE_SECTION_INFO): Poison it.
3694 * target-def.h (TARGET_ENCODE_SECTION_INFO): New.
3695 * target.h (encode_section_info): New.
3696 * varasm.c (make_decl_rtl, output_constant_def): Use it.
3697 * hooks.c (hook_tree_int_void): New.
3698 * hooks.h: Declare it.
3699
3700 * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
3701 config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h,
3702 config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h,
3703 config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h,
3704 config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h,
3705 config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c,
3706 config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c,
3707 config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h,
3708 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
3709 config/mcore/mcore-protos.h, config/mcore/mcore.c,
3710 config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c,
3711 config/mmix/mmix.h, config/rs6000/rs6000-protos.h,
3712 config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h,
3713 config/stormy16/stormy16.c, config/stormy16/stormy16.h:
3714 Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO
3715 referencing existing function. Make function static.
3716
3717 * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c,
307e368b 3718 config/arc/arc.h, config/arm/arm.c, config/arm/arm.h,
7811991d 3719 config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
3720 config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c,
3721 config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c,
307e368b 3722 config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h,
7811991d 3723 config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c,
3724 config/pa/pa.h, config/romp/romp.c, config/romp/romp.h,
3725 config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c,
3726 config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
307e368b 3727 config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c,
7811991d 3728 config/v850/v850.h, config/vax/vax.c, config/vax/vms.h,
3729 config/xtensa/xtensa.c, config/xtensa/xtensa.h:
3730 Move ENCODE_SECTION_INFO to out-of-line function and add
3731 TARGET_ENCODE_SECTION_INFO.
3732
3733 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro.
3734 (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
3735
3736 * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename
3737 from SUBTARGET_*
3738 (switch_to_section): Replace in_rdata case with in_readonly_data.
3739
3740 * config/h8300/h8300.c (h8300_encode_label): Make static.
3741 * config/h8300/h8300-protos.h: Update.
3742
3743 * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename
3744 from rs6000_encode_section_info; make static.
3745 (rs6000_xcoff_encode_section_info): New.
3746
3747 * config/v850/v850.c (v850_encode_data_area): Make static.
3748 * config/v850/v850-protos.h: Update.
3749
3750 * config/vax/vax.c: Include flags.h.
3751 (vms_select_section): Fix typo.
3752
3753 * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous
3754 ENCODE_SECTION_INFO docs.
3755
7e4d3bd6 37562002-05-18 Richard Henderson <rth@redhat.com>
3757
3758 * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from
3759 REGISTER_TARGET_PRAGMAS.
3760 * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine.
3761
a48368df 3762 * config.gcc: Do not use rs6000-c.c on powerpc-darwin.
3763
bbfbe351 37642002-05-18 Richard Henderson <rth@redhat.com>
3765
3766 * system.h (SELECT_RTX_SECTION): Poison.
3767 * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New.
3768 * target.h (select_rtx_section): New.
3769 * varasm.c (output_constant_pool): Use it.
3770 (default_select_rtx_section, default_elf_select_rtx_section): New.
3771 * output.h: Declare them.
3772
3773 * config/darwin.h (SELECT_RTX_SECTION): Move ...
3774 * config/darwin.c (machopic_select_rtx_section): ... here.
3775 * config/darwin-protos.h: Update.
3776
3777 * config/nextstep.h (SELECT_RTX_SECTION): Move ...
3778 * config/nextstep.c (machopic_select_rtx_section): ... here.
3779 (nextstep_select_section): Rename variable to avoid macro clash.
3780 * config/nextstep-protos.h: Update.
3781
3782 * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h,
3783 config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h,
3784 config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h,
307e368b 3785 config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h,
bbfbe351 3786 config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h,
3787 config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h,
307e368b 3788 config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h,
bbfbe351 3789 config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h,
3790 config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h
3791 (SELECT_RTX_SECTION): Remove.
3792
3793 * config/darwin.h, config/elfos.h, config/nextstep.h,
3794 config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c,
3795 config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h,
3796 config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h,
3797 config/sparc/lynx.h, config/xtensa/xtensa.c
3798 (TARGET_ASM_SELECT_RTX_SECTION): New.
3799
3800 * config/alpha/elf.h (SELECT_RTX_SECTION): Move ...
3801 * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here.
3802 * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ...
3803 * config/ia64/ia64.c (ia64_select_rtx_section): ... here.
3804 (ia64_aix_select_rtx_section): New.
3805 * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before
3806 redefining.
3807 * config/mips/mips.c (mips_select_rtx_section): Make static.
307e368b 3808 Support ELF SHF_MERGE features.
bbfbe351 3809 * config/mips/mips-protos.h: Update.
3810 * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ...
3811 * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here.
3812 (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section;
3813 make static, fall back to default_elf_select_rtx_section.
3814 * config/rs6000/rs6000-protos.h: Update.
3815 * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ...
3816 * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here.
3817 * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2.
3818 * config/romp/romp.c (romp_select_rtx_section): New.
3819 * config/s390/s390.c (s390_select_rtx_section): New.
3820 * config/xtensa/xtensa.c: Include output.h. Shuffle local function
3821 declarations before target macro definition.
3822 (xtensa_emit_call): Use static buffer.
3823 (xtensa_select_rtx_section): New.
3824 * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove.
3825 (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove.
3826 (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section.
3827
3828 * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from
3829 SELECT_RTX_SECTION docs.
3830
3831Sun May 19 00:24:23 CEST 2002 Jan Hubicka <jh@suse.cz>
b99451ea 3832
3833 * i386.md (movsi/movdi): Fix template.
3834 (sse2 patterns): Set attributes consistently.
3835
3836 * i386.md (pushqi2, ashrqi_*): Fix constraint.
3837
d2dfd89f 38382002-05-18 Toon Moene <toon@moene.indiv.nluug.nl>
3839
3840 * optabs.c (complex_part_zero_p): New.
3841 * (expand_cmplxdiv_straight): Use it.
3842 * (expand_cmplxdiv_wide): Ditto.
3843 * (expand_binop): Ditto.
3844
6cde52a2 38452002-05-18 Richard Henderson <rth@redhat.com>
3846
3847 * final.c (HAVE_READONLY_DATA_SECTION): New.
3848 (shorten_branches): Use it instead of ifdefs.
3849 * varasm.c (enum in_section): Add in_readonly_data.
3850 (text_section, data_section): Tidy.
3851 (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
3852
3853 * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
3854 config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
3855 (READONLY_DATA_SECTION): Don't undef.
3856
3857 * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
3858 config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
3859 config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
3860
3861 * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
3862 config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
3863 config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
3864 config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
3865
3866 * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
3867 config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
3868 config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
3869 config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
3870 config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
3871 config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
3872 config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
3873 config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
3874 CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
3875
3876 * config/elfos.h, config/netware.h, config/1750a/1750a.h,
3877 config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
3878 config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
3879 config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
3880 config/pa/pa64-hpux.h, config/sparc/litecoff.h
3881 (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
3882
3883 * config/elfos.h, config/netware.h, config/svr3.h,
3884 config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
3885 config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
3886 config/h8300/h8300.h, config/i386/i386-interix.h,
3887 config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
3888 config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
3889
3890 * config/elfos.h, config/netware.h, config/svr3.h,
3891 config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
3892 config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
3893 config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
3894 config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
3895
3896 * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
3897 config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
3898 config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
3899 config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
3900 config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
3901 config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
3902 config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
3903 config/rs6000/sysv4.h, config/v850/v850.h
3904 (EXTRA_SECTIONS): Remove in_const/in_rdata.
3905 (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
3906
3907 * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
3908 config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
3909 config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
3910 config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
3911 * config/alpha/alpha.c (alpha_start_function): Likewise.
3912 (alpha_write_linkage): Likewise.
3913 * config/m32r/m32r.c (m32r_select_section): Likewise.
3914 * config/m88k/m88k.c (m88k_select_section): Likewise.
3915 * config/mips/mips.c (mips_select_rtx_section): Likewise.
3916 * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
3917 (rs6000_elf_select_section): Likewise.
3918 * config/v850/v850.c (v850_select_section): Likewise.
3919
3920 * config/1750a/1750a.h, config/i860/sysv3.h
3921 (READONLY_DATA_SECTION_ASM_OP): New.
3922 READONLY_DATA_SECTION_ASM_OP.
3923 * config/i386/interix.c, config/i386/winnt.c
3924 (i386_pe_unique_section): Always use .rdata prefix.
3925 * config/pa/som.h (readonly_data): Always switch to read-only section.
3926 (READONLY_DATA_SECTION): Predicate on flag_pic.
3927 * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
3928 * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
3929 (READONLY_DATA_SECTION): Update.
3930
959f435b 39312002-05-18 Jason Thorpe <thorpej@wasabisystems.com>
3932
3933 * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
307e368b 3934 is used without -Wformat.
959f435b 3935 * c-common.h (warn_format_zero_length): Declare extern.
3936 * c-decl.c (warn_options): Add "format-zero-length".
3937 * c-format.c (warn_format_zero_length): Declare.
3938 (set_Wformat): Set warn_format_zero_length for -Wformat.
3939 (check_format_info): Only warn about zero-length formats if
3940 warn_format_zero_length is true. Include the format type
3941 name in the warning message.
3942 * doc/invoke.texi: Document -Wformat-zero-length.
3943 * testsuite/gcc.dg/format/zero-length-1.c: New test.
3944
40570cc2 39452002-05-18 Kazu Hirata <kazu@cs.umass.edu>
3946
3947 * timevar.c: Fix formatting.
3948 * tlink.c: Likewise.
3949 * toplev.c: Likewise.
3950 * tree-dump.c: Likewise.
3951 * tree-inline.c: Likewise.
3952
ca52ef60 39532002-05-18 Neil Booth <neil@daikokuya.demon.co.uk>
3954
3955 * cppinit.c (cpp_post_options): If preprocessed, turn off
3956 traditional. If traditional, turn off column numbers.
3957 * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
3958 * cpptrad.c (handle_newline): Update line_base.
3959 (skip_comment): Handle -Wcomment.
3960
06579c95 39612002-05-17 Zack Weinberg <zack@codesourcery.com>
3962
3963 * cppinit.c (struct builtin): Remove unused fields.
3964 (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
3965 (operator_array): New - was second half of builtin_array.
3966 (init_builtins): Simplify loop over builtin_array/operator_array.
3967
7c66e8d9 39682002-05-18 Neil Booth <neil@daikokuya.demon.co.uk>
3969
3970 * defaults.h (UNIQUE_SECTION): Remove.
3971 * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
3972
7a5749cc 39732002-05-17 Richard Henderson <rth@redhat.com>
3974
3975 * expr.c (init_expr_once): Don't use start/end_sequence.
3976 Use rtx_alloc instead of emit_insn.
3977 * toplev.c (lang_dependent_init): Run init_expr_once here ...
3978 (lang_independent_init): ... not here.
3979
adf9e2e6 39802002-05-17 Jason Thorpe <thorpej@wasabisystems.com>
3981
3982 * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
3983
f0973368 39842002-05-17 Marek Michalkiewicz <marekm@amelek.gda.pl>
3985
3986 * config/avr/avr.c (avr_regs_to_save): New function. Also check
3987 for fixed registers, possibly used for global register variables.
3988 (initial_elimination_offset, avr_output_function_prologue,
3989 avr_output_function_epilogue): Move common code to avr_regs_to_save.
3990
0bb65704 39912002-05-17 Neil Booth <neil@daikokuya.demon.co.uk>
3992
3993 * Makefile.in: Update for cpptrad.c.
3994 * cpphash.h (struct cpp_buffer): New members for buffer
3995 overlays.
3996 (struct cpp_reader): New members for traditional output.
3997 (_cpp_read_logical_line, _cpp_overlay_buffer): New.
3998 * cppinit.c (cpp_create_reader): Set trad_line.
3999 (cpp_destroy): Free trad_out_base if used.
4000 (cpp_read_main_file): Overlay an empty buffer if traditional.
4001 (cpp_finish_options): Don't do builtins.
4002 (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
4003 (cpp_handle_option): Handle it.
4004 * cpplex.c (continue_after_nul): New.
4005 (_cpp_lex_direct): Use handle_nul.
4006 * cpplib.h (struct cpp_options): New traditional option.
4007 * cpptrad.c: New file.
4008
9f3643d1 40092002-05-17 Neil Booth <neil@daikokuya.demon.co.uk>
4010
4011 * c-common.c (c_common_init_options): Use C89 for Objective-C,
4012 and set the options flag.
4013 * cppinit.c (lang_flags): Remove objc.
4014 (lang_defaults): Remove OBJC and OBJCXX.
4015 (set_lang): Update.
4016 (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
4017 (cpp_handle_option): Remove -+ and -lang-objc++.
4018 For ObjC, just set a flag.
4019 (print_help): Update.
4020 * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
4021
1e4dc247 40222002-05-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4023
4024 * doc/install.texi (Specific, mips-sgi-irix6): Document need to
4025 bootstrap with -mips3.
4026
d3371fcd 40272002-05-17 Kazu Hirata <kazu@cs.umass.edu>
4028
4029 * final.c: Fix formatting.
4030 * fix-header.c: Likewise.
4031 * flow.c: Likewise.
4032 * fold-const.c: Likewise.
4033 * function.c: Likewise.
4034
9371e4ab 40352002-05-17 David S. Miller <davem@redhat.com>
4036
4037 PR c/6689, PR optimization/6615
4038 * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
4039 and make it a pointer to rtx. Update comments.
4040 (update_equiv_regs): When scanning for equivalences, record
4041 address of SET_SRC (set) in reg_equiv[].src_p. Dereference
4042 it while making the equiv replacements.
4043
39eb84bc 40442002-05-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4045
4046 * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
4047
6756f4dc 40482002-05-17 kaz Kojima <kkojima@rr.iij4u.or.jp>
4049
4050 * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
4051 when encoding visibility into SYMBOL_REF_FLAG.
4052
ef8396bd 40532002-05-17 Richard Sandiford <rsandifo@redhat.com>
4054
4055 * expr.c (force_operand): Fix reversed move.
4056
62ef040e 40572002-05-17 Kurt Wall <kwall@kurtwerks.com>
4058
4059 * doc/install.texi (Testing): Mention two common DejaGnu warnings
4060 that can be ignored.
4061
40622002-05-16 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4063
4064 * doc/install.texi (Final install): Recommend to install into a
4065 "clean" target directory.
4066
d2ba5713 40672002-05-17 Richard Henderson <rth@redhat.com>
4068
4069 * config/ia64/ia64.md: Use braced strings instead of quoted strings
4070 for code blocks. Tidy whitespace.
4071
52470889 40722002-05-17 Richard Henderson <rth@redhat.com>
4073
4074 * hooks.c (hook_tree_bool_false): New.
4075 * hooks.h: Declare it.
4076 * target-def.h (TARGET_ASM_SELECT_SECTION): New.
4077 (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
4078 * target.h (select_section, unique_section): New.
4079 (in_small_data_p): New.
4080 * varasm.c (resolve_unique_section): Use hooks instead of macros.
4081 (variable_section, output_constant_def_contents): Likewise.
4082 (default_select_section, default_unique_section): New.
4083 (categorize_decl_for_section, default_elf_select_section): New.
4084 * output.h: Declare them.
4085
4086 * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
4087 (TARGET_ASM_SELECT_SECTION): New.
4088 (SELECT_SECTION): Move ...
4089 * config/darwin.c (machopic_select_section): ... here.
4090 * config/darwin-protos.h: Update.
4091
4092 * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
4093 (SELECT_SECTION): Move ...
4094 * config/nextstep.c (nextstep_select_section): ... here.
4095 * config/nextstep-protos.h: Update.
4096
4097 * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
4098 (TARGET_ASM_SELECT_SECTION): New.
4099 * config/svr3.h (SELECT_SECTION): Remove.
4100
4101 * config/alpha/alpha.c (unicosmk_unique_section): Make static.
4102 (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
4103 (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
4104 (alpha_encode_section_info): Use it.
4105 * config/alpha/alpha-protos.h: Update.
4106 * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
4107 (SELECT_SECTION, UNIQUE_SECTION): Remove.
4108 (TARGET_ASM_SELECT_SECTION): New.
4109 * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
4110
4111 * config/arm/pe.h (UNIQUE_SECTION): Remove.
4112 (TARGET_ASM_UNIQUE_SECTION): New.
4113
4114 * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
4115 (avr_unique_section): Rename from unique_section; make static.
4116 * config/avr/avr-protos.h: Update.
4117 * config/avr/avr.h (UNIQUE_SECTION): Remove.
4118
4119 * config/c4x/c4x.h (SELECT_SECTION): Remove.
4120
4121 * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
4122 (TARGET_ASM_UNIQUE_SECTION): New.
4123 * config/i386/i386-interix.h: Likewise.
4124 * config/i386/win32.h: Likewise.
4125 * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
4126 * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
4127 * config/i386/sco5.h (SELECT_SECTION): Remove.
4128 (TARGET_ASM_SELECT_SECTION): New.
4129 * config/i386/svr3gas.h (SELECT_SECTION): Remove.
4130
4131 * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
4132 instead of SELECT_SECTION.
4133 * config/m68k/dpx2.h: Likewise.
4134 * config/rs6000/lynx.h: Likewise.
4135
4136 * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4137 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4138 * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
4139 (ia64_in_small_data_p): New.
4140 (ia64_encode_section_info): Use it. Reorganize overlarge conditional.
4141 (ia64_aix_select_section, ia64_aix_unique_section): New.
4142 * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
4143 (SELECT_SECTION, UNIQUE_SECTION): Remove.
4144
4145 * config/m32r/m32r.h (SELECT_SECTION): Remove.
4146 (TARGET_ASM_SELECT_SECTION): New.
4147 * config/m32r/m32r.c (m32r_select_section): Take align argument.
4148 * config/m32r/m32r-protos.h: Update.
4149
4150 * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
4151 (SELECT_SECTION): Move ...
4152 * config/m88k/m88k.c (m88k_select_section): ... here.
4153
4154 * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
4155 * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
4156 * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
4157 (mcore_unique_section): Make static.
4158 * config/mcore/mcore-protos.h: Update.
4159
4160 * config/mips/elf.h (UNIQUE_SECTION): Remove.
4161 (TARGET_ASM_UNIQUE_SECTION): New.
4162 * config/mips/elf64.h: Likewise.
4163 * config/mips/iris6gld.h: Likewise.
4164 * config/mips/linux.h: Likewise.
4165 * config/mips/mips-protos.h: Update.
4166 * config/mips/mips.c (mips_select_section): Add align argument.
4167 * config/mips/mips.h (SELECT_SECTION): Remove.
4168 (TARGET_ASM_SELECT_SECTION): New.
4169
4170 * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4171 * config/mmix/mmix.c (mmix_select_section): Remove.
4172 (mmix_unique_section): Remove.
4173 * config/mmix/mmix-protos.h: Update.
4174
4175 * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
4176 (SELECT_SECTION): Move ...
4177 * config/pa/pa.c (pa_select_section): ... here.
4178 * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
4179
4180 * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
4181 from rs6000_select_section and make static.
4182 (rs6000_elf_unique_section): Similarly.
4183 (rs6000_xcoff_select_section): From xcoff.h.
4184 (rs6000_xcoff_unique_section): Likewise.
4185 * config/rs6000/rs6000-protos.h: Update.
4186 * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
4187 (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
4188 * config/rs6000/xcoff.h: Likewise.
4189
4190 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
4191 (SELECT_SECTION): Move ...
4192 * config/sparc/sparc.c (sparc_aout_select_section): ... here.
4193
4194 * config/v850/v850.h (SELECT_SECTION): Move ...
4195 * config/v850/v850.c (v850_select_section): ... here.
4196 (TARGET_ASM_SELECT_SECTION): New.
4197
4198 * config/vax/vms.h (SELECT_SECTION): Move ...
4199 * config/vax/vax.c (vms_select_section): ... here.
4200 (TARGET_ASM_SELECT_SECTION): New.
4201
4202 * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
4203 for the target hooks.
4204
be17000d 42052002-05-17 Nick Clifton <nickc@cambridge.redhat.com>
4206
4207 * config/arm/arm.c (emit_multi_reg_push): Do not set
4208 RTX_FRAME_RELATED_P on the SEQUENCE.
4209
0264cc04 42102002-05-16 Richard Henderson <rth@redhat.com>
4211
4212 * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
4213 splitting. Use split_all_insns; update_life_info_in_dirty_blocks.
4214
bef44833 42152002-05-16 Richard Henderson <rth@redhat.com>
4216
4217 * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
4218
7a2171ab 4219 * config/ia64/ia64.c (saveable_obstack): Do not declare.
4220
b3d6de89 42212002-05-16 Richard Henderson <rth@redhat.com>
4222
4223 * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
4224 cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
4225 conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
4226 gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
4227 local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
4228 recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
4229 reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
4230 sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
4231 Revert "Basic block renumbering removal", and two followup patches.
4232
5e7d465f 42332002-05-16 Jason Thorpe <thorpej@wasabisystems.com>
4234
4235 * lcm.c (optimize_mode_switching): Revert previous change.
4236
0b6b6b9b 42372002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4238
4239 * sched-rgn.c (schedule_insns): Initialize large_region_blocks
4240 with only extant block numbers.
4241
4fa69255 42422002-05-16 Jason Thorpe <thorpej@wasabisystems.com>
4243
4244 * lcm.c (optimize_mode_switching): Fix typo.
4245
fd68649a 42462002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4247
4248 * flow.c (calculate_global_regs_live): Queue blocks in program order.
4249
bd6878e5 42502002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4251
4252 * doc/install.texi (Configuration): Document PWDCMD.
4253
116b2726 42542002-05-16 Dale Johannesen <dalej@apple.com>
4255
4256 * combine.c (cant_combine_insn_p): Reenable combinations
4257 involving hard regs unless CLASS_LIKELY_SPILLED_P.
4258
18aa8a54 42592002-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
4260
4261 * c-common.c (cb_register_builtins): Handle more built-ins
4262 here rather than in gcc.c specs.
4263 * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
4264 (cpp_options): Pass -O flags even when only preprocessing.
4265 * toplev.c (set_fast_math_flags): New prototype.
4266 (fast_math_flags_set_p): New.
4267 (set_no_fast_math_flags): Remove.
4268 (decode_f_option): Update.
4269 * toplev.h (set_fast_math_flags): Update.
4270 (fast_math_flags_set_p): New.
4271 (set_no_fast_math_flags): Remove.
4272config:
4273 * c4x/c4x.c (c4x_override_options): Update.
4274
63994318 42752002-05-16 Zack Weinberg <zack@codesourcery.com>
4276
4277 * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
4278 Default-define here.
4279 (builtin_define_with_value): Can now wrap the expansion in
4280 quotation marks if such is wanted.
0264cc04 4281 (cb_register_builtins): Update calls to builtin_define_with_value.
63994318 4282 Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
4283 here.
4284 (c_common_init): Set options->stdc_0_in_system_headers.
4285 * c-lex.h: Update prototype of builtin_define_with_value.
4286 * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
4287 and REGISTER_PREFIX.
4288
4289 * cppinit.c (VERS, ULP, C, X): Kill.
4290 (builtin_array): Remove entries for __VERSION__,
4291 __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
4292 __HAVE_BUILTIN_SETJMP__. Make __STDC__ always a builtin, not
4293 a constant.
4294 (init_builtins): Kill off a bunch of now-dead code.
4295 (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
4296 -fno-leading-underscore.
4297 (cpp_handle_option): Remove code to set user_label_prefix.
4298 (cpp_post_options): Likewise.
4299
4300 * cpplib.h (struct cpp_options): Remove user_label_prefix.
4301 (stdc_0_in_system_headers): New.
4302 * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
4303 stdc_0_in_system_headers) too to decide the value of __STDC__.
4304
4305 * tradcpp.c (user_label_prefix): Kill.
0264cc04 4306 (main): Remove code handling -f(no-)leading-underscore.
63994318 4307 (initialize_builtins): Don't define __REGISTER_PREFIX__
4308 or __USER_LABEL_PREFIX__.
4309 (install_value): Wrap compound statement in dummy loop so the
4310 macro works properly in an if statement.
4311
4312
cd6839f2 43132002-05-16 Janis Johnson <janis187@us.ibm.com>
4314
4315 * loop.h (struct loop_info): Add member has_prefetch.
4316 * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
4317 (prescan_loop): Initialize has_prefetch.
4318 (struct prefetch_info): Change prefetch_in_loop and
4319 prefetch_before_loop from bit fields to ints.
4320 (emit_prefetch_instructions): Several small fixes.
4321 (check_dbra_loop): Don't reverse loop that uses prefetch.
4322
3354d061 43232002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4324
4325 * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
4326 * configure.in: Likewise.
4327 * fixinc/check.tpl: Likewise.
4328 * fixinc/fixinc.dgux: Likewise.
4329 * fixinc/fixinc.svr4: Likewise.
4330 * fixinc/fixinc.winnt: Likewise.
4331 * fixinc/fixincl.sh: Likewise.
4332 * fixproto: Likewise.
4333 * configure: Regenerate.
4334
4c5da238 43352002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
4336
4337 Basic block renumbering removal:
4338 * basic_block.h (struct basic_block_def): Renamed index to sindex,
4339 added prev_bb and next_bb fields.
4340 (n_basic_blocks): Renamed to num_basic_blocks.
4341 (last_basic_block): New, index of last basic block.
4342 (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
4343 traversing basic block chain.
4344 (BLOCK_NUM): index -> sindex.
4345 (create_basic_block_structure, create_basic_block): Declaration changed.
4346 (debug_num2bb): Declare.
4347 (expunge_block_nocompact): Declaration removed.
4348 (link_block, unlink_block, compact_blocks): Declare.
4349 * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
4350 * cfg.c (entry_exit_blocks): Initialize new fields.
4351 (clear_edges, alloc_block, expunge_block, cached_make_edge,
4352 redirect_edge_pred, dump_flow_info, dump_edge_info,
4353 alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
4354 free_aux_for_edges): Modified.
4355 (link_block, unlink_block, compact_blocks, debug_num2bb): New.
4356 (expunge_block_nocompact): Removed.
4357 * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
4358 find_unreachable_blocks, create_edge_list, print_edge_list,
4359 verify_edge_list, flow_edge_list_print, remove_fake_successors,
4360 remove_fake_edges, flow_reverse_top_sort_order_compute,
4361 flow_depth_first_order_compute, flow_preorder_transversal_compute,
4362 flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
4363 flow_dfs_compute_reverse_execute): Modified.
4364 * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
4365 find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
4366 Modified.
4367 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
4368 merge_blocks_move_predecessor_nojumps,
4369 merge_blocks_move_successor_nojumps, merge_blocks,
4370 outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
4371 try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
4372 * cfglayout.c (skip_insns_after_block, label_for_bb,
4373 record_effective_endpoints, scope_to_insns_finalize,
4374 fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
4375 fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
4376 cfg_layout_duplicate_bb): Modified.
4377 * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
4378 flow_loop_entry_edges_find, flow_loop_exit_edges_find,
4379 flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
4380 flow_loops_find, flow_loop_outside_edge_p): Modified.
4381 * cfgrtl.c (create_basic_block_structure, create_basic_block,
4382 flow_delete_block, compute_bb_for_insn, split_block,
4383 try_redirect_by_replacing_jump, redirect_edge_and_branch,
4384 force_nonfallthru_and_redirect, tidy_fallthru_edge,
4385 back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
4386 commit_edge_insertions, commit_edge_insertions_watch_calls,
4387 dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
4388 purge_all_dead_edges): Modified.
4389 * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
4390 try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
4391 get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
4392 Modified.
4393 * conflict.c (conflict_graph_compute): Modified.
4394 * df.c (FOR_ALL_BBS): Removed.
4395 (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
4396 df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
4397 df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
4398 * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
4399 * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
4400 calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
4401 * final.c (compute_alignments, final_scan_insn): Modified.
4402 * flow.c (verify_local_live_at_start, update_life_info,
4403 update_life_info_in_dirty_blocks, free_basic_block_vars,
4404 delete_noop_moves, calculate_global_regs_live,
4405 initialize_uninitialized_subregs, allocate_bb_life_data,
4406 regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
4407 mark_used_reg, count_or_remove_death_notes): Modified.
4408 * function.c (thread_prologue_and_epilogue_insns): Modified.
4409 * gcse.c (struct null_pointer_info): Change typo of current_block
4410 to basic_block.
4411 (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
4412 oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
4413 compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
4414 alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
4415 expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
4416 classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
4417 one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
4418 pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
4419 pre_delete, one_pre_gcse_pass, compute_transpout,
4420 invalidate_nonnull_info, delete_null_pointer_checks_1,
4421 free_code_hoist_mem, compute_code_hoist_vbeinout,
4422 hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
4423 compute_ld_motion_mems, store_ops_ok, find_moveable_store,
4424 compute_store_table, build_store_vectors, insert_insn_start_bb,
4425 insert_store, replace_store_insn, free_store_memory, store_motion):
4426 Modified.
4427 * global.c (global_alloc, global_conflicts, mark_elimination,
4428 build_insn_chain): Modified.
4429 * graph.c (print_rtl_graph_with_bb): Modified.
4430 * haifa-sched.c (sched_init): Modified.
4431 * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
4432 (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
4433 if_convert): Modified.
4434 * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
4435 compute_insert_delete, pre_edge_lcm, compute_available,
4436 compute_farthest, compute_nearerout, compute_rev_insert_delete,
4437 pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
4438 Modified.
4439 * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
4440 * loop.c (loop_dump_aux): Modified.
4441 * predict.c (combine_predictions_for_insn, estimate_probability,
4442 last_basic_block_p, process_note_prediction, process_note_predictions,
4443 note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
4444 expensive_function_p, estimate_bb_frequencies,
4445 compute_function_frequency): Modified.
4446 * print-rtl.c (print_rtx): Modified.
4447 * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
4448 get_exec_counts, compute_branch_probabilities, compute_checksum,
4449 branch_prob, find_spanning_tree): Modified.
4450 * recog.c (split_all_insns, peephole2_optimize): Modified.
4451 * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
4452 convert_regs_1, convert_regs_2, convert_regs): Modified.
4453 * regclass.c (scan_one_insn, regclass): Modified.
4454 * regmove.c (mark_flags_life_zones, regmove_optimize,
4455 combine_stack_adjustments): Modified.
4456 * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
4457 * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
4458 * reorg.c (dbr_schedule): Modified.
4459 * resource.c (find_basic_block, init_resource_info): Modified.
4460 * sbitmap.c (sbitmap_intersection_of_succs,
4461 sbitmap_intersection_of_preds, sbitmap_union_of_succs,
4462 sbitmap_union_of_preds): Modified.
4463 * sched-deps.c (init_dependency_caches): Modified.
4464 * sched-ebb.c (schedule_ebbs): Modified.
4465 * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
4466 find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
4467 * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
4468 * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
4469 ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
4470 ssa_const_prop): Modified.
4471 * ssa-dce.c (set_control_dependent_block_to_edge_map_,
4472 find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
4473 * ssa.c (remove_phi_alternative, find_evaluations,
4474 compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
4475 insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
4476 make_regs_equivalent_over_bad_edges,
4477 make_equivalent_phi_alternatives_equival,
4478 compute_conservative_reg_partition,
4479 coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
4480 rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
4481 Modified.
4482
14abf923 44832002-05-16 Mark Mitchell <mark@codesourcery.com>
4484
4485 * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
4486
3ccc58a6 44872002-05-16 Nick Clifton <nickc@cambridge.redhat.com>
4488
4489 * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
4490 SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
4491 (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
4492 calling CONSTANT_POOL_ADDRESS_P.
4493 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
4494 to decide whether to define __arm__ or __thumb.
4c5da238 4495 (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
3ccc58a6 4496 SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
4497
a43a23ab 44982002-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
4499
4500 * config/arc/arc.h (CPP_PREDEFINES): Remove.
4501 (CPP_SPEC): Update.
4502 (TARGET_CPU_CPP_BUILTINS): New.
4503
672f38da 45042002-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
4505
4506 * cpphash.h (cpp_macro): Move here, and make expansion a union.
4507 * cppmacro.c (cpp_macro): Remove.
4508 (enter_macro_context, replace_args, warn_of_redefinition,
4509 _cpp_create_definition, cpp_macro_definition): Update.
4510
277f8387 45112002-05-16 Jason Merrill <jason@redhat.com>
4512
4513 * config/mips/mips.c (mips_output_external): Don't do sdata
4514 optimization for a variable with DECL_COMDAT set.
4515
b3174d33 45162002-05-15 Aldy Hernandez <aldyh@redhat.com>
4517
4c5da238 4518 * config/rs6000/altivec.h: Cleanups for tighter typechecking.
4519 Cleanups for accepting modifiers on pointers.
4520 Fix predicate typos.
4521 Allow long pointers as well as int pointers.
b3174d33 4522
83f61433 45232002-05-15 Richard Henderson <rth@redhat.com>
4524
4525 * varasm.c (merge_weak): Remove special case for extern and common.
4526
6f9a1b0b 45272002-05-15 Matt Hiller <hiller@redhat.com>
4528
4529 * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
4c5da238 4530 XFAILing.
6f9a1b0b 4531 * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
4532 * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
4533 * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
4534 * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
4535 * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
4536 * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
4537
bb018d90 45382002-05-15 Aldy Hernandez <aldyh@redhat.com>
4539
4c5da238 4540 * reload1.c (forget_old_reloads_1): Do not use subreg offset.
bb018d90 4541
3a1f8574 45422002-05-15 Aldy Hernandez <aldyh@redhat.com>
4543
4c5da238 4544 * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
4545 ("altivec_mfvscr"): Read from VSCR.
4546
4547 Add vscr sets for the following insns: altivec_vctuxs,
4548 altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
4549 altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
4550 altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
4551 altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
4552 altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
4553 altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
4554 altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
4555 altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
4556 altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
4557 altivec_vsum2sws, altivec_vsumsws.
4558
4559 * config/rs6000/rs6000.h: Add VSCR fixed register.
4560 (CALL_REALLY_USED_REGISTERS): Add vscr.
4561 (CALL_USED_REGISTERS): Same.
4562 (FIXED_REGISTERS): Same.
4563 (REG_ALLOC_ORDER): Same.
4564 (reg_class): Add VSCR_REGS.
4565 (REG_CLASS_NAMES): Same.
4566 (REG_CLASS_CONTENTS): Same.
4567 (VSCR_REGNO): New.
4568 (REGISTER_NAMES): Add vscr.
4569 (DEBUG_REGISTER_NAMES): Same.
4570 (ADDITIONAL_REGISTER_NAMES): Same.
4571 (FIRST_PSEUDO_REGISTER): Increment.
4572 (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
3a1f8574 4573
8539da5e 45742002-05-15 Jakub Jelinek <jakub@redhat.com>
4575
4576 * fold-const.c (fold): Fix a typo.
4577
45782002-05-15 Eric Botcazou <ebotcazou@multimania.com>
4579
4580 * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
4581 comparison against the highest or lowest integer value before
4582 the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
4583 transformation and that of an unsigned comparison against 0
4584 right after.
4585
b0a9f80a 45862002-05-15 Richard Henderson <rth@redhat.com>
4587
4588 * varasm.c (merge_weak): Error for any weakening after definition.
4589 Adjust weakening after use warning to catch more cases.
4590 (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
4591 * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
4592
429fa7fa 4593Wed May 15 10:38:27 CEST 2002 Jan Hubicka <jh@suse.cz>
4594
4595 * invoke.texi (-malign-double): Re-add lost warning.
4596
4597 * i386-protos.h (x86_output_mi_thunk): Declare.
4598 * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
4599 * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
4600
4601 * dwarf2out.c (output_call_frame_info): Do not skip unwind info
4602 when flag_asynchronous_unwind_tables is set.
4603
4604 * flags.h (flag_reorder_functions): Declare.
4605 * function.c (prepare_function_start): Initialize frequnecy.
b0a9f80a 4606 * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
429fa7fa 4607 * Makefile.in (predict.o): Add dependency on target.h and params.h
4608 * defaults.h (HOT_TEXT_SECTION_NAME,
4609 UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
4610 * predict.c (choose_function_section): New function.
4611 (estimate_bb_frequencies): Use it.
4612 * toplev.c (flag_reorder_functions): New global variable.
4613 (lang_independent_options): New.
4614 (parse_options_and_default_flags): Set.
4615 * varasm.c (assemble_start_function): Bypass functdion alignment
4616 for never executed functions.
4617 * invoke.texi (-freorder-blocks, -freorder-functions): Document.
4618 (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
4619 * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
4620 Document.
4621
4622 Thu Jan 3 21:52:09 CET 2002 Jan Hubicka <jh@suse.cz>
4623
4624 * predict.c: Inlude profile.h
4625 (MIN_COUNT): Rename to MIN_COUNT_FRACTION
4626 (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
4627 Use the information about maximal counter in the program.
4628
4629 Thu Dec 20 22:14:00 CET 2001 Jan Hubicka <jh@suse.cz>
4630
4631 * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
4632 probably_never_executed_bb_p): New functions.
4633 * cfgcleanup.c (outgoing_edges_match): Use them.
4634 * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
4635 (maybe_hot_bb_p, probably_cold_bb_p,
4636 probably_never_executed_bb_p): New functions.
4637
4638 * function.h (function): Add new field function_frequency.
4639 * predict.c (compute_function_frequency): New function.
4640 (estimate_probability): Call it.
4641
b6745603 46422002-03-09 Jakub Jelinek <jakub@redhat.com>
4643
4644 PR optimization/5172, optimization/5200
4645 * gcse.c (gcse_main): Disable store_motion.
4646
18ef7ac2 46472002-05-14 Zack Weinberg <zack@codesourcery.com>
4648
4649 * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
4650 (c_common_nodes_and_builtins): Use it.
4651 (builtin_define_with_value): New function.
4652 (cb_register_builtins): Define __SIZE_TYPE__,
4653 __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
4654 using builtin_define_with_value. Use consistent notation when
4655 defining __GXX_WEAK__.
4656 (WCHAR_TYPE_SIZE): Don't redefine.
4657 (combine_strings): Don't use WCHAR_TYPE_SIZE.
4658
4659 * cppdefault.h: Don't provide defaults for SIZE_TYPE,
4660 PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
4661 * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
4662 * tradcpp.c (initialize_builtins): Likewise.
4663 * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
4664
4665 * c-lex.h (builtin_define_with_value): Prototype.
4666 * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
4667 NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
4668 * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
4669
4670 * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
4671 config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
4672 config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
4673 config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
4674 config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
4675 config/sparc/linux64.h, config/sparc/netbsd-elf.h,
4676 config/sparc/sol2-bi.h, config/sparc/sparc.h:
4677 Do not define NO_BUILTIN_SIZE_TYPE etc. Remove all references
4678 to __SIZE_TYPE__ etc from all spec strings. When this makes
4679 extra specs empty, delete them.
4680
7c5101fc 46812002-05-14 John David Anglin <dave@hiauly1.hia.nrc.ca>
4682
4683 * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
4684 for PA8000 or generating dwarf2 call frame information.
4685 (output_call): Remove DO_FRAME_NOTES check from return pointer
4686 optimization.
4687 (following_call): Return 0 when scheduling for PA8000 or generating
4688 dwarf2 call frame information. Revise comment.
4689
6529ea5c 46902002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
4691
4692config/alpha:
4693 * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
4694 and __IEEE_FP_INEXACT as appropriate.
4695 (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
4696 (CPP_SPEC): Remove ieee defines.
4697 * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
4698
331c9970 46992002-05-14 Richard Henderson <rth@redhat.com>
4700
4701 * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
4702 (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
4703
de3ae09e 47042002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
4705
de3ae09e 4706 * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
4707 (CPP_SPEC): Update.
4708 (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
4709 CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
4710 CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
4711 CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
4712 (EXTRA_SPECS): Update.
4713 * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
4714 arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
4715 arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
4716 define TARGET_OS_CPP_BUILTINS if necessary.
4717
62683efd 47182002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
4719
4720 * gcc.c (cpp_options): Must pass -m* and -f* options
4721 to the front end even when only preprocessing.
4722 (cc1_options): Remove redundant -lang-c.
4723 * tradcpp.c (main): Ignore -m options.
4724objc:
4725 * lang-specs.h: Similarly.
4726
f1308295 47272002-05-14 Vladimir Makarov <vmakarov@redhat.com>
4728
4729 * genautomata.c (transform_3): Add code for transformation
4730 `(A,B,...)+C -> A+C,B,...'.
4731
b7df6bce 4732Tue May 14 12:48:22 CEST 2002 Jan Hubicka <jh@suse.cz>
4733
4734 * final.c (end_final): Do not output profile_arcs constructor, when
4735 no functions are instrumented.
4736
36c4ce3c 4737Tue May 14 12:38:30 CEST 2002 Jan Hubicka <jh@suse.cz>
4738
4739 * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
4740
5f3d8976 47412002-05-14 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
4742
4743 * doc/install.texi: Remove special markup originally required for
4744 HTML generation with texi2html.
4745
c49a01ea 47462002-05-14 Andreas Schwab <schwab@suse.de>
4747
4748 * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
4749 SELECT_SECTION.
4750 (UNIQUE_SECTION): Define to get small data correctly.
6ccd54fd 4751
4752 * varasm.c (resolve_unique_section): Add third parameter
4753 flag_function_or_data_sections and use it instead of
4754 flag_function_sections.
4755 (assemble_start_function): Pass flag_function_sections.
4756 (asm_emit_uninitialised): Pass flag_data_sections.
4757 (assemble_variable): Likewise.
4758
4818c492 47592002-05-14 Richard Henderson <rth@redhat.com>
4760
4761 * config/i386/i386.md: Use define_constants for unspec numbers.
4762 * config/i386/i386.c: Likewise.
4763
de3ae09e 47642002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
4765
4766 * doc/contrib.texi: Update my entry.
4767
bdfb75b4 47682002-05-13 Mark Mitchell <mark@codesourcery.com>
4769
4770 * fixinc/inclhack.def (winidss_valist): Limit applicability.
4771 * fixinc/fixincl.x: Regenerated.
4772 * fixinc/tests/base/math.h: Update.
4773 * fixinc/tests/base/testing.h: Likewise.
4774
8f0eab6f 47752002-05-13 Zack Weinberg <zack@codesourcery.com>
4776
4777 * genattr.c (gen_attr): Don't emit a comma after the last
4778 enumerator.
4779
f178f44b 47802002-05-13 Richard Henderson <rth@redhat.com>
4781
4782 * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
4783 by non-local gotos.
4784 * recog.c (peephole2_optimize): Likewise.
4785
9b2d6e29 47862002-05-13 Andris Pavenis <pavenis@lanet.lv>
4787
4788 * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
4789 input to O_BINARY.
4790
38a51454 47912002-05-13 Jeffrey A Law (law@redhat.com)
4792
638987bd 4793 * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
4794 Update prototype and callers.
4795 (propagate_one_insn): Stack pointer adjustments kill MEMs on
4796 the mem_set_list which reference the stack pointer, as do
4797 calls to constant functions as they may clobber outgoing
4798 argument space.
4799
7a174e0f 4800 * i386.c (ia32_multipass_dfa_lookahead): Prototype.
4801
38a51454 4802 * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
4803 (ia32_multipass_dfa_lookahead): New function.
4804
0d52bda0 48052002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
4806
4807 * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
4808 (translate_options): Remove 'V'.
4809 (process_command): Similarly.
4810doc:
4811 * invoke.texi: Remove documentation of 'V'.
4812
f10d8251 48132002-05-13 Ulrich Weigand <uweigand@de.ibm.com>
4814
4815 * config/s390/linux.h: Revert 2002-04-22 changes.
4816
dcf2c31e 48172002-05-13 Scott Marks <SMarks@mobile-mind.com>
4818
4819 * config/fr30/fr30.md: Only allow splits of immediate loads
4820 if the destination is a register.
4821
36a259fd 48222002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
4823
4824 * Makefile.in (c-common.o, cppinit.o): Update.
4825 * c-common.c: Include except.h.
4826 (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
4827 Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
4828 * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
4829 * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
4830 CPP_PREDEFINES): Handle here.
4831config:
4832 * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
4833 alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
4834 alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
4835 TARGET_OS_CPP_BUILTINS.
4836 * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
4837 (CPP_SPEC, EXTRA_SPECS): Update.
4838 (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
4839 CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
4840 CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
4841 CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
4842 CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
4843doc:
4844 * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
4845 (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
4846
2ff23ed0 48472002-05-12 Zack Weinberg <zack@codesourcery.com>
4848
4849 * emit-rtl.c (global_rtl): Update comment.
4850 (const_double_htab, const_double_htab_hash,
4851 const_double_htab_hash, lookup_const_double): New.
4852 (const_int_htab_hash, const_int_htab_eq): Remove const
4853 qualifiers, which cause tons of warnings with RTL checking on.
4854 (gen_rtx_CONST_DOUBLE): Deleted.
4855 (const_double_from_real_value): New function - bears some
4856 resemblance to the former immed_real_const_1.
4857 (immed_double_const): Moved here from varasm.c and
4858 simplified.
4859 (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
4860 (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
4861 (gen_rtx): Use immed_double_const.
4862 (init_emit_once): Initialize the const_double_htab. Use
4863 REAL_VALUE_FROM_INT where possible. Can now use
4864 CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
4865 * varasm.c (struct varasm_status): Remove x_const_double_chain.
4866 (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
4867 (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
4868 (init_varasm_status, mark_varasm_status): Don't touch
4869 x_const_double_chain.
4870
4871 * output.h: Delete prototype for clear_const_double_mem.
4872 * real.h: Make REAL_VALUE_TYPE a macro again. Remove leading
4873 '0' slot from all CONST_DOUBLE_FORMAT definitions. Prototype
4874 const_double_from_real_value, not immed_real_const_1, and use
4875 it to define CONST_DOUBLE_FROM_REAL_VALUE. Define new macro
4876 CONST_DOUBLE_ATOF.
4877 * rtl.h (CONST_DOUBLE_CHAIN): Kill.
4878 (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
4879 (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
4880 (gen_rtx_REG): Second arg is unsigned.
4881
4882 * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
4883 (excluded_rtx): New, return true for CONST_DOUBLE.
4884 (genmacro): Write nothing for excluded codes.
4885 * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
4886 * expr.c (expand_expr): Likewise.
4887 * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
4888 CONST_DOUBLE_CHAIN.
4889 * toplev.c (rest_of_compilation): Don't call
4890 clear_const_double_mem.
4891
4892 * config/rs6000/rs6000.c (rs6000_float_const): Delete.
4893 (rs6000_hash_constant): Remove CONST_DOUBLE special case.
4894 (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
4895 * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
4896 * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
4897 * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
4898 config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
4899 * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
4900
850764ac 49012002-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4902
4903 * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
4904
ff6d0dd9 49052002-05-12 Tom Tromey <tromey@redhat.com>
4906
4907 * tree.h (copy_node): Don't mention TREE_PERMANENT.
4908
be46690e 49092002-05-12 Zack Weinberg <zack@codesourcery.com>
4910
4911 * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
4912 (scan_comma_elt): New function. Accepts whitespace in comma lists.
4913 * gensupport.h: Prototype new routines.
4914 * genattr.c (gen_attr): Use scan_comma_elt. Avoid unnecessary
4915 use of printf.
4916 * genattrtab.c (n_comma_elts): Moved to gensupport.c.
4917 (next_comma_elt): Use scan_comma_elt.
4918
4919 * config/i386/i386.md: Use new attribute notation to break up
4920 long lines in define_attr forms.
4921
c0c4a46d 49222002-05-12 Richard Henderson <rth@redhat.com>
4923
4924 * expr.c (compress_float_constant): New.
4925 (emit_move_insn): Use it.
4926 (float_extend_from_mem): New.
4927 (init_expr_once): Initialize it.
4928 * real.c (exact_real_truncate): New.
4929
4930 * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
4931 dropped into memory; penalize for size.
4932 (RTX_COSTS): FLOAT_EXTEND is free.
4933 * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
4934 extenddfxf2, extenddftf2): Accept constants and drop them to memory.
4935
f21e1254 49362002-05-12 Richard Henderson <rth@redhat.com>
4937
4938 * profile.h (profile_info): Add missing extern to declaration.
4939 * profile.c (profile_info): Define it.
4940
3a0bc29c 49412002-05-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
4942
4943 * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
4944 used for DImode and TImode.
4945
4eed76a6 49462002-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
4947
4948 * cpplex.c (_cpp_lex_direct): When in a directive at EOF
4949 fake a newline.
4950
6d01451b 49512002-05-11 Zack Weinberg <zack@codesourcery.com>
4952
4953 * config/rs6000/rs6000.c (rs6000_default_long_calls,
4954 rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
4955 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
4956 (rs6000_override_options): Handle -m(no-)longcall.
4957 (init_cumulative_args, output_mi_thunk): Check for both
4958 longcall and shortcall attributes on the function.
4959 (rs6000_attribute_table): Add "shortcall".
4960 (rs6000_handle_longcall_attribute): Update comment.
4961 (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
4962 altivec_expand_ternop_builtin): Add default clauses to switches
4963 to silence warnings.
4964
4965 * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
4966 rs6000_default_long_calls. Define REGISTER_TARGET_PRAGMAS.
4967 (TARGET_OPTIONS): Add longcall and no-longcall.
4968
4969 * config/rs6000/rs6000.md (call_nonlocal_sysv,
4970 call_value_nonlocal_sysv): Split by alternatives. One pair
4971 accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
4972 the call cookie. The other pair accepts only LR/CTR and has
4973 no restriction.
4974
4975 * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
4976 Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
4977 tmake_file.
4978 * config/rs6000/rs6000-c.c: New file.
4979 * config/rs6000/t-rs6000-c-rule: New file.
4980 * config/rs6000/rs6000-protos.c: Add multiple-include guard.
4981 Prototype rs6000_pragma_longcall.
4982
4983 * doc/extend.texi: Document shortcall attribute.
4984 * doc/invoke.texi: Document -mlongcall, -mno-longcall.
4985
60ec1089 49862002-05-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
4987
4988 * reorg.c (dbr_schedule): Remove unnecessary test.
4989
4c69d9cb 4990Sat May 11 14:34:35 CEST 2002 Jan Hubicka <jh@suse.cz>
4991
4992 * i386.md (testsi to testqi spliters): New.
4993
4994 2002-01-14 Josef Zlomek <zlomek@matfyz.cz>
4995
4996 cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
4997
4998 Wed Jan 9 2002 Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
4999
5000 * basic-block.h: New flag EDGE_CAN_FALLTHRU
5001 * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
5002 that can be made fallthru.
5003
5004 Mon Nov 12 16:25:53 CET 2001 Jan Hubicka <jh@suse.cz>
5005
5006 * cfglayout.c (cleanup_unconditional_jumps): New static function.
5007 (cfg_layout_initialize): Use it.
8a21fed4 5008
f769bee3 50092002-05-11 Marek Michalkiewicz <marekm@amelek.gda.pl>
5010
5011 * config/avr/avr.c (avr_mcu_types): Update supported devices.
5012 * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
5013 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
5014
1eefe280 50152002-05-11 Kazu Hirata <kazu@cs.umass.edu>
5016
5017 * dbxout.c: Fix formatting.
5018 * dependence.c: Likewise.
5019 * df.c: Likewise.
5020 * diagnostic.c: Likewise.
5021 * doloop.c: Likewise.
5022 * dominance.c: Likewise.
5023 * doschk.c: Likewise.
5024 * dwarf2asm.c: Likewise.
5025 * dwarf2out.c: Likewise.
5026 * dwarfout.c: Likewise.
5027
6b6672be 50282002-05-10 Richard Henderson <rth@redhat.com>
5029
5030 * final.c (end_final): Tidy whitespace. Don't honor flag_pack_struct.
5031 Convert integers constants as needed. Replace "nwords" field with
5032 "sizeof_bb".
5033 (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
5034 * function.h: Fix typo in comment.
5035 * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
5036
843dd7a3 50372002-05-10 Roger Sayle <roger@eyesopen.com>
5038
5039 * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
5040 into the equivalent (signed char)c > 0.
5041
44d23341 50422002-05-10 Janis Johnson <janis187@us.ibm.com>
5043
5044 * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
5045 (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
5046 (struct prefetch_info): Fix spelling of member bytes_accessed.
5047 (emit_prefetch_instructions): Make dump messages more regular;
5048 restructure code to add more dump messages; use new macros for
5049 heuristics. (There are no code generation changes in any of this).
5050
3abb3b64 50512002-05-10 David S. Miller <davem@redhat.com>
5052
5fdf542c 5053 * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
5054 (struct rtx_def): Update unchanging flag comment.
5055 * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
5056 * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
5057 to be handled to INSN too.
5058 (dbr_schedule): Likewise.
5059 * resource.c (next_insn_no_annul): Likewise.
5060
3abb3b64 5061 * cse.c (rtx_cost): Remove multiplication by power of 2 special
5062 casing.
5063
e148c53e 50642002-05-14 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
5065
5066 * doc/install.texi (Specific, *-*-solaris2*): Update passus on
5067 setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
5068 (possibly) work around broken /bin/sh.
5069
09bc89ce 50702002-05-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5071
5072 * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
5073 . as N64/N32 libgcc_s.so subdirs.
5074
40cc626c 50752002-05-10 David S. Miller <davem@redhat.com>
5076
5077 * config/sparc/sparc.md: Use define_constants for unspec numbers.
00f2bb6a 5078
5079 * rtl.h (struct rtx_def): Document unchanging and in_struct flags
5080 more accurately.
5081 (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix
5082 comment.
5083 (INSN_FROM_TARGET_P): Valid also for CALL_INSN.
5084 * doc/rtl.texi: Document these macros more accurately.
5085 * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for
5086 JUMP_INSNs and CALL_INSNs.
5087 * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P
5088 or INSN_FROM_TARGET_P if the code is appropriate.
5089
57463428 50902002-05-10 Marek Michalkiewicz <marekm@amelek.gda.pl>
5091
5092 * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF
5093 before using SYMBOL_REF_FLAG (addr).
5094
5095 * config/avr/avr-protos.h (avr_io_address_p): Declare.
5096 * config/avr/avr.c (io_address_p): Rename to avr_io_address_p.
5097 Make non-static. Update all callers.
5098 * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7):
5099 New insns to clear/set/test a single bit in I/O address space.
5100
9b535aa8 51012002-05-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5102
5103 * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7.
5104
1ed9d5f5 51052002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
5106
5107 * Makefile.in: Update.
5108 * c-common.c (flag_iso, flag_undef, cb_register_builtins,
5109 builtin_define_std): New.
5110 (c_common_init): Register CPP builtins callback.
5111 * c-common.h (flag_iso, flag_undef): New.
5112 * c-decl.c (c_decode_option): Set flag_iso and flag_undef.
5113 * c-lex.c: Don't include target.h.
5114 (cb_register_builtins): Move to c-common.c.
5115 (init_c_lex): Don't register hook here.
5116 * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New.
5117 (cpp_define, cpp_assert): Remove.
5118 * gcc.c (cc1_options): Pass -undef to front end.
5119 * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove.
5120 (TARGET_INITIALIZER): Update.
5121 * target.h (struct cpp_reader): Don't predeclare.
5122 (struct gcc_target): Remove cpp builtin hook.
5123 * tree.c (default_register_cpp_builtins): Remove.
5124doc:
5125 * tm.texi: Update.
5126
d4337297 51272002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
5128
5129 * cppexp.c (_cpp_expand_op_stack): Set op_limit.
5130
9714e6c7 51312002-05-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5132
5133 * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define.
5134 (SHLIB_LINK, SHLIB_INSTALL): Adjust.
5135
3c35edaa 51362002-05-09 Jakub Jelinek <jakub@redhat.com>
5137
5138 * config/sparc/t-linux64 (SHLIB_MAPFILES): Set.
5139 * config/sparc/libgcc-sparc-glibc.ver: New file.
5140 * config/cris/t-linux (SHLIB_MAPFILES): Remove.
5141 * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags.
5142
6af61abe 51432002-05-09 Jakub Jelinek <jakub@redhat.com>
5144
5145 PR target/6429
5146 * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
5147 * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s
5148 shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for
5149 base multilibs.
5150 * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above.
5151 * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
5152 * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5153 * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define.
5154
e2b723ca 51552002-05-09 Richard Henderson <rth@redhat.com>
5156
5157 * config/ia64/ia64.md: Use define_constants for unspec numbers.
5158 * config/ia64/ia64.c: Likewise.
5159
5e45632b 51602002-05-09 Richard Sandiford <rsandifo@redhat.com>
5161
5162 * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg.
5163 (save_restore_insns): Likewise.
5164 (mips_expand_prologue, mips_expand_epilogue): Update callers.
5165 (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument.
5166
61512c54 5167Thu May 9 11:50:09 2002 Jeffrey A Law (law@redhat.com)
2e72479d 5168
9a999200 5169 * athlon.md, k6.md, pentium.md, ppro.md): New files.
5170 * i386.md: Move scheduling information into new files.
5171
2e72479d 5172 * i386.md (type attribute): Add "rotate" for rotate insns.
5173 (rotate insns): Set type to "rotate".
5174 (various attributes and function units): Treat rotate like shift.
5175 (pent_pair attribute): Only rotates by one bit position are
5176 pairable.
5177 (sbb insns): Explicitly set pent_pair attribute on a couple
5178 that were missing it.
5179
65f753eb 5180Thu May 9 18:29:24 2002 J"orn Rennecke <joern.rennecke@superh.com>
5181
5182 * sh.c (sh_builtin_saveregs): If starting with an odd fp register,
5183 make sure that buffer starts on odd word address.
5184 (sh_va_arg): Skip odd fp registers when reading a double precision
5185 value.
5186
4c002378 51872002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
5188
5189 * tree.h (preserve_data, object_permanent_p, type_precision):
5190 Remove.
5191
8e1db61c 51922002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
5193
5194 * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison.
5195 * cppmacro.c (paste_all_tokens): Bad pastes are a hard error.
5196doc:
5197 * cpp.texi: Update for removal of obsolete features.
5198
8c8ab57e 5199Thu May 9 07:46:18 2002 Jan Hubicka <jh@suse.cz>
5200 Jeffrey A Law (law@redhat.com)
5201
5202 * i386.c (ia32_use_dfa_pipeline_interface): New function. Use
5203 the DFA interface for Pentium processors.
5204 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE.
5205 (attr_pent_pair, ix86_pent_find_pair): Remove.
5206 (ix86_sched_reorder_pentium): Remove.
5207 (ix86_sched_reorder): Remove reordering for Pentium.
5208 * i386.md (Pentium scheduling): Rewrite using DFA description.
5209
33c22fea 5210Thu May 9 14:55:39 CEST 2002 Jan Hubicka <jh@suse.cz>
5211
5212 * cfganal.c (can_fallthru): Fix fast path.
5213 * cfgrtl.c (verify_flow_info): Avoid crash on conditionals
5214 with edges to the next block.
5215
90c2be44 5216Thu May 9 14:52:45 CEST 2002 Jan Hubicka <jh@suse.cz>
5217 Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
5218
5219 * final.c (end_final): Use C trees to output data structures for profiling.
5220
5221 * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
2ff23ed0 5222 (profile.o): New dependency profile.h
5223 (final.o): New dependency profile.h
5224 * profile.h: New file. New global structure profile_info.
5225 * final.h (count_edges_instrumented_now): Declare.
5226 (current_function_cfg_checksum): Declare.
5227 (function_list): New structure.
5228 (functions_head, functions_tail): New static variables.
5229 (end_final): Emits more data, removed some -ax stuff.
5230 (final): Stores function names and chcksums.
5231 * gcov-io.h (__write_gcov_string): New function.
5232 (__read_gcov_string): New function.
5233 * gcov.c (read_profile): New function.
5234 (create_program_flow_graph): Uses read_profile instead of reading
90c2be44 5235 da_file.
2ff23ed0 5236 (read_files): Removed da_file checking, it's done by read_profile now.
5237 * libgcc2.c (bb_function_info): New structure.
5238 (bb): New field in structure, removed some -ax stuff.
5239 (__bb_exit_func): Changed structure of da_file.
5240 * profile.c (count_edges_instrumented_now): New global variable.
5241 (current_function_cfg_checksum): New global variable.
5242 (max_counter_in_program): New global variable.
5243 (get_exec_counts): New function.
5244 (compute_checksum): New function.
5245 (instrument_edges): Sets count_edges_instrumented_now.
5246 (compute_branch_probabilities): Uses get_exec_counts instead of
90c2be44 5247 reading da_file.
2ff23ed0 5248 (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
5249 (init_branch_prob): Removed da_file checking, done in get_exec_counts
90c2be44 5250 now.
2ff23ed0 5251 (end_branch_prob): Removed da_file checking, done in get_exec_counts
90c2be44 5252 now.
2ff23ed0 5253 * gcov.texi: Updated information about gcov file format.
90c2be44 5254
40734805 52552002-05-09 Kazu Hirata <kazu@cs.umass.edu>
5256
5257 * sbitmap.c: Fix formatting.
5258 * scan.c: Likewise.
5259 * scan-decls.c: Likewise.
5260 * sched-deps.c: Likewise.
5261 * sched-ebb.c: Likewise.
5262 * sched-rgn.c: Likewise.
5263 * sched-vis.c: Likewise.
5264 * sdbout.c: Likewise.
5265 * sibcall.c: Likewise.
5266 * simplify-rtx.c: Likewise.
5267 * ssa.c: Likewise.
5268 * ssa-ccp.c: Likewise.
5269 * ssa-dce.c: Likewise.
5270 * stmt.c: Likewise.
5271 * stor-layout.c: Likewise.
5272 * stringpool.c: Likewise.
5273
1711184f 52742002-05-09 David S. Miller <davem@redhat.com>
5275
5276 * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9.
5277
3044c70d 52782002-05-07 David S. Miller <davem@redhat.com>
5279
5280 * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero.
5281 * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one.
5282 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp
5283 library implementation clobbers the output before the inputs
5284 are fully consumed, use stack temporary for the output.
5285
93528070 52862002-05-09 Jason Thorpe <thorpej@wasabisystems.com>
5287
5288 * config/netbsd.h (CPP_SPEC): Remove.
5289 * config/i386/netbsd-elf.h (CPP_SPEC): Define.
5290 * config/i386/netbsd.h (CPP_SPEC): Define.
5291 * config/ns32k/netbsd.h (CPP_SPEC): Define.
5292 * config/sparc/netbsd-elf.h (CPP_SPEC): Remove.
5293 * config/sparc/netbsd.h (CPP_SPEC): Define.
5294 * config/vax/netbsd.h (CPP_SPEC): Define.
5295
2617fe26 52962002-05-08 Kazu Hirata <kazu@cs.umass.edu>
5297
5298 * read-rtl.c: Fix formatting.
5299 * real.c: Likewise.
5300 * recog.c: Likewise.
5301 * regclass.c: Likewise.
5302 * regmove.c: Likewise.
5303 * reg-stack.c: Likewise.
5304 * reload1.c: Likewise.
5305 * reload.c: Likewise.
5306 * resource.c: Likewise.
5307 * rtlanal.c: Likewise.
5308 * rtl.c: Likewise.
5309 * rtl-error.c: Likewise.
5310
03e904a5 53112002-05-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
5312
5313 * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete.
5314 * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete.
5315
ce15af6d 53162002-05-08 Bernd Schmidt <bernds@redhat.com>
5317
5318 * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to
5319 use __SSE2__ macro instead.
5320 * config/i386/xmmintrin.h: Likewise.
5321
3c6858c6 53222002-05-08 Janis Johnson <janis187@us.ibm.com>
5323
5324 * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name,
5325 and use it in all invocations of these macros. Clean up comments.
5326 * rtl.c (rtl_check_failed_flag): Add an argument for the name
5327 of the flag access macro whose check failed.
5328 * doc/rtl.texi (Flags): Document additional flag uses.
5329
b26dc365 53302002-05-08 Robert Spier <rspier@pobox.com>
5331 Neil Booth <neil@daikokuya.demon.co.uk>
5332
5333 PR preprocessor/6521
5334 * cppfiles.c (handle_missing_header): Don't do anything
5335 different for <> includes.
5336doc:
5337 * cppopts.texi: Update documentation for -MG.
5338
2798f07c 53392002-05-08 Neil Booth <neil@daikokuya.demon.co.uk>
5340
5341 * cpplex.c (cpp_interpret_charconst): Truncate as well as
5342 sign-extend.
5343doc:
5344 * cpp.texi: Clarify multichar charconst valuation.
5345
8d4926dc 53462002-05-08 Mark Mitchell <mark@codesourcery.com>
5347
5348 * doc/invoke.texi: Document -mwindiss option.
5349
637d3308 53502002-05-08 Jason Merrill <jason@redhat.com>
5351
5352 * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs.
5353
5354 * dwarf2out.c (gen_type_die): Abort on broken recursion.
5355
5356 PR c++/6381
5357 * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and
5358 REAL_CST.
5359
ea53c1b3 53602002-05-08 Nick Clifton <nickc@cambridge.redhat.com>
5361
5362 * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
5363 little-endian multilibs to override arm/thumb multilibs.
edd2f2ae 5364 Do not build hardware floating point multilibs, nor apcs-26
ea53c1b3 5365 multilibs for the Thumb.
5366
7578526f 53672002-05-08 Mark Mitchell <mark@codesourcery.com>
5368
5369 PR c/6569.
5370 * varasm.c (mark_weak): New function.
5371 (merge_weak): Use it. Do not call declare_weak.
5372 (declare_weak): Use merge_weak.
5373
6eca0bfb 5374Wed May 8 13:12:11 CEST 2002 Jan Hubicka <jh@suse.cz>
5375
5376 * cse.c (dead_libcall_p): Update counts.
5377 (delete_trivially_dead_insns): Update call of dead_libcall_p.
5378
cd0fe062 5379Wed May 8 11:08:50 CEST 2002 Jan Hubicka <jh@suse.cz>
5380
5381 * cfglayout.c (function_tail_eff_head): Rename to ...
5382 (function_footer): ... this one.
5383 (unlink_insn_chain): New functions.
5384 (label_for_bb): Only call block_label and emit debug message.
5385 (record_effective_endpoints): Actually unlink the headers and footers.
5386 (fixup_reorder_cahin): Re-insert the unlinked sequences.
5387 (cfg_layout_duplicate_bb): Use duplicate_insn_chain.
5388 * cfglayout.h (struct reorder_block_def): New fields footer/header;
5389 remove eff_head/eff_end.
5390 * rtl.h (set_first_insn): Declare.
5391 * emit-rtl.c (set_first_insn): New function.
5392
5393 * cfglayout.c (fixup_reorder_chain): Dump duplicated
5394 (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
5395 cfg_layout_duplicate_bb): New global function.
5396 (duplicate_insn_chain): New static function.
5397 * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge,
5398 cfg_layout_duplicate_bb): Declare.
5399 (struct reorder_block_def): Add "original" field.
5400 * emit-rtl.c (emit_copy_of_insn_after): New function.
5401 * rtl.h (emit_copy_of_insn_after): Declare.
5402
5403 * cfglayout.c (fixup_fallthru_exit_predecessor): Kill.
5404 (fixup_reorder_chain): properly handle edges to exit block.
5405
5406Wed May 8 11:10:31 CEST 2002 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
5407 Jan Hubicka <jh@suse.cz>
5408
5409 * basic-block.h (note_prediction_to_br_prob): declare.
5410 * c-semantics.c: Inlucde predit.h
5411 (expand_stmt): predict GOTO_STMT as not taken.
5412 * cfgcleanup.c: (delete_unreachable_blocks): Make global.
5413 (cleanup_cfg): Do not free tail_recursion_list.
5414 * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION.
5415 (flow_delete_block): Kill predictions past end of basic block.
5416 * output.h (delete_unreachable_blocks): Declare.
5417 * predict.c (predicted_by_p, process_note_predictions,
5418 process_note_prediction, last_block_p): New function.
5419 (estimate_probability): Bypass loop on PRED_CONTINUE;
5420 do not handle noreturn heuristics; kill PRED_RETURN; add
5421 PRED_EARLY_RETURN.
5422 * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO,
5423 PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New.
5424 * predict.h (IS_TAKEN): New constant.
5425 * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION.
5426 * rtl.c (NOTE_INSN_PREDICTION): New.
5427 * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS):
5428 New macro.
5429 (insn_note): add NOTE_INSN_PREDICTION.
5430 * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build
5431 CFG; free tail_recursion_label_list.
5432 * stmt.c: Include predict.h;
5433 (return_prediction): New.
5434 (expand_value_return): Use it.
5435 * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall.
5436
44513445 54372002-05-08 Richard Sandiford <rsandifo@redhat.com>
5438
5439 * config/mips/mips.md: Name the unspecs with define_constant.
5440 (*HILO_delay): Rename to 'hilo_delay' (no star).
5441 (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay.
5442 (reload_outdi, reload_outsi): Likewise.
5443
b1157638 54442002-05-07 Kazu Hirata <kazu@cs.umass.edu>
5445
5446 * toplev.c: Fix formatting.
5447
b0e7e012 54482002-05-07 Janis Johnson <janis187@us.ibm.com>
5449
5450 * config.in (ENABLE_RTL_FLAG_CHECKING): New.
5451 * configure.in (ac_rtlflag_checking): New.
5452 * doc/install.texi (--enable-checking): Document RTL flag checking.
5453
d932f956 54542002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
5455
5456 * c-common.c (c_common_init): Set options->unsigned_wchar.
5457 * cppinit.c (cpp_create_reader): Default unsigned_wchar,
5458 group target dependencies.
5459 (init_builtins, cpp_handle_option): Update.
5460 * cpplex.c (cpp_interpret_charconst): Update.
5461 * cpplib.h (struct cpp_options): Add unsigned_wchar, rename
5462 signed_char to unsigned_char, group target dependencies.
5463 * defaults.h (WCHAR_UNSIGNED): Remove.
5464 * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison.
5465config:
5466 * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h,
5467 i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h,
5468 i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h,
5469 i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h,
5470 sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED.
5471doc:
5472 * tm.texi: Remove MAX_CHAR_TYPE_SIZE.
5473
5a268127 54742002-05-07 Mark Mitchell <mark@codesourcery.com>
5475
5476 * fixinc/inclhack.def (windiss_math1): New fix.
5477 (windiss_math2): Likewise.
5478 (windiss_valist): Likewise.
5479 * fixinc/fixincl.x: Regenerated.
5480
26638275 54812002-05-07 Andreas Jaeger <aj@suse.de>
5482
5483 * genautomata.c (output_internal_min_issue_delay_func): Add
5484 ATTRIBUTE_UNUSED to avoid warning with empty dfa.
5485 (output_internal_trans_func): Likewise.
5486
831a12d9 5487Tue May 7 10:06:22 2002 Jeffrey A Law (law@redhat.com)
5488
5489 * pa.c (hppa_profile_hook): Use force_reg to get the address
5490 of the profile hook into an appropriate pseudo register.
5491
f9eaaae5 54922002-05-07 Mark Mitchell <mark@codesourcery.com>
5493
5494 * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss.
5495 (LINK_START_SPEC): Handle it.
5496 (LINK_OS_SPEC): Likewise.
5497 (CPP_SPEC): Likewise.
5498 (STARTFILE_SPEC): Likewise.
5499 (LIB_SPEC): Likewise.
5500 (ENDFILE_SPEC): Likewise. Do not assume crtsavres.o is used on
5501 all platforms.
5502 (CRTSAVRES_DEFAULT_SPEC): New macro.
5503 (LIB_WINDISS_SPEC): New macro.
5504 (CPP_OS_WINDISS_SPEC): Likewise.
5505 (STARTFILE_WINDISS_SPEC): Likewise.
5506 (ENDFILE_WINDISS_SPEC): Likewise.
5507 (LINK_START_WINDISS_SPEC): Likewise.
5508 (LINK_OS_WINDISS_SPEC): Likewise.
5509 * config/rs6000/windiss.h: New file.
26638275 5510
c1c8d456 55112002-05-07 Aldy Hernandez <aldyh@redhat.com>
5512
edd2f2ae 5513 * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
c1c8d456 5514
b8d49b98 55152002-05-06 David S. Miller <davem@redhat.com>
5516
5517 * config/sparc/sparc.md (shift insns): Do not mask off
5518 second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED
5519 take care of it.
5520
5b965633 55212002-05-06 Richard Henderson <rth@redhat.com>
5522
5523 PR c++/6212
5524 * expr.c (highest_pow2_factor_for_type): New.
5525 (expand_assignment): Use it.
5526
8d91268d 55272002-05-06 Aldy Hernandez <aldyh@redhat.com>
5528
5b965633 5529 * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to
5530 unspec_volatile.
5531 ("altivec_mfvscr"): Same.
8d91268d 5532
e7f75e15 55332002-05-06 Janis Johnson <janis187@us.ibm.com>
5534
5535 * rtl.h (struct rtx_def): Update comments.
5536 (RTL_FLAG_CHECK[12345678]): New. (rtl_check_failed_flag): Declare.
5537 (RTL_FLAG): New. (CLEAR_RTX_FLAGS): New. (flag access macros): Use
5538 RTL_FLAG_CHECK macros with list of expected RTL codes.
5539 * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro.
5540 (rtl_check_failed_flag): New.
5541 * reload1.c (reload): Use REG macro before changing rtx to MEM.
5542 (reload_cse_noop_set_p): Check rtx code before using access macro.
5543 * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code
5544 before using access macro.
5545
92778b4a 55462002-05-06 Janis Johnson <janis187@us.ibm.com>
5547
5548 * doc/rtl.texi (Flags): Update to reflect current usage.
5549
203a24c4 55502002-05-06 Roger Sayle <roger@eyesopen.com>
5551
5552 PR opt/3995
5553 * fold-const.c (sign_bit_p): New function.
5554 (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and
5b965633 5555 (A & C) != 0 into A < 0, when constant C is the sign bit of A's type.
203a24c4 5556 Reapply fold when converting (A & C) == C into (A & C) != 0.
5557 (fold_binary_op_with_conditional_arg): Fix typo in comment.
5558
318fdd81 55592002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
5560
5561 * c-common.c (warn_multichar): New.
5562 (c_common_init): Set CPP's warn_multichar.
5563 * c-common.h (warn_multichar): New.
5564 * c-decl.c (warn_multichar): Remove.
5565 * c-lex.c (lex_charconst): Update.
5566 * c-tree.h (warn_multichar): Remove.
5567 * cppexp.c (eval_token): Sign-extend charconst value.
5568 * cppinit.c (cpp_create_reader): Set warn_multichar.
5569 * cpplex.c (cpp_interpret_charconst): Don't sign-extend
5570 each character. Update prototype. Sign-extend the result.
5571 * cpplib.h: Fix conditions.
5572 (struct cpp_options): Add new warning flag.
5573 (cpp_interpret_charconst): Update prototype.
5574doc:
5575 * cpp.texi: Update documentation.
5576
5f70bbcf 55772002-05-06 Vladimir Makarov <vmakarov@redhat.com>
5578
5579 * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
5580 Fix typo in usage of allof instead of unit.
5581
9ed76315 55822002-05-06 Richard Henderson <rth@redhat.com>
5583
5584 * recog.c (if_test_bypass_p): Accept multiple set insns for OUT,
5585 and any jump or call for IN.
5586
0affa48f 55872002-05-06 Bernd Schmidt <bernds@redhat.com>
5588
26638275 5589 * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if
0affa48f 5590 -msse2.
5591 * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support.
26638275 5592
f9a532b0 55932002-05-06 Roger Sayle <roger@eyesopen.com>
5594
5595 * fold-const.c (lshift-double): Cast the high word to an unsigned
5596 HOST_WIDE_INT when extracting sign bit to avoid compiler warning.
5597 (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to
5598 avoid compiler warning. (fold): Remove redundant code from
5599 BIT_AND_EXPR as integer operands are canonicalized to be arg1.
5600
cde3e16c 56012002-05-06 Jeff Law <law@redhat.com>
5602
5603 * pa-protos.h (hppa_fpstore_bypass_p): Declare.
5604 * pa.c (pa_adjust_cost): Remove all true dependency cost
5605 adjustments. Also remove support for non-DFA scheduling.
5606 * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism
5607 to adjust true dependency costs. Update various comments.
5608 (7100lc, 7200, 7300 scheduling): Simplify by combining the
5609 FP ALU & MPY units into a single unit.
5610
f3d57f06 56112002-05-06 Catherine Moore <clm@redhat.com>
5612
5613 * config/v850/v850.c (compute_register_save_size): Make sure
5b965633 5614 to count all of the registers that will be saved.
f3d57f06 5615
b604c0ed 5616Mon May 6 18:03:11 CEST 2002 Jan Hubicka <jh@suse.cz>
5617
5618 * i386.c (q_regs_operand): Use ANY_QI_REGS_P.
5619
08e984ce 56202002-05-06 David S. Miller <davem@redhat.com>
5621
5622 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not
5623 allow result to overlap input operands in memory.
5624
c3dc40b1 56252002-05-06 Neil Booth <neil@daikokuya.demon.co.uk>
5626
5627doc:
5628 * cpp.texi: Update multichar charconst docs.
5629
d507cd2f 56302002-05-06 Neil Booth <neil@daikokuya.demon.co.uk>
5631
5632 * cpplex.c (cpp_interpret_charconst): Sign-extend each
5633 character. Don't ignore excess characters. Treat
5634 multicharacter character constants as signed.
5635 (cpp_parse_escape): Clarify diagnostic.
5636
15f8e49b 56372002-05-05 Jakub Jelinek <jakub@redhat.com>
5638
5639 * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx,
5640 use add instead of shift.
5641 (ashldi3_sp64): Likewise.
5642 (ashlsi3_const1, ashldi3_const1): Remove.
5643 * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand.
5644 * config/sparc/sparc.c (const1_operand): New.
5645
57de8662 56462002-05-05 Jason Thorpe <thorpej@wasabisystems.com>
5647
5648 * config.gcc (alpha*-*-netbsd*): Don't use crtstuff.
5649
b00035f2 56502002-05-05 Jakub Jelinek <jakub@redhat.com>
5651
5652 PR target/6561
5653 * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2.
5654
7eb0c947 56552002-05-05 Richard Henderson <rth@redhat.com>
5656
5657 * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but
5658 memory latency adjustments.
5659 (alpha_variable_issue): Remove.
5660 (alpha_use_dfa_pipeline_interface): New.
5661 (alpha_multipass_dfa_lookahead): New.
5662 * config/alpha/alpha.md: Remove define_function_unit scheduling;
5663 include new dfa scheduling.
5664 (attr type): Add none.
5665 (blockage): Use it.
5666 * config/alpha/ev4.md: New.
5667 * config/alpha/ev5.md: New.
5668 * config/alpha/ev6.md: New.
5669
bab5a775 56702002-05-05 David S. Miller <davem@redhat.com>
5671
5672 * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL.
5673
d4c5e26d 56742002-05-05 Kazu Hirata <kazu@cs.umass.edu>
5675
5676 * cse.c: Fix formatting.
5677 * emit-rtl.c: Likewise.
5678
8da5793c 56792002-05-05 Vladimir Makarov <vmakarov@redhat.com>
5680
5681 * genautomata.c (initiate_states): Add additional guard to
5682 initialize `units_array'.
5683
b35eefd9 56842002-05-05 Vladimir Makarov <vmakarov@redhat.com>
5685
5686 * genautomata.c (form_the_same_automaton_unit_lists_from_regexp,
5687 process_unit_to_form_the_same_automaton_unit_lists,
5688 form_the_same_automaton_unit_lists
5689 check_unit_distributions_to_automata): New prototypes and
5690 functions.
5691 (check_automata): Rename it into `check_automata_insn_issues'.
5692 (unit_decl): New fields `the_same_automaton_unit' and
5693 `the_same_automaton_message_reported_p'.
5694 (unit_decl_t): New typedef.
5695 (the_same_automaton_lists): New gloval variable.
5696 (unit_regexp, unit_set_el, units_array, units_cmp,
5697 output_get_cpu_unit_code_func): Use the typedef.
5698 (evaluate_max_reserv_cycles): Increment
5699 `description->max_insn_reserv_cycles'.
5700 (initiate_states): Don't increment `max_cycles_num'.
5701 (transform_insn_regexps): Move code around transformation of
5702 regexps from `generate'.
5703 (generate): Remove call of `transform_insn_regexps'.
5704 (expand_automata): Call `transform_insn_regexps' and
5705 `check_unit_distributions_to_automata'. Check errors before
5706 `generate'.
5707
5708 * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into
5709 automaton `ultrasparc3_1'.
26638275 5710
1893c11a 57112002-05-05 Neil Booth <neil@daikokuya.demon.co.uk>
5712
5713 * c-common.c (c_common_init): Set up CPP arithmetic.
5714 * cppinit.c (cpp_create_reader): Default CPP arithmetic to
5715 something reasonable for the host.
5716 (sanity_checks): Add checks.
5717 (cpp_read_main_file): Call sanity_checks() from here...
5718 (cpp_post_options): ... not here.
5719 * cpplex.c (cpp_interpret_charconst): Get max_chars right.
5720 * cpplib.h (struct cpp_options): New member int_precision.
5721
36d56345 57222002-05-05 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5723
5724 * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements.
5725
c69803e9 57262002-05-04 David S. Miller <davem@redhat.com>
5727
e7d6d302 5728 * config/sparc/linux.h, config/sparc/linux64.h
5729 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice.
5730
7987fb04 5731 * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of
5732 more RTX codes.
5733 * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes.
5734
c69803e9 5735 * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL
5736 of SETs.
5737
1aa70e57 57382002-05-05 Tim Josling <tej@melbpc.org.au>
5739
26638275 5740 * treelang; New directory for new sample language treelang.
1aa70e57 5741
9a85d74b 57422002-05-04 Neil Booth <neil@daikokuya.demon.co.uk>
5743
5744 * Makefile.in (c-lex.o): Update.
5745 * c-lex.c: Include target.h.
5746 (cb_register_builtins): New.
5747 (init_c_lex): Set builtins callback.
5748 * c-lex.h (cpp_define, cpp_assert): New prototypes.
5749 * cppinit.c (init_builtins): Use callback, including for
5750 GXX_WEAK.
5751 * cpplib.h (struct cpp_callbacks): New member.
5752 * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New.
5753 (TARGET_INITIALIZER): Update.
5754 * target.h (struct gcc_target): New hook.
5755 * tree.c (default_register_cpp_builtins): New.
5756 * tree.h (default_register_cpp_builtins): New.
5757doc:
5758 * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document.
5759
40855b30 57602002-05-04 Neil Booth <neil@daikokuya.demon.co.uk>
5761
5762 * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h
5763 (cpp_post_options): Move sanity checks to...
5764 (sanity_checks): New.
5765 * cpplex.c (maybe_read_ucs): Fix prototype.
5766 (parse_string, cpp_parse_escape): Cast for %c format specifier.
5767 * cpplib.h (cppchar_t): Use unsigned long or unsigned long long
5768 if necessary.
5769
d3ceaee1 57702002-05-04 Bernd Schmidt <bernds@redhat.com>
5771
5772 * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2
5773 builtins. Use V2DI patterns instead of TI for logical operations.
5774 (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins.
5775 Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps.
5776 (ix86_expand_builtins): Change the pattern used for movntdq.
5777 * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3,
5778 sse2_nandv2di3): New patterns.
5779 (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes
5780 on operands.
5781 (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted.
5782 (cvtdq2pd): Correct mode on operand 1.
5783 (sse2_umulsidi3): Describe without unspec.
5784 (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate
5785 machine modes.
5786 (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec.
5787 (ashlv2di3): Likewise, from sse2_ashlv2di3.
5788 (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3,
5789 ashlv4si3, ashlv2di3): Use SImode for shift count.
5790 (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti,
5791 lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti):
5792 New patterns.
5793 * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi):
5794 New typedefs.
5795 (__m128i, __m128d): New macros.
5796 (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd,
5797 _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd,
5798 _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd,
5799 _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd,
5800 _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd,
26638275 5801 _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd,
d3ceaee1 5802 _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd,
5803 _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd,
26638275 5804 _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd,
d3ceaee1 5805 _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd,
5806 _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd,
5807 _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd,
5808 _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd,
5809 _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps,
5810 _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32,
5811 _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32,
5812 _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd,
5813 _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd,
5814 _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16,
5815 _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32,
5816 _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32,
5817 _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
5818 _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16,
5819 _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
5820 _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16,
5821 _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16,
5822 _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64,
5823 _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32,
5824 _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64,
5825 _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
5826 _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128,
5827 _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
5828 _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16,
5829 _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8,
5830 _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16,
5831 _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd,
5832 _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New
5833 functions.
26638275 5834 (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32,
d3ceaee1 5835 _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros.
5836
bc70bd5e 58372002-05-04 Kazu Hirata <kazu@cs.umass.edu>
5838
5839 * dwarf2out.c: Fix formatting.
5840 * varasm.c: Likewise.
5841
8e7c2000 58422002-05-04 David Edelsohn <edelsohn@gnu.org>
5843
5844 PR c/6543
5845 * config/rs6000/rs6000.md (sCC pattern and splitter): Remove
5846 clobber and use result as temporary value.
5847
fef8467d 5848Sat May 4 13:20:54 CEST 2002 Jan Hubicka <jh@suse.cz>
5849
5850 * expr.c (force_operand): Use expand_simple_* to handle more
5851 cases.
5852
13c457e1 58532002-05-04 Neil Booth <neil@daikokuya.demon.co.uk>
5854
5855 * c-lex.c (lex_string): Let cpp_parse_escape handles truncation
5856 and sign-extension.
5857 (lex_charconst): Update for change in prototype of
5858 cpp_interpret_charconst. Extend from cppchar_t to HOST_WIDE_INT
5859 appropriately.
5860 * cpphash.h (BITS_PER_CPPCHAR_T): New.
5861 * cppinit.c (cpp_create_reader): Initialize them for no
5862 change in semantics.
5863 (cpp_post_options): Add sanity checks.
5864 * cpplex.c (cpp_parse_escape): Handle precision, sign-extension
5865 and truncation issues. Calculate in type cppchar_t.
5866 (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove.
5867 (cpp_interpret_charconst): Calculate in type cppchar_t. Handle
5868 run-time dependent precision correctly. Return whether the
5869 result is signed or not.
5870 * cpplib.c (dequote_string): Use cppchar_t; update.
5871 * cpplib.h (cppchar_signed_t): New.
5872 struct cpp_options): New precision members.
5873 (cpp_interpret_charconst, cpp_parse_escape): Update prototypes.
1ad27a12 5874 * cppexp.c (eval_token): Update.
13c457e1 5875
23df5607 58762002-05-03 David S. Miller <davem@redhat.com>
5877
7c27ad86 5878 * config/sparc/sparc-protos.h (sparc_rtx_costs): New.
5879 * config/sparc/sparc.c (sparc_rtx_costs): New function
5880 implementing RTX_COSTS and CONST_COSTS.
5881 * config/sparc/sparc.h (CONST_COSTS): Delete.
5882 (RTX_COSTS_CASES): Define.
5883 (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do
5884 the work.
5885
aa5841a8 5886 * config/sparc/sparc.md (DFA schedulers): Split out...
5887 * config/sparc/cypress.md, config/sparc/hypersparc.md,
5888 config/sparc/sparclet.md, config/sparc/supersparc.md,
5889 config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here.
5890
71731aa4 5891 * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef
5892 checks on it, always defined for Sparc.
5893
23df5607 5894 * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER):
5895 Tweak, and add more detailed comments.
5896
ad0f3983 58972002-05-03 Zack Weinberg <zack@codesourcery.com>
5898
5899 * Re-apply patch accidentally reverted with
5900 DFA scheduler merge: remove all rules and variables to slurp
5901 source files out of libiberty and rebuild them with HOST_CC.
5902 ($(HOST_PREFIX_1)varray.o): New rule.
5903 (genattrtab rule): Word wrap.
5904
2c2026d2 59052002-05-03 Jason Thorpe <thorpej@wasabisystems.com>
5906
5907 * config/i386/netbsd64.h (CPP_LP64_SPEC): Define.
5908 (CPP_SUBTARGET_SPEC): Define.
5909 (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and
5910 cpp_subtarget specs.
5911 (CPP_SPEC): Redefine to include %(cpp_subtarget).
5912
b66dff68 59132002-05-03 David S. Miller <davem@redhat.com>
5914
5915 * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete.
5916 * target.h (struct gcc_target): Delete cycle_display member.
5917
5da2bd31 5918 * config/ia64/ia64.c (ia64_emit_insn_before): Put it back.
5919 (rtx_needs_barrier): Delete reference to cycle_display unspec.
5920 (ia64_sched_reorder2): Mention need for cycle display handling
5921 once such notes exist.
ad0f3983 5922
79f66ba1 59232002-05-03 Richard Henderson <rth@redhat.com>
5924
5925 * real.c (etoasc): Strip most trailing zeros for clarity.
5926 * sched-vis.c: Include real.h.
5927 (print_value): Use REAL_VALUE_TO_DECIMAL as needed.
5928 * Makefile.in (sched-vis.o): Add real.h.
5929
ca78c3fa 59302002-05-03 David S. Miller <davem@redhat.com>
5931
5932 * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change,
5933 no longer needed.
5934
f4454ccb 59352002-05-03 Aldy Hernandez <aldyh@redhat.com>
5936
ad0f3983 5937 * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out
5938 when we get an out of range literal.
5939 (altivec_expand_ternop_builtin): Same.
5940 (altivec_expand_unop_builtin): Same.
5941 (altivec_expand_builtin): Same, for dss.
5942 (altivec_expand_builtin): Use trees instead of rtl when
5943 determining literal argument validity.
f4454ccb 5944
b3b1cb53 59452002-05-03 David S. Miller <davem@redhat.com>
5946
5947 Delete cycle display scheduling hook.
5948 * config/ia64/ia64.c (ia64_cycle_display,
5949 TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete.
5950 (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display
5951 and use emit_insn_before instead of ia64_emit_insn_before.
5952 * config/ia64/ia64.md (unspec usage): Delete cycle display.
5953 (cycle_display): Delete insn pattern.
5954 * config/sparc/sparc.md (unspec usage): Delete cycle display.
5955 (cycle_display): Delete insn pattern.
5956 * config/sparc/sparc.c (sparc_cycle_display,
5957 TARGET_SCHED_CYCLE_DISPLAY): Delete.
5958 * doc/md.texi (cycle_display): Don't mention.
5959 * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise.
ad0f3983 5960
5459086b 59612002-05-03 Richard Henderson <rth@redhat.com>
5962
5963 * recog.c (store_data_bypass_p, if_test_bypass_p): New.
5964 * recog.h: Declare them.
5965
5966 * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove.
5967 * config/sparc/sparc.md: Use store_data_bypass_p instead.
5968 * config/sparc/sparc-protos.h: Update.
ad0f3983 5969
13afc42e 59702002-05-03 Jason Thorpe <thorpej@wasabisystems.com>
5971
5972 * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove
5973 -D__arch64__. Add -D_LP64.
5974 (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version
5975 from sparc.h.
5976 (CPP_ARCH64_SPEC): Likewise.
5977 (NO_BUILTIN_PTRDIFF_TYPE): Undef.
5978 (NO_BUILTIN_SIZE_TYPE): Undef.
5979
7b6da3db 59802002-05-03 Vladimir Makarov <vmakarov@redhat.com>
5981
5982 * genautomata.c (min_issue_delay_pass_states): Change return type
5983 in the prototype.
5984 (min_issue_delay_pass_states): Change the algorithm.
5985 (min_issue_delay): Set up min_insn_issue_delay for the state.
5986 (output_min_issue_delay_table): Interchange the nested loops and
5987 and initiate min_insn_issue_delay for states.
ad0f3983 5988
41a4ba7f 5989Fri May 3 22:59:15 CEST 2002 Jan Hubicka <jh@suse.cz>
5990
5991 * cfgcleanup.c (try_optimize_cfg): Call merge_block only when
5992 jump is simplejump.
5993
5994Fri May 3 22:53:37 CEST 2002 Jan Hubicka <jh@suse.cz>
8dcf1d62 5995
5996 * i386.c (expand_movstr, expand_clrstr): Fix inline-all-stringops
5997 sequence.
5998
4497b2ae 59992002-05-03 Richard Henderson <rth@redhat.com>
6000
6001 PR opt/6534
6002 * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants,
6003 noce_try_store_flag_inc, noce_try_store_flag_mask, noce_try_cmove,
6004 noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Insert new
6005 code before JUMP, not EARLIEST.
6006
136d950f 60072002-05-03 Joseph S. Myers <jsm28@cam.ac.uk>
6008
6009 * c-format.c (check_format_info_main): Don't check for presence of
6010 parameter for * width until after operand number has been read,
6011 and only check for it if format parameters are available.
6012 Fixes PR c/6547.
6013
6d1fe069 60142002-05-03 Jason Thorpe <thorpej@wasabisystems.com>
6015
6016 * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64.
6017 (LINK_SPEC): Undef before defining.
6018
0ec5611c 60192002-05-03 Jakub Jelinek <jakub@redhat.com>
6020
6021 PR preprocessor/6489
6022 * tradcpp.c (fixup_newlines): New.
6023 (main, finclude): Use it.
6024
8b614dc7 60252002-05-03 Richard Sandiford <rsandifo@redhat.com>
6026
6027 * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section.
6028 * config/mips/mips.c (mips_unique_section): Strip encoding from
6029 decl name.
6030
3f4b9cd3 60312002-05-03 Jakub Jelinek <jakub@redhat.com>
6032
6033 * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper
6034 mode.
6035
3bb9b13b 60362002-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6037
6038 * doc/install.texi (Installing): Mention GCC 3.1 buildstats.
6039 (Specific): Removed buildstats references.
6040 (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0.
6041 (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1.
6042 Accomodate Solaris versions beyond 8.
6043 (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1.
6044 (Specific, *-*-solaris2.8): Removed, obsolete.
6045
626dd758 60462002-05-03 Jakub Jelinek <jakub@redhat.com>
6047
6048 PR target/6542
6049 * config/sparc/sparc.h (leaf_reg_remap): Remove const.
6050 (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make
6051 fill leaf_reg_remap with identity.
6052 * config/sparc/sparc.c (leaf_reg_remap): Remove const.
6053
66b41076 60542002-05-03 Kazu Hirata <kazu@cs.umass.edu>
6055
6056 * config/h8300/crti.asm: Remove trailing spaces.
6057 * config/h8300/h8300.c: Likewise.
6058 * config/h8300/lib1funcs.asm: Likewise.
6059
557840a9 60602002-05-02 Jason Merrill <jason@redhat.com>
6061
6062 * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c.
6063 * c-decl.c (c_init_decl_processing): Use it.
6064 * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE.
6065 * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define.
6066 * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define.
6067
709c2f34 60682002-05-03 Kazu Hirata <kazu@cs.umass.edu>
6069
6070 * regrename.c: Fix formatting.
6071 * tree.c: Likewise.
6072
ad39a886 6073Fri May 3 13:34:43 CEST 2002 Jan Hubicka <jh@suse.cz>
6074
6075 * i386.md (attribute memory): Handle compares properly.
6076
9252033e 6077Fri May 3 10:51:38 CEST 2002 Jan Hubicka <jh@suse.cz>
6078
ad39a886 6079 * i386.md (sse_clrsf, sse_clrsi): Set memory attribute
9252033e 6080 to none.
6081
60d903f5 60822002-05-02 Kazu Hirata <kazu@cs.umass.edu>
6083
6084 * function.c: Fix formatting.
6085
0bc18d66 60862002-05-02 Jan Hubicka <jh@suse.cz>
6087
6088 * haifa-sched.c (schedule_insn): Print table of instructions and
6089 reservations.
6090 (sched_block): Do not print ready list at verbosity level 1.
6091 * sched-vis.c (print_insn): Make global.
6092 * sched-ebb.c (ebb_print_insn): Rename from...
6093 (print_insn): ... this one.
6094 * sched-int.h (print_insn): Declare
6095
87fe19fc 60962002-05-02 Richard Henderson <rth@redhat.com>
6097
6098 * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
6099 emitted by cycle_display.
6100
42cc12fd 61012002-05-02 Loren J. Rittle <ljrittle@acm.org>
6102
6103 * doc/install.texi (*-*-freebsd*): Update to latest status.
6104
a30c8575 61052002-05-02 Jakub Jelinek <jakub@redhat.com>
6106
6107 PR target/6540
6108 * config.gcc (sparc*-*-solaris2*): Set float_format to i128.
6109 * config/float-sparc.h: Assume 128-bit long double if
6110 __LONG_DOUBLE_128__ is defined.
6111
74bea6d9 61122002-05-02 Vladimir Makarov <vmakarov@redhat.com>
6113
6114 * genattrtab.c (write_function_unit_info): Add a dummy element
6115 when num_units == 0.
6116
7b2b0fda 61172002-05-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6118
6119 * predict.c: (propagate_freq, estimate_bb_frequencies): Use
6120 TYPE_MODE (double_type_node) instead of DFmode.
6121
27bcd4c1 6122Thu May 2 19:50:04 CEST 2002 Jan Hubicka <jh@suse.cz>
6123
6124 * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed
6125 jumps post reload.
6126 * toplev.c (rest_of_compilation): Revert Richard's patch.
6127
4cba7138 61282001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
6129
6130 * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS.
6131
65c802a1 61322002-05-02 Catherine Moore <clm@redhat.com>
6133
6134 * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20.
6135
dafdd1c8 61362002-05-02 Kazu Hirata <kazu@hxi.com>
6137
89440df2 6138 * combine.c: Fix comment typos.
dafdd1c8 6139 * expr.c: Likewise.
6140 * genautomata.c: Likewise.
6141 * stmt.c: Likewise.
6142 * tree.h: Likewise.
6143
57b59a23 61442002-05-02 Joseph S. Myers <jsm28@cam.ac.uk>
6145
6146 * doc/install.texi: State GNAT version requirements.
6147
5ce5e43b 61482002-05-02 Nick Clifton <nickc@cambridge.redhat.com>
6149
6150 * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form
6151 of the frame pointer or arg pointer register which strict register
6152 checking is not enabled.
6153
5f500529 61542002-05-02 Aldy Hernandez <aldyh@redhat.com>
6155
4497b2ae 6156 * gcc.dg/altivec-8.c: New.
5f500529 6157
4497b2ae 6158 * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
6159 PRE_INC and PRE_DEC for altivec modes.
5f500529 6160
2bfb2bb3 61612002-05-01 Bruce Korb <bkorb@gnu.org>
6162
6163 * fixinc/check.tpl(set-writable): make sure the function exists first
6164 * fixinc/inclhack.def(alpha_assert): fix test_text
6165 * fixinc/tests/base/assert.h: add in missing result
6166
792066cd 61672002-05-01 Jeff Law <law@redhat.com>
6168
6169 * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the
6170 'T' constraint.
6171
153b0682 61722002-05-01 Joel Brobecker <brobecker@gnat.com>
6173
6174 * dbxout.c (dbxout_type): Emit size information for range types,
6175 as well, but only when using GDB extensions.
6176
a985a485 61772002-05-01 Richard Henderson <rth@redhat.com>
6178
6179 * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with
6180 target-independent gnu binutils date test.
6181
cd2e6f57 61822002-05-01 Richard Henderson <rth@redhat.com>
6183
6184 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump
6185 info before expunging the block.
6186
e9c81b97 61872002-05-01 Jakub Jelinek <jakub@redhat.com>
6188
6189 * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here...
6190 (cpp_post_options): ...but here. Disable -dD, -dN and -dI when
6191 -M -or -MM is in effect.
6192
e48f919a 61932002-05-01 Zack Weinberg <zack@codesourcery.com>
6194
6195 * config.gcc: Correct test of --enable-obsolete. Obsolete all
6196 A29k configurations.
6197 * doc/install.texi: Update to match.
6198
f93b586b 61992002-05-01 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6200
6201 PR bootstrap/6514
6202 * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check
6203 for duplicates. Always loop over whole list.
6204
7d262d85 6205Wed May 1 10:32:37 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6206
6207 * reload.c (find_reloads, case 'p'): Set BADOP to 0.
6208
e7b91619 62092002-05-01 Joel Sherrill <joel@OARcorp.com>
6210
6211 * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly
6212 support routines.
6213
bb38c65e 62142002-05-01 Joel Sherrill <joel@OARcorp.com>
6215
6216 * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning.
6217
f96d3e35 62182002-05-01 David Edelsohn <edelsohn@gnu.org>
6219
6220 * rs6000.md (abssi2_nopower): Convert to define_insn_and_split.
6221 (nabs_nopower): Same.
6222 (floatdisf2): New pattern.
6223 (absdi2): Convert to define_insn_and_split.
6224 (nabsdi2): Same.
6225 (trunctfsf2): Same.
6226 (floatditf2): Same.
6227 (floatsitf2): Same.
6228 (fix_trunctfdi2): Same.
6229 (fix_trunctfsi2): Same.
6230
6c4726f4 62312002-05-01 Joseph S. Myers <jsm28@cam.ac.uk>
6232
6233 * doc/install.texi: Update Texinfo version requirement
6234 documentation.
6235
273eb9dd 62362002-05-01 Jakub Jelinek <jakub@redhat.com>
6237
6238 PR target/6512, PR target/5628
6239 * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32
6240 when memory is not aligned.
6241 (movdf_insn_v9only_vis): Likewise.
6242 * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS
6243 temporary for EXTRA_FP_REGS DFmode load from unaligned memory.
6244 (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly.
6245
cca49516 62462002-05-01 Aldy Hernandez <aldyh@redhat.com>
6247
e48f919a 6248 * gcc.dg/altivec-7.c: New.
cca49516 6249
e48f919a 6250 * config/rs6000/altivec.h: Cleanup.
cca49516 6251
10363e0e 62522002-04-30 Aldy Hernandez <aldyh@redhat.com>
6253
e48f919a 6254 * doc/invoke.texi (Option Summary): Add -mvrsave=.
6255 (RS/6000 and PowerPC Options): Document -mvrsave=.
10363e0e 6256
e48f919a 6257 * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global.
6258 (rs6000_altivec_vrsave_string): Same.
6259 (rs6000_override_options): Call rs6000_parse_vrsave_option.
6260 (rs6000_parse_vrsave_option): New.
6261 (rs6000_stack_info): Only generate vrsave instructions when
6262 TARGET_ALTIVEC_VRSAVE.
10363e0e 6263
e48f919a 6264 * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option.
6265 (rs6000_altivec_vrsave_string): Define extern.
6266 (rs6000_altivec_vrsave): Same.
6267 (TARGET_ALTIVEC_VRSAVE): New.
10363e0e 6268
d1fefebc 62692002-04-30 Richard Henderson <rth@redhat.com>
6270
6271 PR opt/6516
6272 * toplev.c (rest_of_compilation): Don't run cross-jump before
6273 bb-reorder.
6274
caeae6e1 62752002-04-30 Tom Rix <trix@redhat.com>
6276
e48f919a 6277 * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity
caeae6e1 6278 check which_alternative.
6279
a113df96 62802002-04-30 Kazu Hirata <kazu@hxi.com>
6281
6282 * cpplex.c: Fix comment formatting.
6283 * function.c: Likewise.
6284 * integrate.c: Likewise.
6285 * regrename.c: Likewise.
6286 * sibcall.c: Likewise.
6287 * simplify-rtx.c: Likewise.
6288 * tree-inline.c: Likewise.
6289
711b6446 62902002-04-30 John David Anglin <dave@hiauly1.hia.nrc.ca>
6291
6292 * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*,
6293 hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*,
6294 hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*,
6295 hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file.
6296 * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete.
6297 * pa/x-ada: New file. Define ADA_CFLAGS.
6298
d68ffc6f 62992002-04-30 Hans-Peter Nilsson <hp@bitrange.com>
6300
6301 * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed
6302 from MMIX_LAST_REGISTER_FILE_REGNUM.
6303 (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment.
6304 (struct machine_function): New member highest_saved_stack_register
6305 previously static variable in mmix.c.
6306 (MACHINE_DEPENDENT_REORG): Define.
6307 * config/mmix/mmix.c (highest_saved_stack_register): Deleted.
6308 (MMIX_OUTPUT_REGNO): New.
6309 (mmix_target_asm_function_prologue): Move calculation of last used
6310 saved-stack-register into...
6311 (mmix_machine_dependent_reorg): New function. Update to also handle
6312 !TARGET_ABI_GNU.
6313 (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting
6314 register names, simplify somewhat by new variable regno.
6315 <case 'p'>: Remove fixed FIXME. Always emit highest used saved
6316 register.
6317 (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when
6318 emitting register names.
6319 (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto.
6320 (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too.
6321 Remove fixed FIXME.
6322 * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg):
6323 Declare.
6324
6325 * config/mmix/mmix.md ("divmoddi4"): Update head comment.
6326
c00088b6 63272002-04-30 Richard Henderson <rth@redhat.com>
6328
6329 * config/sparc/sparc.c (emit_soft_tfmode_libcall,
6330 emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt,
6331 emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop,
6332 emit_tfmode_cvt): New.
6333 * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2,
6334 trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2,
6335 fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2,
6336 addtf3, subtf3, multf3, divtf3, sqrttf2): Use them.
6337 * config/sparc/sparc-protos.h: Update.
6338
8097be66 63392002-04-30 Janis Johnson <janis187@us.ibm.com>
6340
6341 * install.texi (Final install): Add to the list of info to include
6342 in a report of a successful bootstrap, and add link to 3.1 list.
6343
eb332399 6344Tue Apr 30 19:15:36 CEST 2002 Jan Hubicka <jh@suse.cz>
6345
6346 * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1.
6347 (mode): Add vector modes
6348 (i387): Kill attribute.
6349 (unit): New attribute.
6350 (length_immediate): Grok new types.
6351 (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX.
6352 (modrm): Use "unit".
6353 (memory): Handle MMX/SSE properly.
6354 (scheduling descriptions): Kill uses of fop1.
6355 (sse, mmx, fp patterns): Set type and mode properly.
6356
61512c54 6357Tue Apr 30 09:31:59 2002 Jeffrey A Law (law@redhat.com)
f8d29fed 6358
7c8bce8e 6359 * pa.c (override_options): Default to PA8000 scheduling.
6360 * doc/invoke.texi (HP-PA options): Mention newly added 7300
6361 scheduling parameter.
6362
f8d29fed 6363 * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine
6364 handling of double precision multiplies.
6365
6366 * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of
6367 fpdiv and fpsqrt instructions.
6368 (7200 & 7300 scheduling): Fix typo in handling of
6369 store-load and store-store penalties.
6370
68a46af1 63712002-04-30 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
6372
6373 * doc/contrib.texi (Contributors): Use MIPS instead of Mips and
6374 mips. Add two missing commas.
6375
9d712c5a 63762002-04-30 Paolo Carlini <pcarlini@unitus.it>
6377
6378 * doc/contrib.texi (Contributors): Update Paolo Carlini's
6379 and Benjamin Kosnik's entries.
6380
55ebdd65 63812002-04-29 David S. Miller <davem@redhat.com>
6382
6383 * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK,
6384 SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III.
6385 * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise.
6386 * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
6387
07556dbf 63882002-04-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6389
6390 * combine.c (find_split_point): Use gen_int_mode.
6391
bea4bad2 63922002-04-29 Vladimir Makarov <vmakarov@redhat.com>
6393
6394 Merging code from dfa-branch:
e48f919a 6395
bea4bad2 6396 2002-04-24 Vladimir Makarov <vmakarov@redhat.com>
6397
6398 * genautomata.c (output_reserv_sets): Fix typo.
6399
6400 2002-04-23 Vladimir Makarov <vmakarov@redhat.com>
6401
6402 * genautomata.c (output_reserv_sets): Remove
6403 next_cycle_output_flag.
6404
6405 Thu Apr 18 08:57:06 2002 Jeffrey A Law (law@redhat.com)
6406
e48f919a 6407 * sched-rgn.c (init_ready_list): Make the DFA code handle
6408 USE/CLOBBER insns in the same way as the traditional
6409 scheduler.
6410 (new_ready): Similarly..
bea4bad2 6411
6412 2002-04-17 Vladimir Makarov <vmakarov@redhat.com>
6413
6414 * haifa-sched.c (schedule_block): Change the DFA state only after
6415 issuing insn.
6416
6417 Wed Apr 17 15:38:36 2002 Jeffrey A Law (law@redhat.com)
6418
6419 * pa.c (hppa_use_dfa_pipeline_interface): New function.
6420 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
6421 (override_options): Add PA7300 scheduling support.
6422 (pa_adjust_cost): Update various comments. Properly
6423 handle anti and output dependencies when using the
6424 DFA scheduler.
6425 (pa_issue_rate): Add PA7300 scheduling support.
6426 (pa_can_combine_p): Call extract_insn before calling
6427 constrain_operands (taken from mainline tree).
6428 * pa.h (enum processor_type): Add PROCESSOR_PA7300.
6429 * pa.md (cpu attr): Add 7300. Rewrite pipeline
6430 descriptions using DFA descriptions. Add PA7300
6431 scheduling support.
6432
6433 2002-03-30 David S. Miller <davem@redhat.com>
6434
6435 Add UltraSPARC-III DFA scheduling support.
6436 * config/sparc/sparc.md (define_attr type): Add fpcrmove.
6437 Update FP conditional move on register insn patterns to use it, as
6438 appropriate.
6439 (define_attr cpu): Add ultrasparc3.
6440 (define_attr us3load_type): New, update integer load patterns to
6441 set it, as appropriate.
6442 (define_automaton): Add ultrasparc3_0 and ultrasparc3_1.
6443 (rest): Add UltraSPARC3 scheduling description.
6444 * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New.
6445 (PROCESSOR_ULTRASPARC3): New.
6446 ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3.
6447 ({ASM,CPP}_CPU_SPEC): Likewise.
6448 (REGISTER_MOVE_COST): Likewise.
6449 (RTX_COSTS): Likewise.
6450 * config/sparc/sparc.c (sparc_override_options,
6451 sparc_initialize_trampoline, sparc64_initialize_trampoline,
6452 sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
6453 sparc_issue_rate): Likewise.
6454 * config/sparc/sol2.h: Likewise.
6455 * config/sparc/sol2-sld-64.h: Likewise.
6456 * config/sparc/linux64.h: Likewise.
e48f919a 6457
bea4bad2 6458 2002-03-22 Vladimir Makarov <vmakarov@redhat.com>
6459
6460 * doc/md.texi: Add comments about usage the latency time for the
6461 different dependencies and about case when two or more conditions
6462 in different define_insn_reservations returns TRUE for an insn.
6463
6464 * doc/md.texi: Add reference for automaton based pipeline
6465 description.
e48f919a 6466
bea4bad2 6467 2002-03-04 Vladimir Makarov <vmakarov@redhat.com>
6468
6469 * doc/passes.texi: Add missed information about genattrtab.
6470
6471 2002-03-01 Vladimir Makarov <vmakarov@redhat.com>
6472
6473 * genautomata.c (output_automata_list_transition_code): Check
6474 automata_list on NULL.
6475
6476 2002-02-28 Vladimir Makarov <vmakarov@redhat.com>
6477
6478 * genautomata.c (output_insn_code_cases,
6479 output_automata_list_min_issue_delay_code,
6480 output_automata_list_transition_code,
6481 output_automata_list_state_alts_code): Comment the functions.
6482
6483 2002-02-22 Vladimir Makarov <vmakarov@redhat.com>
6484
6485 * genautomata.c (automata_list_el_t): New typedef.
6486 (get_free_automata_list_el,free_automata_list_el,
6487 free_automata_list, automata_list_hash, automata_list_eq_p,
6488 initiate_automata_lists, automata_list_start, automata_list_add,
6489 automata_list_finish, finish_automata_lists,
6490 output_insn_code_cases, output_automata_list_min_issue_delay_code,
6491 output_automata_list_transition_code,
6492 output_automata_list_state_alts_code, add_automaton_state,
6493 form_important_insn_automata_lists): New functions and prototypes.
6494 (insn_reserv_decl): Add members important_automata_list and
6495 processed_p.
6496 (ainsn): Add members important_p.
6497 (automata_list_el): New structure.
6498 (first_free_automata_list_el, current_automata_list,
6499 automata_list_table): New global variables.
6500 (create_ainsns): Initiate member important_p.
6501 (output_internal_min_issue_delay_func): Generate the switch and
6502 call output_insn_code_cases.
6503 (output_internal_trans_func, output_internal_state_alts_func):
6504 Ditto.
6505 (generate): Call initiate_automata_lists.
6506 (automaton_states): New global variable.
6507 (expand_automata): Call form_important_insn_automata_lists.
6508 (write_automata): Call finish_automata_lists.
e48f919a 6509
bea4bad2 6510 2002-02-21 Vladimir Makarov <vmakarov@redhat.com>
6511
6512 * genautomata.c (add_excls, add_presence_absence): Check that
e48f919a 6513 cpu units in the sets belong the same automaton.
bea4bad2 6514
6515 * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment
6516 about that cpu units in the sets belong the same automaton.
6517
6518 * doc/md.texi: Ditto.
e48f919a 6519
2822b157 6520 2001-12-20 Naveen Sharma <naveens@noida.hcltech.com>
6521 Nitin Gupta <niting@noida.hcltech.com>
e48f919a 6522
bea4bad2 6523 * config/sh/sh.c (sh_use_dfa_interface): New function.
6524
6525 (sh_issue_rate): New Function.
6526 TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define.
6527 TARGET_SCHED_ISSUE_RATE: define.
6528
6529 * config/sh/sh.md: Add DFA based pipeline description for SH4.
6530
e48f919a 6531 (define_attr insn_class): New attribute used for DFA
6532 scheduling.
bea4bad2 6533 (define_insn cmpgtsi_t): Set attribute insn_class mt_group.
6534 (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t,
6535 cmpeqdi_t): Likewise.
6536
6537 (add,addc1,addsi3,subc,subc1,*subsi3_internal,
e48f919a 6538 negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class
bea4bad2 6539 ex_group.
6540 (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise.
e48f919a 6541
bea4bad2 6542 2001-10-03 Vladimir Makarov <vmakarov@toke.toronto.redhat.com>
6543
6544 * haifa-sched.c (queue_to_ready): Remove unnecessary condition for
6545 break.
6546
6547 2001-10-03 Vladimir Makarov <vmakarov@toke.toronto.redhat.com>
6548
6549 * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro.
6550 (output_dfa_insn_code_func): Expand dfa_insn_codes if it is
6551 necessary.
6552 (output_dfa_start_func): Initiate new variable insn_codes_length,
6553 (write_automata): Output definition of the new variable.
e48f919a 6554
bea4bad2 6555 2001-10-02 David S. Miller <davem@redhat.com>
6556
6557 * haifa-sched.c (advance_one_cycle): New function.
6558 (schedule_block): Use it.
6559 (queue_to_ready): Use it, and also make sure to advance the DFA
6560 state on all stall cycles, not just those where insn_queue links
6561 are found.
6562
6563 2001-10-02 Richard Sandiford <rsandifo@redhat.com>
6564
6565 * haifa-sched.c (max_issue): Remove last_p argument. Only return
6566 non-zero if the highest-priority instruction could be scheduled.
6567 (choose_ready): Remove last argument from max_issue call.
6568
6569 2001-09-28 David S. Miller <davem@redhat.com>
6570
6571 * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for
6572 ultrasparc and 3 for other multi-issue sparcs.
6573
6574 2001-09-27 David S. Miller <davem@redhat.com>
6575
6576 * config/sparc/sparc.md (cycle_display): New pattern.
6577 * config/sparc/sparc.c (sparc_cycle_display): New.
6578 (TARGET_SCHED_CYCLE_DISPLAY): Set it.
6579
6580 2001-09-25 David S. Miller <davem@redhat.com>
6581
6582 Convert all of Sparc scheduling to DFA
6583 * config/sparc/sparc.md: Kill all define_function_unit
6584 directives and replace with DFA equivalent.
6585 * config/sparc/sparc.c (ultrasparc_adjust_cost,
6586 mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p,
6587 ultra_fpmode_conflict_exists, ultra_find_type,
6588 ultra_build_types_avail, ultra_flush_pipeline,
6589 ultra_rescan_pipeline_state, ultrasparc_sched_reorder,
6590 ultrasparc_variable_issue, ultrasparc_sched_init,
6591 sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask,
6592 ultra_schedule_insn, ultra_code_names, ultra_pipe_hist,
6593 ultra_cur_hist, ultra_cycles_elapsed): Kill.
6594 (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead,
6595 ultrasparc_store_bypass_p): New.
6596 * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p):
6597 Declare.
6598
6599 2001-09-24 David S. Miller <davem@redhat.com>
6600
6601 * haifa-sched.c (ready_remove): Fix thinko, we want to copy around
6602 ready->vec[foo] not ready[foo].
6603
6604 2001-09-07 Vladimir Makarov <vmakarov@redhat.com>
6605
6606 * doc/md.texi: Correct examples for define_insn_reservations
6607 `mult' and `div'.
6608
6609 2001-09-07 Vladimir Makarov <vmakarov@redhat.com>
6610
6611 * genautomata.c (create_automata): Print message about creation of
6612 each automaton.
6613 (generate): Remove printing meease about creation of
6614 automata.
6615
6616 2001-09-05 David S. Miller <davem@redhat.com>
6617
6618 * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
6619 * config/sparc/linux64.h: Likewise.
6620
6621 2001-08-31 Vladimir Makarov <vmakarov@redhat.com>
6622
6623 * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready,
6624 schedule_block, sched_init, sched_finish): Add missed calls of
6625 use_dfa_pipeline_interface.
6626
6627 * sched-rgn.c (init_ready_list, new_ready, debug_dependencies):
6628 Ditto.
6629
6630 * sched-vis.c (get_visual_tbl_length): Ditto.
e48f919a 6631
bea4bad2 6632 2001-08-27 Richard Henderson <rth@redhat.com>
6633
6634 * genattr.c (main): Emit state_t even when not doing scheduling.
6635
6636 2001-08-27 Richard Henderson <rth@redhat.com>
6637
6638 * genautomata.c (expand_automata): Always create a description.
6639
6640 2001-08-27 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
6641
e48f919a 6642 * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
bea4bad2 6643 PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
6644 AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
6645 RTL constructions.
6646
6647 * genattr.c (main): New variable num_insn_reservations. Increase
6648 it if there is DEFINE_INSN_RESERVATION. Output automaton based
6649 pipeline hazard recognizer interface.
6650
6651 * genattrtab.h: New file.
6652
6653 * genattrtab.c: Include genattrtab.h.
6654 (attr_printf, check_attr_test, make_internal_attr,
6655 make_numeric_value): Move protypes into genattrtab.h. Define them
6656 as external.
6657 (num_dfa_decls): New global variable.
6658 (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
6659 DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
6660 DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
6661 DEFINE_INSN_RESERVATION. Call expand_automata and write_automata.
6662
6663 * genautomata.c: New file.
6664
6665 * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
6666
e48f919a 6667 * sched-int.h: (curr_state): Add the external definition for
bea4bad2 6668 automaton pipeline interface.
6669 (haifa_insn_data): Add comments for members blockage and units.
6670
6671 * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6672 TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6673 TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6674 TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6675 TARGET_SCHED_DFA_POST_CYCLE_INSN,
6676 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6677 TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
6678 macros.
6679 (TARGET_SCHED): Use the new macros.
6680
6681 * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
6682 dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
6683 first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
6684 dfa_bubble): New members in gcc_target.sched.
6685
e48f919a 6686 * haifa-sched.c (insert_schedule_bubbles_p): New variable.
bea4bad2 6687 (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
6688 (insn_queue): Redefine it as pointer to array.
6689 (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
6690 INSN_QUEUE_SIZE.
6691 (max_insn_queue_index_macro_value): New variable.
6692 (curr_state, dfa_state_size, ready_try): New varaibles for
6693 automaton interface.
6694 (ready_element, ready_remove, max_issue): New function prototypes
6695 for automaton interface.
6696 (choose_ready): New function prototype.
6697 (insn_unit, blockage_range): Add comments.
6698 (unit_last_insn, unit_tick, unit_n_insns): Define them for case
6699 FUNCTION_UNITS_SIZE == 0.
6700 (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
6701 actual_hazard, potential_hazard): Add comments.
6702 (insn_cost): Use cost -1 as undefined value. Remove
6703 LINK_COST_ZERO and LINK_COST_FREE. Add new code for automaton
6704 pipeline interface.
6705 (ready_element, ready_remove): New functions for automaton
6706 interface.
6707 (schedule_insn): Add new code for automaton pipeline interface.
6708 (queue_to_ready): Add new code for automaton pipeline interface.
6709 Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
6710 (debug_ready_list): Print newline when the queue is empty.
6711 (max_issue): New function for automaton pipeline interface.
6712 (choose_ready): New function.
6713 (schedule_block): Add new code for automaton pipeline interface.
6714 Print ready list before scheduling each insn.
6715 (sched_init): Add new code for automaton pipeline interface.
6716 Initiate insn cost by -1.
6717 (sched_finish): Free the current automaton state and finalize
6718 automaton pipeline interface.
6719
6720 * sched-rgn.c: Include target.h.
6721 (init_ready_list, new_ready, debug_dependencies): Add new code for
6722 automaton pipeline interface.
6723
6724 * sched-vis.c: Include target.h.
6725 (get_visual_tbl_length): Add code for automaton interface.
6726 (target_units, print_block_visualization): Add comments.
6727
e48f919a 6728 * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
bea4bad2 6729 USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
6730 (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
6731 (getruntime.o, genautomata.o): New entries.
6732 (genattrtab.o): Add new dependency file genattrtab.h.
6733 (genattrtab): Add new dependencies. Link it with `libm.a'.
6734 (getruntime.o, hashtab.o): New entries for canadian cross.
6735
6736 * doc/md.texi: Description of automaton based model.
6737
6738 * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
6739 Add comments.
6740 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
6741 TARGET_SCHED_DFA_PRE_CYCLE_INSN,
6742 TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
6743 TARGET_SCHED_DFA_POST_CYCLE_INSN,
6744 TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
6745 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
6746 TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
6747 hook descriptions.
6748 (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
6749 MAX_DFA_ISSUE_RATE): New macro descriptions.
6750
6751 * doc/contrib.texi: Add dfa based scheduler contribution.
6752
6753 * doc/gcc.texi: Add more information about genattrtab.
6754
69562d20 6755Mon Apr 29 17:19:10 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6756
6757 * reload1.c (eliminate_regs, case SUBREG): Fix typo in
6758 adjust_address_nv call.
6759
f4dea86e 67602002-04-29 Janis Johnson <janis187@us.ibm.com>
6761
6762 * doc/install.texi (Testing): Provide additional information, and
6763 a stronger encouragement, for running the testsuites.
6764
d2b063d0 67652002-04-29 DJ Delorie <dj@redhat.com>
6766
6767 * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is
6768 given in upper case.
6769
b924735b 67702002-04-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6771
6772 * fixinc/inclhack.def (solaris_widec): Include <wchar.h> in
6773 Solaris 2 <widec.h> if missing.
6774 * fixinc/fixincl.x: Regenerate.
6775 * fixinc/tests/base/widec.h: New file.
6776
490ab187 67772002-04-29 Nick Clifton <nickc@cambridge.redhat.com>
6778
6779 * toplev.c (f_options): Add "profile" switch so that
6780 -fno-profile can be used to disable -p.
6781
b0556a84 67822002-04-29 Bernd Schmidt <bernds@redhat.com>
6783
6784 * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode,
6785 UV2DImode.
6786 * tree.c (build_common_tree_nodes_2): Likewise.
6787 * tree.h (enum tree_index): Likewise.
6788 (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define.
6789
6790 * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2
6791 entries.
6792 (init_mmx_sse_builtins): Initialize SSE2 builtins.
6793 (ix86_expand_builtin): Add support for SSE2 builtins.
6794 * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro.
6795 (VALID_SSE_REG_MODE): Use it.
6796 (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well.
6797 (enum ix86_builtins): Add SSE2 builtins.
6798 * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal,
6799 movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi,
6800 addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3,
6801 divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3,
6802 sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2,
6803 vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3,
6804 vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb,
6805 sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps,
6806 cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi,
6807 cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss,
6808 cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3,
6809 ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3,
6810 subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3,
6811 mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
6812 sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3,
6813 sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd,
6814 sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3,
6815 gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3,
6816 ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3,
6817 ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3,
6818 sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw,
6819 sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq,
6820 sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd,
6821 sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq,
6822 sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd,
6823 sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence,
6824 lfence_insn): New patterns.
6825 (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from
6826 sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2.
6827
f01c583b 6828Mon Apr 29 17:03:24 CEST 2002 Jan Hubicka <jh@suse.cz>
6829
6830 * i386.md (sse_mov?fcc*): Revert patch of Mar 14th.
6831
e1aee388 68322002-04-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
6833
6834 * doc/contrib.texi (Contributors): Add Paolo Carlini and
6835 Janis Johnson.
6836 Update Richard Henderson, Jakub Jelinek, and Mark Mitchell.
6837 Refer to Objective-C instead of ObjC, SPARC instead of sparc,
6838 and CPU instead of cpu.
6839
770cdf3a 6840Mon Apr 29 13:36:41 CEST 2002 Jan Hubicka <jh@suse.cz>
6841
6842 * toplev.c (flag_if_conversion, flag_if_conversion2): New static
6843 variables.
6844 (lang_independent_options): Add -fif-conversion, -fif-conversion2
6845 (rest_of_compilation): Do if conversion only when asked for.
6846 (parse_options_and_default_flags): Set new variables to 1 for -O1
6847 * invoke.texi (-fif-conversion, -fif-conversion2): Document.
6848
97998135 6849Mon Apr 29 13:02:50 CEST 2002 Jan Hubicka <jh@suse.cz>
6850
6851 * i386.c (dbx64_register_map): Fix typo.
6852
56ff4880 6853Mon Apr 29 12:18:35 CEST 2002 Jan Hubicka <jh@suse.cz>
6854
6855 * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base,
6856 real_one_half, real_bb_freq_max): New static variables.
6857 (debug_profile_bbauxs): Kill.
6858 (process_note_predictions): Kill unused variable.
6859 (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of
6860 volatile double.
6861 (propagate_freq): Use REAL_ARITHMETICS.
6862 (estimate_bb_frequencies): Likevise; init new static variables.
6863 * Makefile.in (predict.o): Add dependency on real.h
6864
924b7bea 68652002-04-28 David S. Miller <davem@redhat.com>
6866
6867 PR target/6500
6868 * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs.
6869 64-bit TARGET_V9. Do not use prefetch page, use prefetch for
6870 several {reads,writes} instead.
6871 * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
6872 Define.
6873
6f0ae544 68742002-04-27 David S. Miller <davem@redhat.com>
6875
6876 PR target/6494
6877 * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful
6878 of the stack bias.
6879
6880 * config/sparc/linux.h, config/sparc/linux64.h: Don't bother
6881 including signal.h and sys/ucontext.h, not needed.
6882
55d4402d 68832002-04-29 Hans-Peter Nilsson <hp@bitrange.com>
6884
6885 * varasm.c (output_constant_def): Correct test for not calling
6886 ENCODE_SECTION_INFO for INTEGER_CST.
6887
93bfa70b 68882002-04-29 Neil Booth <neil@daikokuya.demon.co.uk>
6889
6890 * cppexp.c (lex): Move some code to _cpp_parse_expr, but
6891 keep most cases as function eval_token.
6892 (eval_token): New function.
6893 (_cpp_parse_expr): Read token here for improved diagnostics.
6894 Don't use op_as_text. Detect bad ':' here.
6895 (reduce): Don't detect bad ':' here.
6896 (op_as_text): Remove.
6897 * cpphash.h (_cpp_test_assertion): Change prototype.
6898 * cpplib.c (_cpp_test_assertion): Change prototype.
6899
ec1d9596 69002002-04-28 Richard Henderson <rth@redhat.com>
6901
6902 PR c/5154
e48f919a 6903 * ggc-common.c (ggc_mark_rtx_children_1): Rename from...
ec1d9596 6904 (ggc_mark_rtx_children): New.
6905
73c5fe4f 69062002-04-28 Jakub Jelinek <jakub@redhat.com>
6907
6908 PR target/6496
6909 * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump
6910 after call peepholes for UltraSPARC.
6911 (call + jump 64-bit peepholes): Remove.
6912
76cbaf6c 69132002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6914
6915 PR c/6497
6916 * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use
6917 result as temporary value.
6918
db6798b5 69192002-04-28 Jakub Jelinek <jakub@redhat.com>
6920
6921 PR c++/6396
6922 * toplev.c (rest_of_compilation): Only run regrename and copy
6923 propagation if optimizing.
6924
c99e85d9 69252002-04-28 Jakub Jelinek <jakub@redhat.com>
6926
6927 PR optimization/6475
6928 * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo
6929 register of REGNO_DECL (i).
6930 * Makefile.in (reload1.o): Add $(TREE_H).
6931
5bbf045f 69322002-04-28 Neil Booth <neil@daikokuya.demon.co.uk>
6933
6934 * cppexp.c (lex): Update to use state.skip_eval.
6935 (struct op): Remove prio and flags members.
6936 (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS,
6937 SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove.
6938 (LEFT_ASSOC): New macro.
6939 (optab): New table of operator priorities and flags.
6940 (SHIFT): Update.
6941 (_cpp_parse_expr): Clean up logic. Return bool. Use a
6942 malloc-ed parser stack.
6943 (reduce): New; reduce the operator stack.
6944 (_cpp_expand_op_stack): Expand the operator stack as necessary.
6945 * cpphash.h (struct op): Predeclare.
6946 (struct cpp_reader): New members op_stack, op_limit.
6947 (struct lexer_state): New member skip_eval.
6948 (_cpp_parse_expr): Update.
6949 (_cpp_expand_op_stack): New.
6950 * cpplib.c (do_if): Update.
6951 * cppinit.c (cpp_create_reader): Create op stack.
6952 (cpp_destroy): And destroy it.
6953 * cpplib.h (CPP_LAST_CPP_OP): Correct.
6954 (TTYPE_TABLE): Correct.
6955
296c463e 69562002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6957
6958 PR c/6343
6959 * c-decl.c (duplicate_decls): Call merge_weak.
6960 * c-pragma.c (apply_pragma_weak): Warn about misuse.
6961 * output.h (merge_weak): Prototype merge_weak.
6962 * varasm.c (merge_weak): New function.
6963 (declare_weak): Make sure we don't give an error on VAR_DECLs.
6964 Mark RTL with SYMBOL_REF_WEAK.
6965
6cc4057d 69662002-04-27 Kurt Garloff <garloff@suse.de>
6967
6968 * tree-inline.c (inlinable_function_p): Improve heuristics
6969 by using a smoother function to cut down allowable inlinable size.
6970 * param.def: Add parameters max-inline-insns-single,
6971 max-inline-slope, min-inline-insns that determine the exact
6972 shape of the above function.
6973 * param.h: Likewise.
6974
d4b64c2f 69752002-04-26 Richard Henderson <rth@redhat.com>
6976
6977 * c-parse.in (malloced_yyss, malloced_yyvs): New.
6978 (yyoverflow): Re-add. Set them.
6979 (free_parser_stacks): New.
6980 * c-common.h: Declare it.
6981 * c-lex.c (c_common_parse_file): Call it.
6982
ac25a327 69832002-04-26 Richard Henderson <rth@redhat.com>
6984
6985 * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn
6986 for fallthru search.
6987
bc73e414 69882002-04-26 Eric Christopher <echristo@redhat.com>
6989
6990 PR optimization/3700
6991 * config/mips/mips.c (mips_issue_rate): Define. New function.
6992 (TARGET_SCHED_ISSUE_RATE): Use.
6993
55427c62 69942002-04-25 David S. Miller <davem@redhat.com>
6995
6996 PR target/6422
6997 * reorg.c (optimize_skip): Do not allow exception causing
6998 instructions to be considered for delay slots.
6999 (fill_simply_delay_slots, fill_slots_from_thread): Likewise.
7000 (relax_delay_slots): Do not try to consider exception causing
7001 instructions as redundant.
7002
2baadbf6 70032002-04-26 Richard Henderson <rth@redhat.com>
7004
7005 PR c/5225
7006 * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue.
7007
10879bbc 70082002-04-26 Mark Mitchell <mark@codesourcery.com>
7009
7010 PR bootstrap/6445
7011 * config/i386/i386.md (untyped_call): Return the value in a float
7012 register if TARGET_FLOAT_RETURNS_IN_80387, not just if
7013 TARGET_80387.
7014
1453bbde 70152002-04-26 Alexandre Oliva <aoliva@redhat.com>
7016
7017 * tree.c (tree_int_cst_lt): Compare constants whose types differ
7018 in unsigned-ness correctly.
7019
18a5bd91 70202002-04-26 John David Anglin <dave@hiauly1.hia.nrc.ca>
7021
7022 * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the
7023 portable runtime model.
7024
5e277a8c 70252002-04-26 Richard Henderson <rth@redhat.com>
7026
6cc4057d 7027 * c-parse.in (yyoverflow): Revert.
5e277a8c 7028
e2073568 70292002-04-26 David Edelsohn <edelsohn@gnu.org>
7030 Richard Henderson <rth@redhat.com>
7031
7032 * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use
7033 result as temporary value.
7034
070236f0 70352002-04-26 Richard Henderson <rth@redhat.com>
7036
7037 PR c/3581
7038 * c-common.c (fix_string_type): Split out of ...
7039 (combine_strings): ... here. Take a varray, not a tree list.
7040 (c_expand_builtin_printf): Use fix_string_type.
7041 * c-common.h: Update decls.
7042 * c-parse.in (string): Remove. Update all uses to use STRING
7043 instead, and not call combine_strings.
7044 (yylexstring): New.
7045 (_yylex): Use it.
7046 * c-typeck.c (simple_asm_stmt): Don't call combine_strings.
7047 (build_asm_stmt): Likewise.
7048 * objc/objc-act.c (my_build_string): Use fix_string_type.
7049 (build_objc_string_object): Build varray for combine_strings.
7050
0e73d519 70512002-04-26 Bo Thorsen <bo@suse.co.uk>
7052
7053 * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for
7054 x86-64.
7055
87215b90 70562002-04-26 Neil Booth <neil@daikokuya.demon.co.uk>
7057
7058 * cppexp.c (CPP_UMINUS, CPP_UPLUS): New.
7059 (HAVE_NO_R_OPERAND): Remove.
7060 (HAVE_VALUE): Remove.
7061 (op_to_prio): Update.
7062 (UNARY): Don't alter flags.
7063 (_cpp_parse_expr): want_value used to indicate whether
7064 a number or unary operator is expected next. Distinguish
7065 unary and binary +/-.
7066 (op_as_text): Update for unary operators.
7067
deae487a 70682002-04-25 Richard Henderson <rth@redhat.com>
7069
7070 PR c/2161
7071 * c-parse.in (yyoverflow): New.
7072
fe5f2366 70732002-04-25 Richard Henderson <rth@redhat.com>
7074
7075 PR c/2098
7076 * c-common.c (shorten_compare): Simplfy conditions leading to
7077 the generation of a warning.
7078
c601dd7d 70792002-04-25 Richard Henderson <rth@redhat.com>
7080
7081 PR c/2035
7082 * expmed.c (extract_bit_field): Fall through to generic code rather
7083 than aborting on subreg special case.
7084
a9f2a3a0 70852002-04-25 David S. Miller <davem@redhat.com>
7086
7087 * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check
7088 for DECL being NULL.
7089
8390a674 70902002-04-25 Steve Christiansen <smc@us.ibm.com>
7091
7092 * doc/md.texi (Machine Constraints): Add IA-64 constraints.
7093
600d7693 70942002-04-25 Eric Botcazou <ebotcazou@multimania.com>
7095
7096 * c-decl.c (grokdeclarator): Remove outdated ??? note
7097 on invalid declaration of flexible array members.
7098
905a1b56 70992002-04-25 Richard Henderson <rth@redhat.com>
7100
7101 * doc/invoke.texi: Document -gdwarf{,-2} vs debug level.
7102
ab60b1c9 71032002-04-25 Ulrich Weigand <uweigand@de.ibm.com>
7104
7105 * config/s390/s390.c (s390_emit_epilogue): Always restore registers
7106 needed by the compiler, even if they are used as global regs.
7107
8d85666f 71082002-04-25 Matt Hiller <hiller@redhat.com>
7109
7110 * mips.c (mips_class_max_nregs, mips_register_move_cost): New
7111 functions.
7112 * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
7113 of the corresponding functions.
7114 * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
7115 New prototypes.
bc73e414 7116
8d85666f 71172002-04-25 Matt Hiller <hiller@redhat.com>
7118
7119 * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
7120
7121 (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
7122 (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
7123 registers, adjust comment accordingly.
7124 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
7125 reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
7126 DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
7127 for coprocessor registers.
7128 (ADDITIONAL_REGISTER_NAMES): Include
7129 ALL_COP_ADDITIONAL_REGISTER_NAMES.
bc73e414 7130
8d85666f 7131 (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
7132 COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
7133 COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
7134 COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
7135 COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
7136
7137 (mips_char_to_class): Adjust comment to include coprocessor
7138 constraint letters.
7139
7140 * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
7141 New functions.
7142 (mips_reg_names, mips_regno_to_class): Include coprocessor
7143 information.
7144 (mips_sw_reg_names): Ditto, make non-static.
7145 (mips_move_1word): Handle moves to and from coprocessor registers.
7146 (mips_move_2words): Handle moves to and from coprocessor
7147 registers.
7148 (mips_class_max_nregs, mips_register_move_cost): Handle
7149 coprocessor register classes.
7150 (override_options): Initialize mips_char_to_class and
7151 mips_hard_regno_mode_ok properly for coprocessor registers.
7152
7153 * config/mips/mips.md (movdi_internal, movdi_internal2,
7154 movsi_internal1, movsi_internal2): Add constraint-sets for
7155 coprocessor registers.
7156 * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
7157 * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
7158 isn't mips.
7159 * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
7160 * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
7161 isn't mips.
7162 * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
7163 * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
7164 isn't mips.
7165 * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
7166 * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
7167 isn't mips.
bc73e414 7168
8d85666f 7169 * doc/tm.texi: Document feature.
7170
dc600c9e 71712002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
7172
7173 * integrate.c (function_attribute_inlinable_p): Simplify.
7174 Check the table pointer is not NULL.
7175
49e6cbf7 71762002-04-25 Steven Bosscher <S.Bosscher@student.tudelft.nl>
7177
7178 * doc/c-tree.texi: Fix typo in introduction.
7179
1c542e4c 71802002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
7181
7182 * c-common.h (c_common_parse_file): Update.
7183 * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7184 * c-lex.c (YYDEBUG): Get from c-lex.h.
7185 (c_common_parse_file): Update.
7186 * c-lex.h (YYDEBUG, yydebug): New.
7187 * c-parse.in (YYDEBUG): Get from c-lex.h.
7188 (c_set_yydebug): Remove.
7189 * c-tree.h (c_set_yydebug): Remove.
7190 * langhooks-def.h (lhd_do_nothing_i): New.
7191 (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
7192 (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
7193 * langhooks.c (lhd_do_nothing_i): New.
7194 (lhd_set_yydebug): Remove.
7195 * langhooks.h (struct lang_hooks): Update.
7196 * toplev.c (set_yydebug): New.
7197 (compile_file): Update call to parse_file hook.
7198 (decode_d_option): Update.
7199objc:
7200 * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
7201
bd54bbc6 7202Wed Apr 24 23:45:37 2002 J"orn Rennecke <joern.rennecke@superh.com>
7203
7204 * loop.c (load_mems): Don't change the interface of called functions.
7205
7206 * calls.c (expand_call): Take current_function_pretend_args_size
7207 into account when setting argblock for sibcalls.
7208
31215a6e 72092002-04-24 Matt Hiller <hiller@redhat.com>
7210
7211 * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
7212 * c-lex.c: Ditto.
7213
7214 * cpplex.c (skip_line_comment): Process comment one multibyte
7215 character at a time rather than one char at a time, if
7216 appropriate.
7217 (parse_string): Process string one multibyte character at a time
7218 rather than one char at a time, if appropriate.
7219 * c-lex.c (lex_string): Lex and copy multibyte strings
7220 appropriately.
7221 * cpplib.h (cppchar_t): Change to unsigned.
7222
db40a834 72232002-04-24 Richard Henderson <rth@redhat.com>
7224
7225 PR c/3467
7226 * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
7227 for c99.
7228
a3e17e8c 7229Wed Apr 24 21:51:54 2002 J"orn Rennecke <joern.rennecke@superh.com>
7230
7231 * sh.c (sh_va_arg): If argument was passed by reference,
7232 dereference the pointer.
575fdeec 7233
7234 * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
54f76e52 7235
7236 * sh.md (divsi3_i4_media): Use match_operand for input values
7237 rather than hard registers.
7238 (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
7239 unnecessarily through hard registers. Keep copies of pseudo
7240 registers outside of the libcall sequence.
7241
7242 * sh.md (casesi_shift_media): Add modes.
44b4015a 7243
7244 * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
7245 values in memory.
7246
f8e93a2e 72472002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
7248
7249 * attribs.c (c_common_attribute_table): Move table and handlers
7250 to c-common.c.
7251 (format_attribute_table, lang_attribute_table,
7252 lang_attribute_common): Remove.
7253 (init_attributes): Replace NULL pointers with pointers to the
7254 empty table.
7255 (handle_packed_attribute, handle_nocommon_attribute,
7256 handle_common_attribute, handle_noreturn_attribute,
7257 handle_noinline_attribute, handle_always_inline_attribute,
7258 handle_used_attribute, handle_unused_attribute,
7259 handle_const_attribute, handle_transparent_union_attribute,
7260 handle_constructor_attribute, handle_destructor_attribute,
7261 handle_mode_attribute, handle_section_attribute,
7262 handle_aligned_attribute, handle_weak_attribute,
7263 handle_alias_attribute, handle_visibility_attribute,
7264 handle_no_instrument_function_attribute, handle_malloc_attribute,
7265 handle_no_limit_stack_attribute, handle_pure_attribute,
7266 handle_deprecated_attribute, handle_vector_size_attribute,
7267 vector_size_helper): Move to c-common.c.
7268 * c-common.c (c_common_attribute_table,
7269 handle_packed_attribute, handle_nocommon_attribute,
7270 handle_common_attribute, handle_noreturn_attribute,
7271 handle_noinline_attribute, handle_always_inline_attribute,
7272 handle_used_attribute, handle_unused_attribute,
7273 handle_const_attribute, handle_transparent_union_attribute,
7274 handle_constructor_attribute, handle_destructor_attribute,
7275 handle_mode_attribute, handle_section_attribute,
7276 handle_aligned_attribute, handle_weak_attribute,
7277 handle_alias_attribute, handle_visibility_attribute,
7278 handle_no_instrument_function_attribute, handle_malloc_attribute,
7279 handle_no_limit_stack_attribute, handle_pure_attribute,
7280 handle_deprecated_attribute, handle_vector_size_attribute,
7281 vector_size_helper): Move from attribs.c.
7282 * c-common.h (c_common_attribute_table,
7283 c_common_format_attribute_table): New.
7284 * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
7285 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
7286 * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
7287 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
7288 (LANG_HOOKS_INITIALIZER): Update.
7289 * langhooks.h (struct lang_hooks): 3 new attribute hooks.
7290 * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
7291 * target.h: Update comment.
7292 * tree.c (default_target_attribute_table): Remove.
7293 * tree.h (default_target_attribute_table, format_attribute_table,
7294 lang_attribute_table, lang_attribute_common): Remove.
7295objc:
7296 * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
7297 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
7298
634906d6 72992002-04-24 Jason Merrill <jason@redhat.com>
7300
7301 * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
7302 * dwarf2out.c (dwarf_attr_name): Support it.
7303 (gen_array_type_die): Emit it.
7304 (lookup_type_die): No special handling for VECTOR_TYPE.
7305 (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
7306
a78c0709 73072002-04-24 Richard Henderson <rth@redhat.com>
7308
7309 * config/mips/mips.md (movdi_usd): Renumber.
7310
9981aaeb 73112002-04-24 David S. Miller <davem@redhat.com>
7312
7313 PR target/6420
7314 * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
7315 32-bit Sparc and current_function_returns_struct is true.
7316
b4ddc721 7317Wed Apr 24 13:48:25 CEST 2002 Jan Hubicka <jh@suse.cz>
7318
7319 * loop.c (canonicalize_condition): Use gen_int_mode.
7320
a73cb8ec 73212002-04-24 Aldy Hernandez <aldyh@redhat.com>
7322
7323 * config/rs6000/altivec.h: Cleanup file. Add non individual
7324 variants.
7325 (vec_vaddubm): New.
7326 (vec_vadduhm): New.
7327 (vec_vadduwm): New.
7328 (vec_vaddfp): New.
7329 (vec_vaddcuw): New.
7330 (vec_vaddubs): New.
7331 (vec_vaddsbs): New.
7332 (vec_vadduhs): New.
7333 (vec_vadduws): New.
7334 (vec_vaddsws): New.
7335 (vec_vand): New.
7336 (vec_vandc): New.
7337 (vec_vavgub): New.
7338 (vec_vavgsb): New.
7339 (vec_vavguh): New.
7340 (vec_vavgsh): New.
7341 (vec_vavguw): New.
7342 (vec_vavgsw): New.
7343 (vec_vrfip): New.
7344 (vec_vcmpbfp): New.
7345 (vec_vcmpequb): New.
7346 (vec_vcmpequh): New.
7347 (vec_vcmpequw): New.
7348 (vec_vcmpeqfp): New.
7349 (vec_vcmpgefp): New.
7350 (vec_vcmpgtub): New.
7351 (vec_vcmpgtsb): New.
7352 (vec_vcmpgtuh): New.
7353 (vec_vcmpgtsh): New.
7354 (vec_vcmpgtuw): New.
7355 (vec_vcmpgtsw): New.
7356 (vec_vcmpgtfp): New.
7357 (vec_vcmpgefp): New.
7358 (vec_vcfux): New.
7359 (vec_vcfsx): New.
7360 (vec_vctsxs): New.
7361 (vec_vctuxs): New.
7362 (vec_vexptefp): New.
7363 (vec_vrfim): New.
7364 (vec_lvx): New.
7365 (vec_lvebx): New.
7366 (vec_lvehx): New.
7367 (vec_lde): Add vector float variant.
7368 (vec_lvewx): New.
7369 (vec_lvxl): New.
7370 (vec_vlogefp): New.
7371 (vec_vmaddfp): New.
7372 (vec_vmhaddshs): New.
7373 (vec_vmaxub): New.
7374 (vec_vmaxsb): New.
7375 (vec_vmaxuh): New.
7376 (vec_vmaxsh): New.
7377 (vec_vmaxuw): New.
7378 (vec_vmaxsw): New.
7379 (vec_vmaxsw): New.
7380 (vec_vmaxfp): New.
7381 (vec_vmrghb): New.
7382 (vec_vmrghh): New.
7383 (vec_vmrghw): New.
7384 (vec_vmrglb): New.
7385 (vec_vmrglh): New.
7386 (vec_vmrglw): New.
7387 (vec_vminub): New.
7388 (vec_vminsb): New.
7389 (vec_vminuh): New.
7390 (vec_vminsh): New.
7391 (vec_vminuw): New.
7392 (vec_vminsw): New.
7393 (vec_vminfp): New.
7394 (vec_vmladduhm): New.
7395 (vec_vmhraddshs): New.
7396 (vec_msumubm): New.
7397 (vec_vmsummbm): New.
7398 (vec_vmsumuhm): New.
7399 (vec_vmsumshm): New.
7400 (vec_vmsumuhs): New.
7401 (vec_vmsumshs): New.
7402 (vec_vmuleub): New.
7403 (vec_vmulesb): New.
7404 (vec_vmuleuh): New.
7405 (vec_vmulesh): New.
7406 (vec_vmuloub): New.
7407 (vec_mulosb): New.
7408 (vec_vmulouh): New.
7409 (vec_vmulosh): New.
7410 (vec_vnmsubfp): New.
7411 (vec_vnor): New.
7412 (vec_vor): New.
7413 (vec_vpkuhum): New.
7414 (vec_vpkuwum): New.
7415 (vec_vpkpx): New.
7416 (vec_vpkuhus): New.
7417 (vec_vpkshss): New.
7418 (vec_vpkuwus): New.
7419 (vec_vpkswss): New.
7420 (vec_vpkshus): New.
7421 (vec_vpkswus): New.
7422 (vec_vperm): New.
7423 (vec_vrefp): New.
7424 (vec_vrlb): New.
7425 (vec_vrlh): New.
7426 (vec_vrlw): New.
7427 (vec_vrfin): New.
7428 (vec_vrsqrtefp): New.
7429 (vec_vsel): New.
7430 (vec_vslb): New.
7431 (vec_vslh): New.
7432 (vec_vslw): New.
7433 (vec_vsldoi): New.
7434 (vec_vsl): New.
7435 (vec_vslo): New.
7436 (vec_vspltb): New.
7437 (vec_vsplth): New.
7438 (vec_vspltw): New.
7439 (vec_vspltisb): New.
7440 (vec_vspltish): New.
7441 (vec_vspltisw): New.
7442 (vec_vsrb): New.
7443 (vec_vsrh): New.
7444 (vec_vsrw): New.
7445 (vec_vsrab): New.
7446 (vec_vsrah): New.
7447 (vec_vsraw): New.
7448 (vec_vsr): New.
7449 (vec_vsro): New.
7450 (vec_stvx): New.
7451 (vec_stvebx): New.
7452 (vec_stvehx): New.
7453 (vec_stvewx): New.
7454 (vec_stvxl): New.
7455 (vec_vsububm): New.
7456 (vec_vsubuhm): New.
7457 (vec_vsubuwm): New.
7458 (vec_vsubfp): New.
7459 (vec_vsubcuw): New.
7460 (vec_vsububs): New.
7461 (vec_vsubsbs): New.
7462 (vec_vsubuhs): New.
7463 (vec_vsubshs): New.
7464 (vec_vsubuws): New.
7465 (vec_vsubsws): New.
7466 (vec_vsum4ubs): New.
7467 (vec_vsum4sbs): New.
7468 (vec_vsum4shs): New.
7469 (vec_vsum2sws): New.
7470 (vec_vsumsws): New.
7471 (vec_vrfiz): New.
7472 (vec_vupkhsb): New.
7473 (vec_vupkhpx): New.
7474 (vec_vupkhsh): New.
7475 (vec_vupklsb): New.
7476 (vec_vupklpx): New.
7477 (vec_vupklsh): New.
7478 (vec_vxor): New.
7479
b07ba9ff 74802002-04-23 Eric Botcazou <ebotcazou@multimania.com>
7481
7482 PR c/5430
7483 * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
7484 added literals from substracted literals.
7485 (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
7486 (fold) [associate]: Preserve MINUS_EXPR if needed.
7487
448aaa46 74882002-04-23 Zack Weinberg <zack@codesourcery.com>
7489
7490 * doc/install.texi: Clarify which versions of alpha*-dec-osf*
7491 are obsoleted.
7492
39471a6e 74932002-04-23 Tom Tromey <tromey@redhat.com>
7494
7495 * gcc.c: Added --resource. For PR java/6314.
7496
6ce8155a 74972002-04-23 David O'Brien <obrien@FreeBSD.org>
7498
bba8b950 7499 * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
6ce8155a 7500 * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
7501 these libraries.
7502
60b39823 75032002-04-23 David O'Brien <obrien@FreeBSD.org>
7504
7505 * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
7506
2ecaad6d 7507Tue Apr 23 14:24:25 CEST 2002 Jan Hubicka <jh@suse.cz>
7508
7509 * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
7510 workaround.
7511 (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
7512 (ix86_expand_clrstr): Fix typo.
7513 * loop.c (gen_load_of_final_value): New.
7514 (loop_givs_rescan, strength_reduce, check_dbra_loop):
7515 Use it.
7516
a7ec6974 75172002-04-23 Roger Sayle <roger@eyesopen.com>
7518
7519 * builtins.c (builtin_memset_gen_str): New function.
7520 (expand_builtin_memset): Optimize the case of constant length, but
7521 unknown value.
7522
24ff0b02 75232002-04-23 Aldy Hernandez <aldyh@redhat.com>
7524
b07ba9ff 7525 * config/rs6000/altivec.h (vec_step): Remove extraneous
7526 parentheses.
7527 (vec_ctu): Cast return.
24ff0b02 7528
b8a21949 75292002-04-23 Alan Modra <amodra@bigpond.net.au>
7530
7531 PR target/6413
7532 * function.h: (struct function): Add profile_label_no field.
7533 (current_function_profile_label_no): Define.
7534 * function.c: (profile_label_no): New static var.
7535 (expand_function_start): Increment it, and copy to
7536 current_function_profile_label_no.
7537 * output.h (profile_label_no): Delete.
7538 * final.c (profile_label_no): Delete.
7539 (profile_function): Use current_function_profile_label_no.
7540 (final_end_function): Don't increment profile_label_no here.
7541 * config/i386/i386.c (ix86_osf_output_function_prologue): Replace
7542 profile_label_no with current_function_profile_label_no.
7543 * config/pa/pa.c (current_function_number): Delete.
7544 (pa_output_function_prologue): Don't output profile label here.
7545 (hppa_profile_hook): Use label_no param rather than
7546 current_function_number.
7547 (FUNC_BEGIN_PROLOG_LABEL): Move to ..
7548 * config/pa/pa.h: .. here.
7549 (FUNCTION_PROFILER): Output profile label here.
7550
57477e83 75512002-04-22 Eric Christopher <echristo@redhat.com>
7552
7553 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert
7554 patch of 2002-04-09 due to binutils issues.
7555 (FUNCTION_ARG_REGNO_P): Ensure even numbered float register.
7556
dcea1976 75572002-04-22 Aldy Hernandez <aldyh@redhat.com>
7558
b07ba9ff 7559 * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
7560 constraint to 'o' for m=r and r=m alternatives.
7561 ("*movv8hi_internal1"): Same.
7562 ("*movv16qi_internal1"): Same.
7563 ("*movv4sf_internal1"): Same.
dcea1976 7564
7c25cb91 75652002-04-22 Janis Johnson <janis187@us.ibm.com>
7566
7567 * rtl.h (RTX_FLAG): New macro.
7568 * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags.
7569 * final.c (alter_subreg): Use macro to access rtx flag.
7570 * integrate.c (copy_rtx_and_substitute): Use new access macro.
7571 * print-rtl.c (print_rtx): Use new access macro.
7572
7573 * cse.c (insert): Check rtx code before accessing flag.
7574
7575 * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P,
7576 ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New.
7577 (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test,
7578 convert_const_symbol_ref, make_canonical, make_alternative_compare,
7579 evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp,
7580 simplify_test_exp, optimize_attrs, simplify_by_exploding,
7581 find_and_mark_used_attributes, unmark_used_attributes,
7582 add_values_to_cover, simplify_with_current_value,
7583 simplify_with_current_value_aux, clear_struct_flag, walk_attr_value,
7584 copy_rtx_unchanging, main): Use new access macros.
7585
1f31d3a6 75862002-04-22 Tom Rix <trix@redhat.com>
7587
7588 * expmed.c (init_expmed): Generate shifted constant once.
7589
c2527f80 75902002-04-22 Zack Weinberg <zack@codesourcery.com>
7591
7592 * c-lex.c (lex_charconst): Call convert to get constant in
7593 proper type; don't just smash the type field.
7594 Fixes PR c/6300.
7595
7596 * config.gcc: Add list of obsolete configurations. Disallow
7597 building these without --enable-obsolete.
7598 * doc/install.texi: Document --enable-obsolete and obsoletion
7599 policy. Mention obsoletion of individual targets in
7600 appropriate places.
7601
27cd3daa 76022002-04-22 Richard Henderson <rth@redhat.com>
7603
7604 * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New.
7605
76062002-04-22 Mark Mitchell <mark@codesourcery.com>
dcdb0eed 7607
7608 PR f/6138.
7609 * function.c (fixup_memory_subreg): Add promoted_mode parameter.
7610 (walk_fixup_memory_subreg): Likewise.
7611 (fixup_var_refs_insn): Adjust accordingly.
7612 (fixup_var_refs_1): Likewise.
7613
2dd48db5 76142002-04-22 Ulrich Weigand <uweigand@de.ibm.com>
7615
7616 * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC,
7617 LIBPATH_ARCH64_SPEC): Define.
7618 (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64.
7619 (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath.
7620 (LINK_ARCH31_SPEC): Add libpath_arch31 to search path.
7621 (LINK_ARCH64_SPEC): Add libpath_arch64 to search path.
7622
98b0c990 76232002-04-22 Joel Sherrill <joel@OARcorp.com>
7624
7625 * gthr-rtems.h: Correct prototypes to remove warnings.
7626
d7b592b0 76272002-04-22 Richard Henderson <rth@redhat.com>
7628
7629 PR c/6344
7630 * alias.c (canon_true_dependence): Special case (mem:blk (scratch)).
7631
7632 * gcse.c (free_insn_expr_list_list): New.
7633 (clear_modify_mem_tables): Use it. Fix bit set usage.
7634 (canon_list_insert): Use EXPR_LISTs for expressions.
7635 (record_last_mem_set_info): Factor BLOCK_NUM (insn).
7636
02516fb9 76372002-04-22 Neil Booth <neil@daikokuya.demon.co.uk>
7638
7639 * cppfiles.c (_cpp_pop_file_buffer): Return void. Move
7640 file change and include code to _cpp_pop_buffer.
7641 * cpphash.h (struct pending_option): Predeclare.
7642 (struct cpp_reader): New member next_include_file.
7643 (_cpp_pop_file_buffer): Update.
7644 (_cpp_push_next_buffer): Update, rename.
7645 * cppinit.c (cpp_destroy): Free include chain and pending here.
7646 (cpp_finish_options): Simplify.
7647 (_cpp_push_next_buffer): Rename and clean up.
7648 * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer.
7649 Clarify.
7650 * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here.
7651
f5a309ff 76522002-04-22 Aldy Hernandez <aldyh@redhat.com>
7653
d7b592b0 7654 * config/rs6000/altivec.h (vec_xor): Add variant for both args
7655 being vector signed int.
7656 (vec_andc): Same.
7657 (vec_xor): Add variant for both args being vector signed char.
7658 Remove redundant variant.
7659 (vec_andc): Same.
f5a309ff 7660
1c7ebefd 76612002-04-21 David S. Miller <davem@redhat.com>
7662
7663 * config/sparc/sparc.md (set then compare DI mode peephole2): Fix
7664 compare mode in output RTL.
7665
dcc77132 76662002-04-22 David Edelsohn <edelsohn@gnu.org>
7667
7668 * config/rs6000/rs6000.c (rs6000_override_options): Correct
7669 style and formatting of previous patch.
7670
6205aa68 76712002-04-22 Alan Modra <amodra@bigpond.net.au>
7672
7673 * config/rs6000/rs6000.c (rs6000_override_options): Always clear
7674 flag_pic for ABI_AIX.
7675
b6d18b0a 76762002-04-21 Neil Booth <neil@daikokuya.demon.co.uk>
7677
7678 * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar.
7679 * cppfiles.c (read_include_file): Similarly.
7680 * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen,
7681 uxstrdup ustrchr, ufputs): Similarly.
7682 * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly.
7683 * cpplex.c (parse_slow, unescaped_terminator_p, save_comment,
7684 cpp_ideq, parse_identifier, parse_number): Similarly.
7685 * cpplib.c (struct directive, dequote_string, D, run_directive,
7686 cpp_push_buffer): Similarly.
7687 * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string,
7688 _cpp_create_definition, check_trad_stringification,
7689 cpp_macro_definition): Similarly.
7690
7e2fc40e 76912002-04-21 Neil Booth <neil@daikokuya.demon.co.uk>
7692
7693 * cppmacro.c (funlike_invocation_p): Don't step back
7694 over CPP_EOF.
7695
02c2c577 76962002-04-21 David Edelsohn <edelsohn@gnu.org>
7697
7698 * config/rs6000/rs6000.c (output_profile_hook): Do not increment
7699 labelno.
7700
16cf5b3d 77012002-04-20 Joseph S. Myers <jsm28@cam.ac.uk>
7702
7703 * doc/invoke.texi: Remove Chill references.
7704 * doc/gcc.texi: Update last modified date.
7705
a37ad228 77062002-04-20 Kazu Hirata <kazu@hxi.com>
7707
7708 * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary
7709 push and pop. Replace add.l with add.w.
7710
ca92c69c 77112002-04-20 Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
7712
7713 * config/h8300/lib1funcs.asm (___mulsi3): Use hardware
7714 multiply instructions for H8/300H case.
7715
1b19d1e8 77162002-04-20 Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
7717
7718 * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2):
7719 Bum three instructions from each routine.
7720
c80c4f22 77212002-04-20 Neil Booth <neil@daikokuya.demon.co.uk>
7722
7723 * Makefile.in: Update.
7724 * decl.c (push_c_function_context, pop_c_function_context,
7725 mark_c_function_context): Rename for consistency.
7726 * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere.
7727 * c-tree.h (push_c_function_context, pop_c_function_context,
7728 mark_c_function_context): Rename for consistency.
7729 * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7730 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
7731 * function.c (init_lang_status, save_lang_status,
7732 restore_lang_status, mark_lang_status, free_lang_status):
7733 Move to langhooks.h.
7734 (push_function_context_to, pop_function_context_from,
7735 free_after_parsing, prepare_function_start, ggc_mark_struct_function):
7736 Update.
7737 * function.h (init_lang_status, save_lang_status,
7738 restore_lang_status, mark_lang_status, free_lang_status):
7739 Move to langhooks.h.
7740 * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT,
7741 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED,
7742 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK,
7743 LANG_HOOKS_FUNCTION_INITIALIZER): New.
7744 (LANG_HOOKS_INITIALIZER): Update.
7745 (lhd_do_nothing_f): New.
7746 * langhooks.h (struct lang_hooks_for_functions): New.
7747 (struct lang_hooks): New hooks.
7748 * langhooks.c (lhd_do_nothing_f): New.
7749objc:
7750 * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED,
7751 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine.
7752
694a2388 77532002-04-19 David S. Miller <davem@redhat.com>
7754
7755 * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define.
7756 * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise.
7757
a559788c 77582002-04-19 Jakub Jelinek <jakub@redhat.com>
7759
7760 PR optimization/3756
7761 * config/i386/i386.c (ix86_expand_int_movcc): Optimize
7762 x = ((int) y < 0) ? cst1 : cst2.
7763
8839b7f1 77642002-04-19 Jakub Jelinek <jakub@redhat.com>
7765
7766 PR c/6358
7767 * function.c: Reapply patch for c/6358.
7768 (expand_function_end): Copy decl_rtl's mode, not
7769 current_function_return_rtx mode.
7770
77712002-04-19 Joel Sherrill <joel@OARcorp.com>
d08a20ae 7772
7773 * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF
7774 targets.
7775
e70cfab5 77762002-04-19 Tom Tromey <tromey@redhat.com>
7777
7778 * doc/install.texi (Specific): Update status of Solaris 2.8.
7779 For PR libgcj/6158.
7780
04621255 77812002-04-19 Andreas Schwab <schwab@suse.de>
7782
7783 * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE.
7784 (PUT_REAL): Restore old definition.
7785
0b98ad8c 77862002-04-19 Dan Nicolaescu <dann@godzilla.ics.uci.edu>
7787 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7788
7789 * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that
7790 binutils 2.11.2 and higher generate smaller binaries than Sun's
7791 native tools.
7792
3d54653f 77932002-04-19 Mark Mitchell <mark@codesourcery.com>
7794
7795 PR c++/6352
7796 * toplev.c (rest_of_compilation): Do not defer functions for which
7797 TREE_SYMBOL_REFERENCED has already been set.
7798
d7d85b75 7799Fri Apr 19 15:53:03 CEST 2002 Jan Hubicka <jh@suse.cz>
7800
7801 * i386.md (movsi_1, movhi_1): Force reload to use more flexible
7802 alternative.
7803
63c62881 78042002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
7805
7806 * builtins.c: Include langhooks.h.
7807 (lang_type_promotes_to): Remove.
7808 (expand_builtin_va_arg): Use new hook.
7809 * c-common.c (c_common_nodes_and_builtins): Don't set hook.
7810 (simple_type_promotes_to): Move to c-typeck.c.
7811 * c-common.h (simple_type_promotes_to): Remove.
7812 * c-decl.c (duplicate_decls, grokdeclarator): Update.
7813 * c-format.c: Include langhooks.h.
7814 (check_format_types): Update.
7815 * c-tree.h (c_type_promotes_to): New.
7816 * c-typeck.c (c_type_promotes_to): Move from c-common.c.
7817 (type_lists_compatible_p): Update.
7818 * langhooks-def.h (lhd_type_promotes_to): New.
7819 (LANG_HOOKS_TYPE_PROMOTES_TO): New.
7820 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
7821 * langhooks.c (lhd_type_promotes_to): New.
7822 * langhooks.h (struct lang_hooks_for_types): New hook.
7823 * tree.h (lang_type_promotes_to): Remove.
7824objc:
7825 * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
7826
5410141b 78272002-04-18 Richard Henderson <rth@redhat.com>
7828
7b185825 7829 * function.c: Revert patch for c/6358.
5410141b 7830
78312002-04-18 Richard Henderson <rth@redhat.com>
7832
7b185825 7833 * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN
7834 blocks. Handle multiple references to the TRAP block. Handle
7835 non-adjacent THEN and OTHER blocks.
5410141b 7836
7b185825 78372002-04-18 Richard Henderson <rth@redhat.com>
7838
7839 * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't
7840 crash with no type for by-mode libcalls.
7841
7842 * config/ia64/ia64.md (conditional_trap): Fix predicate polarity.
5410141b 7843
e17ee7e6 78442002-04-18 Bob Wilson <bob.wilson@acm.org>
7845
7846 * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
7847 __xtensa_nonlocal_goto): Use a syscall instructions to flush
7848 the register windows.
7849
71a524be 78502002-04-18 Zack Weinberg <zack@codesourcery.com>
7851
7852 * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as
7853 appropriate. Document need for extended precision even when
7854 MAX_LONG_DOUBLE_TYPE_SIZE is smaller. Define REAL_WIDTH here,
7855 based on REAL_VALUE_TYPE_SIZE. Use REAL_WIDTH to size
7856 REAL_VALUE_TYPE. Define CONST_DOUBLE_FORMAT here. Use #error
7857 instead of relying on later syntax error when REAL_WIDTH > 5.
7858 * real.c: Define NE based only on whether or not we have a
7859 full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT).
7860 Require sizeof(REAL_VALUE_TYPE) == 2*NE. Unconditionally
7861 define GET_REAL and PUT_REAL as simple memcpy operations; no
7862 need to byteswap or round.
7863 Use #error instead of #ifdef-ing out the entire file, for
7864 prompt error detection.
7865
7866 * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here.
7867
d4f13d24 78682002-04-18 David S. Miller <davem@redhat.com>
7869
7870 * config/sparc/sparc.h (BRANCH_COST): Define.
7871
7872 * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
7873 does it.
7874
4ed2a48b 78752002-04-18 Hans-Peter Nilsson <hp@bitrange.com>
7876
7877 * flow.c (update_life_info): Ignore return value of cleanup_cfg.
7878 Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in
7879 propagate_block calls after relaxation loop using new variable
7880 stabilized_prop_flags.
7881
468c465f 78822002-04-18 Richard Henderson <rth@redhat.com>
7883
7884 * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New.
7885 (ia64_va_arg): Expect variable sized types by reference.
7886 * config/ia64/ia64-protos.h: Update.
71a524be 7887 * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use
468c465f 7888 ia64_function_arg_pass_by_reference.
7889
0b126525 78902002-04-18 Richard Henderson <rth@redhat.com>
7891
71a524be 7892 * ifcvt.c: Include except.h.
7893 (block_has_only_trap): Break out from find_cond_trap.
7894 (find_cond_trap): Use it. Always delete the trap block.
7895 (merge_if_block): Allow then block null. Be less simplistic about
7896 what insns can end a block.
7897 * Makefile.in (ifcvt.o): Depend on except.h.
fe70d0e3 7898
0b126525 7899 * config/ia64/ia64.md (trap, conditional_trap): New.
7900
3bfb563a 79012002-04-18 Jakub Jelinek <jakub@redhat.com>
7902
7903 PR c/6358
7904 * function.c (assign_parms): Assign hard current_function_return_rtx
7905 register here...
7906 (expand_function_end): ...not here.
7907
1dd25100 79082002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
7909
7910 * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
7911 * c-tree.h (c_incomplete_type_error): New.
7912 * c-typeck.c (require_complete_type, build_component_ref): Update.
7913 (incomplete_type_error): Rename.
7914 * langhooks-def.h (lhd_incomplete_type_error): New.
7915 (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New.
7916 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
7917 * langhooks.c (lhd_incomplete_type_error): New.
7918 * langhooks.h (struct lang_hooks_for_types): New hook.
7919 * tree.c (size_in_bytes): Use new hook.
7920 * tree.h (incomplete_type_error): Remove.
7921objc:
7922 * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
7923
1b2c7c71 79242002-04-18 Zack Weinberg <zack@codesourcery.com>
7925
7926 * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT !=
7927 TARGET_FLOAT_FORMAT blocks.
7928
25a08c38 79292002-04-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7930
7931 * doc/install.texi (Downloading the source): Do not mention Chill
7932 any longer, but mention Ada.
7933 (Configuration): Do not mention Chill any longer.
7934
5977cfc6 79352002-04-18 Hans-Peter Nilsson <hp@axis.com>
7936
7937 * config/cris/cris.h (TARGET_VERSION): Remove local version number.
7938
780f86b7 7939Thu Apr 18 17:14:08 CEST 2002 Jan Hubicka <jh@suse.cz>
7940
7941 * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution
7942 in last patch.
7943
6a7078b0 79442002-04-18 Jakub Jelinek <jakub@redhat.com>
7945
7946 * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type)
7947 instead of unsigned_type.
7948
b48f6143 7949Thu Apr 18 15:49:12 CEST 2002 Jan Hubicka <jh@suse.cz>
7950
7951 * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check.
7952 * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped
7953 later.
7954
2505aad4 79552002-04-18 Bernd Schmidt <bernds@redhat.com>
7956
7957 * attribs.c (vector_type_node_list): New static variable.
7958 (handle_vector_size_attribute): Use it to avoid generating a
7959 new type node each time we are called.
7960
ba06212f 7961 * combine.c (subst): Avoid trying to make a vector mode subreg of
7962 an integer constant.
7963 (gen_lowpart_for_combine): Likewise.
71a524be 7964
4c342eac 79652002-04-18 Roger Sayle <roger@eyesopen.com>
7966 Jakub Jelinek <jakub@redhat.com>
7967
7968 * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c)
7969 for integer constant c (if x has unsigned type or sign bit is not
7970 set in c). This folds the zero/sign extension into the bit-wise and
7971 operation.
7972
1adabeec 79732002-04-18 Jakub Jelinek <jakub@redhat.com>
7974
7975 PR middle-end/6205
7976 * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2,
7977 otherwise xorps.
7978
a0c3b6d9 79792002-04-17 NIIBE Yutaka <gniibe@m17n.org>
7980
7981 * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL.
7982
1686d9b4 79832002-04-17 Nick Clifton <nickc@cambridge.redhat.com>
7984
7985 * gcc.c (read_specs): Detect and fail if an attempt is made to
7986 rename a spec string to an already existing string.
7987
800949fb 79882002-04-17 Ulrich Weigand <uweigand@de.ibm.com>
7989
7990 * config/s390/s390.c (legitimize_pic_address): Do not generate
7991 illegal address constant without CONST.
7992
a0a7d900 79932002-04-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7994
7995 * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64.
7996 * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
7997
c10847b9 79982002-04-17 Ulrich Weigand <uweigand@de.ibm.com>
7999
8000 PR optimization/6305
8001 * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement
8002 to make sure previous reloads are taken into account. Generate
8003 better code if one operand is an in-range immediate constant.
8004
b84b037b 80052002-04-16 Andrew Haley <aph@cambridge.redhat.com>
8006
8007 * doc/install.texi (Building): libgcj requires GNU make.
8008
fbeafc33 80092002-04-17 Jakub Jelinek <jakub@redhat.com>
8010
8011 PR bootstrap/6315
8012 * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting
8013 even if hard quad and register is not floating.
8014 (movtf reg<-mem split): Disallow splitting if hard quad and
8015 register is floating.
8016 (movtf mem<-reg split): Likewise.
8017 * config/sparc/sparc.c (fp_register_operand): New predicate.
8018 * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand.
8019
931c9c00 80202002-04-17 Zack Weinberg <zack@codesourcery.com>
8021
8022 * Makefile.in (PROTO_OBJS): Add cppdefault.o.
8023 (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line.
8024 (unprotoize.o): Ditto. Build from protoize.c. Define
8025 UNPROTOIZE on command line.
8026 * protoize.c: Include cppdefault.h. Delete include_defaults.
8027 (in_system_include_dir): Use cpp_include_defaults (defined in
8028 cppdefault.o).
8029 * unprotoize.c: Delete file.
8030
79fdb20a 80312002-04-17 Aldy Hernandez <aldyh@redhat.com>
8032
71a524be 8033 * config/rs6000/altivec.h (vec_ld): Add array variants.
8034 (vec_lde): Same.
8035 (vec_ldl): Same.
79fdb20a 8036
ee736e8c 80372002-04-17 Alan Matsuoka <alanm@redhat.com>
71a524be 8038 Aldy Hernandez <aldyh@redhat.com>
ee736e8c 8039
71a524be 8040 * config/rs6000/altivec.h: Define __ALTIVEC__.
8041 (bool): New.
8042 (__pixel): New.
8043 (pixel): New.
8044 (vec_cfux): New.
8045 (vec_vmaddfp): New.
8046 (vec_vsldoi): New.
8047 Add parentheses to all macro arguments.
ee736e8c 8048
cd7e4c20 80492002-04-16 Richard Henderson <rth@redhat.com>
8050
8051 PR c++/6320
8052 * except.c (remove_eh_handler): Insert inner regions at beginning
8053 of sibling chain. Refactor expressions.
8054
547381c0 80552002-04-16 Richard Henderson <rth@redhat.com>
8056
b25d9808 8057 * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New.
8058 * config/sparc/sol2-gas-bi.h: New file.
8059 * config.gcc (sparc*-solaris): Add it as needed.
8060 * configure.in (AS_SPARC64_FLAG): Remove check.
8061 * config.in, configure: Regenerate.
8062
8063 * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64.
8064
80652002-04-16 Richard Henderson <rth@redhat.com>
8066
8067 * config/mips/mips.c (override_options): Don't override N32 for
8068 a 64-bit ISA.
b6e62914 8069
547381c0 8070 PR 6202
8071 * config/mips/mips.md (can_delay): Split out of existing define_delays.
8072 (HILO_delay): Set can_delay false.
8073
9f781781 80742002-04-16 Dale Johannesen <dalej@apple.com>
8075
8076 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
8077 instruction addresses.
8078 (rs6000_output_function_epilogue): Likewise.
8079
f69ec2f4 80802002-04-16 Paolo Carlini <pcarlini@unitus.it>
8081
8082 * c-parse.in (poplevel, compstmt_start,
8083 compstmt_primary_start): Add ending ';', in accordance
8084 with POSIX.
8085
8ed09732 80862002-04-16 Richard Henderson <rth@redhat.com>
8087
8088 * config.gcc (sparcv9-solaris): Configure for 64-bit default.
8089 Adjust tm_file order to get TARGET_DEFAULT set properly.
8090 (sparc-solaris): Configure 2.[78] for 64-bit multilibs.
8091 * doc/install.texi (sparc-solaris): Update.
8092
3d0385fb 80932002-04-16 Dale Johannesen <dalej@apple.com>
8094
8095 * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of
8096 comparison operands do not match each other or if modes of
8097 conditions do not match result.
8098
ee85965c 80992002-04-16 Hartmut Penner <hpenner@de.ibm.com>
ffa5c9bc 8100
ee85965c 8101 PR target/6305
8102 * config/s390/s390.md (mulsidi3): Set both subregs of the
71a524be 8103 multiword register.
ffa5c9bc 8104
ee85965c 81052002-04-16 Aldy Hernandez <aldyh@redhat.com>
e93986bb 8106
8ed09732 8107 * config/rs6000/altivec.h (vec_addc): Type check.
e93986bb 8108
6db2b7ab 81092002-04-16 Jakub Jelinek <jakub@redhat.com>
8110
8111 PR middle-end/6279
8112 * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
8113
8114 * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
8115
4d93ed30 81162002-04-15 Richard Henderson <rth@redhat.com>
8117
8118 * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
8119 call_really_used_regs too.
8120
35815f41 81212002-04-15 Richard Henderson <rth@redhat.com>
8122
8123 * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
8124
9a3d0fc8 81252002-04-15 David S. Miller <davem@redhat.com>
8126
8127 * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
8128 as being CLOBBERed.
8129
0ccb2687 81302002-04-16 Jakub Jelinek <jakub@redhat.com>
8131
8132 PR c/6290
8133 * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
8134 CONST_VECTOR is { 0, ... 0 }.
8135
448ee58a 81362002-04-15 Loren J. Rittle <ljrittle@acm.org>
8137
8138 * doc/install.texi (Installing GCC: Configuration): Clarify
8139 the only supported ways to configure gcc.
8140
7698a084 81412002-04-15 Roland McGrath <roland@frob.com>
71a524be 8142
7698a084 8143 * config.gcc (alpha*-*-gnu*): New target configuration.
8144 * config/alpha/gnu.h: New file for it.
8145 * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
8146
7e83d989 81472002-04-16 Mark Mitchell <mark@codesourcery.com>
8148
8149 * c-common.h (STMT_EXPR_NO_SCOPE): New macro.
8150 * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE.
8151 * tree.h (expand_start_stmt_expr): Update prototype.
8152 * stmt.c (expand_start_stmt_expr): Add has_scope parameter.
8153 * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE
8154 on the STMT_EXPR created for the inline function.
71a524be 8155
407f0434 81562002-04-15 Richard Henderson <rth@redhat.com>
8157
8158 * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
8159 config/i386/linux-aout.h, config/i386/linux-oldld.h,
8160 config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
8161 config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
8162 config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
8163 config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
8164 config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
8165 Define __gnu_linux__, not gnu_linux.
8166 * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
8167
5e311636 81682002-04-15 Mark Mitchell <mark@codesourcery.com>
8169
8170 Remove Chill front end.
8171 * gcc.c (default_compilers): Remove Chill entries.
8172 * ch: Remove directory.
8173 * doc/frontends.texi: Remove information about Chill.
8174 * doc/sourcebuild.texi: Likewise.
8175 * doc/standards.texi: Likewise.
8176
5b7ad4b3 81772002-04-15 Douglas B Rupp <rupp@gnat.com>
8178
8179 * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
8180 (LONGLONG_STANDALONE): Define.
8181
61f83895 81822002-04-15 David S. Miller <davem@redhat.com>
8183
8184 * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
8185 Call emit_library_call with LCT_NORMAL.
8186 (sparc_initialize_trampoline): Use LCT_foo instead of
8187 magic constant in emit_library_call invocations.
8188 (sparc64_initialize_trampoline): Likewise.
8189 (sparc_profile_hook): Likewise.
8190 * config/sparc/sparc.md: Likewise.
8191
8192 * config/sparc/sparc.c (sparc_extra_constraint_check):
8193 Fix type of argument 'c'.
8194 * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
8195 Likewise.
8196
06c7407c 81972002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
8198
8199 * diagnostic.h (output_buffer_state): Redefine.
8200 (output_format_decoder): New macro.
8201 (output_prefixing_rule): Likewise.
8202 (output_line_cutoff): Likewise.
8203 (diagnostic_format_decoder): Adjust.
8204 (diagnostic_prefixing_rule): Likewise.
8205 (diagnostic_line_cutoff): Likewise.
8206 (diagnostic_state): Likewise.
8207 (diagnostic_kind_count): Likewise.
8208 (diagnostic_buffer): Now a macro.
8209
8210 * diagnostic.c (diagnostic_buffer): Remove definition.
8211 (output_is_line_wrapping): Adjust.
8212 (set_real_maximum_length): Likewise.
8213 (output_set_maximum_length): Likewise.
8214 (init_output_buffer): Likewise.
8215 (lhd_print_error_function): Likewise.
8216 (output_do_verbatim): Likewise.
8217
73328dce 82182002-04-14 Neil Booth <neil@daikokuya.demon.co.uk>
8219
8220 * cpperror.c (print_location): Don't print include chain
8221 if line == 0.
8222 (cpp_begin_message): Update to use DL_ macros.
8223 (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
8224 cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
8225 cpp_notice, cpp_notice_from_errno): Remove.
8226 (cpp_error, cpp_error_with_line): Update to take a diagnostic
8227 level.
8228 (cpp_errno): New.
8229 * cppexp.c (CPP_ICE): Remove.
8230 (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
8231 lex, integer_overflow, _cpp_parse_expr): Update.
8232 * cppfiles.c (read_include_file, find_include_file,
8233 handle_missing_header, _cpp_read_file, remap_filename): Update.
8234 * cpphash.h (enum error_type): Remove.
8235 (_cpp_begin_message): Update.
8236 * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
8237 cpp_handle_option, cpp_post_options): Update.
8238 * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
8239 skip_whitespace, parse_identifier, parse_slow, parse_string,
8240 _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
8241 cpp_interpret_charconst): Update.
8242 * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
8243 lex_macro_node, do_undef, glue_header_name, parse_include,
8244 do_include_common, read_flag, do_line, do_linemarker, do_ident,
8245 cpp_register_pragma, do_pragma_once, do_pragma_system_header,
8246 do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
8247 do_elif, do_endif, parse_answer, parse_assertion, do_assert,
8248 _cpp_pop_buffer, do_diagnostic): Update.
8249 * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
8250 DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
8251 (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
8252 cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
8253 cpp_notice, cpp_notice_from_errno): Remove.
8254 (cpp_error, cpp_error_with_line): Update to take a diagnostic
8255 level.
8256 (cpp_errno): New.
8257 * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
8258 collect_args, enter_macro_context, save_parameter, parse_params,
8259 _cpp_create_definition, check_trad_stringification,
8260 cpp_macro_definition): Update.
8261 * cppmain.c (cpp_preprocess_file): Update.
8262 * fix-header.c (read_scan_file): Update.
8263
b11856ef 82642002-04-14 Andreas Schwab <schwab@suse.de>
8265
8266 * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
8267
ad8eb5c5 82682002-04-14 Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
8269
8270 * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
8271
1d1deae5 82722002-04-13 Mark Mitchell <mark@codesourcery.com>
8273
8274 * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
8275 not gnu_hurd.
8276
bab60030 82772002-04-13 Hans-Peter Nilsson <hp@axis.com>
8278
8279 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
8280
d3fedea9 82812002-04-13 Joel Sherrill <joel@OARcorp.com>
8282
8283 * config/sparc/t-elf: Enable v8 multilibs. Impacts
8284 sparc-elf and sparc-rtems targets.
8285
99e04ac4 82862002-04-13 Mark Mitchell <mark@codesourcery.com>
8287
8288 * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
8289 defined, and __gnu_hurd__ wherever __GNU__ is defined.
8290 * arm/linux-elf.h: Likewise.
8291 * cris/aout.h: Likewise.
8292 * cris/linux.h: Likewise.
8293 * i370/linux.h: Likewise.
8294 * i386/gnu.h: Likewise.
8295 * i386/linux-aout.h: Likewise.
8296 * i386/linux-oldld.h: Likewise.
8297 * i386/linux.h: Likewise.
8298 * i386/linux64.h: Likewise.
8299 * ia64/linux.h: Likewise.
8300 * m68k/linux-aout.h: Likewise.
8301 * m68k/linux.h: Likewise.
8302 * mips/linux.h: Likewise.
8303 * pa/pa-linux.h: Likewise.
8304 * pj/linux.h: Likewise.
8305 * rs6000/sysv4.h: Likewise.
8306 * s390/linux.h: Likewise.
8307 * sh/linux.h: Likewise.
8308 * sparc/linux-aout.h: Likewise.
8309 * sparc/linux.h: Likewise.
8310 * sparc/linux64.h: Likewise.
8311 * xtensa/linux.h: Likewise.
8312
e3189f72 83132002-04-13 Richard Sandiford <rsandifo@redhat.com>
8314
8315 * stmt.c (check_unique_operand_names): Expect operand names to
8316 be strings rather than identifiers. Use simple_cst_equal to
8317 compare them.
8318 (resolve_operand_name_1): Make same identifier to string change here.
8319 * c-parse.in (asm_operand): Convert a named operand into a string.
8320 * cp/parse.y (asm_operand): Likewise.
8321
8b0eba67 83222002-04-13 Andreas Schwab <schwab@suse.de>
8323
8324 * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
8325
b3609646 83262002-04-12 Mark Mitchell <mark@codesourcery.com>
8327
8328 Revert these changes:
8329
8330 2002-04-06 Mark Mitchell <mark@codesourcery.com>
8331
8332 PR c++/5571
8333 * stor-layout.c (layout_decl): Reset the RTL for the decl.
8334
d5a614bc 83352002-04-12 Richard Henderson <rth@redhat.com>
8336
8337 * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
8338 (sparc*-*-solaris): Clean up header files.
8339 * configure.in (AS_SPARC64_FLAG): Error out if can't find it
8340 and plan on generating 64-bit code.
8341 * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
8342 * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
8343 * config/sparc/sol2-sld-64.h: Rename ...
8344 * config/sparc/sol2-bi.h: ... here. Remove the bits that checked
8345 for AS_SPARC64_FLAG not defined.
8346 * config/sparc/sol2-gld-bi.h: New.
8347 * config/sparc/sol2-sld.h: Remove.
8348 * config/sparc/sol26-sld.h: New.
8349 * config/sparc/sol2.h: Tidy comments.
8350 * doc/install.texi: Document sparc-solaris configury changes.
8351
03035422 83522002-04-12 Richard Henderson <rth@redhat.com>
8353
8354 * recog.c (offsettable_address_p): Match the logic in adjust_address.
8355
8356 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
8357 in 64-bit mode only. Use only for 32-bit or MEDLOW.
8358
f700d497 83592002-04-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
8360
8361 * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
8362
bf9fd117 8363Fri Apr 12 15:42:59 2002 Jeffrey A Law (law@redhat.com)
8364
a943e059 8365 * pa.c (pa_can_combine_p): Call extract_insn before calling
bf9fd117 8366 constrain_operands.
8367
f4518eb4 83682002-04-12 Douglas B Rupp <rupp@gnat.com>
8369
8370 * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
8371 (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
8372 (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
4eba9e43 8373 (CPP_PREDEFINES): Handle __declspec.
f4518eb4 8374 * config/i386/t-interix (USER_H): Remove.
8375
bc641a6c 83762002-04-12 DJ Delorie <dj@redhat.com>
8377
8378 * integrate.c (compare_blocks): Make comparisons safe for when
8379 sizeof(int) < sizeof(char *).
8380 (find_block): Likewise.
8381
2c290e47 83822002-04-12 Jan Hubicka <jh@suse.cz>
8383 David Edelsohn <edelsohn@gnu.org>
8384
8385 * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
8386 registers.
8387 (symbol_ref_operand): New.
8388 * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
8389 * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
8390
f287f030 83912002-04-12 Andreas Schwab <schwab@suse.de>
8392
8393 * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
8394 * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
8395 overrides the definition in config/svr4.h.
71a524be 8396
fbeb7d1a 83972002-04-12 Eric Norum <eric.norum@usask.ca>
8398
8399 * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
8400 config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
8401 config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
8402 config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
8403 config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
8404 config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
8405 config/v850/rtems.h (*-rtems*): Cleanup pass to move common
8406 definitions to config/rtems.h and make the targets more similar.
8407
22ee087b 8408Fri Apr 12 08:06:54 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8409
4a836698 8410 * expr.c (expand_assigment): Remove duplicate conversions #ifdef
8411 POINTERS_EXTEND_UNSIGNED.
8412 (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
8413 (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
8414
22ee087b 8415 * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
8416 not specified.
8417
4a1a3f67 8418Fri Apr 12 12:11:26 2002 J"orn Rennecke <joern.rennecke@superh.com>
8419
8420 * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
8421 depends on TARGET_SHMEDIA, not TARGET_SH5.
8422
42299343 84232002-04-12 Hans-Peter Nilsson <hp@bitrange.com>
8424
8425 * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
8426 For paradoxical (subreg VAR), replace VAR, don't try the subreg.
8427
4ea39690 8428Fri Apr 12 10:51:38 2002 J"orn Rennecke <joern.rennecke@superh.com>
8429
8430 * sh.c (broken_move): Constant 0. / 1. load is OK if there is
8431 no r0 clobber.
8432
be6c399c 84332002-04-12 Andreas Schwab <schwab@suse.de>
8434
8435 * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
8436
f3cb52fc 84372002-04-12 Richard Henderson <rth@redhat.com>
8438
8439 PR bootstrap/4191
8440 * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
8441
8442 * flow.c (mark_used_reg): Manage reg_cond_dead properly for
8443 modes spanning multiple hard regs.
71a524be 8444
f3cb52fc 8445 * recog.c (peephole2_optimize): Rebuild jump labels as needed.
8446
b70ea764 84472002-04-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
8448
8449 * pa.c (pa_output_function_prologue): Don't accumulate the total
8450 number of code bytes when using TARGET_64BIT, or gas, SOM and not
8451 the portable runtime.
8452 (output_deferred_plabels): Handle 64bit plabels.
8453 (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
8454 generating pic code using the GAS assembler for object formats that
8455 are not SOM (ie., ELF32 and ELF64).
8456 (output_millicode_call): Check attribute type if attribute length is 28.
8457 Likewise use $PIC_pcrel$0. Only call get_attr_length and
8458 dbr_sequence_length once.
8459 (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
8460 dbr_sequence_length once.
8461 * pa.h (TARGET_SOM): Define if not defined.
8462 * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
8463 with GAS and not SOM.
8464 (jump, call_internal_reg, call_value_internal_reg): Likewise.
8465 * som.h (OBJ_SOM): Rename to TARGET_SOM. Undefine before defining.
8466
5c50685b 84672002-04-11 David O'Brien <obrien@FreeBSD.org>
8468
8469 * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
8470 (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
8471 (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
8472 DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
8473 elfos.h and dbxelf.h values are fine now.
8474 * config/i386/freebsd.h, config/alpha/freebsd.h
8475 (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
8476
463e830e 84772002-04-11 David O'Brien <obrien@FreeBSD.org>
8478
8479 * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
8480 or set Acpu or Amachine. Reformat.
8481 (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8482 define.
8483 (LINK_SPEC): Do not need to undef.
8484 * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
8485 * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
8486 (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8487 define.
8488 * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
8489 (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
8490 (LINK_SPEC): Do not need to undef.
8491 (DONT_USE_BUILTIN_SETJMP): Do not define.
8492 * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
8493 (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine. Remove -Dia64.
8494 (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
8495 Remove trailing spaces.
8496 * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
8497 __ELF__, or set Acpu or Amachine. Reformat.
8498 (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
8499 define.
8500
0670e09b 85012002-04-11 David O'Brien <obrien@FreeBSD.org>
8502
8503 * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
8504 all other *-*-freebsd* targets.
8505
2640e80a 85062002-04-11 Richard Henderson <rth@redhat.com>
8507
8508 * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
8509
f75effa0 85102002-04-11 David O'Brien <obrien@FreeBSD.org>
8511
8512 * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
8513 Include {cpu}/{cpu}.h thru tm_file.
8514 (alpha*-*-linux*ecoff): Remove target.
8515 * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
8516 (LINK_SPEC): Remove, is not OS independent.
8517 * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
8518 (LINK_SPEC): Do not need to #undef any longer.
8519 * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
8520 any longer.
8521 * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
8522 __ELF__.
8523 (LINK_SPEC): Moved here from alpha/elf.h.
8524 * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
8525 SUB_CPP_PREDEFINES.
8526 * config/alpha/linux-ecoff.h: Remove.
8527 * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
8528 (CPP_SPEC): Define _POSIX_SOURCE as needed.
8529 (CPP_SUBTARGET_SPEC): Do not define.
8530 (LINK_SPEC): Do not need to #undef any longer.
8531 * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
8532 * config/alpha/vms.h: Likewise.
8533
f3cb52fc 85342002-04-11 Richard Sandiford <rsandifo@redhat.com>
34ce6f4d 8535
8536 * doc/extend.texi: Remove old claim that typedefs cannot have
8537 an alignment attribute.
8538
963043a6 85392002-04-11 Jakub Jelinek <jakub@redhat.com>
8540
8541 PR optimization/6177
8542 * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
8543 bitpos is 0 and bitsize CONCAT size.
8544
886bca0a 85452002-04-11 Jakub Jelinek <jakub@redhat.com>
8546
8547 PR c/6223
8548 * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
8549
931d8bb3 85502002-04-10 David O'Brien <obrien@FreeBSD.org>
8551
8552 * config/alpha/freebsd.h: Minor reformatting.
8553 (CPP_SPEC): Define ELF and add cpp_subtarget.
8554 (ASM_SPEC): No longer needed.
8555
5fd280eb 85562002-04-11 Richard Henderson <rth@redhat.com>
8557
8558 * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
8559 (movdi_insn_sp32_v9): Likewise. Only allow stx with aligned memory.
8560 (dimode mem/zero splitter): New.
8561
0fb176ea 85622002-04-11 Hans-Peter Nilsson <hp@axis.com>
8563
8564 * config/cris/cris.c (cris_override_options): Tweak error message
8565 for PIC not implemented.
8566
8567 * config/cris/cris.h: Tweak comments related to parameter-passing.
8568
8569 * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
8570
017cb544 85712002-04-10 Richard Henderson <rth@redhat.com>
8572
8573 * except.c (add_ehl_entry): Allow duplicates after landing pad
8574 creation.
8575
c0211d6b 85762002-04-10 David Edelsohn <edelsohn@gnu.org>
8577
8578 * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
8579
175f3f99 85802002-04-10 Toon Moene <toon@moene.indiv.nluug.nl>
8581
8582 * c-decl.c (c_init_decl_processing): Move generation of
8583 decls for g77_integer_type_node and friends from here ...
8584 * c-common.c (c_common_nodes_and_builtins): ... to here.
8585
6f813137 85862002-04-10 Ulrich Weigand <uweigand@de.ibm.com>
8587
8588 * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
8589 is only used as frame pointer when frame_pointer_needed is true.
8590
dd080cc9 85912002-04-10 Richard Earnshaw <rearnsha@arm.com>
8592
8593 PR target/817
8594 * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
8595 for the fact that the pool entry uses two words.
8596 (movdf_hard_insn): Similarly. Also, ADR instruction can span
8597 1k bytes.
8598 (movdf_soft_insn): Similarly.
8599 (movxf_hard_insn): Adjust neg_pool_range attribute to allow
8600 for the fact that the pool entry uses three words.
8601
6e45d906 86022002-04-10 Richard Sandiford <rsandifo@redhat.com>
8603
8604 * config/mips/mips.c (mips_va_arg): When using the struct version
8605 of the EABI va_list, allow arguments in the register save area to
8606 take up less room than a stack argument.
8607
f64482cc 86082002-04-10 Richard Henderson <rth@redhat.com>
8609
8610 * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
8611 if EXPAND_INITIALIZER.
8612
05b07808 86132002-04-09 Richard Henderson <rth@redhat.com>
8614
8615 * config/alpha/alpha.md (movdi_er_maybe_g): New.
8616 * config/alpha/alpha.c (alpha_expand_mov): Use it.
8617
ef15379a 86182002-04-10 Alan Modra <amodra@bigpond.net.au>
8619
8620 PR optimization/6233
8621 * rtlanal.c (pure_call_p): New function.
8622 * rtl.h (pure_call_p): Declare.
8623 * loop.c (prescan_loop): Use it to set has_nonconst_call.
8624 * gcse.c (store_killed_in_insn): Use pure_call_p here too.
8625
a87d8cb5 86262002-04-09 Eric Christopher <echristo@redhat.com>
8627
8628 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
8629 information to .comm directive.
8630
9998b6a9 86312002-04-09 Richard Henderson <rth@redhat.com>
8632
8633 PR c/5078
8634 * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
8635
8f8dcce4 86362002-04-09 Richard Henderson <rth@redhat.com>
8637
8638 * basic-block.h (flow_delete_block_noexpunge): Declare.
8639 (expunge_block_nocompact): Declare.
8640 * cfg.c (expunge_block_nocompact): Split out from ...
8641 (expunge_block): ... here.
8642 * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
8643 (flow_delete_block_noexpunge): Split out from ...
8644 (flow_delete_block): ... here.
8645 * cfgcleanup.c (delete_unreachable_blocks): Compact while
8646 removing dead blocks.
8647 * except.c (exception_handler_labels): Remove.
8648 (exception_handler_label_map): New.
8649 (struct eh_region): Add aka member.
8650 (mark_ehl_map_entry, mark_ehl_map, free_region): New.
8651 (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
8652 (for_each_eh_label, for_each_eh_label_1): New.
8653 (init_eh): Register exception_handler_label_map.
8654 (free_eh_status): Use free_region.
8655 (find_exception_handler_labels): Use the map, not the list.
8656 (remove_exception_handler_label): Likewise.
8657 (maybe_remove_eh_handler): Likewise.
8658 (remove_eh_handler): Use the region aka bitmap.
8659 * except.h (exception_handler_labels): Remove.
8660 (for_each_eh_label): Declare.
8661 * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
8662 * loop.c (invalidate_loops_containing_label): New.
8663 (find_and_verify_loops): Use it. Use for_each_eh_label.
8664 * sched-rgn.c (is_cfg_nonregular): Use
8665 current_function_has_exception_handlers.
8666
739c050b 86672002-04-09 Richard Henderson <rth@redhat.com>
8668
8669 * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
8670 sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
8671 Do not return changed status.
8672 (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
8673 sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
8674 New functions that do return changed status.
8675 * sbitmap.h: Update decls.
8676 * gcse.c, lcm.c: Use _cg functions as needed.
8677
3f67d569 8678Tue Apr 9 19:15:57 2002 J"orn Rennecke <joern.rennecke@superh.com>
8679
8680 * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
8681 (sh64-*-elf*, sh-*-rtemself*): Likewise.
8682 * config/sh/embed_bb.c: New file.
8683 * config/sh/embed-elf.h: New file.
8684 * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
8685 if -m[12345]* option is given. Don't use subtarget_cpp_ptr_spec.
8686 (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
8687 __PTRDIFF_TYPE__ .
8688 (SUBTARGET_CPP_PTR_SPEC): Don't define.
8689 (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
8690 Add subtarget_asm_endian_spec.
8691 (ASM_SPEC): Use subtarget_asm_endian_spec.
8692 (SUBTARGET_ASM_ENDIAN_SPEC): Define.
8693 (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
8694 (WCHAR_UNSIGNED): Define.
8695 (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
8696 (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
8697 (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
8698 Fix value.
8699 * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
8700 (sh_adjust_cost): Likewise.
8701 sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
8702 __PTRDIFF_TYPE__ .
8703 (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
8704 (WCHAR_TYPE_SIZE): Likewise.
8705 (ASM_SPEC): Use subtarget_asm_endian_spec.
8706 (SH_ELF_WCHAR_TYPE): #undef/ #define.
8707 (MAX_WCHAR_TYPE_SIZE): Don't #undef.
8708 * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
8709 (MAX_WCHAR_TYPE_SIZE): Don't #define .
8710 (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
8711 (USER_LABEL_PREFIX): Don't #undef /#define .
8712 (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
8713 * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
8714 (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
8715 (ASM_SPEC): Likewise.
8716 (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
8717 (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
8718 * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
8719 (LIB2FUNCS_EXTRA): Define.
8720 * t-sh64 (LIB2FUNCS_EXTRA): Define.
8721 * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
8722 (LIB1ASMFUNCS_CACHE): Define.
8723 (LIB2FUNCS_EXTRA): Redefine empty.
8724
045a0eef 87252002-04-08 Richard Henderson <rth@redhat.com>
8726
8727 * reorg.c (get_branch_condition): Use reversed_comparison_code.
8728
105e74c2 87292002-04-09 Stephane Carrez <Stephane.Carrez@worldnet.fr>
8730
8731 * config/m68hc11/larith.asm (__map_data_section): Fix condition
8732 and optimize for size.
8733 (__do_global_ctors): Fix pointer comparison.
8734 (__do_global_dtors): Likewise.
8735
3dcaebeb 87362002-04-09 David S. Miller <davem@redhat.com>
8737
8738 * config/sparc/sparc.c (sparc_extra_constraint_check): New
8739 function, implementing EXTRA_CONSTRAINTS. For memory constraints,
8740 allow reloading pseudos.
8741 * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
8742 * config/sparc/sparc-protos.h: Declare it.
8743
8744 * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
8745 unsigned comparison warning.
8746 (output_restore_regs): Mark leaf_function as unused.
8747
67c68e45 8748Tue Apr 9 09:35:45 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8749
8750 * expr.c (is_aligning_offset): New function.
8751 (expand_expr, case COMPONENT_EXPR): Call it.
8752
87515218 87532002-04-08 David S. Miller <davem@redhat.com>
8754
8755 PR target/6082
8756 * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
8757
8758 Make init_priority work on Sparc when using GNU ld.
8759 * config/sparc/linux.h, config/sparc/linux64.h,
8760 config/sparc/netbsd-elf.h, config/sparc/freebsd.h
8761 (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
8762 * config/sparc/sol2-gld.h: New file to do the same.
8763 * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
8764 sparc/sol2-gld.h to tm_file.
8765
8766 PR optimization/4328
8767 * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
8768 * doc/md.texi: Document it.
8769 * config/sparc/sparc.md (movdi_insn_sp64_novis,
8770 movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
8771 movdf_insn_v9only_vis, movdf_insn_sp64_novis,
8772 movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
8773 * config/sparc/sparc.c (mem_min_alignment): Fix comment.
8774
9e03c9f8 87752002-04-08 Andreas Jaeger <aj@suse.de>
8776
8777 * stmt.c (expand_asm_operands): Revert last patch from Richard
8778 Henderson.
8779
6b129de1 87802002-04-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
8781
8782 * doc/contrib.texi (Contributors): Add John David Anglin and Loren
8783 J. Rittle (the latter also to Testers). Update David O'Brien's entry.
8784
87852002-04-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
8786
8787 * doc/contrib.texi (Contributors): Add David O'Brien.
8788
ab3470ec 87892002-04-08 Alan Modra <amodra@bigpond.net.au>
8790
8791 * configure.in (auto-build.h): Use target_alias and build_alias
8792 when running configure.
8793 (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
8794 (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
8795 * configure: Regenerate.
8796
0b8c20bf 87972002-04-07 David S. Miller <davem@redhat.com>
8798
8799 * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
8800
a6bf437a 88012002-04-07 John David Anglin <dave@hiauly1.hia.nrc.ca>
8802
8803 PR 5933
8804 * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
8805 generating 32-bit pic code.
8806
d3f7919d 88072002-04-06 Jason Thorpe <thorpej@wasabisystems.com>
8808
8809 * cppinit.c (cpp_create_reader): Initialize
8810 discard_comments_in_macro_exp.
8811 (COMMAND_LINE_OPTIONS): Add "-CC" option.
8812 (cpp_handle_option): Handle "-CC" option.
8813 * cpplex.c (save_comment): If saving a C++ comment in
8814 a directive, convert it to a C comment.
8815 (_cpp_lex_direct): Pass second comment start character to
8816 save_comment to indicate comment type.
8817 * cpplib.c (_cpp_handle_directive): If processing
8818 a "#define" directive and discard_comments_in_macro_exp
8819 is false, re-enable saving of comments.
8820 (lex_macro_node): If discard_comments_in_macro_exp is false,
8821 discard any comments before the macro identifier.
8822 * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
8823 member.
8824 * cppmacro.c (cpp_get_token): If expanding a macro while
8825 processing a directive, discard any comments we might encounter.
8826 (parse_params): If discard_comments_in_macro_exp is false,
8827 ignore comments in the macro parameter list.
8828 * gcc.c (cpp_unique_options): Add "-CC" option.
8829 (option_map): Map "--comments-in-macros" to "-CC".
8830 * doc/cppopts.texi: Document "-CC" option.
8831 * f/lang-specs.h: Add "-CC" option.
8832 * testsuite/gcc.dg/cpp/maccom1.c: New test.
8833 * testsuite/gcc.dg/cpp/maccom2.c: New test.
8834 * testsuite/gcc.dg/cpp/maccom3.c: New test.
8835 * testsuite/gcc.dg/cpp/maccom4.c: New test.
8836 * testsuite/gcc.dg/cpp/maccom5.c: New test.
8837 * testsuite/gcc.dg/cpp/maccom6.c: New test.
8838
d872fdb9 88392002-04-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
8840
8841 PR middle-end/6180
8842 * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
8843
99b12e3f 88442002-04-06 Mark Mitchell <mark@codesourcery.com>
8845
242fc35c 8846 PR c++/5571
8847 * stor-layout.c (layout_decl): Reset the RTL for the decl.
8848
99b12e3f 8849 PR opt/5120
8850 * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
8851 RTX_UNCHANGING_P for the functions arguments when a tail call
8852 is made.
8853
a14bc987 88542002-04-06 Jason Merrill <jason@redhat.com>
8855
8856 * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
8857 (parse_options_and_default_flags): Set them appropriately.
8858 * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
8859
adcdc3d7 88602002-04-06 Hans-Peter Nilsson <hp@bitrange.com>
8861
8862 * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
8863 here.
8864
8865 * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
8866 semicolon.
8867
8868 * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
8869 types come in by-reference. Fix typo in comment.
8870
8c9facdb 88712002-04-05 David S. Miller <davem@redhat.com>
8872
8873 * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
8874 * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
8875 sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
8876 {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
8877
88782002-04-05 David S. Miller <davem@redhat.com>
8879
8880 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
8881 are not going to emit return instructions, emit at least a nop
8882 for the sake of sane backtraces.
8883
3986e66f 88842002-04-05 Richard Henderson <rth@redhat.com>
8885
8886 * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
8887
940383f5 88882002-04-05 Jakub Jeilnek <jakub@redhat.com>
8889
8890 * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
8891
7dd3befd 88922002-04-05 Alexandre Oliva <aoliva@redhat.com>
8893
8894 * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
8895 ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
8896 ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
8897
a69f4a27 88982002-04-05 Andreas Schwab <schwab@suse.de>
8899
a23487e4 8900 * c-convert.c: Include c-common.h.
a69f4a27 8901 * Makefile.in (c-convert.o): Updated.
8902
48b37790 89032002-04-05 Jakub Jelinek <jakub@redhat.com>
8904
8905 * mklibgcc.in: Use separate libgcc.map for each multilib.
8906 * Makefile.in (distclean): Don't remove libgcc.map here.
8907
7a94134d 89082002-04-05 Jakub Jelinek <jakub@redhat.com>
8909
8910 * Makefile.in (s-mlib): Handle --disable-multilib by separate
8911 genmultilib invocation.
8912
e87dac45 89132002-04-04 Richard Sandiford <rsandifo@redhat.com>
8914
8915 * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
8916 to avoid clash with Irix header file sys/ucontext.h. Rename gp_regs
8917 to num_gprs for symmetry.
8918 * config/mips/mips.c: Adjust accordingly.
8919
24ade6d8 89202002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
8921
8922 * c-common.c (truthvalue_conversion): Rename, update.
8923 * c-common.h (c_common_truthvalue_conversion): New.
8924 * c-convert.c (convert): Update.
8925 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
8926 * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
8927 * c-typeck.c (build_binary_op, build_unary_op,
8928 build_conditional_expr): Update.
8929 * fold-const.c (constant_boolean_node, fold): Use langhook.
8930 * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
8931 * langhooks.h (struct lang_hooks): New hook.
8932 * stmt.c (expand_decl_cleanup): Use langhook.
8933 * tree.h (truthvalue_conversion): Remove.
8934objc:
8935 * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
8936
88a4e075 89372002-04-05 Alan Modra <amodra@bigpond.net.au>
8938
8939 * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
8940 Add rules to make null object file.
8941
3a68fd94 89422002-04-04 Jim Blandy <jimb@redhat.com>
8943
8944 * cppmacro.c (cpp_macro_definition): Do not emit spaces after
8945 macro formal parameter names.
8946
04d6fcf8 89472002-04-04 David S. Miller <davem@redhat.com>
8948
8949 * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
8950
cf9d8568 89512002-04-04 Richard Henderson <rth@redhat.com>
8952
8953 PR middle-end/5099
8954 * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
8955 Support copies into and out of memory. Don't accept allows_reg
8956 and allows_mem as gospel.
8957
a57f4c4d 89582002-04-04 Richard Henderson <rth@redhat.com>
8959
8960 PR opt/6165
8961 * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
8962 (write_dependence_p): Likewise.
8963
322fc845 89642002-04-04 Richard Henderson <rth@redhat.com>
8965
8966 * predict.c (estimate_bb_frequencies): Do frequency calculation
8967 with a volatile temporary.
8968
7065cca2 89692002-04-04 Ulrich Weigand <uweigand@de.ibm.com>
8970
8971 * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
8972
2627f83a 89732002-04-04 Jakub Jelinek <jakub@redhat.com>
8974
8975 PR c++/6119
8976 * final.c (final_start_function): Don't bump profile_label_no here...
8977 (final_end_function): ...but here.
8978
02b9b9f1 89792002-04-04 Jakub Jelinek <jakub@redhat.com>
8980
8981 * config/sparc/sparc.md (pic): New attribute.
8982 (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
8983 into stack slots.
8984 (split after do_builtin_setjmp_setup): New.
8985
7551ff59 89862002-04-04 Jakub Jelinek <jakub@redhat.com>
8987
8988 PR fortran/6106
8989 * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
8990 change.
8991
992443f3 89922002-04-04 Jakub Jelinek <jakub@redhat.com>
8993
8994 * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
8995 UNITS_PER_WORD for zero sized aggregates.
8996
06449996 89972002-04-03 David S. Miller <davem@redhat.com>
8998
8999 * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
9000 one-character spec for this, just use %(link_gcc_c_sequence).
9001
b60608ad 90022002-04-03 David S. Miller <davem@redhat.com>
9003
9004 * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
9005 handling.
9006
a584fe8a 90072002-04-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
9008
9009 * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
9010 (DWARF_FRAME_RETURN_COLUMN): Move.
9011 (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9012 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
9013 * pa.c (except.h, predict.h): Include.
9014 (FRP): Delete.
9015 (store_reg_modify, set_reg_plus_d): Revise prototypes.
9016 (output_ascii): Add cast.
9017 (store_reg_modify): Revise to add frame notes.
9018 (set_reg_plus_d): Likewise.
9019 (compute_frame_size): Include space for eh data registers in frame if
9020 the current function calls eh_return.
9021 (hppa_expand_prologue): Ensure register %r2 is saved if the current
9022 function calls eh_return. Save eh data registers if the current
9023 function calls eh_return. Fix code to add frame notes. Emit
9024 blockage to prevent insns with frame notes being scheduled in the
9025 delay slot of calls.
9026 (hppa_expand_epilogue): Restore eh data registers and do final stack
9027 adjustment if the current function calls eh_return. Don't add frame
9028 notes.
9029 (output_call): Revise for change in length of call insn. Don't do
9030 return pointer adjustment for an unconditional jump in the delay slot
9031 of a call when using frame notes.
9032 * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
9033 (EH_RETURN_HANDLER_RTX): Use saved value on stack.
9034 (ARG_POINTER_CFA_OFFSET): Define.
9035 * pa.md (return_external_pic): New pattern.
9036 (prologue): Correct formatting. Use return_external_pic if current
9037 function calls eh_return.
9038 (call_internal_symref, call_value_internal_symref,
9039 sibcall_internal_symref, sibcall_value_internal_symref): Change default
9040 lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
9041 respectively.
9042 (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
9043
9044 * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
9045 list of targets to check using "nop" insn.
9046 * configure: Rebuilt.
9047
9ff1ea9a 90482002-04-04 Alan Modra <amodra@bigpond.net.au>
9049
9050 * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
9051
da98d114 90522002-04-03 David S. Miller <davem@redhat.com>
9053
9054 * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
9055 library sequence passed to the linker.
9056 (LINK_COMMAND_SPEC): Use it.
9057 * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
9058 a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
9059 * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9060
a9bc793b 90612002-04-03 Jason Merrill <jason@redhat.com>
9062
9063 * except.c (struct eh_status): Remove protect_list.
9064 (begin_protect_partials, end_protect_partials): Remove.
9065 (add_partial_entry): Remove.
9066 * except.h: Remove prototypes.
9067
9068 * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
9069 expand_decl_cleanup_eh.
9070
9071 PR c++/5636
9072 * tree.h (CLEANUP_EH_ONLY): New macro.
9073 * stmt.c (expand_decl_cleanup_eh): New fn.
9074 (expand_cleanups): Check CLEANUP_EH_ONLY.
9075 * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
9076 Use expand_decl_cleanup_eh.
9077 (expand_stmt): Adjust.
9078 * c-common.h: Adjust prototype.
9079
edce0255 90802002-04-04 Hans-Peter Nilsson <hp@axis.com>
9081
9082 * config/cris/cris.c (cris_target_asm_function_prologue): Cast
9083 uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
9084 (cris_target_asm_function_epilogue): Ditto.
9085 (cris_initial_frame_pointer_offset): Ditto.
9086 (cris_simple_epilogue): Ditto.
9087 (cris_expand_builtin_va_arg): Variable-size types come in
9088 by-reference.
9089
21612212 90902002-04-03 David S. Miller <davem@redhat.com>
9091
9092 * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
9093 little-endian.
9094 (set_fast_math): Correct 'fsr' type.
9095
8d58a5a7 90962002-04-03 Richard Henderson <rth@redhat.com>
9097
f99eba19 9098 PR opt/3569
8d58a5a7 9099 * langhooks.h (lang_hooks.decls.warn_unused_global): New.
9100 * toplev.c (check_global_declarations): Use it.
9101 * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
9102 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9103 (LANG_HOOKS_DECLS): Add it.
9104 * langhooks.c (lhd_warn_unused_global_decl): New.
9105 * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9106 * c-objc-common.c (c_warn_unused_global_decl): New.
9107 * c-tree.h (c_warn_unused_global_decl): Declare.
9108 * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
9109
d1f6c8f2 91102002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
9111
9112 * langhooks-def.h (lhd_set_decl_assembler_name,
9113 LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
9114 (LANG_HOOKS_INITIALIZER): Update.
9115 * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
9116 * langhooks.h (struct lang_hooks): New hook.
9117 * tree.c (set_decl_assembler_name): Move to langhooks.c.
9118 (lang_set_decl_assembler_name): Remove.
9119 (init_obstacks): Don't set hook.
9120 (decl_assembler_name): New function.
9121 * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
9122 (decl_assembler_name): New.
9123 (lang_set_decl_assembler_name): Remove.
9124
e715c863 91252002-04-03 Jakub Jelinek <jakub@redhat.com>
9126
9127 * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
9128 works properly with .hidden symbols.
9129 * configure: Rebuilt.
9130 * config.in: Rebuilt.
9131 * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9132 DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
9133 properly with .hidden symbols.
9134
2d04533c 91352002-04-03 Jakub Jelinek <jakub@redhat.com>
9136
9137 PR middle-end/6102
9138 * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
9139 USE argument.
9140
cbf780cc 91412002-04-03 Richard Henderson <rth@redhat.com>
9142
9143 PR opt/4120
9144 * sched-rgn.c (sets_likely_spilled): New.
9145 (sets_likely_spilled_1): New.
9146 (add_branch_dependences): Use it.
9147
893ff8a6 91482002-04-02 Richard Henderson <rth@redhat.com>
9149
9150 PR opt/4311
9151 * loop.h (LOOP_FIRST_PASS): New.
9152 * loop.c (strength_reduce): Mind it when deciding to unroll.
9153 * toplev.c (rest_of_compilation): Set it.
9154
a3c7ab5f 91552002-04-02 David S. Miller <davem@redhat.com>
9156
9157 * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
9158 mems_ok_for_ldd_peep when the order of the loads being examined
9159 is reversed.
9160 * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
9161 existing comment to increase comprehension of this situation.
9162
9b1d697e 91632002-04-02 Zack Weinberg <zack@codesourcery.com>
9164
9165 * config/sh/sh.md: Don't use union real_extract.
9166
adeae8b0 91672002-04-02 Richard Henderson <rth@redhat.com>
9168
9169 * libgcc2.c (__bb_exit_func): Revert 03-31 change.
9170
d2307a72 91712002-04-02 David O'Brien <obrien@FreeBSD.org>
9172
9173 * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
9174 i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
9175 i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
9176 i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
9177 i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
9178 i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
9179 i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
9180 i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
9181 i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
9182 i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
9183 i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
9184 i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
9185 i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
9186 i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
9187 Include as many configury headers via tm_file as possible. This
9188 includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
9189 * config/openbsd-oldgas.h: New file.
9190 * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
9191 config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
9192 config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
9193 config/i386/i386-coff.h, config/i386/i386-interix.h,
9194 config/i386/iscdbx.h, config/i386/linux-aout.h,
9195 config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
9196 config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
9197 config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
9198 config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
9199 config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
9200 config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
9201 config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
9202 config/i386/vxi386.h: Do not directly include configury headers.
9203 * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
9204 Directly include configury headers that are no longer automatically
9205 included by the above headers.
9206 * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
9207 * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
9208 config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
9209 config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
9210 config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
9211 config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
9212 config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
9213 (TARGET_VERSION): Define.
9214 * config/i386/beos-elf.h, config/i386/freebsd.h,
9215 config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
9216 config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
9217 config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
9218 config/i386/sco5.h, config/i386/sysv4.h
9219 (TARGET_VERSION): Do not need to protect.
9220 * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
9221 * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
9222 config/i386/freebsd-aout.h, config/i386/i386-aout.h,
9223 config/i386/i386-interix.h, config/i386/linux-aout.h,
9224 config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
9225 config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
9226 (YES_UNDERSCORES): Do not define - not needed.
9227 * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
9228 ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9229 USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
9230 * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
9231 (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
9232 USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
9233 * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
9234 * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
9235
567c22a9 92362002-04-02 Eric Botcazou <ebotcazou@multimania.com>
9237 Richard Henderson <rth@redhat.com>
9238
9239 PR c/5484
9240 * function.c (assign_temp): Accept either type or decl argument.
9241 Detect variables whose size is too large to fit into an integer.
9242 * stmt.c (expand_decl): Pass the decl, not the type.
9243
ffbee6f8 92442002-04-02 David O'Brien <obrien@FreeBSD.org>
9245
9246 * protoize.c: Match include directory usage with cppdefault.c.
9247
295f9df5 92482002-04-03 Jeffrey A Law (law@redhat.com)
f3cb52fc 9249 Hans-Peter Nilsson <hp@bitrange.com>
295f9df5 9250
9251 * combine.c (simplify_comparison): Avoid narrowing a comparison
9252 with a paradoxical subreg when doing so would drop signficant bits.
9253
4cd21437 92542002-04-02 Steve Ellcey <sje@cup.hp.com>
9255
9256 * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
9257 if POINTERS_EXTEND_UNSIGNED is defined.
9258
d46792c2 92592002-04-02 Richard Henderson <rth@redhat.com>
9260
9261 PR opt/3967
9262 * local-alloc.c (contains_replace_regs): LO_SUM may contain
9263 replace regs.
9264
d5fdb6fc 92652002-04-02 Richard Henderson <rth@redhat.com>
9266
9267 * doc/standards.texi: Document required freestanding libc entry points.
9268
f1dffec8 92692002-04-02 Alan Modra <amodra@bigpond.net.au>
9270
9271 * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
9272 associated splitter. Remove MQ constraint.
9273 (ctrdi_internal4): Correct CCmode clobber.
9274
f288a74f 92752002-04-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
9276
9277 * milli64.S ($$dyncall): New function.
9278 * t-linux (LIB1ASMFUNCS): Revise module list.
9279 (LIB1ASMSRC): Use pa/milli64.S.
9280
bffe0cfe 92812002-04-02 Richard Henderson <rth@redhat.com>
9282
9283 * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
9284 rename solaris_sys_varargs_h.
9285
b0cfa32c 9286Tue Apr 2 06:47:40 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9287
9288 * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
9289 the same mode as its component.
9290
a8fb9348 92912002-04-02 Richard Henderson <rth@redhat.com>
9292
9293 PR opt/190
9294 * final.c (this_is_asm_operands): Export.
9295 * output.h (this_is_asm_operands): Declare.
9296 * config/i386/i386.c (print_operand): Error odd asm operands.
9297
1ee5bf27 92982002-04-02 Richard Henderson <rth@redhat.com>
9299
9300 PR opt/420
9301 * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
9302
28bac34e 93032002-04-01 Richard Henderson <rth@redhat.com>
9304
9305 PR target/1538
9306 * fixinc/inclhack.def (solaris_sys_varargs_h): New.
9307 * fixinc/fixincl.x: Rebuild.
9308
d20514a0 93092002-04-01 Richard Henderson <rth@redhat.com>
9310
9311 * config/ia64/unwind-ia64.c: Include ia64intrin.h.
9312 (atomic_alloc, atomic_free): New.
9313 (SIZE, MASK_FOR, PTR_IN): New.
9314 (emergency_reg_state, emergency_reg_state_free): New.
9315 (emergency_labeled_state, emergency_labeled_state_free): New.
9316 (reg_state_alloced, labeled_state_alloced): New.
9317 (alloc_reg_state, free_reg_state): New.
9318 (alloc_label_state, free_label_state, free_label_states): New.
9319 (push, pop, dup_state_stack, free_state_stack): Use them.
9320 (desc_label_state): Likewise.
9321 (uw_frame_state_for): Free label states and state stack.
9322 (uw_update_reg_address): Eliminate warnings.
9323
399bdaf0 93242002-04-01 Vladimir Makarov <vmakarov@redhat.com>
9325
9326 * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
f3cb52fc 9327 ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
399bdaf0 9328
9b86eec0 93292002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
9330
9331 * c-decl.c (grokdeclarator): Update.
9332 * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9333 * c-tree.h (c_mark_addressable): New.
9334 * c-typeck.c (default_function_array_conversion, build_unary_op,
9335 build_array_ref, convert_for_assignment): Update.
9336 (mark_addressable): Rename.
9337 * calls.c (try_to_integrate, expand_call): Use langhook.
9338 * expr.c (expand_expr): Use langhook.
9339 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
9340 * langhooks.h (struct lang_hooks): New hook.
9341 * stmt.c (expand_asm_operands): Use langhook.
9342 * tree.h (mark_addressable): Remove.
9343objc:
9344 * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
9345
4588bbd8 93462002-04-01 Bob Wilson <bob.wilson@acm.org>
9347
f3cb52fc 9348 * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
9349 in previous change.
4588bbd8 9350
89d4bc5e 93512002-04-01 Bob Wilson <bob.wilson@acm.org>
9352
9353 * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
9354 for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
9355
4070745f 93562002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
9357
9358 * c-common.c (unsigned_conversion_warning, convert_and_check,
9359 unsigned_type, signed_type, shorten_compare,
9360 c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
9361 (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
9362 * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
9363 New.
9364 * c-decl.c (grokdeclarator): Update.
9365 * c-format.c (check_format_types): Update.
9366 * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9367 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9368 * c-typeck.c (build_binary_op, convert_for_assignment): Update.
9369 * convert.c (convert_to_integer): Use new hooks.
9370 * expmed.c (make_tree): Use new hooks.
9371 * expr.c (store_expr): Use new hooks.
9372 * fold-const.c (operand_equal_for_comparison_p, build_range_check,
9373 all_ones_mask_p, unextend, fold): Use new hooks.
9374 * langhooks.h (struct lang_hooks_for_types): New hooks.
9375 * tree.h (signed_or_unsigned_type, signed_type,
9376 unsigned_type): Remove.
9377objc:
9378 * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
9379 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
9380
2898f3a4 93812002-03-31 Richard Henderson <rth@redhat.com>
9382
9383 * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
9384 (desc_frgr_mem): Fix reference to f16-f31.
9385
861589fe 93862002-03-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9387
9388 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
9389 RTVEC_ELT): Const-ify.
182b8a5c 9390 * varray.h (VARRAY_CHECK): Const-ify.
9391 * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
9392 ggc_mark_rtvec, ggc_mark): Const-ify.
861589fe 9393
98b07039 93942002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
9395
9396 * diagnostic.c: Include langhooks-def.h.
9397 * Makefile.in (diagnostic.o): Update.
9398
ee23fd7b 93992002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
9400
9401 * c-common.c (c_unsafe_for_reeval): Rename.
9402 * c-common.h (c_unsafe_for_reeval): Rename.
9403 * c-decl.c (finish_incomplete_decl): Rename.
9404 (c_init_decl_processing): Don't set langhook.
9405 * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
9406 LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
9407 * c-objc-common.c (c_objc_common_init): Don't set langhook.
9408 * c-tree.h (finish_incomplete_decl): Rename.
9409 * langhooks-def.h (lhd_unsafe_for_reeval): New.
9410 (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
9411 (LANG_HOOKS_INITIALIZER): Update.
9412 * langhooks.c (lhd_unsafe_For_reeval): New.
9413 * langhooks.h (struct langhooks): New hooks.
9414 * toplev.c (incomplete_decl_finalize_hook): Remove.
9415 (wrapup_global_declarations): Update.
9416 * tree.c (lang_unsafe_for_reeval): Remove.
9417 (unsafe_for_reeval): Update.
9418 * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
9419 Remove.
9420objc:
9421 * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
9422 LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
9423
6c7ff025 94242002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
9425
9426 * diagnostic.c (print_error_function): Remove.
9427 (default_print_error_function): Rename.
9428 (report_error_function): Update.
9429 * diagnostic.h (print_error_function): Remove.
9430 (default_print_error_function): Remove.
9431 * langhooks-def.h (struct diagnostic_context): Predeclare.
9432 (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
9433 (LANG_HOOKS_INITIALIZER): Update.
9434 * langhooks.h (struct diagnostic context): Predeclare.
9435 (struct lang_hooks): New hook.
9436
479d644a 94372002-03-31 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
9438
9439 * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
9440 (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
9441 !flag_pic.
9442 (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
9443 * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
9444 of PIC_OFFSET_TABLE_REGNUM thruout.
9445 * config/rs6000/rs6000.md: Likewise.
9446 * config/rs6000/darwin.h: Likewise.
9447
f4aee538 9448Sun Mar 31 14:43:24 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9449
9450 * emit-rtl.c (adjust_address_1, offset_address): Cast value to
9451 unsigned HOST_WIDE_INT, not unsigned int.
9452
80563b56 94532002-03-31 Jakub Jelinek <jakub@redhat.com>
9454
9455 PR middle-end/6096, middle-end/6098, middle-end/6099
9456 * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
9457 CODE_LABELs.
9458 (fill_slots_from_thread): Likewise.
9459
d85b9058 94602002-03-31 Jakub Jelinek <jakub@redhat.com>
9461
9462 * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
9463 floating fields in float regs.
9464 (function_arg_record_value_2): Likewise.
9465
edf97d06 94662002-03-31 Hans-Peter Nilsson <hp@bitrange.com>
9467
9468 * config/mmix/mmix.md (define_constants): Remove misleading
9469 FIXME. Add MMIX_fp_rO_OFFSET.
9470 ("nonlocal_goto_receiver"): Don't have stack-frame address of
9471 saved rO as part of the pattern. Remove FIXME.
9472 ("*nonlocal_goto_receiver_expanded"): Similar. Generate address
9473 here, at output-time.
9474
c3037f18 94752002-03-31 Jakub Jelinek <jakub@redhat.com>
9476
9477 PR middle-end/6100
9478 * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
9479 REG_BR_PRED.
9480 (output_v9branch): Likewise.
9481
21eaebc3 94822002-03-31 Alexandre Oliva <aoliva@redhat.com>
9483
9484 * gcc.c: Revert previous patch for now.
9485 * config/i386/djgpp.h: Likewise.
9486
d0a422dd 94872002-03-31 Hans-Peter Nilsson <hp@bitrange.com>
a01c9af7 9488
9489 * config/mmix/crti.asm (_init): Register _fini with atexit.
9490 * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
9491
e7669934 94922002-03-31 Richard Henderson <rth@redhat.com>
9493
9494 PR target/3997
9495 * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
9496 (ASM_OUTPUT_DEF_FROM_DECLS): New.
9497
5fd3940f 94982002-03-31 Richard Henderson <rth@redhat.com>
9499
9500 * libgcc2.c (__bb_exit_func): Make static.
9501
f3cb52fc 9502 * config/alpha/alpha.md (trap): New.
d9fe31ee 9503
a0ef1725 95042002-03-31 Richard Henderson <rth@redhat.com>
9505
9506 * builtins.c (expand_builtin_va_arg): Give warnings not errors for
9507 promoted argument types; build trap.
9508 (expand_builtin_trap): New.
9509 (expand_builtin): Use it.
9510 * stmt.c (expand_nl_goto_receivers): Likewise.
9511 * expr.h (expand_builtin_trap): Declare.
9512 * libfuncs.h (LTI_abort, abort_libfunc): New.
9513 * optabs.c (init_optabs): Init abort_libfunc.
9514
72db4d53 95152002-03-31 Alexandre Oliva <aoliva@redhat.com>
9516
9517 * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
9518 (LINK_COMMAND_SPEC): ... from here.
a87d8cb5 9519 (init_gcc_specs): Duplicate it here too, omitting
72db4d53 9520 shared_name in the second copy.
9521 (init_spec): Test for duplicate
9522 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
9523
a7414e44 95242002-03-30 David S. Miller <davem@redhat.com>
9525
9526 * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9527 * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
9528
d9246aca 95292002-03-30 Roger Sayle <roger@eyesopen.com>
f3cb52fc 9530 Richard Henderson <rth@redhat.com>
d9246aca 9531
f3cb52fc 9532 * regmove.c (combine_stack_adjustments_for_block): Avoid
9533 emitting a stack adjustment of zero bytes. Let delete_insn
9534 update bb->head.
d9246aca 9535
8b7a298d 95362002-03-30 Richard Henderson <rth@redhat.com>
9537
9538 * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
9539 (sparc_emitting_epilogue): New.
9540 (leaf_label, output_return, sparc_return_peephole_ok): Remove.
9541 * config/sparc/sparc-protos.h: Update.
9542 * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
9543 (TARGET_SWITCHES): Update.
9544 * config/sparc/sparc.md (return): Remove.
9545 (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
9546 * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
9547 config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
9548 config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
9549 config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
9550 config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
9551 config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
9552 Remove MASK_EPILOGUE.
9553 * doc/invoke.texi: Update.
9554
0aa31c95 95552002-03-30 Daniel Berlin <dan@dberlin.org>
9556
9557 * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
9558 CPP will start the file for us.
a87d8cb5 9559
b8536bfb 95602002-03-30 Richard Henderson <rth@redhat.com>
9561
9562 PR target/5446
9563 * config/ia64/ia64.c (group_barrier_needed_p): Special case
9564 prologue_allocate_stack.
9565 (ia64_single_set): Use insn codes for recognition of special
9566 cases, not rtl matching.
9567 * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
9568
c025b1a6 9569Sat Mar 30 23:48:41 CET 2002 Jan Hubicka <jh@suse.cz>
9570
9571 * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
9572
06ac282f 95732002-03-30 Richard Henderson <rth@redhat.com>
9574
9575 PR target/6032
9576 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
9577 or -fomit-frame-pointer with profiling.
9578 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9579 (FUNCTION_PROFILER): Do nothing.
9580 (PROFILE_HOOK): New.
9581 * config/sparc/sparc.c (sparc_override_options): Don't check
9582 code models for profiling.
9583 (sparc_function_profiler): Remove.
9584 (sparc_profile_hook): New.
9585 * config/sparc/sparc-protos.h: Update.
9586
8fb100fd 95872002-03-30 Jakub Jelinek <jakub@redhat.com>
9588
9589 PR optimization/6086
9590 * combine.c (combine_simplify_rtx): If simplify_rtx failed because
9591 of SUBREG of volatile MEM or because the MEM was mode dependent,
9592 return CLOBBER instead of unmodified SUBREG.
9593
73e2b81c 9594Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
9595
06ac282f 9596 * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
9597 when not optimizing.
73e2b81c 9598
9599 * toplev.c (rest_of_compilation): Cann mark_constant_function
9600 only when optimizing.
9601
06ac282f 9602 * flow.c (calculate_global_regs_live): Ensure that all AUX fields
9603 are NULL.
73e2b81c 9604
9605 * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
9606 (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
9607 (try_optimize_cfg): clear all AUX fields.
9608
9609 * i386.c (aligned_operand): Be prepared for SUBREGed registers.
9610 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
9611 (ix86_address_cost): Be prepared for SUBREGed registers.
9612 (legitimate_address_p): Accept SUBREGed registers.
9613
00e465b1 96142002-03-29 Richard Henderson <rth@redhat.com>
9615
9616 PR target/5672
9617 * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
9618
72c94675 96192002-03-29 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
9620
9621 * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
9622 for aggregate and TFmode types.
9623
9ff774e6 96242002-03-29 Hans-Peter Nilsson <hp@bitrange.com>
9625
9626 * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
9627
93bec868 96282002-03-29 Richard Henderson <rth@redhat.com>
9629
11e7c681 9630 PR target/5886
93bec868 9631 * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
9632 * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
9633
2ae5c77d 96342002-03-29 Richard Henderson <rth@redhat.com>
9635
11e7c681 9636 PR target/6041
2ae5c77d 9637 * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
9638 (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
9639 * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
9640 * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
9641 conditional.
9642 * docs/invoke.texi: Update -mno-fancy-math-387 docs.
9643
0e6137dd 96442002-03-29 Dale Johannesen <dalej@apple.com>
9645
9646 * loop.c (combine_movables): Do allow combination of pseudos.
9647
bf13a391 96482002-03-29 Loren J. Rittle <ljrittle@acm.org>
9649
9650 * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
9651 * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
9652 No functional change except ...
9653 * config/t-slibgcc-nolc-override (SHLIB_LC): Override it. New file.
9654 * doc/install.texi (*-*-freebsd*): Document port configuration.
9655
771d21fa 96562002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
9657
9658 * Makefile.in (convert.o, calls.o, expmed.o): Update.
9659 * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
9660 Use new hooks.
9661 * builtin-types.def (BT_PTRMODE): Update.
9662 * c-common.c (type_for_size): Rename c_common_type_for_size.
9663 (type_for_mode): Similarly.
9664 (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
9665 Use new hook.
9666 * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
9667 * c-decl.c (finish_enum, build_enumerator): Use new hooks.
9668 * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
9669 Redefine.
9670 * c-typeck.c (common_type, comptypes, default_conversion):
9671 Use new hooks.
9672 * calls.c: Include langhooks.h.
9673 (emit_library_call_value_1): Use new hooks. Avoid redundant
9674 calls.
9675 * convert.c: Include langhooks.h
9676 (convert_to_pointer, convert_to_integer): Use new hooks.
9677 * except.c (init_eh): Similarly.
9678 * expmed.c: Include langhooks.h.
9679 (expand_mult_add): Use new hooks.
9680 * expr.c (store_expr, store_constructor, expand_expr, do_jump,
9681 try_casesi): Similarly.
9682 * fold-const.c (optimize_bit_field_compare, make_range,
9683 decode_field_reference, fold_truthop, fold): Similarly.
9684 * function.c (assign_stack_local_1, assign_stack_temp_for_type,
9685 put_var_into_stack): Similarly.
9686 * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
9687 LANG_HOOKS_TYPE_FOR_SIZE): New.
9688 (LANG_HOOKS_TYPES_INITIALIZER): Update.
9689 * langhooks.h (lang_hooks_for_types): New hooks.
9690 * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
9691 * tree.c (get_unwidened, get_narrower): Similarly.
9692 * tree.h (type_for_mode, type_for_size): Remove.
9693 * varasm.c (force_const_mem): Use new hooks.
9694 * utils2.c (nonbinary_modular_operation): Update.
9695objc:
9696 * objc-act.c (handle_impent): Update.
9697 * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
9698 Redefine.
9699
736414ab 97002002-03-29 Steve Ellcey <sje@cup.hp.com>
9701
9702 * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
9703 * config/ia64/ia64.c (basereg_operand): New.
9704 * config/ia64/ia64-protos.h (basereg_operand): Declare.
9705 * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
9706
5c3d1711 97072002-03-29 Hans-Peter Nilsson <hp@bitrange.com>
9708
9709 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
9710 unwind information when frame_pointer_needed.
9711 (mmix_assemble_integer): Tweak wording in comment.
9712
a1f71e15 97132002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
9714
9715 * Makefile.in (except.o): Update.
9716 * except.c: Include langhooks.h.
9717 (init_eh): Use langhook.
9718 * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
9719 LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
9720 (LANG_HOOKS_INITIALIZER): Update.
9721 * langhooks.h (lang_hooks_for_types): New.
9722 (struct lang_hooks): Add it.
9723 * tree.c (make_lang_type_fn, make_lang_type): Remove.
9724 * tree.h (make_lang_type_fn, make_lang_type): Remove.
9725config:
9726 * alpha/alpha.c: Include langhooks.h.
9727 (alpha_build_va_list): Use langhook.
9728 * d30v/d30v.c: Include langhooks.h.
9729 (d30v_build_va_list): Use langhook.
9730 * i386/i386.c: Include langhooks.h.
9731 (ix86_build_va_list): Use langhook.
9732 * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
9733 * s390/s390.c: Include langhooks.h.
9734 (s390_build_va_list): Use langhook.
9735 * stormy16/stormy16.c: Include langhooks.h.
9736 (stormy16_build_va_list): Use langhook.
9737
258103e3 97382002-03-29 Jakub Jelinek <jakub@redhat.com>
9739
9740 PR c++/5964
9741 * config/sparc/sparc.md (empty_delay_slot, branch_type): New
9742 attributes.
9743 (length): Compute variable length for branches/calls/jumps here.
9744 (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
9745 normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
9746 define branch_type attribute.
9747 (divsi3_sp32): Maximum length is 6 not 7.
9748 (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
9749 call_address_untyped_struct_value_sp32,
9750 call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
9751 * config/sparc/sparc.c (empty_delay_slot): New function.
9752 * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
9753 * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
9754
faecad48 97552002-03-29 Jakub Jelinek <jakub@redhat.com>
9756
9757 * combine.c (set_nonzero_bits_and_sign_copies): Don't call
9758 nonzero_bits if not needed.
9759 (nonzero_bits) [XOR]: Likewise.
9760 (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
9761 reg_last_set_mode and mode are both MODE_INT, but not equal.
9762 (record_value_for_reg): Compute reg_last_set_nonzero_bits
9763 in nonzero_bits_mode for MODE_INT modes.
9764
94dc5941 97652002-03-28 Richard Henderson <rth@redhat.com>
9766
9767 PR target/5715
9768 * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
9769 to GAS. Correct drift between alternatives.
9770
5fad51c9 97712002-03-28 Richard Henderson <rth@redhat.com>
9772
9773 PR target/6087
9774 * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
9775
db3a628d 97762002-03-28 Alexandre Oliva <aoliva@redhat.com>
9777
9778 * config/i386/freebsd.h (LINK_SPEC): Don't pass default
9779 emulation to the linker.
9780
97812002-03-28 Loren J. Rittle <ljrittle@acm.org>
9782
9783 * config/alpha/freebsd.h (LINK_SPEC): Likewise.
9784 * config/sparc/freebsd.h (LINK_SPEC): Likewise.
9785
6ee1791f 9786Thu Mar 28 16:35:31 2002 Jeffrey A Law (law@redhat.com)
9787
9788 * combine.c (simplify_and_const_int): Make sure to apply mask
9789 when force_to_mode returns a constant integer. PR3311.
9790
0a78afa6 97912002-03-28 John David Anglin <dave@hiauly1.hia.nrc.ca>
9792
9793 * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
9794
74443372 97952002-03-28 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
9796
9797 * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
9798 and Objective-C Dialect Options.
9799
a92123e9 98002002-03-28 Richard Henderson <rth@redhat.com>
9801
9802 * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
9803 comparison should be done vs !=0 not >0 return code. Tidy cases.
9804
b3f7c02f 98052002-03-28 Richard Henderson <rth@redhat.com>
9806
9807 * c-decl.c (finish_function): New arg can_defer_p. Pass it
9808 on to c_expand_body.
9809 * c-tree.h (finish_function): Update decl.
9810 * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
9811
099a9fb1 9812Thu Mar 28 19:13:36 CET 2002 Jan Hubicka <jh@suse.cz>
9813
9814 * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
9815
350b17ef 9816Thu Mar 28 13:21:53 CET 2002 Jan Hubicka <jh@suse.cz>
9817
9818 * rtlanal.c: Include flags.h
9819 (may_trap_p): Do not mark FP operations if trapping
9820 if !flag_trapping_math
9821 * Makefile.in (rtlanal.o): Add dependency on flag.h
9822 * ifcvt.c (noce_operand_ok): Avoid the lameness.
9823
ddd1d5b8 98242002-03-27 Zack Weinberg <zack@codesourcery.com>
9825
9826 * mips.md: Use dconst1, not 1.0, as first argument of
9827 REAL_VALUE_LDEXP. Don't use union real_extract.
9828
3290bc33 98292002-03-28 Alan Modra <amodra@bigpond.net.au>
9830
9831 * configure.in (gcc_cv_as): Use $target_alias in directory searchs
9832 rather than $target. Heed program_prefix and
9833 program_transform_name. Search for gas in cross-compiler case too.
9834 "test -x" rather than "test -f".
9835 (gcc_cv_ld): Likewise.
9836 (gcc_cv_nm): Heed program_prefix and program_transform_name.
9837 (gcc_cv_objdump): Likewise.
9838 * configure: Regenerate.
9839
26ca6c20 98402002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
9841
9842 * Makefile.in (attribs.o): Update.
9843 * attribs.c: Include langhooks.h.
9844 (decl_attributes): Use langhook.
9845 * c-decl.c (insert_default_attributes): Rename.
9846 * c-tree.h (c_insert_default_attributes): New.
9847 * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
9848 (LANG_HOOKS_INITIALIZER): Update.
9849 * langhooks.h (struct lang_hooks): New hook.
9850 * tree.h (insert_default_attributes): Remove.
9851objc:
9852 * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
9853
550db37c 98542002-03-27 Andreas Schwab <schwab@suse.de>
9855
9856 * config/i386/i386.c (classify_argument): Also check for
9857 QUAL_UNION_TYPE.
9858
dd96b1d1 98592002-03-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9860
9861 * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
9862 any more.
9863
4712c7d6 9864Wed Mar 27 23:19:30 CET 2002 Jan Hubicka <jh@suse.cz>
9865
9866 * i960.md (ret): Set PC.
9867 (nonlocal_goto): Fix expander.
9868 * builtins.c (epxand_builin_longjmp): Check that we've emitted
9869 some jump or call.
9870
0814fb51 9871Wed Mar 27 23:11:35 CET 2002 Jan Hubicka <jh@suse.cz>
9872
9873 * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
9874 of libcall regions.
9875
06f08bd2 9876Wed Mar 27 22:54:14 CET 2002 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
9877
9878 * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
9879 assigning to BLOCK_FOR_INSN directly.
9880
474f6c19 9881Wed Mar 27 22:33:05 CET 2002 Jan Hubicka <jh@suse.cz>
9882
9883 * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
9884
b467ecc1 98852002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
9886
9887 * c-common.c (c_expand_expr): Fix prototype.
9888 * c-common.h (c_expand_expr): Always declare, update.
9889 * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
9890 * c-objc-common.c (c_objc_common_init): No global hook.
9891 * expr.c (expand_expr): Use langhook.
9892 * expr.h (enum expand_modifier): Conditionally declare.
9893 * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
9894 (LANG_HOOKS_INITIALIZER): Update.
9895 * langhooks.c (lhd_expand_expr): New.
9896 * langhooks.h (struct lang_hooks): New hook.
9897 * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
9898 (lang_independent_init): Don't default hook.
9899objc:
9900 * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
9901
1c8a3b46 99022002-03-27 Richard Henderson <rth@redhat.com>
9903
9904 PR target/6054
9905 * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
9906 TARGET_CONST_GP. Simplify conditions.
9907
ea81ed57 99082002-03-27 Richard Henderson <rth@redhat.com>
9909
9910 * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
9911 config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
9912 config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
9913
543b8b44 99142002-03-27 Danny Smith <dannysmith@users.sourceforge.net>
9915
9916 * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
9917 TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
9918 (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
9919 Remove unnecessary masks.
9920 (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
9921 (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
9922 -mwindows, -mdll switches and their negations.
9923
914e1fee 99242002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
9925
9926 * gcc-common.c (lang_mark_false_label_stack): Remove.
9927 * ggc.h (lang_mark_false_label_stack): Similarly.
9928
a87d8cb5 99292002-03-26 Vladimir Makarov <vmakarov@redhat.com>
8ae6d183 9930
9931 * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
9932
9933 * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
9934 or __rtems_ is defined.
9935
b8585446 99362002-03-26 Richard Henderson <rth@redhat.com>
9937
9938 * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
9939 if a non-trivial load was emitted.
9940 (alpha_emit_set_const_1): Remove obsolete extension. Fix thinko
9941 in high+extra+low case.
9942
3ea738fb 99432002-03-26 Richard Henderson <rth@redhat.com>
9944
9945 * config.gcc (sparc*-solaris): Use float_format=sparc.
9946
7b42580a 99472002-03-26 Richard Henderson <rth@redhat.com>
9948
9949 * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
9950 * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
9951 * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
9952 * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
9953 (WINT_TYPE_SIZE): Fix at 32.
9954
09a6a91b 99552002-03-26 Richard Henderson <rth@redhat.com>
9956
9957 * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
9958 until after eh landing pad generation.
9959 * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
9960 * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
9961
4de3dc32 99622002-03-26 Richard Henderson <rth@redhat.com>
9963
9964 * expr.h (ADD_PARM_SIZE): One more convert for INC.
9965
2d9c8715 99662002-03-26 Phil Edwards <pme@gcc.gnu.org>
9967
9968 * gcc.c (cpp_options): Preserve relative ordering of -pedantic
9969 and warning switches.
9970 (cc1_options): Likewise.
9971
8546dce9 99722002-03-26 Hans Boehm <Hans_Boehm@hp.com>
4de3dc32 9973
8546dce9 9974 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
9975 Restore more of the signal context. Set no_reg_stack_frame.
9976 * config/ia64/unwind-ia64.c (unw_state_record):
9977 Add no_reg_stack_frame, comments.
9978 (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
9979 (uw_update_context): Adjust bsp when unwinding from leaf,
9980 but not signal frame.
9981
c7d62300 99822002-03-26 David Edelsohn <edelsohn@gnu.org>
9983
9984 * config/rs6000/aix51.h (WCHAR_TYPE): Define.
9985
dd52a190 99862002-03-26 Bob Wilson <bob.wilson@acm.org>
9987
9988 * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
9989
4d7a8451 99902002-03-26 Richard Earnshaw <rearnsha@arm.com>
9991
9992 PR target/5621
9993 * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
9994 "Add a pool_range attribute", which was lost during the ARM/Thumb
9995 merge.
9996
141e2ef6 99972002-03-26 Bob Wilson <bob.wilson@acm.org>
9998
9999 * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
10000 a register into the MAC16 accumulator.
10001
7dc61659 100022002-03-26 Andrew Cagney <ac131313@redhat.com>
10003
10004 * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
10005 (Warning Options): Document -Wswitch-enum.
10006 * toplev.c (W_options): Add -Wswitch-enum. Update comment on
10007 -Wswitch.
10008 (warn_switch_enum): Define variables.
10009 * flags.h (warn_switch_enum): Declare variables.
10010 * stmt.c (expand_end_case_type): When warn_switch_enum /
10011 -Wswitch-enum, perform switch checks.
10012 Fix PR c/5044.
a87d8cb5 10013
03db811c 100142002-03-26 Richard Earnshaw <rearnsha@arm.com>
10015
10016 * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
10017 (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
10018 (reload_muladdsi_compare0_scratch): Delete.
10019
1db16875 100202002-03-26 Loren J. Rittle <ljrittle@acm.org>
10021
10022 * doc/install.texi (*-*-freebsd*): Update.
10023
a719ae01 100242002-03-26 Richard Henderson <rth@redhat.com>
10025
714b4dd3 10026 * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
10027 (SUB_PARM_SIZE): Cast DEC to ssizetype.
10028
10029 * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
10030 types from the normal argument frame.
10031
a719ae01 10032 * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
10033 variable sized objects by reference.
10034 (sparc_va_arg): Receive them by reference too.
10035
43935856 100362002-03-26 Hartmut Penner <hpenner@de.ibm.com>
10037
10038 * config/s390/s390.c (s390_emit_epilogue): Change epilogue
a87d8cb5 10039 code to not restoring global registers.
43935856 10040
6d26a3ee 100412002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
10042
10043 * Makefile.in (ggc-common.o): Update.
10044 * c-decl.c (lang_mark_tree): Rename c_mark_tree.
10045 * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10046 * c-tree.h (c_mark_tree): New.
10047 * ggc-common.c: Include langhooks.h.
10048 (gcc_mark_trees): Use new langhook.
10049 * ggc-callbacks.c: Delete file.
10050 * ggc.h (lang_mark_tree): Remove.
10051 * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
10052 (LANG_HOOKS_INITIALIZER): Update.
10053 * langhooks.h (struct lang_hooks): New hook.
10054objc:
10055 * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
10056
4f111a84 100572002-03-25 Zack Weinberg <zack@codesourcery.com>
10058
10059 * doc/cpp.texi: Exclude entire Top node from printed manual.
10060 Move option index after directive index. Insert page breaks
10061 before GFDL and concept index. Index environment variables
10062 with command line options.
10063 * doc/cppenv.texi: Use @vtable for environment variable list.
10064 Add paragraph explaining semantics of empty elements in path
10065 variables. Exclude a cross-reference to Fishkill from the
10066 manpage. Remove an unnecessary cross-reference of the entry
10067 right above the referer. Don't use @anchor in text that goes
10068 into manpage.
10069 * doc/cppopts.texi: Cross-reference the environment variables
10070 section, not the specific environment variable, for consistency.
10071
4a65aac4 100722002-03-25 Richard Henderson <rth@redhat.com>
10073
10074 * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
10075 anywhere in the block. Don't refer to insns that have been
10076 removed from the chain. Iterate backward through the new insns.
10077 Don't refer to edges that have been removed.
10078
c0fe441c 100792002-03-26 Alan Modra <amodra@bigpond.net.au>
10080
10081 * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
10082 test for overflow of constant.
10083
0a666055 100842002-03-25 Richard Earnshaw <rearnsha@arm.com>
10085
10086 PR target/2623
10087 * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
10088 (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
10089 these patterns on arm_archv4.
10090
2a966961 100912002-03-25 Danny Smith <dannysmith@sourceforge.users.net>
10092
10093 * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
10094 int".
10095
536f5fb1 100962002-03-25 Zack Weinberg <zack@codesourcery.com>
10097
10098 * toplev.c: Don't include setjmp.h. Kill float_handler_set,
10099 float_handled, float_handler, float_signal, set_float_handler,
10100 and do_float_handler. Set handler for SIGFPE to crash_signal.
10101 * toplev.h: Don't prototype do_float_handler.
10102
10103 * c-lex.c: Fold parse_float into lex_number. Make warning
10104 about portability of hex float constants more informative, and
10105 don't issue it on top of a syntax error.
10106 * fold-const.c: Fold const_binop_1 and fold_convert_1 into
10107 their callers.
10108 * real.h: Define REAL_VALUE_ABS here...
10109 * simplify-rtx.c: ... not here. Fold check_fold_consts,
10110 simplify_unary_real, simplify_binary_real, and
10111 simplify_binary_is2orm1 into their callers.
10112 * tree.c: Fold build_real_from_int_cst_1 into caller.
10113
10114 * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
10115
10116 * tsystem.h: Include float.h here...
10117 * libgcc2.c: ... not here.
10118
52fdc102 101192002-03-25 Nick Clifton <nickc@cambridge.redhat.com>
10120
10121 Fixes for: PR bootstrap/3591, target/5676
10122 * config/mcore/mcore.h (CC1_SPEC): Define only if not already
10123 defined. Do not disable exceptions or rtti.
10124 * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
10125 mcore.h. Disable exceptions and rtti, since they are not
10126 supported by EPOC.
10127
04745efb 101282002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
10129
10130 * c-decl.c (maybe_build_cleanup): Remove.
10131 * expr.c (expand_expr): Use langhook.
10132 * langhooks-def.h (lhd_return_null_tree,
10133 LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
10134 (LANGHOOKS_INITIALIZER): Update.
10135 * langhooks.c (lhd_return_null_tree): New.
10136 * langhooks.h (struct lang_hooks): New hook.
10137 * tree-inline.c (initialize_inlined_parameters): Use langhook.
10138 * tree.h (maybe_build_cleanup): Remove.
10139
1172d780 101402002-03-25 Jakub Jelinek <jakub@redhat.com>
10141
10142 * regrename.c (build_def_use): Move recog_memoized
10143 before extract_insn.
10144
463e3bf7 101452002-03-25 Jakub Jelinek <jakub@redhat.com>
10146
10147 PR target/6043
10148 * expr.c (emit_group_store): Handle storing into CONCAT.
10149
eff62531 101502002-03-25 Jakub Jelinek <jakub@redhat.com>
10151
10152 * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
10153 corresponding MATCH_DUP.
10154
a17466fa 101552002-03-24 Richard Henderson <rth@redhat.com>
10156
0458bddc 10157 * unroll.c (unroll_loop): Zero label_map.
10158
a17466fa 10159 * gcse.c: Include except.h.
10160 * Makefile.in (gcse.o): Update.
10161
14eefc17 101622002-03-24 Richard Henderson <rth@redhat.com>
10163
10164 * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
10165 Do resolve_unique_section before shared data clause.
10166
ee6b11b0 101672002-03-24 Richard Henderson <rth@redhat.com>
10168
10169 * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
10170
029de010 101712002-03-24 Richard Henderson <rth@redhat.com>
10172
536f5fb1 10173 * recog.c (peephole2_optimize): Split blocks when EH insns are
029de010 10174 generated in the middle of a block. Do global life update if
10175 zapped EH edges.
10176
9bb22e77 101772002-03-24 Richard Henderson <rth@redhat.com>
10178
10179 * mips.c (mips_function_value): Only promote_mode for non-libcalls.
10180
d8dd302a 101812002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
10182
10183 preprocessor/3951
536f5fb1 10184 * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
d8dd302a 10185 * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
10186 (init_dependency_output): Don't make no_output decision here.
10187
29800930 101882002-03-24 Andrew Cagney <ac131313@redhat.com>
10189
10190 * stmt.c (check_for_full_enumeration_handling): Remove tests of
10191 warn_switch. Update description.
10192 (expand_end_case_type): Call check_for_full_enumeration_handling
10193 when warn_switch.
10194
b26aafcd 101952002-03-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
10196
10197 * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
10198 (m68hc11_split_move): Call it to see if the source and destination
10199 operands use the same direction auto inc/dec mode, otherwise make the
4f54fd09 10200 source an offsetable memory operand and generate an add.
b26aafcd 10201
38735756 102022002-03-24 Stephane Carrez <Stephane.Carrez@worldnet.fr>
10203
10204 * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
10205 register for operand 2.
10206 ("*subsi3_zero_extendqi"): Likewise.
10207 ("*iorhi3_gen"): Do the operation on the upper bits and then lower
10208 bits so that it is compatible with a pop.
10209 ("*andhi3_gen"): Likewise.
10210 ("xorhi3"): Likewise.
10211
e85db6f8 102122002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
10213
10214 * cppinit.c (cpp_handle_option): Set warn_endif_labels if
10215 -pedantic here...
10216 (cpp_post_options): ... not here.
10217
ffd56b21 102182002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
10219 Aldy Hernandez <aldyh@redhat.com>
10220
10221 Removal of separate preprocessor cpp0.
10222
10223 * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
10224 cpp0, install-common): Update.
10225 * c-common.c (flag_preprocess_only): New.
10226 (c_common_init): Preprocess for -E.
10227 * c-common.h (flag_preprocess_only): New.
10228 * c-decl.c (c_decode_option): Handle -E and -std=c++98.
10229 * c-objc-common.c (c_init_decl_processing): Exit quickly
10230 for NULL return from c_common_init.
10231 * cpplib.h (cpp_preprocess_file): New.
10232 * cppmain.c (main, general_init, pfile, progname): Remove.
10233 (do_preprocessing): Rename cpp_preprocess_file, don't call
10234 cpp_finish. Don't close stdout here.
10235 (setup_callbacks): Update prototype.
10236 * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
10237 Update.
10238 * tradcpp.c (main): Ignore -quiet.
10239objc:
10240 * lang-specs.h (default_compilers): Preprocess with cc1obj.
10241
881ac6b8 102422002-03-24 Richard Henderson <rth@redhat.com>
10243
10244 PR optimization/5742
10245 * machmode.def: Add inner mode field to complex modes.
10246 * config/mips/mips.c (mips_function_value): Always define. Add
10247 new argument to handle libcalls.
10248 * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
10249 (FUNCTION_VALUE): Likewise.
10250 * config/mips/abi64.h (FUNCTION_VALUE): Remove.
10251 * config/mips/mips-protos.h: Update.
10252
eef858ab 102532002-03-23 Richard Henderson <rth@redhat.com>
10254
10255 * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
10256 * config/sparc/sparc-protos.h: Update.
10257 * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
10258
5783534d 102592002-03-23 Richard Henderson <rth@redhat.com>
10260
10261 * config/sparc/gmon-sol2.c (internal_mcount): Assume either
10262 _start or _init begins the text segment.
10263
83cd69b0 102642002-03-23 David Edelsohn <edelsohn@gnu.org>
10265
10266 * config/rs6000/rs6000.h (RETURN_IN_MEMORY): Cast to HOST_WIDE_INT
10267 not HOST_WIDEST_INT.
10268 (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
10269
5db468b7 102702002-03-23 Richard Earnshaw <rearnsha@arm.com>
10271
10272 PR java/5489
10273 * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
10274 operand argument to output_return_instruction.
536f5fb1 10275 * arm.c (arm_print_operand, case 'd'): If the operand is
5db468b7 10276 const_true_rtx then just return.
10277 (arm_print_operand, case 'D'): If the operand is const_true_rtx
10278 then abort.
10279
91b18148 102802002-03-23 Andrew Cagney <ac131313@redhat.com>
10281
10282 * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
10283 (Warning Options): Document -Wswitch-default.
10284 * toplev.c (W_options): Add -Wswitch-default. Update comment on
10285 -Wswitch.
10286 (warn_switch_default): Define variable.
10287 (warn_switch): Update comment.
10288 * flags.h (warn_switch_default): Declare variable.
10289 (warn_switch): Update comment.
10290 * stmt.c (expand_end_case): Check for and, when
10291 warn_switch_no_default, warn of a missing default case.
536f5fb1 10292
786f554f 102932002-03-23 Alan Modra <amodra@bigpond.net.au>
10294
749feb5e 10295 * real.h (N): Special case 128 bit doubles.
10296
786f554f 10297 * combine.c (simplify_comparison): When widening modes, ignore
10298 sign extension on CONST_INTs.
10299
aac632cd 103002002-03-22 Bob Wilson <bob.wilson@acm.org>
10301
10302 * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
10303 passed to adjust_address. Fix comment formatting.
10304
10305
badfe841 103062002-03-22 Zack Weinberg <zack@codesourcery.com>
10307
10308 * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
10309 Always make REAL_VALUE_TYPE a struct containing an array of
10310 HOST_WIDE_INT, not a double. Tidy up the code deciding how
10311 big it is. Don't declare or use union real_extract.
10312
10313 * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
10314 decode_rtx_const, output_constant_pool), config/a29k/a29k.c
10315 (print_operand), config/arm/arm.c (output_move_double),
10316 config/arm/arm.md (consttable_4, consttable_8),
10317 config/romp/romp.c (output_fpops), config/s390/s390.h
10318 (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
10319 (xtensa_output_literal): Don't use union real_extract.
10320
10321 * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
10322 (sfmode_constant_to_ulong), config/ns32k/merlin.h
10323 (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
10324 config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
10325 (PRINT_OPERAND): Don't use local version of union
10326 real_extract.
10327
10328 * config/convex/convex.c (check_float_value), config/vax/vax.c
10329 (vax_float_literal), config/m88k/m88k.md (divdf3),
10330 config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
10331 config/pdp11/pdp11.c (output_move_quad): Don't do host
10332 arithmetic on target floating point quantities.
10333
10334 * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
10335 (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
10336
10337 * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
10338 Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
10339
10340 * real.c (earith): Test INFINITY rather than REAL_INFINITY;
10341 NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
10342 INFINITY.
10343 * print-rtl.c (print_rtx): Disable code which needs
10344 floating-point emulator.
10345 * libgcc2.c: Include float.h and use DBL_MANT_DIG,
10346 FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
10347 depending on HOST_FLOAT_FORMAT to be defined properly.
10348
10349 * config/1750a/1750a.c (get_double, float_label): Delete.
10350 (print_operand): Delete huge commented-out chunk. Use
10351 REAL_VALUE_TO_DECIMAL.
10352 * config/1750a/1750a-protos.h: Delete prototypes of deleted
10353 functions.
10354 * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
10355 IEEE_FLOAT_FORMAT.
10356 * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
10357 Use REAL_VALUE_TO_DECIMAL as ELF version does.
10358 * config/m88k/m88k.c (real_power_of_2_operand,
10359 legitimize_operand): Take the REAL_VALUE_TYPE and/or union
10360 real_extract out of the union; run the input through
10361 REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
10362 from that into the union.
10363 * config/pdp11/pdp11.c (output_move_double): Rearrange
10364 parentheses to make automatic indenter happy.
10365
10366 * doc/tm.texi (Cross-compilation): Rename node to "Floating
10367 Point" and rewrite to describe current situation. Also adjust
10368 documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
10369 match code.
10370 * doc/rtl.texi: Adjust cross reference.
10371
fc12fa10 103722002-03-22 Bob Wilson <bob.wilson@acm.org>
10373
10374 * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
10375 (xtensa_valid_move, xtensa_preferred_reload_class): Define.
10376 * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
10377 (xtensa_valid_move, xtensa_preferred_reload_class): Define to
10378 prevent use of sp as a reload register.
10379 (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
10380 non_acc_reg_operand.
10381 * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
10382 (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
10383 * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
10384 movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
10385
34cf330f 103862002-03-22 Neil Booth <neil@daikokuya.demon.co.uk>
10387
badfe841 10388 * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
10389 * cpplex.c (unterminated): Delete.
10390 (parse_string): No string literal may extend over multiple
10391 lines. Suppress the error when preprocessing assembly.
34cf330f 10392 * cppmain.c (scan_translation_unit): Strings are single-line.
10393
badfe841 10394 * doc/cpp.texi: Update to match.
34cf330f 10395
0837bbb7 103962002-03-22 Jakub Jelinek <jakub@redhat.com>
10397
10398 PR optimization/5854
10399 * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
10400 Shut up warnings.
10401 (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
10402 (EXTRA_CONSTRAINT): Use S for non-push memory operand.
10403 * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
10404 const0 if scratch register was not allocated.
10405 (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
10406 m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
10407 with GEN_INT (...).
10408 (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
10409 * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
10410 with GEN_INT (...) everywhere. Remove constraints in define_split
10411 patterns.
10412 (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
10413 require scratch register for setting 0 into regs/non-pushable memory.
10414
1a6a6dab 104152002-03-22 Alexandre Oliva <aoliva@redhat.com>
10416
10417 * config/mips/mips.h (MASK_RETURN_ADDR): Define.
10418 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
10419
923acdd5 104202002-03-22 Phil Edwards <pme@gcc.gnu.org>
10421
10422 * cpplib.h (struct cpp_options): New member, warn_endif_labels.
10423 * cppinit.c (cpp_create_reader): On by default.
10424 (cpp_handle_option): Handle -W[no-]endif-labels.
10425 (cpp_post_options): Also enable if -pedantic.
10426 * cpplib.c (do_else): Use it.
10427 (do_endif): Likewise.
10428 * doc/cppopts.texi: Document new option.
10429 * doc/invoke.texi: Document new option.
10430
51b76077 104312002-03-22 Lars Brinkhoff <lars@nocrew.org>
10432
10433 * config/i386/i386.c, config/i386/i386.md: Change all occurences
10434 of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
10435
1707315d 104362002-03-22 Alexandre Oliva <aoliva@redhat.com>
10437
10438 * flow.c (calculate_global_regs_live): Clear aux fields of
10439 ENTRY and EXIT.
10440
e2c2ccf6 104412002-03-22 Jakub Jelinek <jakub@redhat.com>
10442
10443 * config/v850/v850.c (v850_reorg): Only call alter_subreg on
10444 REG or MEM subregs, pass rtx * instead of rtx to it.
10445 * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
10446 rtx * instead of rtx to alter_subreg.
10447 * config/m32r/m32r.c (gen_split_move_double): Likewise.
10448 * config/pj/pj.c (pj_output_rval): Likewise.
10449
3a7c3680 104502002-03-22 Richard Henderson <rth@redhat.com>
10451
10452 PR target/3177
10453 * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
10454 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
10455 * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
10456 (ia64_expand_prologue): Look at int_regs, not words, for number
10457 of incomming int regs.
10458
d20c8e15 104592002-03-22 Andrew MacLeod <amacleod@redhat.com>
10460
10461 * expr.c (expand_expr): A RESULT_DECL is part of a call.
10462
598a47d6 10463Fri Mar 22 16:30:42 CET 2002 Jan Hubicka <jh@suse.cz>
10464
10465 * toplev.c (flag_loop_optimize, flag_crossjumping):
10466 New static variables.
10467 (rest_of_compilation): Conditionalize crossjumping and
10468 loop optimizer.
10469 (parse_options_and_default_flags): Default loop_optimize and
10470 crossjumping.
10471 (lang_independent_options): Add -fcrossjumping and -floop-optimize
10472 * invoke.texi (crossjumping, loop-optimize): Document.
10473
a360050d 104742002-03-22 Richard Sandiford <rsandifo@redhat.com>
10475
10476 * real.c (eiisneg): Move outside #ifdef NANS.
10477
26fb1781 10478Fri Mar 22 12:08:36 CET 2002 Jan Hubicka <jh@suse.cz>
10479
10480 * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
10481 frequencies match; avoid match on different loop depths.
10482 (try_crossjump_to_bb): Kill tests that no longer brings time
10483 savings.
10484 * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
10485 updating code.
10486 (split_edge): Likewise.
10487
10488 * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
10489 variable.
10490
10491 * Makefile.in (cfgrtl): Add insn-config.h depenendency.
10492 * cfgrtl.c: Include insn-config.h
10493 (split_block) Dirtify block in presence of conditional execution
10494
09a41b31 104952002-03-22 Richard Sandiford <rsandifo@redhat.com>
10496
10497 * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
10498 * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
10499 (function_arg): Constify CUMULATIVE_ARGS.
10500 (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
10501 * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
10502 (UNITS_PER_DOUBLE): New macro.
10503 (SETUP_INCOMING_VARARGS): Define. Use mips_setup_incoming_varargs.
10504 (CUMULATIVE_ARGS): Reformat. Remove num_adjusts workaround and
10505 last_arg_fp field. Replace arg_words and fp_arg_words with gp_regs,
10506 fp_regs and stack_words.
10507 (EABI_FLOAT_VARARGS_P): New macro.
10508 * config/mips/mips.c (struct mips_arg_info): New.
10509 (mips_arg_info): New function.
10510 (function_arg_advance): Use it. Add adjustment instructions here
10511 rather than in function_arg.
10512 (function_arg): Constify CUMULATIVE_ARGS. Use mips_arg_info. Check
10513 for VOIDmode at the beginning of the function.
10514 (function_partial_nregs): Constify CUMULATIVE_ARGS. Use mips_arg_info.
10515 (function_arg_pass_by_reference): Likewise.
10516 (mips_setup_incoming_varags): New, largely based on old abi64.h code.
10517 (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
10518 (mips_va_start): Likewise. Use the new stack_words field of
10519 CUMULATIVE_ARGS to set up overflow area. Reformat.
10520 (mips_va_arg): Test EABI_FLOAT_VARARGS_P. Unify EABI handling of
10521 doubles and other types, aligning the overflow pointer for non-doubles
10522 too. Remove some code duplication. Replace hard-coded constants.
10523
f1b1bcc4 105242002-03-22 Richard Sandiford <rsandifo@redhat.com>
10525
10526 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
10527 (CLASS_UNITS): Undefine.
10528 (CLASS_MAX_NREGS): Use FP_INC.
10529 * config/mips/mips.c (compute_frame_size): Likewise.
10530 (override_options): Use FP_INC and UNITS_PER_FPVALUE.
10531
78a11351 105322002-03-22 Neil Booth <neil@daikokuya.demon.co.uk>
10533
10534 * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
10535 prototype, and handle lexing numbers and identifiers.
10536 (parse_identifier): Update to new form of parse_slow.
10537 (parse_number): Fast path only, use parse_slow otherwise.
10538 (_cpp_lex_direct): Update calls to parse_number.
10539
12c94d25 105402002-03-21 DJ Delorie <dj@redhat.com>
10541
10542 * bb-reorder.c (make_reorder_chain_1): Protect against
10543 when redundant edges are omitted.
10544 * predict.c (dump_prediction): Likewise.
10545
91eb7bbc 105462002-03-21 Richard Henderson <rth@redhat.com>
10547
10548 PR target/5996
10549 * fixinc/inclhack.def (solaris_stdio_tag): New.
10550 * fixinc/fixincl.x: Regenerate.
10551
cad0b4b0 105522002-03-21 Eric Botcazou <ebotcazou@multimania.com>
10553
10554 PR c/5597
10555 * c-typeck.c (process_init_element): Flag non-static
10556 initialization of a flexible array member as illegal.
10557
c4f7b734 105582002-03-22 Alan Modra <amodra@bigpond.net.au>
10559
10560 * config/rs6000/t-linux64: New.
10561 * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
10562 t-ppccomm. Use t-rs6000 and t-linux64.
10563 (powerpc64-*-gnu* <tmake_file>): Likewise.
1a17e78f 10564 * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
10565 * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
10566 * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
c4f7b734 10567
c31da6e7 105682002-03-21 Aldy Hernandez <aldyh@redhat.com>
10569
cad0b4b0 10570 * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
10571 flag_really_no_inline instead of optimize == 0.
c31da6e7 10572
cad0b4b0 10573 * c-objc-common.c (c_cannot_inline_tree_fn): Same.
c31da6e7 10574
cad0b4b0 10575 * cp/tree.c (cp_cannot_inline_tree_fn): Same.
c31da6e7 10576
cad0b4b0 10577 * flags.h (flag_really_no_inline): New.
c31da6e7 10578
a9bc793b 10579 * c-common.c (c_common_post_options): Initialize
cad0b4b0 10580 flag_really_no_inline.
c31da6e7 10581
cad0b4b0 10582 * toplev.c (flag_really_no_inline): New.
c31da6e7 10583
5bcbe7f8 105842002-03-21 Jakub Jelinek <jakub@redhat.com>
10585
10586 * config/avr/avr.md (length): Fix length computation for
10587 conditional branches.
10588
20325f61 105892002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
10590
10591 * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
10592 sdbout.o, profile.o): Update.
10593 * c-common.c (c_common_nodes_and_builtins): Use pushdecl
10594 langhook.
10595 * c-common.h (gettags): Move here from tree.h.
10596 * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
10597 insert_block, getdecls, kept_level_p, global_bindings_p): New.
10598 * dbxout.c (dbxout_init): Use getdecls langhook.
10599 * expr.c (expand_expr): Use insert_block langhook.
10600 * fold-const.c: Include langhooks.h.
10601 (fold_range_test, fold_binary_op_with_conditional_arg,
10602 fold): Use global_bindings_p langhook.
10603 * integrate.c (expand_inline_function): Use insert_block langhook.
10604 * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
10605 LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
10606 LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
10607 LANG_HOOKS_GETDECLS): New.
10608 (LANG_HOOKS_INITIALIZER): Update.
10609 * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
10610 langhook.
10611 * langhooks.h (struct lang_hooks_for_decls): New.
10612 (struct lang_hooks): Update.
10613 * profile.c: Include langhooks.h.
10614 (output_func_start_profiler): Use new langhooks.
10615 * sdbout.c: Include langhooks.h.
10616 (sdbout_init, sdbout_finish): Use getdecls langhook.
10617 * stmt.c: Include langhooks.h.
10618 (expand_fixup, fixup_gotos): Use new langhooks.
10619 * stor-layout.c: Include langhooks.h.
10620 (variable_size): Use global_bindings_p langhook.
10621 * toplev.c (compile_file): Use getdecls langhook.
10622 * tree-inline.c (remap_block): Use insert_block langhook.
10623 * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
10624 insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
10625
12f6b618 106262002-03-21 Richard Henderson <rth@redhat.com>
10627
10628 * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
10629 constants in .data when -fpic.
10630
f35b9ec5 106312002-03-21 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
10632
10633 * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
10634 where appropriate.
10635
e47a07bc 106362002-03-21 Tom Tromey <tromey@redhat.com>
10637
10638 * config/i386/sol2.h (ASM_QUAD): Undef. Fixes PR bootstrap/5948.
10639
98f4973a 10640Thu Mar 21 09:50:48 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10641
f42870f5 10642 * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
0beeb343 10643
98f4973a 10644 * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
10645
da3ac634 106462002-03-21 Eric Botcazou <ebotcazou@multimania.com>
10647 Richard Henderson <rth@redhat.com>
10648
10649 PR c/5354
10650 * c-common.c (c_expand_expr): Preserve result of a statement
10651 expression if needed.
10652
e4e139d3 106532002-03-21 Jakub Jelinek <jakub@redhat.com>
10654
10655 PR bootstrap/4195
10656 * genrecog.c (maybe_both_true_mode): Remove.
10657 (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
10658 * machmode.def (Pmode): Likewise.
10659
c352cbc7 10660Thu Mar 21 01:55:06 EST 2002 John Wehle (john@feith.com)
10661
10662 * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
10663 (nonlocal_mentioned_p_1): New function.
10664 (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
10665 (nonlocal_set_p, nonlocal_set_p_1): Likewise.
10666 (mark_constant_function): Recognize pure functions.
10667 * rtl.h (global_reg_mentioned_p): New prototype.
10668 * rtlanal.c (global_reg_mentioned_p,
10669 global_reg_mentioned_p_1): New function.
10670
03112946 106712002-03-21 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10672
10673 * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
10674 UNIX assert.h.
10675 * fixinc/fixincl.x: Regenerate.
10676
9f61d572 106772002-03-20 Jason Merrill <jason@redhat.com>
10678
10679 * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
10680
d345230a 106812002-03-20 Michael Meissner <meissner@redhat.com>
10682
10683 * doc/invoke.texi (Optimize Options): Document that -O2 sets
10684 -fstrict-aliasing.
10685
efa381d9 106862002-03-20 Bob Wilson <bob.wilson@acm.org>
10687
10688 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
10689 ".literal_position" directive before the constant pool.
10690
b4260534 106912002-03-20 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
10692
10693 * doc/contrib.texi (Contributors): Update Geoffrey Keating.
10694 Add Craig Rodrigues.
10695 Add Brad Lucier to testers.
10696
c00688b9 106972002-03-20 Jakub Jelinek <jakub@redhat.com>
10698
10699 PR target/4792
10700 * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
10701 to if_then_else.
10702 (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
10703 * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
10704 instead of insn_extract.
10705
c1caaef5 107062002-03-20 Jakub Jelinek <jakub@redhat.com>
10707
10708 PR bootstrap/4192
c00688b9 10709 * config/fr30/fr30.md (jump): Remove clobber of fixed register.
c1caaef5 10710
10711 * genemit.c (output_added_clobbers_hard_reg_p): Only output return
10712 stmt if some case has been output.
10713
ed16175e 107142002-03-20 Jakub Jelinek <jakub@redhat.com>
10715
10716 PR c/5972
10717 * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
10718 movsfcc_1, movdfcc_1): Add %O2.
10719 * config/i386/i386.c (print_operand): Handle %ON.
10720 Print . before float condition codes in Sun as cmov syntax.
10721 * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
10722 * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
10723 no longer true.
10724
5023f286 107252002-03-20 Philip Blundell <pb@nexus.co.uk>
10726
10727 * config/arm/arm.c (arm_output_epilogue): Don't generate separate
10728 return instruction if PC was popped.
10729
42a92fdf 107302002-03-20 Bob Wilson <bob.wilson@acm.org>
10731
10732 * config/xtensa/xtensa.md: Remove unused type attributes.
10733 (adddi_carry, subddi_carry): Change type attribute to "multi".
10734
ed16175e 107352002-03-19 Dale Johannesen <dalej@apple.com>
fe1b1167 10736
10737 PR optimization/5999, middle-end/5731
10738 * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
10739 multiplications by reciprocals.
10740
96554925 107412002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
10742
10743 * Makefile.in: Update.
10744 * c-common.c: Include langhooks.h.
10745 (inline_forbidden_p): Use new hook.
10746 * diagnostic.c: Include langhooks.h.
10747 (format_with_decl, announce_function,
10748 default_print_error_function): Use new hook.
10749 * dwarf2out.c (dwarf2_name): Use new hook.
10750 * function.c: Include langhooks.h.
10751 (init_function_start): Use new hook.
10752 * langhooks-def.h (lhd_decl_printable_name): New.
10753 (LANGHOOKS_DECL_PRINTABLE_NAME): New.
10754 (LANGHOOKS_INITIALIZER): Update.
10755 * langhooks.c (lhd_decl_printable_name): New.
10756 * langhooks.h (struct lang_hooks): New hook.
10757 * toplev.c (decl_name, decl_printable_name): Remove.
10758 (open_dump_file): Use new hook.
10759 (process_options): Remove old hook.
10760 * tree.h (decl_printable_name): Remove.
10761objc:
10762 * objc-act.c (objc_init): Remove old hook.
10763 (objc_printable_name): Export.
10764 * objc-act.h (objc_printable_name): New.
10765 * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
10766
d645d87a 107672002-03-19 Jim Blandy <jimb@redhat.com>
10768
10769 * c-lex.c (cb_file_change): Pass the #inclusion's line number to
10770 the start_source_file debug hook, not the current line number.
10771
1c6bdf07 107722002-03-19 Richard Henderson <rth@redhat.com>
10773
10774 * flow.c (EH_USES): Provide default.
10775 (calculate_global_regs_live): Use it for EH edges and noreturn calls.
10776 * doc/tm.texi (EH_USES): New.
10777
10778 * config/ia64/ia64.c (ia64_eh_uses): New.
10779 * config/ia64/ia64-protos.h: Update.
10780 * config/ia64/ia64.h (EH_USES): New.
10781
23e7e0fe 107822002-03-19 Richard Henderson <rth@redhat.com>
10783
10784 * varasm.c (output_constant_def): Fix stupid typo.
10785
7cb6ef9c 107862002-03-19 Richard Henderson <rth@redhat.com>
10787
447fd9a6 10788 PR 5879
7cb6ef9c 10789 * except.c (current_function_has_exception_handlers): New.
10790 * except.h: Declare it.
10791 * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
10792 Combine tests that disable all sibcalls for the function.
10793
0b5e8ccd 107942002-03-19 Olivier Hainque <hainque@act-europe.fr>
10795
10796 * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
10797 for INTEGER_CST.
10798
5b2a5245 107992002-03-19 Richard Henderson <rth@redhat.com>
10800
341e9754 10801 PR 5977, 5991
5b2a5245 10802 * config/ia64/ia64.c: Revert 2002-03-01 patch.
10803 * config/ia64/ia64.h (INIT_EXPANDERS): New.
10804
920e5093 108052002-03-19 Jim Blandy <jimb@redhat.com>
10806
10807 * cppmacro.c (cpp_macro_definition): Emit a space after the macro
10808 name, even if the replacement list contains no tokens, as required
10809 by Dwarf.
10810
007bab64 108112002-03-19 Jason Merrill <jason@redhat.com>
10812
2a9997f3 10813 * varasm.c (globalize_decl): Get the name from the RTL, not
10814 DECL_ASSEMBLER_NAME.
10815
007bab64 10816 * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
10817
e52ea370 108182002-03-19 Bob Wilson <bob.wilson@acm.org>
10819
10820 * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
10821 subdi_carry): Define.
10822
8abd1171 108232002-03-19 David Edelsohn <edelsohn@gnu.org>
10824
10825 * config/rs6000/rs6000.c (rs6000_override_options): Only warn
10826 about -fpic/-fPIC if extra_warnings set.
10827
506664d9 108282002-03-19 David Edelsohn <edelsohn@gnu.org>
10829
10830 * expr.c (expand_expr): Sign-extend CONST_INT generated from
10831 TREE_STRING_POINTER.
cb19c5ed 10832 * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
506664d9 10833
1508f037 10834Tue Mar 19 14:12:32 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10835
10836 * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
10837 in favor of SP if FRAME_POINTER_REQUIRED is false.
10838
2d232d05 108392002-03-19 Lars Brinkhoff <lars@nocrew.org>
10840
10841 * emit-rtl.c (gen_int_mode): New function.
10842 * rtl.h: Prototype for it.
10843 * combine.c (make_extraction, simplify_comparison), expmed.c
10844 (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
10845 (convert_modes, store_field), optabs.c (expand_fix),
10846 simplify-rtx.c (neg_const_int, simplify_unary_real),
10847
10848 * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
10849 Use it instead of GEN_INT (trunc_int_for_mode (...)).
10850
78b80426 108512002-03-19 Jakub Jelinek <jakub@redhat.com>
10852
10853 PR c/5656
10854 * langhooks.h (struct lang_hooks_for_tree_inlining): Add
10855 convert_parm_for_inlining.
10856 * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
10857 Define.
10858 * langhooks-def.h: Likewise.
10859 * objc/objc-lang.c: Likewise.
10860 * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
10861 function.
10862 * tree-inline.c (initialize_inlined_parameters):
10863 Call convert_parm_for_inlining lang hook if needed.
10864 * c-typeck.c (c_convert_parm_for_inlining): New function.
10865 * c-tree.h (c_convert_parm_for_inlining): Add prototype.
10866
10ab549e 108672002-03-18 Mark Mitchell <mark@codesourcery.com>
10868
badfe841 10869 * calls.c (precompute_arguments): Do not assume that temporaries
10ab549e 10870 can be destroyed after expanding the argument.
10871 (expand_call): Likewise.
10872
534bddd8 108732002-03-15 Eric Christopher <echristo@redhat.com>
10874
10875 * config/mips/mips.md (movdf_internal2): Add two new move constraints.
10876 Fix register preference on last change.
10877 * config/mips/mips.c (mips_return_in_memory): New function.
10878 * config/mips/mips.h (RETURN_IN_MEMORY): Use.
10879 * config/mips/mips-protos.h: Declare.
10880 * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
10881 * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
10882
d04e6ab6 108832002-03-18 Alexandre Oliva <aoliva@redhat.com>
10884
e7f722c0 10885 * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
10886 a register too.
10887 (anddi3, iorsi3): Likewise.
10888
8b1f17c6 10889 * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
10890 use %gprel for symbols that are going to be placed in linkonce
10891 sections.
10892
d04e6ab6 10893 * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
10894 RETURN_ADDRESS_POINTER_REGNUM to $ra.
10895 (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
10896 not needed. Disregard leaf_function_p().
10897 (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
10898 mips16 frame pointer.
10899 * config/mips/mips.md (store ra): Only to small SP offsets.
10900 2001-08-22 Graham Stott <grahams@redhat.com>
10901 * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
10902 return a REG rtx for the return address register.
10903
7ad1c420 109042002-03-18 Bob Wilson <bob.wilson@acm.org>
10905
10906 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
10907 constant-pool addresses as "mode-dependent".
10908 (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
10909
4c183732 109102002-03-18 Jakub Jelinek <jakub@redhat.com>
10911
10912 PR target/5740
10913 * expr.c (emit_group_load): Use extract_bit_field if
10914 needed for CONCAT arguments.
10915
fd957ef3 109162002-03-18 Richard Earnshaw <rearnsha@arm.com>
10917
5c29d853 10918 PR target/4863
fd957ef3 10919 * arm.md (tablejump): Make this a define_expand. For PIC add the
10920 offset to the base of the table.
10921 (thumb_tablejump): Matcher for Thumb tablejump insn.
10922 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
10923 as the difference of two labels.
10924 * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
10925 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
10926 tables in the code.
10927 * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
10928 * arm.c (get_jump_table_size): If the table is not in the text
10929 section, return zero.
534bddd8 10930
9e8503e6 109312002-03-18 Bernd Schmidt <bernds@redhat.com>
10932
10933 * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
10934 of gen_rtx_SUBREG.
10935 (arm_reload_out_hi): Use gen_lowpart instead of
10936 gen_rtx_SUBREG to access QImode components.
10937 * config/arm/arm.md: Disable zero_extend split for QImode
10938 subregs in BIG_ENDIAN mode.
10939 (storehi_bigend): Match use of least significant byte.
10940 (storeinthi): Remove extraneous SUBREG.
5606b4a6 10941 Add missing construction of operands[2].
9e8503e6 10942 (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
10943 (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
10944 Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
10945
44c08f4f 109462002-03-18 Aldy Hernandez <aldyh@redhat.com>
10947
2d232d05 10948 * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
10949 any_operand.
44c08f4f 10950
301416af 109512002-03-17 Richard Henderson <rth@redhat.com>
10952
10953 * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
10954 explicitly.
10955
00e2a1ff 109562002-03-17 Hans-Peter Nilsson <hp@bitrange.com>
10957
10958 * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
10959 (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
10960
81ee4ed6 109612002-03-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10962
d980ce5a 10963 * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
10964
81ee4ed6 10965 * predict.c (estimate_bb_frequencies): Delete unused variables.
10966
59ec9229 109672002-03-17 Richard Henderson <rth@redhat.com>
10968
10969 * config/ia64/ia64.c (ia64_attribute_table): Move before
10970 targetm definition. Make static.
10971
b78207a0 109722002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
10973
10974 * c-common.h (yyparse, c_common_parse_file): New.
10975 * c-lang.c: Include c-common.h.
10976 (LANG_HOOKS_PARSE_FILE): Redefine.
10977 * c-lex.c: Include c-common.h.
10978 (yyparse): Rename c_common_parse_file. Call yyparse.
10979 * c-parse.in (yyparse): Remove macro.
10980 * c-tree.h (yyparse_1): Remove.
10981 * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
10982 (LANG_HOOKS_INITIALIZER): Update.
10983 * langhooks.h (struct lang_hoooks): New hook parse_file.
10984 * toplev.c (compile_file): Use parse_file hook.
10985 * tree.h (yyparse): Remove.
59ec9229 10986 * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
b78207a0 10987
d3988102 109882002-03-17 Hans-Peter Nilsson <hp@bitrange.com>
10989
a96d9926 10990 * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
10991 float_truncate, not fix.
10992 ("*truncdfsf2_real"): Ditto.
10993 ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
10994
d3988102 10995 * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
10996
b83113dd 109972002-03-16 Alexandre Oliva <aoliva@redhat.com>
10998
c7a20c1f 10999 * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
11000 (s8), but rather HARD_FRAME_POINTER_REGNUM. Add parentheses
11001 where appropriate. Make the second reference to
11002 leaf_function_p a function call, as intended. Reindented.
11003
daef6af6 11004 * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
11005 * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
11006
7505da85 11007 * config/mips/mips.md (addsi3, adddi3): Use scratch register to
11008 add register to non-constant into sp.
11009
b83113dd 11010 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
11011 * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
11012 (mips16_gp_pseudo_rtx): Lose.
11013 (INIT_EXPANDERS): Deleted.
11014 * config/mips/mips.c (mips_init_machine_status): New.
11015 (mips_free_machine_status): New.
11016 (mips_mark_machine_status): New.
11017 (override_options): Set them.
11018 (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
11019 (struct machine_function): ... new. Replaced all references.
11020 (mips_add_gc_roots): Don't mark them.
11021 (embedded_pic_fnaddr_reg): New, extracted from...
11022 (embedded_pic_offset): ... here.
11023 * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
11024 (movsi): Likewise.
11025
9ec9f6b6 110262002-03-16 Neil Booth <neil@daikokuya.demon.co.uk>
11027
11028 * cppinit.c: Revert -MD removal.
11029
d781471b 110302002-03-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11031
11032 * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
11033 soft registers by default for 68HC12.
11034 (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
11035 when compiling with -fomit-frame-pointer.
11036 (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
11037 (expand_epilogue): Likewise.
11038 (m68hc11_gen_rotate): Use exg when rotating by 8.
11039
b8168c4c 110402002-03-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11041
11042 * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
11043 * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
11044 (splits): Remove unused add splits.
11045 ("*addhi3_68hc12"): Tune constraints.
11046 ("addhi_sp"): Try to use X instead of Y in all cases and if the
11047 constant fits in 8-bits and D is dead use abx/aby instructions.
11048 ("*addhi3"): Remove extern declaration of ix_reg.
11049 ("*subsi3"): Optimize and provide new split.
11050 ("subhi3"): Cleanup.
11051 ("*subhi3_sp"): Avoid saving X if we know it is dead.
11052 (arith splits): For 68hc12 save the address register on the stack
11053 and do the arithmetic operation with a pop.
11054
af03ef00 110552002-03-16 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11056
11057 * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
11058 allocating QImode in address registers.
11059 ("*movqi_m68hc11"): Likewise.
11060
5b9c5bf5 11061Sat Mar 16 12:57:28 CET 2002 Jan HUbicka <jh@suse.cz>
11062
11063 * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
11064
779370e8 110652002-03-16 Neil Booth <neil@daikokuya.demon.co.uk>
11066
11067 * cppinit.c (print_help): Display -MD and -MMD.
11068 Don't display usage string. Update assertion syntax and
11069 typo.
11070 (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
11071 (cpp_handle_option): Update.
11072
8a48b8c8 110732002-03-15 Chris Demetriou <cgd@broadcom.com>
11074
11075 * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
11076 MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
11077 and define it so that regardless of target CPU size,
11078 __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
11079 of "int" rather than "long."
11080
0514cfdc 110812002-03-15 Richard Henderson <rth@redhat.com>
11082
11083 * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
11084 size as a tree.
11085
8ffe78c7 110862002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11087
11088 * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
11089 ("tstqi" split): Avoid using memory for tstqi on address register.
11090 (splits): Remove constraints.
11091 ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
11092 ("cmpdf", "cmpsf"): Remove since not used.
11093 ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
11094 (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
11095
0bae8829 110962002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11097
11098 * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
11099 ("neghi2"): Tighten constraints.
11100 ("one_cmplsi2"): Optimize and simplify split.
11101 * config/m68hc11/larith.asm (__negsi2): Likewise for library.
11102
cae3e7b9 111032002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11104
11105 * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
11106 and split of AND operation to clear the upper bits.
11107 ("*logicalsi3_zextqi"): Likewise.
11108 ("*logicallhi3_zexthi_ashift8"): Likewise.
11109 ("*logicalsi3_silshr16"): Likewise.
11110 ("logicalsi3_silshl16"): Likewise.
11111 ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
11112
690a8e84 111132002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11114
11115 * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
11116 (m68hc11_indirect_p): New function.
11117 (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
11118 (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
11119 TARGET_M6812.
11120 (asm_print_register): Likewise.
11121 * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
11122 (m68hc11_indirect_p): Declare.
11123 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
11124 (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
11125 (TARGET_SWITCHES): New option -mrelax.
11126 * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
11127 destination.
11128 ("iorsi3", "xorsi3"): Likewise.
11129 ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
11130 ("*andhi3_mem"): New to handle destination in memory with bclr
11131 and a scratch register.
11132 ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
11133 ("*andhi3_const"): New when operand2 is constant.
11134 ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
11135 ("*andhi3_gen"): Cleanup of the old "andhi3".
11136 ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
11137 ("xorqi3"): Update constraints.
11138
1a5f82e2 111392002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11140
11141 * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
11142 for reg_equiv_memory_loc when the operand is a register that does
11143 not get a hard register (stack location).
11144 (tst_operand): After reload, accept all memory operand.
11145 (symbolic_memory_operand): Fix detection of symbolic references.
11146 * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
11147 accept symbols and any constant.
11148
ea1cd8de 111492002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11150
11151 * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
11152 note on the insn that sets the soft frame register.
11153 (must_parenthesize): ix and iy are also reserved names.
11154 (print_operand_address): One more place where parenthesis are required
11155 to avoid confusion with register names.
11156 (m68hc11_gen_movhi): Allow push of stack pointer.
11157 (m68hc11_check_z_replacement): Fix handling of parallel with a
11158 clobber.
11159 (m68hc11_z_replacement): Must update the REG_INC notes to tell what
11160 the replacement register is.
11161 * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
11162 and D8_REGS classes.
11163 (MODES_TIEABLE_P): All modes are tieable except QImode.
11164
3f340f35 111652002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11166
11167 * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
11168 (___subdi3): Likewise.
11169 (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
11170 (__map_data_section): Optimize 68hc11 case.
11171
f836d492 111722002-03-15 Stephane Carrez <Stephane.Carrez@worldnet.fr>
11173
11174 * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
11175 than a shift to avoid adding a register with itself.
11176 (m68hc11_memory_move_cost): Take into account NO_REGS.
11177 (m68hc11_register_move_cost): Update and use memory move cost
11178 for soft registers.
11179 (m68hc11_address_cost): Make cost of valid offset not 0 so that
11180 it gives more opportunities to cse to optimize.
11181 * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
11182 * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
11183
7b6facbf 111842002-03-15 Mark Mitchell <mark@codesourcery.com>
11185
11186 * c-common.c (statement_code_p): Handle CLEANUP_STMT.
11187 * c-common.def (CLEANUP_STMT): New tree node.
11188 * c-common.h (CLEANUP_DECL): New macro.
11189 (CLEANUP_EXPR): Likewise.
11190 * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
11191 * expr.c (expand_expr): Tidy.
11192 * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
11193 * tree-inline.c (initialize_inlined_parameters): Clean up
11194 new local variables.
11195
075f5855 111962002-03-15 Jakub Jelinek <jakub@redhat.com>
11197
11198 PR bootstrap/4128
11199 * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
11200 before movrXX only, use reg_overlap_mentioned_p.
11201 Only special case NE if just one insn can be generated.
11202
6959d2c2 112032002-03-15 Jason Merrill <jason@redhat.com>
11204
11205 * varasm.c (assemble_variable): Call resolve_unique_section before
11206 checking DECL_SECTION_NAME. Use zeros for a decl with DECL_INITIAL
11207 of error_mark_node.
11208
f5b3169c 112092002-03-15 Richard Earnshaw <rearnsha@arm.com>
11210
11211 PR target/5170
11212 * arm.md (split pattern for thumb shiftable immediates): Add comment
11213 explaining non-obvious test.
11214
9aec9406 112152002-03-15 Richard Earnshaw <rearnsha@arm.com>
11216
11217 PR target/5712
11218 * arm.md (movaddr, movaddr_insn): Delete.
11219
c4c3877b 112202002-03-15 Jason Merrill <jason@redhat.com>
11221
11222 * toplev.c (wrapup_global_declarations): Clarify variable handling.
11223 -fkeep-static-consts doesn't apply to comdats.
11224
5626f4cd 112252002-03-14 Richard Henderson <rth@redhat.com>
11226
11227 * c-decl.c: Include c-pragma.h.
11228 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
11229 (finish_function): Tidy.
11230 * c-pragma.c: Include c-common.h.
11231 (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
11232 (handle_pragma_weak): Use them.
11233 (init_pragma): Register pending_weaks.
11234 * c-pragma.h (maybe_apply_pragma_weak): Declare.
11235 * print-tree.c (print_node): Print DECL_WEAK.
11236 * varasm.c (mark_weak_decls): Remove.
11237 (remove_from_pending_weak_list): Remove.
11238 (add_weak): Remove.
11239 (asm_emit_uninitialised): Call globalize_decl for weak commons.
11240 (weak_decls): Make a tree_list.
11241 (declare_weak): Cons weak_decls directly.
11242 (globalize_decl): Remove weak_decls elements directly.
11243 (weak_finish): Simplify weak_decls walk. Don't weaken unused
11244 symbols. Don't pretend to handle aliases.
11245 (init_varasm_once): Update weak_decls registry.
11246 * Makefile.in: Update dependencies.
11247
60e8331c 112482002-03-14 Richard Henderson <rth@redhat.com>
11249
11250 PR target/5312
11251 * config/ia64/ia64.c: Include tm_p.h last.
11252 (gen_nop_type): Remove duplicate definition.
11253 (cycle_end_fill_slots): Set sched_data for second L slot.
11254 (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
11255 (nop_cycles_until): Fix typos.
11256
f456a8bd 112572002-03-15 Jakub Jelinek <jakub@redhat.com>
11258
11259 PR optimization/5891
11260 * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
11261
a3a14c95 112622002-03-14 David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
11263
11264 * config/ia64/unwind-ia64.c: Handle copy_state and label_state
11265 descriptors correctly.
11266
0b11ae2e 112672002-03-14 Michael Meissner <meissner@redhat.com>
11268
11269 * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
11270 100, allowing MAX_UNROLLED_INSNS to be overridden.
11271
11272 * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
11273 --param.
11274
11275 * unroll.c (params.h): Include.
11276 (MAX_UNROLLED_INSNS): Delete, now in params.h.
11277
11278 * doc/invoke.texi (--param max-unroll-insns): Document.
11279
11280 * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
11281
a058e94a 112822002-03-14 Richard Earnshaw <rearnsha@arm.com>
11283
11284 * arm.md: Fix warnings about constraints in peepholes and splits.
11285
604b7b22 112862002-03-14 Zack Weinberg <zack@codesourcery.com>
11287
11288 * cpphash.h (struct lexer_state): Remove line_extension member.
11289 * cpplib.c (dequote_string, do_linemarker): New functions.
11290 (linemarker_dir): New data object.
11291 (DIRECTIVE_TABLE): No longer need to interpret #line in
11292 preprocessed source. Delete obsolete comment about return
11293 values of handlers.
11294 (end_directive, directive_diagnostics, _cpp_handle_directive):
11295 Don't muck with line_extension.
11296 (directive_diagnostics): No need to issue warnings for
11297 linemarkers here.
11298 (_cpp_handle_directive): Issue warnings for linemarkers here,
11299 when appropriate. Dispatch linemarkers to do_linemarker, not
11300 do_line.
11301 (do_line): Code to handle linemarkers split out to do_linemarker.
11302 Convert escape sequences in filename argument, both places.
11303
11304 * cppmacro.c (quote_string): Rename cpp_quote_string and
11305 export. All callers changed.
11306 * cpplib.h (cpp_quote_string): Prototype.
11307 * cppmain.c (print_line): Call cpp_quote_string on to_file
11308 before printing it.
11309
11310 * doc/cpp.texi: Document that escapes are now interpreted in
11311 #line and in linemarkers, and that non-printing characters are
11312 converted to octal escapes when linemarkers are generated.
11313
11314Thu Mar 14 19:04:29 CET 2002 Jan Hubicka <jh@suse.cz>
0f43048e 11315
11316 * emit-rtl.c (try_split): Use delete_insns.
11317 * recog.c (split_all_insns): Fix terminating condition.
11318
73dd1c00 113192002-03-14 Richard Earnshaw <rearnsha@arm.com>
11320 Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
11321
11322 PR target/5828
11323 * arm.c (arm_output_epilogue): Fix floating-point register save
11324 adjustment when using a frame pointer.
11325
8c9bf23a 113262002-03-14 Richard Sandiford <rsandifo@redhat.com>
11327
11328 * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
11329 * config/mips/mips.c (compute_frame_size): Retrofit them here.
11330 (save_restore_insns, mips_expand_epilogue): And here.
11331 (build_mips16_call_stub): And here.
11332 (mips_function_value): Use the new macros to decide whether a single
11333 or complex float can be returned in floating-point registers. Return
11334 a parallel rtx in the complex case.
11335
b65ae28b 11336Thu Mar 14 11:03:12 CET 2002 Jan Hubicka <jh@suse.cz>
11337
11338 * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
11339 call after liveness analysis.
11340
11341 * recog.c (split_insn): Use delete_insn_and_edges.
11342
11343 * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
11344 instructions to have branch prediction notes.
11345 * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
11346
89d762ad 113472002-03-14 Geoffrey Keating <geoffk@redhat.com>
11348
11349 * configure.in: Don't pass -Wno-long-long to a ADA compiler
11350 that doesn't support it.
11351 * configure: Regenerate.
11352
ebd2c2bf 113532002-03-13 Jakub Jelinek <jakub@redhat.com>
11354
11355 PR target/5626
11356 * config/sparc/sparc.md (normal_branch, inverted_branch,
11357 normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
11358 inverted_fp_branch): Adjust calls to output_cbranch.
11359 Set length attribute.
11360 (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
11361 output_v9branch. Set length attribute.
11362 * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
11363 predicates.
11364 (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
11365 (output_cbranch): Likewise. Handle far branches.
11366 (output_v9branch): Handle far branches.
11367 * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
11368 Adjust prototypes.
11369 * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
11370 noov_compare64_op predicates.
11371
cee68eb1 113722002-03-13 Jason Merrill <jason@redhat.com>
11373
11374 * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
11375 into the function and constify it.
11376 * gthr-dce.h, gthr-solaris.h: Likewise.
11377
04c6ce8b 113782002-03-13 David Edelsohn <edelsohn@gnu.org>
11379
11380 * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
11381 * config/rs6000/rs6000.c (rs6000_va_arg): Use
11382 std_expand_builtin_va_arg if not ABI_V4.
11383
1fbd58a2 113842002-03-13 Jason Merrill <jason@redhat.com>
11385
11386 * varasm.c (globalize_decl): New fn.
11387 (assemble_start_function): Use it.
11388 (asm_emit_uninitialized): Use it.
11389 (assemble_alias): Use it.
11390 (assemble_variable): Use it.
11391
082203db 113922002-03-13 Hans-Peter Nilsson <hp@axis.com>
11393
11394 * config/cris/cris.c (cris_target_asm_function_prologue): Revert
604b7b22 11395 2002-03-12 internal visibility change.
082203db 11396 (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
11397 visibility into SYMBOL_REF_FLAG.
11398
701cbdec 113992002-03-13 Ulrich Weigand <uweigand@de.ibm.com>
11400
11401 * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
11402 VOIDmode operand. Add compile-time optimization for constant results.
11403
3ecb65ec 114042002-03-12 Jason Merrill <jason@redhat.com>
11405
11406 * c-typeck.c (convert_for_assignment): Don't allow conversions
11407 between pointers and references. Only allow lvalues to convert to
11408 reference.
11409
ecfe03ce 114102002-03-13 Hartmut Penner <hpenner@de.ibm.com>
11411
604b7b22 11412 * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
11413 before prologue, to avoid scheduling problems.
ecfe03ce 11414
937b2058 114152002-03-13 Jakub Jelinek <jakub@redhat.com>
11416
11417 * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
11418 (ELIMINABLE_REGS): Add sfp->sp.
11419 (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
11420
114212002-03-13 Jakub Jelinek <jakub@redhat.com>
5e60cbe4 11422
11423 PR optimization/5892
11424 * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
11425
73b69176 114262002-03-13 Jakub Jelinek <jakub@redhat.com>
11427
11428 * loop.c (basic_induction_var): Don't call convert_modes if mode
11429 classes are different.
11430
df9f5cf8 114312002-03-12 Richard Henderson <rth@redhat.com>
11432
5c0913b4 11433 PR optimization/5901
11434 * function.c (reposition_prologue_and_epilogue_notes): Position
11435 the markers after/before the last/first insn not deleted.
11436
114372002-03-12 Richard Henderson <rth@redhat.com>
11438
11439 PR optimization/5878
df9f5cf8 11440 * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
11441 config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
11442 (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
11443
11444 * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
11445 config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
11446 PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
11447
11448 * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
11449 * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
11450 (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
11451 also. Don't set it if not flag_pic.
11452 * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
11453 to be INVALID_REGNUM when not used.
11454
edc4f1e8 114552002-03-13 Aldy Hernandez <aldyh@redhat.com>
11456
df9f5cf8 11457 * expmed.c (store_bit_field): Reset alias set for memory.
11458 (extract_bit_field): Same.
edc4f1e8 11459
ab1a776d 114602002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11461
11462 * c-common.c (c_tree_code_type, c_tree_code_length,
11463 c_tree_code_name, add_c_tree_codes): Delete.
11464 * c-common.h (add_c_tree_codes): Delete.
11465 * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
11466 Define.
11467 * c-objc-common.c (c_objc_common_init): Don't call
11468 add_c_tree_codes, instead set lang_unsafe_for_reeval.
11469 * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
11470 objc_tree_code_name, add_objc_tree_codes): Delete.
11471 (objc_init): Don't call add_objc_tree_codes.
11472 * objc/objc-lang.c (tree_code_type, tree_code_length,
11473 tree_code_name): Define.
11474 * toplev.c (lang_independent_init): Don't set
11475 tree_code_length[IDENTIFIER_NODE].
11476 * tree.c (tree_code_type, tree_code_length, tree_code_name):
11477 Delete definitions, moved to language front-ends.
11478 * tree.def (IDENTIFIER_NODE): Hardwire the length.
11479 * tree.h (tree_code_type, tree_code_length, tree_code_name):
11480 Const-ify.
11481 (tree_code_length): Change type to unsigned char.
11482
387fa9f2 114832002-03-12 Richard Henderson <rth@redhat.com>
11484
11485 * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
11486 internal visibility change.
11487
9c56a8c5 114882002-03-12 Bob Wilson <bob.wilson@acm.org>
11489
11490 * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
11491 validize_mem() instead of change_address to avoid clobbering
11492 memory attributes.
11493
3d196c8b 114942002-03-12 Neil Booth <neil@daikokuya.demon.co.uk>
11495
11496 * c-lex.h (position_after_whitespace): Remove.
11497
2f6ec5fe 114982002-03-12 Jakub Jelinek <jakub@redhat.com>
11499
11500 * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
11501 (lex_string): Use unsigned char pointers.
11502
295a8b81 115032002-03-12 Ulrich Weigand <uweigand@de.ibm.com>
11504
11505 * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
11506 is not a valid memory_operand.
11507
9c45dd90 115082002-03-12 Bob Wilson <bob.wilson@acm.org>
11509
11510 * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
11511 * config/xtensa/lib1funcs.asm: Fix copyright to include
11512 special case for libgcc files.
11513 (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
11514 (__divsi3): Likewise.
11515 (__umodsi3): Likewise.
11516 (__modsi3): Likewise.
11517 * config/xtensa/lib2funcs.S: Fix copyright to include
11518 special case for libgcc files.
11519
02159c3f 115202002-03-12 Tom Rix <trix@redhat.com>
11521
11522 * collect2.c (resolve_lib_name): Move outside of
604b7b22 11523 OBJECT_FORMAT_COFF ifdef.
02159c3f 11524 (ignore_library): Same.
11525
9f58be3b 115262002-03-12 Bob Wilson <bob.wilson@acm.org>
11527
11528 * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
11529
9703ff3b 115302002-03-12 Bob Wilson <bob.wilson@acm.org>
11531
11532 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
11533 to function_section before writing out the constant pool.
11534
77638b48 115352002-03-12 David Edelsohn <edelsohn@gnu.org>
11536
11537 * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
11538 zero_constant.
11539 * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
11540
115412002-03-12 Alan Modra <amodra@bigpond.net.au>
11542
11543 * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
11544 (adddi3): Likewise.
11545 (movdf): Likewise.
11546 (movdi): Likewise.
11547 (cmpsi splitter): Likewise.
11548 (modsi3): Fail if <= 0.
11549 * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
11550 redundant test when HOST_BITS_PER_WIDE_INT != 32.
11551 (reg_or_sub_cint64_operand): Likewise.
11552 (num_insns_constant_wide): Optimize sign extension.
11553 (rs6000_legitimize_address): Likewise.
11554
a204a355 115552002-03-12 Andrew MacLeod <amacleod@redhat.com>
11556
11557 * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11558 * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
11559
a32f0634 115602002-03-12 Andrew MacLeod <amacleod@redhat.com>
11561
11562 * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
11563 address calculation.
11564
dc4951d9 115652002-03-12 Ulrich Weigand <uweigand@de.ibm.com>
11566
11567 * config/s390/s390.md (reload_insi, reload_indi): Change mode of
11568 scratch register to DImode / TImode.
11569 config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
11570 register used does not overlap the target.
11571
e42f6423 115722002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11573
11574 * Makefile.in (debug.o): Depend on debug.h.
11575 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
11576 * debug.c (do_nothing_debug_hooks): Likewise.
11577 * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
11578 sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
11579 dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
11580 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11581 * dwarfout.c (dwarf_debug_hooks): Likewise.
11582 * integrate.c (output_inline_function): Likewise.
11583 * objc/objc-act.c (synth_module_prologue): Likewise.
11584 * sdbout.c (sdb_debug_hooks): Likewise.
11585 * toplev.c (debug_hooks): Likewise.
11586 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11587
3cf24182 115882002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11589
11590 * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
11591 dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
11592 m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
11593 ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
11594 v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
11595 * defaults.h (POINTER_SIZE): Define.
11596 * doc/tm.texi (POINTER_SIZE): Document default.
11597
d7f9cd15 115982002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11599
11600 * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
11601
c8003097 116022002-03-11 Richard Henderson <rth@redhat.com>
11603
11604 * toplev.c (rest_of_compilation): Call purge_all_dead_edges
11605 if rebuild_label_notes_after_reload.
11606
3dfc21d3 116072002-03-12 Hans-Peter Nilsson <hp@axis.com>
11608
11609 * config/cris/cris.c (cris_target_asm_function_prologue): Do not
11610 emit pic register load if "internal" visibility.
11611 (cris_print_operand): Avoid traditional-warning for 0xffffffff.
11612 (cris_expand_builtin_va_arg): Do all computations on trees.
11613
aee989f5 116142002-03-11 Richard Henderson <rth@redhat.com>
11615
11616 * rtlanal.c: Include recog.h.
11617 (keep_with_call_p): Fix thinko.
11618 * Makefile.in (rtlanal.o): Update dependencies.
11619
337057dd 116202002-03-11 Chris Meyer <cmeyer@gatan.com>
11621
11622 * genflags.c (gen_insn): Use IS_VSPACE.
11623 * genoutput.c (output_insn_data): Likewise.
11624 (process_template): Likewise.
11625
c013f26c 116262002-03-11 Richard Henderson <rth@redhat.com>
11627
11628 * toplev.c (rest_of_compilation): Don't compile if we've had errors.
11629
deb88e7d 116302002-03-11 Neil Booth <neil@daikokuya.demon.co.uk>
11631
11632 * Makefile.in: Update.
c013f26c 11633 * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
deb88e7d 11634 Update documentation.
c013f26c 11635 * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
11636 * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
deb88e7d 11637
278d27f5 116382002-03-11 Zack Weinberg <zack@codesourcery.com>
11639
11640 * Makefile.in: Give texi2pod its input file as a command line
11641 argument, not on stdin.
11642
c5d44e2f 116432002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
11644 Daniel Berlin <dan@dberlin.org>
11645
11646 C++ alias analysis improvement.
604b7b22 11647 * alias.c (record_component_aliases): Record aliases for base
c5d44e2f 11648 classes too.
11649
77638b48 116502002-03-11 Ulrich Weigand <uweigand@de.ibm.com>
11651
6adfb8f8 11652 * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
11653
3ce510d2 116542002-03-11 Douglas B Rupp <rupp@gnat.com>
11655
d0307f64 11656 * toplev.c (vms_fopen): Remove, not needed.
11657
a69c2678 11658 * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
11659
67ced5ab 11660 * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
11661
2ab60bb1 11662 * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
11663 for FP, already done later.
11664
3ce510d2 11665 * toplev.c (debug_args): Add entry for VMS_DEBUG.
11666 * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
11667
68d65858 116682002-03-11 Richard Sandiford <rsandifo@redhat.com>
11669
11670 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
11671 (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
11672 LARGEST_EXPONENT_IS_NORMAL for the given mode.
11673 (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
11674 * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
11675 (ediv, emul, eldexp, esqrt): Likewise.
11676 (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
11677 (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
11678 (saturate): New function.
11679 (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
11680 (make_nan): Use a saturation value instead of a NaN if
11681 LARGEST_EXPONENT_IS_NORMAL. Warn when this happens.
11682 * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
11683 inputs if LARGEST_EXPONENT_IS_NORMAL. Represent subnormals as
11684 zero if NO_DENORMALS. Only round to nearest if !ROUND_TOWARDS_ZERO.
11685 (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
11686 (_fpmul_parts, _fpdiv_parts): Only round to nearest if
11687 !ROUND_TOWARDS_ZERO.
11688 * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
11689 (ROUND_TOWARDS_ZERO): Document.
11690
7d3bbd11 116912002-03-11 Andreas Jaeger <aj@suse.de>
11692
11693 * cfg.c (dump_flow_info): Remove unused variable.
11694
39e4b33f 116952002-03-11 Hans-Peter Nilsson <hp@bitrange.com>
11696
11697 * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
11698 computations on trees.
11699
8e2f6d6b 117002002-03-10 Richard Henderson <rth@redhat.com>
11701
1fcf59fa 11702 PR 5693:
8e2f6d6b 11703 * reload.c (copy_replacements_1): New.
11704 (copy_replacements): Use it to recurse through the rtx.
11705
3864028d 117062002-03-10 Richard Henderson <rth@redhat.com>
11707
11708 * loop.c (strength_reduce): Compute number of iterations as
11709 unsigned HOST_WIDE_INT.
11710
cbaab9a3 117112002-03-10 Richard Henderson <rth@redhat.com>
11712
11713 * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
11714 to move away from the end of the block.
11715
49eb929e 117162002-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
11717
11718 PR preprocessor/5899
11719 * cppinit.c (init_dependency_output): Don't ignore -dM etc.
7d3bbd11 11720
40265b77 117212002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11722
ed156d8b 11723 * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
11724
40265b77 11725 * attribs.c (decl_attributes): Fix signed/unsigned warning.
11726
af08e904 117272002-03-10 Hans-Peter Nilsson <hp@bitrange.com>
11728
11729 * config/mmix/mmix.c: Improve comments.
11730 (mmix_target_asm_function_prologue): Drop variable
11731 empty_stack_frame. Don't allocate unused slot above fp.
11732 (mmix_target_asm_function_epilogue): Mirror prologue changes.
11733 * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
11734 brace in first column.
11735 (enum reg_class): Ditto.
11736 (FIRST_PARM_OFFSET): Now 0.
11737 (USER_LABEL_PREFIX): Remove #if 0:d definition.
11738
a0cbb03c 117392002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11740
11741 * combine.c (make_extraction): Fix error in last change.
11742
c8834c5f 117432002-03-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11744
11745 * c4x.c (c4x_fp_reglist): Const-ify.
11746 * cris.c (cris_print_operand): Likewise.
11747 * i386.c (ix86_va_arg): Likewise.
11748 * ia64/unwind-ia64.c (unw_decode_table): Likewise.
11749 * m32r.c (m32r_hard_regno_mode_ok): Likewise.
11750 * m32r.h (m32r_hard_regno_mode_ok): Likewise.
11751 * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
11752 * mcore.h (regno_reg_class): Likewise.
11753 * mips.c (gen_int_relational): Likewise.
11754 * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
11755 * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
2fdc3887 11756 * pdp11.c (move_costs): Likewise.
c8834c5f 11757 * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
11758 * s390.c (s390_branch_condition_mnemonic, regclass_map):
11759 Likewise.
11760 * s390.h (regclass_map): Likewise.
11761 * sh.c (shift_amounts): Likewise.
2fdc3887 11762 * sh.md (rotlsi3): Likewise.
c8834c5f 11763
1b6747c3 117642002-03-09 Geoffrey Keating <geoffk@redhat.com>
11765
11766 * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
11767 (ne0+5): Use new clobber to generate proper shift pattern.
11768 Patch by Michael Matz <matz@kde.org>.
11769
c2a9dd1b 117702002-03-09 Andreas Schwab <schwab@suse.de>
11771
11772 * gcc.c (validate_all_switches): Also handle `%W{...}'.
11773
f18ce937 117742002-03-09 Geoffrey Keating <geoffk@redhat.com>
11775
11776 * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
11777
fe93cfe6 117782002-03-09 Jakub Jelinek <jakub@redhat.com>
11779
11780 PR middle-end/5877
11781 * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
11782 even for non-representable constants.
11783
dbd8525d 11784Sat Mar 9 07:20:01 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11785
dd367d39 11786 * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
11787 * function.c (fixup_var_refs): Add MAY_SHARE parameter.
11788 (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
11789 (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
11790 (pop_function_context): Compute MAY_SHARE parameter for
11791 fixup_var_refs.
11792 (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
11793 (gen_mem_addressof): Call fixup_var_refs with new parm.
11794
dbd8525d 11795 * combine.c (make_extraction): Don't make extension of CONST_INT.
11796
bfe3e4b4 117972002-03-09 Alexandre Oliva <aoliva@redhat.com>
11798
aeaa7ebf 11799 * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
11800 in o32 and o64 ABIs.
11801 * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
11802 but getting fixed-size structs passed in registers regardless of
11803 padding in o32 and o64 ABIs.
11804
bfe3e4b4 11805 * config/mips/mips.c (mips_va_arg): Apply big-endianness address
11806 offset before loading address of argument passed by transparent
11807 reference.
11808
f636c6f8 118092002-03-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
11810
11811 * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
11812
8be74258 118132002-03-09 Alexandre Oliva <aoliva@redhat.com>
11814
11815 * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
11816 marker such that registers after it are saved.
11817
56c1f669 118182002-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11819
11820 * sparc.c (arith_4096_operand): Fix error in last change.
11821
e02a1a96 118222002-03-08 Alexandre Oliva <aoliva@redhat.com>
11823
11824 * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
11825 defaults for MEABI.
11826
ceed8fc4 118272002-03-08 Aldy Hernandez <aldyh@redhat.com>
11828
df9f5cf8 11829 * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
11830 vectors.
ceed8fc4 11831
23d90bc4 118322002-03-08 Aldy Hernandez <aldyh@redhat.com>
11833
df9f5cf8 11834 * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
23d90bc4 11835
461eeb14 11836Fri Mar 8 21:27:49 CET 2002 Jan Hubicka <jh@suse.cz>
11837
11838 * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
11839 removed; fix return value.
11840 * combine.c (combine_instructions): Dirtify blocks where we failed to
11841 update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
11842 * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
11843
e9f3819b 118442002-03-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11845
11846 * gcse.c (insert_insn_end_bb): Fix typo in last change.
11847
fbf81687 11848Fri Mar 8 21:08:52 CET 2002 Jan Hubicka <jh@suse.cz>
11849
11850 * recog.c (peephole2_optimize): Re-distribute EH edges.
11851
1d347c23 118522002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
11853
11854 * expr.c (expand_expr): Use unsave lang hook.
11855 * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
11856 (LANG_HOOKS_INITIALIZER): Update.
11857 * langhooks.h (struct lang_hooks): New hook unsave.
11858 * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
11859 (unsave_expr_1): Remove unused lang_unsave_expr_now.
11860 (unsave_expr_now_r): Rename lhd_unsave. Update. Return input.
11861 (unsave_expr_now): Remove.
11862 * tree.h (unsave_expr_now, lang_unsave,
11863 lang_unsave_expr_now): Remove.
11864 (lhd_unsave): New.
11865
77353e4f 118662002-03-08 Andreas Jaeger <aj@suse.de>
11867
11868 * flow.c (propagate_block_delete_insn): Remove unused variable.
11869
320e354f 118702002-03-08 Kazu Hirata <kazu@hxi.com>
11871
11872 * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
11873 insn length for memory load/store.
11874
e9cf3fd5 118752002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
77353e4f 11876
e9cf3fd5 11877 * doc/install.texi (--with-libiconv-prefix): Document.
11878
10f0cf8a 118792002-03-08 Michael Y. Brukman <myb2@cornell.edu>
11880
11881 * doc/sourcebuild.texi: Fix typo.
11882
91f95e00 118832002-03-08 Jakub Jelinek <jakub@redhat.com>
11884
11885 PR c/3711
11886 * builtins.c (std_expand_builtin_va_arg): Do all computations on
11887 trees.
11888
c15aa775 11889Fri Mar 8 06:48:45 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
11890
11891 * rtl.c (copy_most_rtx): Move from here ...
11892 * emit-rtl.c (copy_most_rtx): ... to here.
11893
0f86aaad 118942002-03-08 Alexandre Oliva <aoliva@redhat.com>
11895
565fd2f8 11896 * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
11897 SUBTARGET_CPP_SIZE_SPEC.
11898 * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
11899
0f86aaad 11900 * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
11901
6a81282b 119022002-03-07 Matt Hiller <hiller@redhat.com>
11903
11904 * gensupport.c (first_dir_md_include): Renamed from include;
11905 change all references.
11906 (last_dir_md_include): Renamed from last_include; change all
11907 references.
11908 (init_md_reader): Unconditionally initialize base_dir whether or
11909 not filename is a relative path.
11910
c81364d2 119112002-03-07 Alexandre Oliva <aoliva@redhat.com>
11912
f4a030ba 11913 * config/fp-bit.c (_unord_f2): Compile it in even if
11914 US_SOFTWARE_GOFAST is enabled.
11915
c81364d2 11916 * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
11917 NULL_RTX. Set all HFmode operations as NULL_RTX.
11918 * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
11919 NULL_RTX, try reversing the comparison and the operands.
11920
0605fce2 119212002-03-06 Ulrich Weigand <uweigand@de.ibm.com>
11922
11923 * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
11924 genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
11925 and MATCH_OP_DUP.
11926
fee25a27 11927Thu Mar 7 16:54:10 CET 2002 Jan Hubicka <jh@suse.cz>
11928
11929 * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
11930
17a54dac 11931Thu Mar 7 16:33:54 CET 2002 Jan Hubicka <jh@suse.cz>
11932
11933 * basic-block.h (fixup_abnormal_edges): Declare.
11934 * reload1.c (fixup_abnormal_edges): New function.
11935 * reg-stack.c (convert_regs): Use it.
11936
11937 * gcse.c (insert_insn_end_bb): Handle trapping insns.
11938
11939 * gcse.c (hash_scan_set): Refuse instructions with EH edges.
11940
920d0fb5 119412002-03-07 Richard Sandiford <rsandifo@redhat.com>
11942
11943 * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
11944 (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
11945 * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
11946 (HONOR_SIGN_DEPENDENT_ROUNDING): New.
11947 * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
11948 * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
11949 unless x and y could be infinite.
11950 (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
11951 Check that the common type of both arguments is a real, even for
11952 targets without unordered comparisons. Allow an integer argument
11953 to be compared against a real.
11954 (expand_tree_builtin): Use expand_unordered_cmp.
11955 * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
11956 * cse.c (fold_rtx): Likewise. Fix indentation.
11957 * fold-const.c (fold_real_zero_addition_p): New.
11958 (fold): Use it, and the new HONOR_... macros.
11959 * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
11960 * jump.c (reversed_comparison_code_parts): After searching for
11961 the true comparison mode, use HONOR_NANS to decide whether it
11962 can be safely reversed.
11963 (reverse_condition_maybe_unordered): Remove IEEE check.
11964 * simplify-rtx.c (simplify_binary_operation): Use the new macros
11965 to decide which simplifications are valid. Allow the following
11966 simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
11967 and (a - -b) to (a + b).
11968 (simplify_relational_operation): Use HONOR_NANS.
11969 * doc/tm.texi: Document the MODE_HAS_... macros.
11970
b77df330 119712002-03-07 Richard Earnshaw <rearnsha@arm.com>
11972
11973 * combine.c (simplify_comparison): If simplifying a logical shift
11974 right and compare with constant, force the comparison to unsigned.
11975
04b78509 119762002-03-07 Aldy Hernandez <aldyh@redhat.com>
11977
df9f5cf8 11978 * doc/invoke.texi: Add documentation for -mabi=no-altivec.
04b78509 11979
df9f5cf8 11980 * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
11981 -mabi=no-altivec
11982 (alt_reg_names): Remove % for vrsave.
04b78509 11983
eeddd58f 119842002-03-06 Richard Henderson <rth@redhat.com>
11985
a195030a 11986 PR optimization/5844
eeddd58f 11987 * genemit.c (gen_exp): New argument used. Invoke copy_rtx
11988 if used indicates we've already emitted one copy of an operand.
11989 (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
11990 (gen_split): Supply a non-null used.
11991
907bb1cf 119922002-03-06 Ulrich Weigand <uweigand@de.ibm.com>
11993
df9f5cf8 11994 * reload1.c (reload): Unshare all rtl after reload is done.
907bb1cf 11995
77353e4f 11996 * simplify-rtx.c (simplify_plus_minus): Do not abort,
907bb1cf 11997 but simply fail if the expression is too complex to simplify.
11998 (simplify_gen_binary): Handle simplify_plus_minus failures.
11999
f760eb7d 12000Wed Mar 6 20:32:09 CET 2002 Jan Hubicka <jh@suse.cz>
12001
12002 * toplev.c (rest_of_compilation): Do jump threading before SSA path;
12003 consistently call delete_trivially_dead_insns after CSE and GCSE;
12004 fix DFI_life dumping; do jump threading after liveness; do crossjumping
12005 after liveness2; update comment in last crossjumping.
12006 * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
12007
34f7b915 12008Wed Mar 6 12:27:10 2002 Jeffrey A Law (law@redhat.com)
12009
1a7cfed3 12010 * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
12011 after completing fast dead code elimination.
12012
34f7b915 12013 * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
12014 COMPARE operator.
77353e4f 12015
f479a6f2 120162002-03-06 Phil Edwards <pme@gcc.gnu.org>
12017
12018 * version.c: Fix misplaced leading blanks on first line.
12019
7440f6f4 12020Wed Mar 6 19:08:03 CET 2002 Jan Hubicka <jh@suse.cz>
12021
12022 * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
12023
4ccdad8e 12024Wed Mar 6 18:14:43 CET 2002 Jan Hubicka <jh@suse.cz>
12025
12026 * cfgcleanup.c (mentions_nonequal_regs): New function.
12027 (thread_jump): Use it.
12028 * toplev.c (rest_of_compilation): Run jump threading after
12029 liveness.
12030
0aba1273 120312002-03-06 Jakub Jelinek <jakub@redhat.com>
12032
12033 * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
12034 patch.
12035
7a569e8f 12036Wed Mar 6 11:28:19 CET 2002 Jan Hubicka <jh@suse.cz>
12037
12038 * predict.c (estimate_bb_frequencies): Do not reload the
12039 frequencies from notes.
12040
fb20d6fa 12041Wed Mar 6 10:59:39 CET 2002 Jan Hubicka <jh@suse.cz>
12042
12043 * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
12044 * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
12045
12046 * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
12047 delete_noop_moves): Return indeger.
12048 * flow.c (ndead): New variable.
12049 (propagate_block_delete_insn): Use delete_insn_and_edges; remove
12050 BB argument; update callers.
12051 (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
12052 (life_analysis): Do not call purge_all_dead_edges.
12053 (update_life_info): Return number of deleted insns; print statistics.
12054 (update_life_info_in_dirty_blocks): likewise.
12055 (delete_noop_moves): Use delete_insn_and_edges; print statistics;
12056 return number of insns deleted.
12057
12058 * cse.c: Include timevar.h
12059 (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
12060 iterate until stabilizes; print statistics; return number of killed
12061 insns.
12062 * Makefile.in: (cse.o): Add timevar.h dependency
12063 * rtl.h (delete_trivially_dead_insns): New.
12064 * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
12065 * toplev.c (rest_of_compilation): Update callers.
12066
12067 * cfgcleanup.c (try_optimize_cfg): Kill blocks.
12068 (try_optimize_cfg): Do not update liveness.
12069 (cleanup-cfg): Loop until try_optimize_cfg and dead code
12070 removal stabilizes; use delete_trivially_dead_insns.
12071
12072 * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
12073
3c40011e 120742002-03-05 Zack Weinberg <zack@codesourcery.com>
12075
12076 * cppmain.c (setup_callbacks): Disable #pragma and #ident
12077 callbacks when processing assembly language.
12078
a052da6f 120792002-03-05 John David Anglin <dave@hiauly1.hia.nrc.ca>
12080
12081 * pa.h (ASM_FILE_END): Define.
12082 * som.h (ASM_FILE_END): Delete.
12083
12084 * pa.c (function_arg): Don't pass floats in general registers in
12085 indirect calls if TARGET_ELF32.
12086
7a1463d6 120872002-03-05 Richard Henderson <rth@redhat.com>
12088
12089 * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
12090
b8dd27f3 120912002-03-05 Danny Smith <dannysmith@users.sourceforge.net>
12092
12093 * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
12094
a826398d 120952002-03-05 Jakub Jelinek <jakub@redhat.com>
12096
12097 * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
12098 -r command line. Don't hide any symbols if not building
12099 shared libgcc.
12100
a2e42321 12101Tue Mar 5 18:31:27 CET 2002 Jan Hubicka <jh@suse.cz>
12102
12103 * cfg.c (dump_flow_info): Warn about profile mismatches.
12104 * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
12105 (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
12106
de2dd2b0 121072002-03-05 Jakub Jelinek <jakub@redhat.com>
12108
12109 * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
12110 wide volatile memory by parts.
12111
301d4551 121122002-03-05 Jakub Jelinek <jakub@redhat.com>
12113
12114 * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
12115 is NULL.
12116
1daf4caa 121172002-03-05 Richard Henderson <rth@redhat.com>
12118
df9f5cf8 12119 * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
1daf4caa 12120
a39bc6f7 121212002-03-04 Geoffrey Keating <geoffk@redhat.com>
12122
12123 * toplev.c (documented_lang_options): Document more
12124 language-specific options.
12125 * doc/invoke.texi (Warning Options): Correct documentation for
12126 -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
12127 * c-decl.c (c_decode_option): Use a table to handle warning options.
12128
ae484cc8 121292002-03-05 Hans-Peter Nilsson <hp@bitrange.com>
12130
12131 * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
12132 parameter to mmix_encode_section_info.
12133 (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
12134 relocatably. Always produce ELF, not mmo if linking relocatably.
12135 * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
12136 first is non-zero, don't add symbol prefix.
12137 * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
12138 prototype accordingly.
12139
7eab7b2a 121402002-03-04 Krister Walfridsson <cato@df.lth.se>
12141
12142 * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
12143
62357fc7 121442002-03-05 Joseph S. Myers <jsm28@cam.ac.uk>
12145
12146 * configure.in: Increase required makeinfo version to 4.1.
12147 * configure: Regenerate.
12148
1f347f18 121492002-03-04 Geoffrey Keating <geoffk@redhat.com>
12150
12151 * .cvsignore: Remove *.info* and genrtl*; these files are generated
12152 elsewhere now.
12153
a06a3d20 121542002-03-04 Joseph S. Myers <jsm28@cam.ac.uk>
12155
12156 * doc/include/texinfo.tex: Update to version 2002-03-01.06.
12157 * doc/invoke.texi: Fix @math uses.
12158
8325b48b 12159Mon Mar 4 15:33:54 CET 2002 Jan Hubicka <jh@suse.cz>
12160
12161 * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
12162 removal
12163
5d916180 121642002-03-03 Aldy Hernandez <aldyh@redhat.com>
12165
df9f5cf8 12166 * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
12167 (powerpc-*-eabisimaltivec*): Same.
5d916180 12168
df9f5cf8 12169 * config/rs6000/t-ppcendian: New.
5d916180 12170
ffb0737e 121712002-03-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
12172
12173 * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
12174 nonimmediate_src_operand and nonimmediate_lsrc_operand to
12175 disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
12176
7bc16a7d 121772002-03-03 Richard Henderson <rth@redhat.com>
12178
12179 * toplev.c (rest_of_decl_compilation): Revert last two changes.
12180
4268f174 121812002-03-03 Zack Weinberg <zack@codesourcery.com>
12182
12183 * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
12184 print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
12185 tree.c, config/m68k/m68k.c:
12186 Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
12187 REAL_ARITHMETIC blocks unconditional. Delete some further
12188 #ifdef blocks predicated on REAL_ARITHMETIC.
12189 * flags.h, toplev.c: Delete remaining references to
12190 flag_pretend_float.
12191
12192 * doc/invoke.texi: Remove documentation of -fpretend-float.
12193 * doc/tm.texi: Describe the various REAL_* macros as provided by
12194 real.h, not by the target configuration files.
12195
12196 * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
12197 config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
12198 config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
12199 config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
12200 config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
12201 config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
12202 config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
12203 config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
12204 config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
12205 config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
12206 config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
12207 config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
12208 config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
12209 config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
12210 config/xtensa/xtensa.h:
12211 Do not define, undefine, or mention in comments any of
12212 REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
12213 REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
12214 REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
12215 REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
12216 REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
12217 REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
12218 REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
12219 REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
12220 REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
12221
6c11cad6 122222002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12223
6852ad78 12224 * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
12225 convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
12226 i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
12227 m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
12228 pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
12229 stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
12230 Delete.
12231 * defaults.h (BITS_PER_WORD): Define.
4268f174 12232 * doc/tm.texi (BITS_PER_WORD): Document default value.
6852ad78 12233
6c11cad6 12234 * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
12235 m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
12236 stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
12237
3585dac7 122382002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12239
12240 * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
12241 lieu of explicit sizeof/sizeof.
12242 * i386.c (override_options, ix86_init_mmx_sse_builtins,
12243 ix86_expand_builtin): Likewise.
12244 * mips.c (mips_add_gc_roots): Likewise.
12245 * mmix.c (mmix_output_condition): Likewise.
12246 * rs6000.c (rs6000_override_options, altivec_expand_builtin,
12247 altivec_init_builtins): Likewise.
12248 * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
12249 * cppexp.c (Nsuff, parse_number): Likewise.
12250 * cppinit.c (builtin_array_end): Likewise.
12251 * gcc.c (n_default_compilers, process_command): Likewise.
12252 * genpreds.c (output_predicate_decls): Likewise.
12253 * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
12254 * lcm.c (N_ENTITIES): Likewise.
12255 * stor-layout.c (set_sizetype): Likewise.
4268f174 12256
822729d2 122572002-03-03 Richard Henderson <rth@redhat.com>
12258
12259 * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
12260 for types or labels.
12261
64fe11e2 122622002-03-03 Richard Henderson <rth@redhat.com>
12263
12264 * c-decl.c (start_decl): Initialized variables are not common.
12265
5609b23b 122662002-03-02 Per Bothner <per@bothner.com>
12267
12268 * gcc.c (option_map): Suport new --bootclasspath option.
12269 --CLASSPATH is now just an alias for --classpath.
12270
21a24508 122712002-03-02 Richard Henderson <rth@redhat.com>
12272
12273 * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
12274 load if "internal" visibility.
12275 * doc/extend.texi: Document visibility meanings.
12276
73d953ec 122772002-03-02 Richard Henderson <rth@redhat.com>
12278
12279 * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
12280 to functions as well.
12281
01694f08 122822002-03-02 Richard Henderson <rth@redhat.com>
12283
12284 * attribs.c (handle_alias_attribute): Don't call assemble_alias.
12285 (handle_visibility_attribute): Don't call assemble_visibility.
12286 * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
12287 without asmspec. Invoke assemble_alias when needed.
12288 * varasm.c (maybe_assemble_visibility): New.
12289 (assemble_start_function, assemble_variable, assemble_alias): Use it.
12290
41eb471c 122912002-03-02 Richard Henderson <rth@redhat.com>
12292
12293 * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
12294 invoke ENCODE_SECTION_INFO with first call flag.
12295
12296 * config/darwin-protos.h, config/darwin.c, config/darwin.h,
12297 config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
4268f174 12298 config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
41eb471c 12299 config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
12300 config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
12301 config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
12302 config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
12303 config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
12304 config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
12305 config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
12306 config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
12307 config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
4268f174 12308 config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
12309 config/m68hc11/m68hc11.h, config/m88k/m88k.h,
41eb471c 12310 config/mcore/mcore-protos.h, config/mcore/mcore.c,
12311 config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
12312 config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
4268f174 12313 config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
41eb471c 12314 config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
12315 config/sh/sh.h, config/sparc/sparc.h,
12316 config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
12317 config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
12318 config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
12319 FIRST argument. As needed, examine it and do nothing.
12320
4268f174 12321 * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
41eb471c 12322 config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
12323 config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
12324
12325 * config/arm/t-pe (pe.o): Add dependencies.
12326
adb7ce73 123272002-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12328
12329 * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
12330 cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
12331 i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
12332 mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
12333 pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
12334 vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
12335 * defaults.h (BITS_PER_UNIT): Define.
12336 * doc/tm.texi (BITS_PER_UNIT): Document default value.
12337
484c1e8d 123382002-03-02 Kazu Hirata <kazu@hxi.com>
12339
12340 * config/h8300/h8300-protos.h: Add a prototype for
12341 compute_a_shift_length.
12342 * config/h8300/h8300.c (h8300_asm_insn_count): New.
12343 (compute_a_shift_length): Likewise.
12344 (h8300_adjust_insn_length): Do not adjust insn length of shift
12345 insns.
12346 * config/h8300/h8300.md (anonymous shift patterns): Use
12347 compute_a_shift_length.
12348
430816ab 12349Sat Mar 2 06:30:14 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12350
a262ec1f 12351 * config/sparc/sparc.c (sparc_initialize_trampoline): Use
12352 trunc_int_for_mode.
12353
430816ab 12354 * emit-rtl.c (offset_address): Call update_temp_slot_address.
12355
e19896a4 123562002-03-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12357
12358 * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
12359 * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
12360 * flags.h (flag_zero_initialized_in_bss): Declare.
12361 * toplev.c (flag_zero_initialized_in_bss): New flag.
12362 (lang_independent_options): Add flag_zero_initialized_in_bss.
12363 * tree.c (initializer_zerop): New function.
12364 * tree.h (initializer_zerop): Declare.
12365 * varasm.c (assemble_variable): If we can emit bss, put zero
12366 initializers in the bss section.
12367
88aaa055 123682002-03-02 Alan Modra <amodra@bigpond.net.au>
12369
12370 * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
12371 like more than one symbol per .weak directive.
12372
26ddabcd 123732002-03-01 Richard Henderson <rth@redhat.com>
12374
12375 * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
12376 adjust argument_pointer by pretend_args_size.
12377 (ia64_va_start): Adjust va_start address by -pretend_args_size.
12378
21c71966 123792002-03-01 Kazu Hirata <kazu@hxi.com>
12380
12381 * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
12382
2c3b2bf1 12383Fri Mar 1 20:59:14 CET 2002 Jan Hubicka <jh@suse.cz>
12384
12385 * toplev.c (rest_of_compilation): Delete dead jumptables before
12386 loop.
12387 * flow.c (delete_dead_jumptables): Make global.
12388 * rtl.h (delete_dead_jumptables): Declare.
12389
2740149d 123902002-03-01 David Edelsohn <edelsohn@gnu.org>
12391
12392 * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
12393 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
cb19c5ed 12394 * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
2740149d 12395
f2702e8a 123962002-03-01 Kazu Hirata <kazu@hxi.com>
12397
12398 * config/h8300/h8300-protos.h: Fix formatting.
12399 * config/h8300/h8300.c: Likewise.
12400 * config/h8300/h8300.h: Likewise.
12401
58b67d36 124022002-03-01 Kazu Hirata <kazu@hxi.com>
12403
12404 * config/h8300/h8300.c (print_operand): Support 16-bit
12405 constant addresses.
12406 * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
12407
ead227c9 124082002-02-28 Richard Henderson <rth@redhat.com>
12409
12410 * expmed.c (store_bit_field): Prevent generation of CONCATs;
12411 pun complex values as integers; use gen_lowpart instead of
12412 gen_rtx_SUBREG.
12413 (extract_bit_field): Likewise.
12414
ee0125fb 124152002-03-01 Alan Modra <amodra@bigpond.net.au>
12416 David Edelsohn <edelsohn@gnu.org>
12417
12418 * doc/tm.texi (ASM_WEAKEN_DECL): Document.
12419 (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
12420 (SUPPORTS_WEAK): Likewise.
12421 * output.h (add_weak): Add tree param.
12422 * varasm.c (add_weak): Likewise. Save decl.
12423 (struct weak_syms): Add decl field.
12424 (mark_weak_decls): New function.
12425 (init_varasm_once): ggc_add_root mark_weak_decls.
12426 (assemble_start_function): Use ASM_WEAKEN_DECL.
12427 (assemble_variable): Likewise.
12428 (assemble_alias): Likewise.
12429 (declare_weak): Pass decl to add_weak.
12430 (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
12431 (remove_from_pending_weak_list): Declare and define for
12432 ASM_WEAKEN_DECL.
12433 * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
12434 * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
12435 * defaults.h (SUPPORTS_WEAK): Likewise.
12436 * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
12437 .weak for code sym. Do emit .size for descriptor sym.
12438 (ASM_DECLARE_FUNCTION_SIZE): Define.
12439 * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
12440 (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here. Don't output
12441 .lglobl unless TARGET_XCOFF. Formatting fixes.
12442 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
12443 .weak for code sym.
12444 (HANDLE_PRAGMA_WEAK): Remove.
12445 (ASM_WEAKEN_LABEL): Remove.
12446 * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
12447
7ebc28e0 124482002-03-01 Jason Merrill <jason@redhat.com>
12449
12450 * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
12451 (TARGET_EXPR_CLEANUP): New macro.
12452
bfd242e8 124532002-02-28 Steve Ellcey <sje@cup.hp.com>
12454
12455 * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
12456 to take ptr_extend into account as third type of extension.
12457 (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
12458 fields used by SUBREG_PROMOTED_UNSIGNED_P.
12459 * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
12460 (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
12461 * calls.c (precompute_arguments): Use new macro.
12462 (expand_call): Ditto.
12463 * combine.c (nonzero_bits): Ditto.
12464 (record_promoted_value): Ditto.
12465 * expr.c (store_expr): Ditto.
12466 (expand_expr): Ditto.
12467 * function.c (assign_parms): Ditto.
12468
7e96c74a 124692002-02-28 Alexandre Oliva <aoliva@redhat.com>
12470
12471 * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
12472 override -shared and -shared-libgcc.
12473
68345096 124742002-02-28 David O'Brien <obrien@FreeBSD.org>
12475
12476 * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
12477 of "ultrasparc".
12478 * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS. It appears
12479 to be broken.
12480
ea90c459 124812002-02-28 Richard Henderson <rth@redhat.com>
12482
12483 * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
12484 4 cycle latency from MM producers.
12485 (ia64_internal_sched_reorder): Likewise with pipeline flush.
12486
5fb1cdaf 124872002-02-28 Jakub Jelinek <jakub@redhat.com>
12488
12489 * mklibgcc.in: Don't use GNU make extension.
12490
d799a7a0 124912002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
12492
12493 * c-parse.in (STATIC): New terminal.
12494 (scspec): New non-terminal. Update productions accordingly.
12495 (program): Remove bogus ifc / end ifc.
12496 (array_declarator): Simplify production using STATIC.
12497
0b3481a4 124982002-02-28 Jim Meyering <meyering@lucent.com>
12499
12500 * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
12501 \a still means TARGET_BELL.
12502
0b923690 125032002-02-28 Richard Henderson <rth@redhat.com>
12504
12505 * haifa-sched.c (sched_emit_insn): New.
12506 (schedule_block): Use last_scheduled_insn to track last insn.
12507 * sched-int.h (sched_emit_insn): Prototype.
12508 * config/ia64/ia64.c (last_issued): Remove.
12509 (ia64_variable_issue): Don't set it.
12510 (nop_cycles_until): Use sched_emit_insn.
12511
d5819eb8 125122002-02-28 Andrew MacLeod <amacleod@redhat.com>
12513
12514 * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
12515 extended constants.
12516
b44470aa 125172002-02-28 Kazu Hirata <kazu@hxi.com>
12518
12519 * config/h8300/h8300.c: Fix formatting.
12520 * config/h8300/h8300.h: Likewise.
12521
fdd6a205 125222002-02-28 Marek Michalkiewicz <marekm@amelek.gda.pl>
12523
12524 * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
12525 which may overwrite the high byte of the frame pointer.
12526
e9390a94 125272002-02-28 Bo Thorsen <bo@suse.de>
12528
12529 * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
12530 (STARTFILE_SPEC): Add 64 bit files.
12531 (ENDFILE_SPEC): Likewise.
12532
7ebc28e0 125332002-02-28 Jason Merrill <jason@redhat.com>
4edb3605 12534
12535 * c-decl.c (finish_function): Only warn about missing return
12536 statement with -Wreturn-type.
12537
11808932 12538Don Feb 28 11:24:30 CET 2002 Jan Hubicka <jh@suse.cz>
12539
12540 * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
12541
12542 * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
12543 PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
12544
308f9b79 12545Don Feb 28 11:07:36 CET 2002 Jan Hubicka <jh@suse.cz>
12546
12547 * basic-block.h (BB_REACHABLE): Renumber.
12548 (BB_DIRTY, BB_NEW): New flags.
12549 (clear_bb_flags): Declare.
12550 (update_life_info_in_dirty_blocks): Declare.
12551 * cfg.c (clear_bb_flags): New function.
12552 * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
12553 * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
12554 reorder_insns, emit_insn_after): Mark block as dirty.
12555 * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
12556 (update_life_info_in_dirty_blocks): New function.
12557 * recog.c (apply_change_group): Dirtify block.
12558
12559 * cse.c (cse_insn): Reorder emitting of jump insn to keep
12560 cfg consistent.
12561 * gcse.c (delete_null_pointer_checks): Likewise.
12562
12563 * toplev.c (dump_file_index): Move cse2 after bp,
12564 add DFI_null
12565 (dump_file_info): Similary.
12566 (rest_of_compilation): Avoid most of CFG rebuilds;
12567 do first if converision after null pointer checks, do cse2
12568 after branch prediction; avoid full liveness rebuild after
12569 initializing subregs.
12570 * invoke.texi (-d options): Document -du, renumber.
12571
12572 * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
12573 (notice_new_block): Do not set BB_UPDATE_LIFE.
12574 (try_forward_edges, merge_blocks_move_predecessor_nojumps,
12575 merge_blocks_move_successor_nojumps, merge_blocks,
12576 try_crossjump_to_edge): Likewise.
12577 (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
12578 * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
12579 * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
12580 (merge_of_block): Do not use life_data_ok.
12581 (find_if_case_1): Do not use SET_UPDATE_LIFE.
12582 (if_convert): Use BB_DIRTY mechanizm to update life.
12583 * lcm.c (optimize_mode_switching): Update
12584 update_life_info_in_dirty_blocks
12585
dbc42b78 125862002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
12587
12588 * Makefile.in (integrate.o): Update.
12589 * c-decl.c (copy_lang_decl): Rename.
12590 * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
12591 * integrate.c: Include langhooks.h.
12592 (copy_decl_for_inlining): Update to use langhook.
12593 * langhooks-def.h (lhd_do_nothing_t,
12594 LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
12595 (LANG_HOOKS_INITIALIZER): Update.
12596 * langhooks.c (lhd_do_nothing_t): New.
12597 * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
12598 * tree.h (copy_lang_decl): Remove.
12599objc:
12600 * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
12601
052c7a5c 126022002-02-27 Andrew MacLeod <amacleod@redhat.com>
12603
4268f174 12604 * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
052c7a5c 12605 POST_DEC, and POST_MODIFY.
12606
3496a6b8 126072002-02-27 Zack Weinberg <zack@codesourcery.com>
12608
12609 * c-typeck.c (digest_init): Remove unused parameter; all
12610 callers changed.
12611
80cf4c75 126122002-02-27 Geoffrey Keating <geoffk@redhat.com>
12613
12614 * expmed.c (expand_shift): Correctly test for low part of a
12615 subreg.
12616
a8ef833a 126172002-02-27 Ulrich Weigand <uweigand@de.ibm.com>
12618
12619 * config/s390/s390.c (s390_chunkify_pool): Do not confuse
12620 insn UIDs with insn addresses.
12621
455730ef 126222002-02-27 Zack Weinberg <zack@codesourcery.com>
12623
12624 * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
12625 c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
12626 cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
12627 builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
12628 gcc.c, toplev.c: Delete code implementing -traditional mode.
12629
12630 * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
12631 doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
12632 Document removal of -traditional mode for compilation, and
12633 remove documentation only relevant to that mode.
12634
12635 * config/nextstep.h, config/ptx4.h, config/svr4.h,
12636 config/convex/convex.h, config/d30v/d30v.h,
12637 config/i386/dgux.h, config/i386/osf1elf.h,
12638 config/i386/osfelf.h, config/i386/osfrose.h,
12639 config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
12640 config/m68k/hp310.h, config/m88k/dgux.h,
12641 config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
12642 config/m88k/m88k.h, config/m88k/openbsd.h,
12643 config/mips/abi64.h, config/mips/osfrose.h,
12644 config/mips/svr4-5.h, config/mips/svr4-t.h,
12645 config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
12646 config/stormy16/stormy16.h: Remove all references to
12647 -traditional from target specs. Delete all mention of the
12648 no-longer-necessary TRADITIONAL_RETURN_FLOAT macro. Also
12649 delete a couple of commented-out definitions of
12650 DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
12651 to -traditional.
12652
12653 * system.h: Poison TRADITIONAL_RETURN_FLOAT.
12654 * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
12655
4c19a415 126562002-02-27 Zack Weinberg <zack@codesourcery.com>
12657
12658 * mklibgcc.in: Don't use \n in a line subject to
12659 interpretation by echo.
12660
c0924abf 126612002-02-27 Graham Stott <grahams@redhat.com>
12662
43422803 12663 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
12664 Constify NAME.
12665
dfb8ebb3 12666 * loop.c (prescan_loop): Handle PARALLEL.
12667
3a64bedc 12668 * unroll.c (loop_iterations): Return 0 if the add_val for
12669 a BIV is REG.
12670
0d8434b0 12671 * final.c (output_operand_lossage): Constify PFX_STR.
12672
c0924abf 12673 * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
12674
2e97c9b7 12675Wed Feb 27 10:45:19 CET 2002 Jan Hubicka <jh@suse.cz>
12676
12677 * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
12678 * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
12679
7fedc09d 12680Wed Feb 27 10:39:20 CET 2002 Jan Hubicka <jh@suse.cz>
12681
12682 * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
12683
d6af0368 126842002-02-27 Neil Booth <neil@daikokuya.demon.co.uk>
12685
12686 * cpplex.c (_cpp_lex_token): Handle directives in macro
12687 arguments.
12688 * cpplib.c (_cpp_handle_directive): Save and restore state
12689 if parsing macro args when entering a directive.
12690 * cppmacro.c (collect_args): No need to handle directives
12691 in macro arguments.
12692 (enter_macro_context, replace_args): Use the original macro
12693 definition in case it was redefined whilst collecting arguments.
12694doc:
12695 * cpp.texi: Update.
12696
fc54b737 126972002-02-26 David Edelsohn <edelsohn@gnu.org>
12698
12699 * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
12700 * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
12701 * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
12702 method on AIX.
12703 * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
12704 (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
12705 (load_toc_v4_PIC_2): Same.
12706
127072002-02-26 Alan Modra <amodra@bigpond.net.au>
12708
12709 * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
12710
eb415e91 127112002-02-26 Richard Henderson <rth@redhat.com>
12712
12713 * config/alpha/alpha.md (ashldi_se): Re-enable.
12714
c67ce487 127152002-02-26 Richard Henderson <rth@redhat.com>
12716
12717 * config/alpha/alpha.c (alpha_encode_section_info): Examine
12718 MODULE_LOCAL_P; improve commentary.
12719
e22e0554 127202002-02-26 Zack Weinberg <zack@codesourcery.com>
12721
12722 * doc/cpp.texi: Clarify documentation of relationship between
12723 #line and #include.
12724
6ad7df02 127252002-02-26 Kazu Hirata <kazu@hxi.com>
12726
12727 * config/h8300/h8300-protos.h: Update the prototype for
12728 compute_logical_op_length. Add the prototype for
12729 compute_logical_op_cc.
12730 * config/h8300/h8300.c (compute_logical_op_length): Figure out
12731 code from operands.
12732 (compute_logical_op_cc): New.
12733 * config/h8300/h8300.md: Combine all the logical op patterns
12734 in HImode and SImode. Use compute_logical_op_cc.
12735
4fc5f895 127362002-02-26 Kelley Cook <kelleycook@comcast.net>
12737
12738 * config/i386/i386.c (print_operand): Don't append ATT-style
12739 length suffixs to x87 opcodes when in Intel mode.
12740
89dd3424 127412002-02-26 Ryan T. Sammartino <ryants@shaw.ca>
12742
12743 * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
12744 (init_emit_once): Update calls.
12745 * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
12746 (init_syntax_once): Prototype.
12747
57985e3a 127482002-02-26 John David Anglin <dave@hiauly1.hia.nrc.ca>
12749
12750 * pa-linux.h (LIB_SPEC): Update definition.
12751 * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
12752
2e2347b5 127532002-02-26 Richard Henderson <rth@redhat.com>
12754
12755 * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
12756 if we emitted a stop bit.
12757
e8c2499b 127582002-02-26 Jakub Jelinek <jakub@redhat.com>
12759
12760 * configure.in (libgcc_visibility): Substitute.
12761 * configure: Rebuilt.
12762 * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
12763 defined symbols .hidden.
12764
b4cf9ec1 127652002-02-26 Jakub Jelinek <jakub@redhat.com>
12766
12767 * attribs.c (c_common_attribute_table): Add visibility.
12768 (handle_visibility_attribute): New function.
12769 * varasm.c (assemble_visibility): New function.
12770 * output.h (assemble_visibility): Add prototype.
12771 * tree.h (MODULE_LOCAL_P): Define.
12772 * crtstuff.c (__dso_handle): Use visibility attribute.
12773 * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
12774 for MODULE_LOCAL_P symbols too.
12775 * config/ia64/ia64.c (ia64_encode_section_info): Handle
12776 MODULE_LOCAL_P symbols the same way as local symbols.
12777 Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
12778 into .sdata/.sbss by the user.
12779 * doc/extend.texi (Function Attributes): Document visibility
12780 attribute.
12781
7e032860 127822002-02-26 Jakub Jelinek <jakub@redhat.com>
12783
12784 PR debug/5770
12785 * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
12786 STRING_CST initializer spanning the whole variable without
12787 embedded zeros.
12788 If expand_expr returned MEM, don't use it.
12789
6e1e0aa6 127902002-02-26 Alexandre Oliva <aoliva@redhat.com>
12791
12792 * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
12793 generate a die for the lexical block.
12794
359e4f59 127952002-02-26 Kazu Hirata <kazu@hxi.com>
12796
12797 * config/h8300/h8300-protos.h: Add a prototype for
12798 compute_logical_op_length.
12799 * config/h8300/h8300.c (compute_logical_op_length): New.
12800 * config/h8300/h8300.md (anonymous logical patterns): Use
12801 compute_logical_op_length for length.
12802
d5b04d83 128032002-02-26 Aldy Hernandez <aldyh@redhat.com>
12804
4fc5f895 12805 * dwarf2out.c (modified_type_die): Do not call type_main_variant
12806 for vectors.
12807 (gen_type_die): Same.
d5b04d83 12808
4fc5f895 12809 * attribs.c (handle_vector_size_attribute): Set debug information.
d5b04d83 12810
019f2e94 128112002-02-26 Daniel Egger <degger@fhm.edu>
12812
4fc5f895 12813 * config/rs6000/rs6000.md: Swap define_insn attributes to
12814 fix incorrect generation of merge high instructions instead
12815 of merge low.
019f2e94 12816
e4cd04dc 128172002-02-26 Aldy Hernandez <aldyh@redhat.com>
12818
4fc5f895 12819 * c-typeck.c (really_start_incremental_init): Use
12820 bitsize_zero_node for vectors.
e4cd04dc 12821
d0100867 128222002-02-26 Aldy Hernandez <aldyh@redhat.com>
12823
4fc5f895 12824 * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
12825 ("*set_vrsave_internal"): Same.
d0100867 12826
78e5555a 128272002-02-25 Richard Henderson <rth@redhat.com>
12828
12829 * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
12830 in EXPAND_SUM case. Use host_integerp/tree_low_cst.
12831
ab5922bb 128322002-02-25 Jakub Jelinek <jakub@redhat.com>
12833
12834 PR target/5755
12835 * config/i386/i386.c (ix86_return_pops_args): Only pop
12836 fake structure return argument if it was passed on the stack.
12837
e56de52f 128382002-02-25 Jason Merrill <jason@redhat.com>
12839
12840 * attribs.c (decl_attributes): Also re-layout PARM_DECL and
12841 RESULT_DECL.
12842
48285a3c 128432002-02-25 Alexandre Oliva <aoliva@redhat.com>
12844
12845 * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
12846 link with shared_name only.
12847 * doc/invoke.texi (Link Options): Document new behavior.
12848
b345b1ff 128492002-02-25 Aldy Hernandez <aldyh@redhat.com>
12850
4fc5f895 12851 * c-typeck.c (push_init_level): Handle vectors.
b345b1ff 12852
73e0f929 128532002-02-25 Alexandre Oliva <aoliva@redhat.com>
12854
12855 * config/sparc/sparc.c (const64_high_operand): Zero-extend
12856 operands of SPARC_SETHI_P.
12857 (input_operand): Likewise.
12858 (sparc_emit_set_const32): Likewise.
12859 * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
12860 (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
12861 (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'. Add `N' as SETHI.
12862 * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
12863 (movdi_insn_sp64_vis): Likewise.
12864 (movdi split, movdf split): Use SETHI32.
12865 * doc/md.texi: Document SPARC constraints L, M and N.
12866
894a5e3b 128672002-02-25 Aldy Hernandez <aldyh@redhat.com>
12868
4fc5f895 12869 * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
12870 ("*set_vrsave_internal"): use mfspr for Darwin.
894a5e3b 12871
4fc5f895 12872 * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
12873 gen_get_vrsave_internal.
894a5e3b 12874
8b315642 12875Sun Feb 24 16:38:56 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12876
12877 * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
12878
b3a9482f 128792002-02-24 Neil Booth <neil@daikokuya.demon.co.uk>
12880
12881 * cpplex.c (cpp_interpret_charconst): Get signedness or
12882 otherwise of wide character constants correct.
12883 * cppexp.c (lex): Get signedness of wide charconsts correct.
12884
e99172f2 12885Sun Feb 24 07:41:31 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12886
12887 * optabs.c (widen_operand): Only call convert_modes for
12888 promoted SUBREG if signedness matches.
12889 * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
12890
92b1c81a 128912002-02-23 Neil Booth <neil@daikokuya.demon.co.uk>
12892
12893 * cpplib.c (glue_header_name): Use local buffer to build up
12894 header name.
12895
809ec257 128962002-02-23 Neil Booth <neil@daikokuya.demon.co.uk>
12897
12898 * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
12899
7ef78393 129002002-02-23 Kazu Hirata <kazu@hxi.com>
12901
12902 * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
12903 H8/300[HS] separately.
12904 * config/h8300/h8300.md: Remove the early clobber constraint
12905 from bit field patterns.
12906
4a1ea6f4 129072002-02-23 Kazu Hirata <kazu@hxi.com>
12908
12909 * config/h8300/h8300.md (mulqihi3): Tighten predicates to
12910 register_operand.
12911 (mulhisi3): Likewise.
12912 (umulqisi3): Likewise.
12913 (umulhisi3): Likewise.
12914
9d4c611a 129152002-02-23 Neil Booth <neil@daikokuya.demon.co.uk>
12916
12917 * cppinit.c (output_deps): Correct test for stdout output.
12918 (init_dependency_output): Cure warning.
12919
8ffee379 12920Sat Feb 23 08:42:47 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12921
12922 * expr.c (store_expr): When converting expression to promoted
12923 equivalent type, allow using SUBREG_REG of TARGET as the target
12924 of the expansion of EXP.
12925 * loop.c (basic_induction_var, case SUBREG): Always look inside.
12926 * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
12927 (alpha_emit_set_const): Handle SImode when can't make new pseudos.
12928 (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
12929 * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
12930
228c5b30 129312002-02-23 Joseph S. Myers <jsm28@cam.ac.uk>
12932
12933 * doc/contribute.texi, doc/extend.texi, doc/install.texi,
12934 doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
12935 doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
12936
5f2a9f4c 129372002-02-23 Jakub Jelinek <jakub@redhat.com>
12938
12939 PR optimization/5747
12940 * loop.c (scan_loop): Update reg info if move_movables created new
12941 pseudos.
12942
4a7d68d1 129432002-02-23 David Edelsohn <edelsohn@gnu.org>
12944
12945 * gcc.c (init_gcc_spec): Revert last change.
12946
3bc7190a 129472002-02-23 David Edelsohn <edelsohn@gnu.org>
12948
12949 * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
12950 gpc_reg_operand constraint.
12951
129522002-02-23 Alan Modra <amodra@bigpond.net.au>
12953
12954 * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
12955 Simplify comparison of `low'.
12956 (add_operand): Fix formatting.
12957 (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
56f833c0 12958 (mask_operand): Disallow mask to wrap in 64-bit mode.
3bc7190a 12959 (rs6000_stack_info): Remove redundant test setting push_p.
12960 (output_toc): Fix formatting.
12961 * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
12962 cc_reg_not_cr0_operand constraint.
12963 (booldi3, boolcdi3 splitters): Same.
12964
60385b36 129652002-02-23 Aldy Hernandez <aldyh@redhat.com>
12966
4fc5f895 12967 * config/rs6000/altivec.h: Add extra level of parentheses on casts.
60385b36 12968
e0d9f0c0 129692002-02-22 David Edelsohn <edelsohn@gnu.org>
12970
12971 * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
12972 gcc invoked with -shared-libgcc.
12973
2ed38b79 129742002-02-22 Jakub Jelinek <jakub@redhat.com>
12975
12976 PR c++/5748
12977 * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
12978 decl if any of elements was TREE_USED.
12979
fb124916 129802002-02-22 Alexandre Oliva <aoliva@redhat.com>
12981
12982 * config/sparc/sol2.h: Don't include sys/mman.h.
12983 * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
12984 (arith_4096_operand): Don't throw high bits away.
12985 (const64_operand): Take sign extension of CONST_INTs into account.
12986 (const64_high_operand, sparc_emit_set_const32): Likewise.
12987 (GEN_HIGHINT64): Likewise.
12988 (sparc_emit_set_const64_quick1): Likewise.
12989 (const64_is_2insns): Likewise.
12990 (print_operand): Use trunc_int_for_mode for sign extension.
12991 * config/sparc/sparc.h (SMALL_INT32): Likewise.
12992 * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
12993 chars. Assume CONST_INT is already properly sign-extended.
12994 (movdi split): Sign-extend each SImode part.
12995 (andsi3 split): Don't mask high bits off, so that result
12996 remains properly sign-extend.
12997 (iorsi3 split): Likewise.
12998 (xorsi3 split): Likewise.
12999
857e6cf0 130002002-02-22 Richard Sandiford <rsandifo@redhat.com>
13001
13002 * fold-const.c (fold): Fix typo in comments.
13003
688a134e 130042002-02-21 Diego Novillo <dnovillo@redhat.com>
13005
13006 * Makefile.in (langhooks.o): Update dependencies.
13007
341c61b7 130082002-02-21 Diego Novillo <dnovillo@redhat.com>
13009
13010 * langhooks.c: Include flags.h.
13011
af87ad83 130122002-02-21 Aldy Hernandez <aldyh@redhat.com>
13013
13014 * testsuite/gcc.dg/attr-alwaysinline.c: New.
13015
13016 * c-common.c (c_common_post_options): Set inline trees by
13017 default.
13018
13019 * doc/extend.texi (Function Attributes): Document always_inline
13020 attribute.
13021 Update documentation about inlining when not optimizing.
13022
13023 * cp/decl.c (duplicate_decls): Merge always_inline attribute.
13024
13025 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
13026 unless DECL_ALWAYS_INLINE.
13027
13028 * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
13029 unless DECL_ALWAYS_INLINE.
13030 (c_disregard_inline_limits): Disregard if always_inline set.
13031
13032 * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
13033 Disregard if always_inline set.
13034 (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
13035 unless DECL_ALWAYS_INLINE.
13036
13037 * attribs.c (handle_always_inline_attribute): New.
13038 (c_common_attribute_table): Add always_inline.
13039
13040 * config/rs6000/altivec.h: Add prototypes for builtins
13041 requiring the always_inline attribute.
13042
a4194ff7 130432002-02-21 Eric Christopher <echristo@redhat.com>
13044
13045 * expmed.c (store_bit_field): Try to simplify the subreg
13046 before generating a new one when when the mode size of
13047 value is less than maxmode.
13048
fac6aae6 130492002-02-21 Richard Henderson <rth@redhat.com>
13050
13051 * emit-rtl.c (offset_address): Use simplify_gen_binary rather
13052 than gen_rtx_PLUS to form the sum.
13053 * explow.c (force_reg): Rearrange to not allocate new pseudo
13054 when force_operand returns a register.
13055 * expr.c (expand_assignment): Allow offset_rtx expansion to
13056 return a sum. Do not force addresses into registers.
13057 (expand_expr): Likewise.
13058 * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
13059 to canonicalize arithmetic that didn't simpify.
13060 (simplify_plus_minus): New argument force; update
13061 all callers. Don't split CONST unless we can do something with it,
13062 and wouldn't lose the constness of the operands.
13063
13064 * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
13065 that we generated earlier.
13066
bfba49c6 130672002-02-21 Tom Tromey <tromey@redhat.com>
13068
13069 * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13070 (output_line_info): Use constant `1', with a long explanatory
13071 comment.
13072 * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
13073
7f8c3466 13074Thu Feb 21 22:43:44 2002 J"orn Rennecke <joern.rennecke@superh.com>
13075
13076 * jump.c (redirect_jump): If old label has no UID, don't try to
13077 delete it.
13078
b06aca5f 13079Thu Feb 21 21:17:21 2002 J"orn Rennecke <joern.rennecke@superh.com>
13080
13081 * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
13082 If input is constant, do shifts at compile time.
13083
8bdbaccf 130842002-02-21 Joseph S. Myers <jsm28@cam.ac.uk>
13085
13086 * doc/extend.texi: Fix some more overfull hboxes.
13087
cf3dc086 130882002-02-21 Jakub Jelinek <jakub@redhat.com>
13089
13090 PR optimization/4994
13091 * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
13092 register moves.
13093
130942002-02-21 Jakub Jelinek <jakub@redhat.com>
6de9716c 13095
13096 PR c++/4574
13097 * expr.h (expand_and): Add mode argument.
13098 * expmed.c (expand_and): Add mode argument.
13099 (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
13100 * expr.c (store_field, expand_expr, do_store_flag): Likewise.
13101 * except.c (expand_builtin_extract_return_addr): Likewise.
13102 * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
13103 * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
13104 * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
13105 Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
13106 * config/c4x/c4x.md: Use GEN_INT (x) instead of
13107 gen_rtx (CONST_INT, VOIDmode, x).
13108
47ed174f 131092002-02-21 Jakub Jelinek <jakub@redhat.com>
13110
13111 PR c/4697:
13112 * stmt.c (warn_if_unused_value): Move side effects test once more.
13113
78498602 131142002-02-20 Torbjorn Granlund <tege@swox.com>
13115
13116 * config/avr/avr.md: Add more patterns for mized-mode add and subtract
4fc5f895 13117 (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
78498602 13118
11896b36 13119Thu Feb 21 16:20:46 2002 Alexandre Oliva <aoliva@redhat.com>
13120
13121 * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
13122 SUBREG or ZERO_EXTEND.
13123
bf622d7d 13124Thu Feb 21 15:35:46 2002 J"orn Rennecke <joern.rennecke@superh.com>
13125
13126 * sh.h (current_function_anonymous_args): Remove.
13127 (SETUP_INCOMING_VARARGS): Don't set it - just check that one
13128 of current_function_varargs and current_function_stdarg is set.
13129 * sh.c (sh_expand_prologue): Check current_function_varargs /
13130 current_function_stdarg / TARGET_SH5 instead of
13131 current_function_anonymous_args.
13132
13133 * sh64.h (TARGET_VERSION): Define.
13134
6007cde0 131352002-02-20 David Edelsohn <edelsohn@gnu.org>
13136
13137 * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
13138 VRSAVE_REGNO on TARGET_ALTIVEC.
13139
131402002-02-20 Alan Modra <amodra@bigpond.net.au>
13141
13142 * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
13143 bits of SImode const_int.
13144 (includes_rshift_p): Likewise.
13145 (print_operand): Call mask_operand and mask64_operand with correct
a4194ff7 13146 mode.
6007cde0 13147 (rs6000_output_function_epilogue): Pad traceback table to word.
13148 * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
13149 (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
13150 mask64_operand with correct mode.
6007cde0 13151 (FUNCTION_ARG_REGNO_P): Correct parentheses.
13152
7ad1c520 131532002-02-20 Jakub Jelinek <jakub@redhat.com>
13154
13155 PR debug/4461
13156 * varasm.c (get_pool_constant_mark): New.
13157 * rtl.h (get_pool_constant_mark): Add prototype.
13158 * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
13159 be represented if it has not been output.
13160
bd72d0ee 131612002-02-20 Alexandre Oliva <aoliva@redhat.com>
13162
13163 * combine.c (do_SUBST): Sanity check substitutions of
13164 CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
13165 (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
13166 CONST_INT into its operand.
13167 (known_cond): Likewise, for ZERO_EXTEND.
13168 * simplify-rtx.c (simplify_unary_operation): Fix condition to
13169 allow for simplification of wide modes. Reject CONST_INTs in
13170 ZERO_EXTEND when their actual mode is not given.
13171
e3a2e745 131722002-02-20 Alexandre Oliva <aoliva@redhat.com>
13173
13174 * c-decl.c (pushdecl): If no global declaration is found for an
13175 extern declaration in block scope, try a limbo one.
13176
1c26100f 131772002-02-20 Jakub Jelinek <jakub@redhat.com>
13178
13179 PR c++/4401
13180 * c-common.c (pointer_int_sum): Moved from...
13181 * c-typeck.c (pointer_int_sum): ...here.
13182 * c-common.h (pointer_int_sum): Add prototype.
13183
9accf3d9 131842002-02-20 Jakub Jelinek <jakub@redhat.com>
13185
13186 PR c++/5713
13187 * c-decl.c (duplicate_decls): Return 0 if issued error about
13188 redeclaration.
13189
c53485bb 131902002-02-20 Roger Sayle <roger@eyesopen.com>
13191 Jakub Jelinek <jakub@redhat.com>
13192
13193 PR c/4389
13194 * tree.c (host_integerp): Ensure that the constant integer is
13195 representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
13196 when pos is zero or non-zero respectively. Clarify comment.
13197 * c-format.c (check_format_info_recurse): Fix host_integerp
13198 usage; the pos argument should be zero when assigning to a
13199 signed HOST_WIDE_INT.
13200
36747d13 132012002-02-20 Richard Henderson <rth@redhat.com>
13202
13203 * config/i386/i386.c (ix86_expand_vector_move): Use the mode
13204 of the operand, rather than assuming TImode.
13205 (ix86_expand_binop_builtin): Cope with commutative patterns
13206 using nonimmediate_operand for both operands.
13207 (ix86_expand_timode_binop_builtin): Likewise.
13208 (ix86_expand_store_builtin): Validate operand 1.
13209 (ix86_expand_unop1_builtin): Likewise.
13210
1012b320 132112002-02-20 Philip Blundell <philb@gnu.org>
a4194ff7 13212
1012b320 13213 PR 5705
13214 * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
13215
4f520835 132162002-02-20 Richard Henderson <rth@redhat.com>
13217
13218 PR c/5615
13219 * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
13220
f21ce30d 132212002-02-20 Tom Tromey <tromey@redhat.com>
13222
13223 * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13224 * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13225 * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13226 * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
13227 * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
13228 unconditionally.
13229
2784c617 13230Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
13231
13232 * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
13233 for (const_int 0) in X not just INTVAL.
13234
8e1103d3 132352002-02-20 Joseph S. Myers <jsm28@cam.ac.uk>
13236
13237 * doc/extend.texi: Avoid or reduce overfull hboxes.
13238
5e862a70 132392002-02-20 Diego Novillo <dnovillo@redhat.com>
13240
13241 * expmed.c (store_bit_field): Do not store bit fields using SUBREG
13242 operations if the field does not start at a mode boundary.
13243
6cedc59a 132442001-02-20 Joel Sherrill <joel@OARcorp.com>
13245
13246 * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
13247 config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
13248 Also done for -Acpu and -Amachine.
13249
5ca8af9f 132502002-02-20 Neil Booth <neil@daikokuya.demon.co.uk>
13251
13252 * cppinit.c (init_dependency_output): Take deps output file
13253 from -o if none given with -MF. Suppress normal output.
a4194ff7 13254 * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
5ca8af9f 13255 * doc/cpp.texi, doc/invoke.texi: Update.
13256
686ddf2e 132572002-02-19 Zack Weinberg <zack@codesourcery.com>
13258
13259 * toplev.c (output_quoted_string): Write unprintable
13260 characters with octal escapes.
13261
5785723a 132622002-02-19 David Edelsohn <edelsohn@gnu.org>
13263
13264 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
13265 really_call_used[VRSAVE_REGNO] if not Altivec.
13266
132672002-02-19 Alan Modra <amodra@bigpond.net.au>
a4194ff7 13268
5785723a 13269 * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
13270 MODE_MASK.
13271 (constant_pool_expr_1): Fix formatting.
13272 (rs6000_legitimize_reload_address): Likewise.
13273
93b33a73 13274Tue Feb 19 20:13:57 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13275
13276 * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
13277 now that we have one.
13278
20f2763e 132792002-02-19 Zack Weinberg <zack@codesourcery.com>
13280
13281 * tree.h (struct tree_common): Remove aux. Add unused_0 at
13282 end of first block of bitfields (which was only seven bits);
13283 rename dummy to unused_1; remove comment which is no longer true.
13284
b523e5a0 132852002-02-19 Gaute B Strokkenes <gs234@cam.ac.uk>
13286
13287 * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
13288
1675c6e9 132892002-02-19 Philip Blundell <pb@nexus.co.uk>
13290
0ea7b219 13291 PR 5399
1675c6e9 13292 * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
13293 if generating PIC.
13294
13295 PR 5054
13296 * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
13297 arm_is_longcall_p rather than inspecting call-type cookie
13298 directly.
13299 (call_value_insn) [TARGET_THUMB]: Likewise.
13300
78a23ef4 133012002-02-19 Graham Stott <grahams@redhat.com>
13302
13303 * config/i386/i386.c (ix86_expand_builtin): Fix typo.
13304
3c6e13d9 133052002-02-19 David Edelsohn <edelsohn@gnu.org>
13306
13307 * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
13308 ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
268ae5e9 13309 (FP_SAVE_INLINE): Delete.
3c6e13d9 13310
13311 * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
13312 * config/rs6000/eabi.asm: Remove ABI save restore routines.
13313 * config/rs6000/t-ppccomm: Build crtsavres.o.
13314 * config/rs6000/crtsavres.asm: New file.
13315
4a5f62e2 133162002-02-19 Philip Blundell <philb@gnu.org>
13317
13318 * config/arm/arm.c (use_return_insn): Don't reject interrupt
13319 functions.
13320 (arm_compute_save_reg_mask): Save LR for interrupt functions too.
13321 (output_return_instruction): Allow interrupt functions to return with
13322 ldmfd sp!, {... pc}^. Use LDR to restore any single register.
13323 (arm_expand_prologue): Subtract 4 before stacking LR in an
13324 interrupt function.
13325
77744024 133262002-02-19 Philip Blundell <pb@nexus.co.uk>
13327
13328 * config/arm/arm.c (arm_encode_call_attribute): Operate on any
13329 decl, not just FUNCTION_DECL.
13330 (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
13331 (arm_assemble_integer): Likewise.
13332 * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
13333 marked local.
a4194ff7 13334
1897a3df 133352002-02-19 matthew green <mrg@eterna.com.au>
13336
13337 * config.gcc (sparc-*-netbsdelf*): Enable target.
13338 (sparc64-*-netbsd*): New target.
13339 * config/sparc/netbsd-elf.h: New file.
13340 * config/sparc/t-netbsd64: New file.
13341
77f0d102 133422002-02-19 Gaute B Strokkenes <gs234@cam.ac.uk>
13343
13344 * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
13345
6c311a26 133462002-02-19 Ryan T. Sammartino <ryants@shaw.ca>
13347
13348 * doc/invoke.texi: explicitly list the style guidelines that
13349 -Weffc++ checks for.
13350
33bb1b3f 13351Tue Feb 19 12:37:23 CET 2002 Jan Hubicka <jh@suse.cz>
13352
13353 * regmove.c (regmove_optimize): Avoid increasing of register pressure.
13354
f89781d7 133552002-02-19 Neil Booth <neil@daikokuya.demon.co.uk>
13356
13357 PR other/5718
13358 * gcc.c (cpp_unique_options): Treat -o as indicating object file
13359 only if not -E. If -E, pass -o through to the preprocessor.
13360
fc78530c 133612002-02-19 Kazu Hirata <kazu@hxi.com>
13362
13363 * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
13364 register number with an appropriate macro.
13365
e981b81b 133662002-02-19 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
13367
13368 * doc/rtl.texi (Constants): Close @code tag.
13369
e4757a47 133702002-02-19 Aldy Hernandez <aldyh@redhat.com>
13371
13372 * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
13373 ("mmx_uavgv4hi3"): Same.
13374 ("pmulhrwv4hi3"): Same.
13375
13376 * tree-inline.c (walk_tree): Handle vectors.
13377
13378 * c-common.c (constant_expression_warning): Handle vectors.
13379 (overflow_warning): Same.
13380
13381 * sched-deps.c (sched_analyze_2): Handle vectors.
13382
13383 * rtlanal.c (rtx_unstable_p): Handle vectors.
13384 (rtx_varies_p): Same.
13385 (count_occurrences): Same.
13386 (regs_set_between_p): Same.
13387 (modified_between_p): Same.
13388 (modified_in_p): Same.
13389 (volatile_insn_p): Same.
13390 (volatile_refs_p): Same.
13391 (side_effects_p): Same.
13392 (may_trap_p): Same.
13393 (inequality_comparisons_p): Same.
13394 (replace_regs): Same.
13395 (computed_jump_p_1): Same.
13396
13397 * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
13398 argument.
13399 (inner_mode_array): New.
13400 (copy_rtx): Handle vectors.
13401 (copy_most_rtx): Same.
13402 (rtx_equal_p): Same.
13403 (get_mode_alignment): Adjust for vectors.
13404
13405 * resource.c (mark_referenced_resources): Handle vectors.
13406 (mark_set_resources): Same.
13407
13408 * reload1.c (eliminate_regs): Handle vectors.
13409 (elimination_effects): Same.
13410 (scan_paradoxical_subregs): Same.
13411
13412 * reload.c (subst_reg_equivs): Handle vectors.
13413
13414 * regrename.c (scan_rtx): Handle vectors.
13415
13416 * regclass.c (reg_scan_mark_refs): Handle vectors.
13417
13418 * recog.c (find_single_use_1): Handle vectors.
13419
13420 * local-alloc.c (equiv_init_varies_p): Handle vectors.
13421 (contains_replace_regs): Same.
13422 (memref_referenced_p): Same.
13423
13424 * integrate.c (copy_rtx_and_substitute): Handle vectors.
13425 (subst_constants): Same.
13426
13427 * genattrtab.c (attr_copy_rtx): Handle vectors.
13428 (encode_units_mask): Same.
13429 (clear_struct_flag): Same.
13430 (count_sub_rtxs): Same.
13431
13432 * gcse.c (want_to_gcse_p): Handle vectors.
13433 (oprs_unchanged_p): Same.
13434 (hash_expr_1): Same.
13435 (oprs_not_set_p): Same.
13436 (expr_killed_p): Same.
13437 (compute_transp): Same.
13438 (store_ops_ok): Same.
13439
13440 * function.c (purge_addressof_1): Do not allow paradoxical subregs
13441 of vectors.
13442 (fixup_var_refs_1): Same.
13443 (instantiate_virtual_regs_1): Same.
13444
13445 * fold-const.c (operand_equal_p): Handle vectors.
13446 (fold): Same.
13447 (rtl_expr_nonnegative_p): Same.
13448
13449 * flow.c (mark_used_regs): Handle vectors.
13450
13451 * df.c (df_uses_record): Handle vectors.
13452
13453 * cselib.c (cselib_subst_to_values): Handle vectors.
13454 (cselib_mem_conflict_p): Same.
13455 (hash_rtx): Same.
13456
13457 * cse.c (canon_reg): Handle vectors.
13458 (fold_rt): Same.
13459 (cse_process_notes): Same.
13460 (count_reg_usage): Same.
13461 (canon_hash): Same.
13462
13463 * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
13464
13465 * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
13466
13467 * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
13468 (gen_rtx): Handle CONST_VECTOR.
13469 (gen_const_vector_0): New.
13470 (copy_rtx_if_shared): CONST_VECTORs can be shared.
13471 (reset_used_flags): Same.
13472 (copy_insn_1): Same.
13473 (initializer_constant_valid_p): Handle VECTOR_CST.
13474
13475 * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
13476
13477 * doc/rtl.texi (Constants): Document const_vector.
13478 (CONST0_RTX): Update for vectors.
13479 (RTL sharing): Same.
13480
13481 * print-tree.c (print_node): Add case for VECTOR_CST.
13482
13483 * tree.h (TREE_VECTOR_CST_ELTS): New.
13484 (struct tree_vector): New.
13485 (union tree_node): Add vector node.
13486 (build_vector): Add prototype.
13487
13488 * tree.def (VECTOR_CST): New.
13489
13490 * tree.c (build_vector): New.
13491
13492 * expmed.c (make_tree): Handle CONST_VECTOR.
13493
13494 * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
13495 (CONST_VECTOR_ELT): New.
13496 (CONST_VECTOR_NUNITS): New.
13497
13498 * machmode.h (GET_MODE_INNER): New.
13499 (DEF_MACHMODE): Accept 8th arg.
13500
13501 * machmode.def: Add 8th argument for vector inner mode.
13502 Add inner vector modes for vectors.
13503
13504 * rtl.def (VEC_CONST): Remove.
13505 (CONST_VECTOR): New.
13506
13507 * expr.c (clear_storage): Allow vectors.
13508 (is_zeros_p): Handle VECTOR_CST.
13509
13510 * varasm.c (output_constant_pool): Handle vectors.
13511 (rtx_const): Add veclo and vechi fields.
13512 (kind): Add RTX_VECTOR.
13513 (decode_rtx_const): Add case for vector.
13514
13515 * config/rs6000/rs6000-protos.h: Add zero_constant.
a4194ff7 13516
e4757a47 13517 * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
13518 constants. Force easy vector constants into memory.
13519 (easy_vector_constant): New.
13520 (emit_easy_vector_constant): New.
13521 (rs6000_legitimize_reload_address): Do not generate bad reloads on
13522 darwin.
13523
13524 * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
13525 instruction does.
13526 ("altivec_lvxl"): Same.
13527 (altivec_lvebx): Same.
13528 (altivec_lvehx): Same.
13529 (altivec_lvewx): Same.
13530 ("*movv4si_const0"): New.
13531 ("*movv4sf_const0"): New.
13532 ("*movv8hi_const0"): New.
13533 ("*movv16qi_const0"): New.
13534
ad992f91 135352002-02-18 Kazu Hirata <kazu@hxi.com>
13536
13537 * config/h8300/h8300.c (notice_update_cc): Use
13538 cc_status.value2.
13539
ec708c23 135402002-02-18 Kazu Hirata <kazu@hxi.com>
13541
13542 * config/h8300/h8300.md (divmod patterns): Change the
13543 constraints for operands[1] to register_operand.
13544
a7b07d19 135452002-02-18 Kazu Hirata <kazu@hxi.com>
13546
13547 * config/h8300/h8300-protos.h: Remove the prototype for
13548 p_operand.
13549 * config/h8300/h8300.c (p_operand): Remove.
13550 * config/h8300/h8300.md: Replace p_operand with
13551 const_int_operand.
13552
71d934e9 135532002-02-18 Philip Blundell <pb@nexus.co.uk>
13554
13555 * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
13556 comment.
13557 (output_return_instruction): Allow use of LDR to unstack
13558 return addresss even for interrupt handlers or when
13559 interworking. If compiling for ARMv5, use interworking-safe
13560 return instructions by default. Remove duplicated code and
13561 lengthy "strcat" sequences.
13562
079c4432 135632002-02-18 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
13564
13565 * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
13566 (LINK_EH_SPEC): Define.
13567 * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
13568
7bbebc45 135692002-02-18 Ulrich Weigand <uweigand@de.ibm.com>
13570
13571 * config/s390/s390.c (s390_emit_prologue): Do not set the
13572 frame_related flag for call-clobbered registers.
13573
484e4581 13574Mon Feb 18 15:07:35 CET 2002 Jan Hubicka <jh@suse.cz>
13575
13576 * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
13577 (construct_container): Fix handling of SSE operands.
13578 (ix86_expand_builtin): Fix handling of 64bit pointers.
13579 (mmx_maskmovq_rex): New pattern.
13580
00e8d5e7 13581Mon Feb 18 11:55:55 CET 2002 Jan Hubicka <jh@suse.cz>
13582
13583 * regrename.c (kill_set_value): Handle subregs properly.
13584
15f81125 135852002-02-18 David Billinghurst <David.Billinghurst@riotinto.com>
13586
13587 * objc/objc-act.c (handle_impent): Remove leading '*'
a4194ff7 13588 from objc_class_name.
15f81125 13589
792433e3 135902002-02-17 Richard Henderson <rth@redhat.com>
13591
13592 * config/alpha/alpha.c (some_small_symbolic_operand,
13593 some_small_symbolic_operand_1, split_small_symbolic_operand,
13594 split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
13595 Handle small SYMBOL_REFs anywhere, not just inside memories.
13596 * config/alpha/alpha-protos.h: Update.
13597 * config/alpha/alpha.h (PREDICATE_CODES): Update.
13598 * config/alpha/alpha.md (small symbolic operand splitter): Update.
13599
fca26bb8 136002002-02-17 Roland McGrath <roland@frob.com>
13601
13602 * config.gcc (powerpc-*-gnu-gnualtivec*,
13603 powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
13604 * config/rs6000/gnu.h: New file.
13605 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
13606 Grok "gnu" in rs6000_abi_name.
13607 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
13608 CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
13609 Grok -mcall-gnu analogous to -mcall-linux et al.
13610 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
13611 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
13612 (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
13613
ca982002 136142002-02-17 Jakub Jelinek <jakub@redhat.com>
13615
13616 PR c/3444:
13617 * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
13618 shortening.
13619
a3b8e004 136202002-02-17 Philipp Thomas <pthomas@suse.de>
13621
13622 * config/cris/cris.h: Undefine STARTFILE_SPEC and
13623 ENDFILE_SPEC before (re)defining them.
13624
81c3eb11 136252002-02-17 Kazu Hirata <kazu@hxi.com>
13626
13627 * config/h8300/h8300.c: Fix formatting.
13628 * config/h8300/h8300.h: Likewise.
13629
516726bd 136302002-02-17 Philipp Thomas <pthomas@suse.de>
13631
13632 * doc/tm.texi: Explain why empty strings should not be
13633 marked for translation.
13634
a1657b95 136352002-02-17 Philipp Thomas <pthomas@suse.de>
13636
13637 * final.c (output_operand_lossage): Changed to accept
13638 printf style arguments. Change calls where necessary.
13639 * output.h (output_operand_lossage): Change declaration
13640 accordingly. Update copyright.
13641 * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
13642 config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
13643 Update copyright date where necessary.
a4194ff7 13644
a1657b95 13645 * config/i386/i386.c (print_operand): Likewise. Remove use of
13646 sprintf.
13647
13648 * config/cris/cris.c (cris_operand_lossage): Likewise.
13649 Rename parameter so that exgettext recognizes it as
13650 translatable message.
13651 (LOSE_AND_RETURN): Rename parameter to msgid.
13652
914c4f2c 136532002-02-17 Kazu Hirata <kazu@hxi.com>
13654
13655 * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
13656 hard coded register number with an appropriate macro.
13657 (HARD_REGNO_MODE_OK): Likewise.
13658 (ARG_POINTER_REGNUM): Likewise.
13659 (STATIC_CHAIN_REGNUM): Likewise.
13660 (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
13661 * config/h8300/h8300.md (define_constants): Define more
13662 register numbers.
13663
959b27f3 136642002-02-17 Philipp Thomas <pthomas@suse.de>
13665
13666 * config/i386/i386.h: Don't mark empty strings for translation.
13667
32702958 136682002-02-16 H.J. Lu <hjl@gnu.org>
13669
13670 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
13671
f7ee0e54 136722002-02-16 Zack Weinberg <zack@codesourcery.com>
13673
13674 * cppinit.c (merge_include_chains): Check for brack being
13675 NULL before attempting to merge it with qtail.
13676
4a19b412 136772002-02-16 Andrew Cagney <ac131313@redhat.com>
13678
13679 * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
13680 DBX_DEBUG.
13681
f2e37906 136822002-02-16 John David Anglin <dave@hiauly1.hia.nrc.ca>
13683
13684 * pa/t-pa, pa/t-pro, som.h: Revert last patch.
13685
cd98951e 136862002-02-16 John David Anglin <dave@hiauly1.hia.nrc.ca>
13687
13688 * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
13689 * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
13690 * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
13691
9ba94287 13692Sat Feb 16 13:48:50 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13693
b26f60fe 13694 * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
9ba94287 13695 now only if !TARGET_FIX.
13696 (*movsi_nt_vms_fix): New pattern.
13697
b19d7ab1 136982002-02-16 Douglas B Rupp <rupp@gnat.com>
13699
13700 * config/alpha/alpha.c: Implement null frame procedure types on VMS.
13701 (alpha_procedure_type): Replaces alpha_is_stack_procedure.
13702 (alpha_sa_mask, alpha_sa_size): Reflect above change.
13703 (alpha_pv_save_size, alpha_expand_prologue): Likewise.
13704 (alpha_start_function, alpha_expand_epilogue): Likewise.
13705 (unicosmk_gen_dsib): Likewise.
13706
cbbc8e6a 13707Sat Feb 16 13:39:09 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13708
13709 * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
13710
479ca6e8 137112002-02-16 Ulrich Weigand <uweigand@de.ibm.com>
13712
a4194ff7 13713 * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
479ca6e8 13714 check_and_change_labels, s390_final_chunkify): Delete.
13715 (s390_split_branches, s390_chunkify_pool): New functions.
13716 (s390_function_prologue): Call them.
a4194ff7 13717
479ca6e8 13718 * config/s390/s390.h (S390_REL_MAX): Delete.
13719 (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
13720
a4194ff7 13721 * config/s390/s390.md (cjump, icjump, jump): Fix length
479ca6e8 13722 attribute calculation.
13723
13724
19d4f8a9 137252002-02-15 David Edelsohn <edelsohn@gnu.org>
13726
13727 * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
13728 * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
13729
78e01a1f 137302002-02-15 John David Anglin <dave@hiauly1.hia.nrc.ca>
13731
13732 * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
13733 * config/pa/pa-linux.h (LIB_SPEC): Likewise.
13734 * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
13735
aeb814bb 137362002-02-15 Richard Sandiford <rsandifo@redhat.com>
13737
13738 * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
13739
b2656069 137402002-02-15 Richard Sandiford <rsandifo@redhat.com>
13741
13742 * reload.c (find_dummy_reload): Check that an output register
13743 is valid for its mode.
13744
2aa75f60 137452002-02-14 Alexandre Oliva <aoliva@redhat.com>
13746
826402d7 13747 * combine.c (known_cond): After replacing the REG of a SUBREG, try
13748 to simplify it.
13749
2aa75f60 13750 * function.c (assign_parms): Demote promoted argument passed by
13751 transparent reference.
13752
cb753661 137532001-02-14 Joel Sherrill <joel@OARcorp.com>
13754
13755 * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
13756 -Acpu() and -Amachine() to eliminate warnings.
13757
d1e8a831 137582002-02-14 Ulrich Weigand <uweigand@de.ibm.com>
13759
13760 * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
13761
e8d82641 137622002-02-14 Kazu Hirata <kazu@hxi.com>
13763
13764 * config/h8300/h8300-protos.h: Update the prototype for
13765 const_costs.
13766 * config/h8300/h8300.c (const_costs): Treat SET as a little
13767 more expensive operation.
13768 * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
13769 reference to const_costs.
13770
dfaadc1e 137712002-02-14 Hans-Peter Nilsson <hp@axis.com>
13772
13773 * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
13774
7a6b670a 137752002-02-14 Jakub Jelinek <jakub@redhat.com>
13776
13777 PR c/5503:
13778 * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
13779 use arguments from newtype.
13780
e2534d93 137812002-02-13 Eric Christopher <echristo@redhat.com>
13782
13783 * config/mips/mips.c (override_options): Add check for march/mipsX
13784 on the same command line. Fix error message in cpu processing.
13785 Remove architecture and ISA checks.
13786
1daca59d 137872002-02-14 Aldy Hernandez <aldyh@redhat.com>
13788
4fc5f895 13789 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
1daca59d 13790
4fc5f895 13791 * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
1daca59d 13792
a0222b01 137932002-02-14 Aldy Hernandez <aldyh@redhat.com>
13794
4fc5f895 13795 * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
13796 alternatives.
13797 ("*movv8hi_internal1"): Same.
13798 ("*movv16qi_internal1"): Same.
13799 ("*movv4sf_internal1"): Same.
a0222b01 13800
4fc5f895 13801 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
13802 not push_reload for altivec modes.
a0222b01 13803
7a6b670a 138042002-02-13 Joel Sherrill <joel@OARcorp.com>
214507b9 13805
13806 * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
13807 all RTEMS targets including removal of #includes from config/*/rtems*.h
13808 file and adding them to tm_file setting. Added xm_defines=POSIX to
13809 many targets.
13810 * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
13811 * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
13812 * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
13813 * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
13814 * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
13815 config/m68k/rtemself.h: Ditto.
13816 * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
13817 config/mips/rtems64.h: Ditto.
13818 * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
13819 * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
13820 Ditto.
13821 * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
13822 config/sparc/rtemself.h: Ditto.
13823 * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
13824 * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
13825 arm-rtems stanza closer to other arm-elf targets and made arm-rtems
13826 more like arm-elf.
13827 * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
13828 config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
13829 target made more similar to i386-elf.
13830 * config/i386/t-rtems-i386: Added soft float support and multilibs.
13831 * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
13832 be similar to config/m68k/t-m68kelf.
13833 * gthr-rtems.h: Encapsulate with extern "C" for C++.
13834
bd6bc33d 13835Wed Feb 13 23:41:15 CET 2002 Jan Hubicka <jh@suse.cz>
13836
13837 * regmove.c (kill_value): Handle subregs.
13838
5edf31bc 13839Wed Feb 13 23:34:30 CET 2002 Jan Hubicka <jh@suse.cz>
13840
13841 * i386.md (mul patterns): Allow memory operand to be first;
13842 add expanders where needed; fix constraints.
13843 (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
13844 Allow memory operand to be the first.
13845
13846 * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
13847 operands.
13848
c5e81ca5 138492002-02-13 Jakub Jelinek <jakub@redhat.com>
13850
13851 PR c/5681:
13852 * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
13853 GET_MODE (x).
13854
3c6ed5ba 138552002-02-13 Jakub Jelinek <jakub@redhat.com>
13856
13857 PR optimization/5547:
13858 * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
13859 all valid IA-32 address modes involving non-scaled %ebx and
13860 GOT/GOTOFF as displacement.
13861
9fa6d5d9 138622002-02-13 Ulrich Weigand <uweigand@de.ibm.com>
13863
13864 * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
13865 after emitting ltorg insns.
13866
13867 * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
13868 *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
13869 *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
13870 *abssf2): Fix "op_type" attribute.
13871
e7d5cd82 138722002-02-13 Douglas B Rupp <rupp@gnat.com>
13873
568b9110 13874 * mkconfig.sh: Avoid using a subshell redirect.
13875 ($output.T): Change to $(output)T.
13876 (ENABLE_NLS): Remove unneeded undef.
13877
3536e14d 13878 * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
13879 * config/alpha/x-vms (libsubdir): Define.
13880
3eaf7912 13881 * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
13882 register frame procedures. Optimize retrieving context.
13883
e7d5cd82 13884 * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
13885 (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
13886 * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
13887
5104ef69 13888Wed Feb 13 09:45:08 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13889
13890 * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
13891 Make same change as for find_base_value.
13892
7953f686 138932002-02-13 Kazu Hirata <kazu@hxi.com>
13894
13895 * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
13896 of QImode and SImode.
13897
16ff02f6 138982002-02-13 Kazu Hirata <kazu@hxi.com>
13899
13900 * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
13901 length computation of movsi.
13902 * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
13903
7be90177 139042002-02-13 Kazu Hirata <kazu@hxi.com>
13905
13906 * config/h8300/h8300.md (subqi3): Tighten the predicate for
13907 operands[2] to register_operand.
13908
0f0f0d50 13909Wed Feb 13 10:35:56 CET 2002 Jan Hubicka <jh@suse.cz>
13910
13911 * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
13912
4625cc70 139132002-02-12 Aldy Hernandez <aldyh@redhat.com>
13914
4fc5f895 13915 * config/rs6000/rs6000.md: Use predicate altivec_register_operand
13916 for altivec_lvx* and altivec_stvx*.
13917 ("*movv4si_internal"): Add constraint for loading from GPRs.
13918 ("*movv8hi_internal1"): Same.
13919 ("*movv16qi_internal1"): Same.
13920 ("*movv4sf_internal1"): Same.
4625cc70 13921
4fc5f895 13922 * config/rs6000/rs6000.c (altivec_register_operand): New.
4625cc70 13923
4fc5f895 13924 * config/rs6000/rs6000.h (PREDICATE_CODES): Add
13925 altivec_register_operand.
4625cc70 13926
60bb373d 139272002-02-13 Hans-Peter Nilsson <hp@bitrange.com>
13928
13929 * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
13930 handle SYMBOL_REF.
13931
0ad236c2 139322002-02-13 Stan Shebs <shebs@apple.com>
13933
4fc5f895 13934 * c-typeck.c (digest_init): Handle vectors.
13935 (really_start_incremental_init): Same.
13936 (pop_init_level): Same.
13937 (process_init_element): Same.
0ad236c2 13938
4fc5f895 13939 * varasm.c (output_constant): Same.
0ad236c2 13940
4fc5f895 13941 * expr.c (clear_storage): Same.
13942 (store_constructor): Same.
0ad236c2 13943
6be48139 139442002-02-12 Eric Christopher <echristo@redhat.com>
13945
13946 * explow.c (hard_function_value): Add comment explaining
13947 signed/unsigned comparison.
13948
5b154f04 139492002-02-12 Jakub Jelinek <jakub@redhat.com>
13950
13951 * jump.c (never_reached_warning): Add finish argument.
13952 If finish is NULL, stop on CODE_LABEL, otherwise stop before first
13953 real insn after end.
13954 * rtl.h (never_reached_warning): Adjust prototype.
13955 * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
13956 * cfgrtl.c (flow_delete_block): Pass b->end as finish to
13957 never_reached_warning.
13958
18434c1e 139592002-02-12 Graham Stott <grahams@redhat.com>
13960
13961 * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
13962
f76e2664 139632002-02-12 Kazu Hirata <kazu@hxi.com>
13964
13965 * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
13966 logical shifts on H8/300.
13967 (shift_alg_si): Improve several shifts on H8/300.
13968 (get_shift_alg): Likewise.
13969
fc1fb057 139702002-02-12 Graham Stott <grahams@redhat.com>
13971
13972 * config/pa/pa.c (compute_movstrsi_length): Fix typos.
13973
d01410d3 13974Tue Feb 12 10:12:56 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13975
13976 * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
13977 Handle #ifdef POINTERS_EXTEND_UNSIGNED.
13978
4f4e478d 139792002-02-11 Hans-Peter Nilsson <hp@bitrange.com>
13980
13981 * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
13982 non-CONST_INT through default_assemble_integer.
13983 <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
13984 <case 8>: Abort for CONST_DOUBLE.
13985
4515af0b 139862002-02-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
13987
13988 * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
13989 is specified.
13990 * config/pa/pa-linux.h (LIB_SPEC): Delete.
13991 * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
13992
690d3235 139932002-02-11 Andrew Haley <aph@cambridge.redhat.com>
13994
13995 * config/stormy16/stormy16.md (zero_extendqihi2): New.
13996
de79a9e1 139972002-02-11 Alexandre Oliva <aoliva@redhat.com>
13998
5ee24cd9 13999 * regrename.c (regrename_optimize): Don't accept a
14000 part-clobbered register if the replaced register is not part
14001 clobbered.
14002
d5c9a99f 14003 * calls.c (store_one_arg): In the non-BLKmode non-partial case,
14004 take padding into account when computing the argument value.
14005
56fbb2d4 14006 * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
14007
de79a9e1 14008 * combine.c (try_combine): Apply substitutions in
14009 CALL_INSN_FUNCTION_USAGE too.
14010
d688971e 140112002-02-11 Aldy Hernandez <aldyh@redhat.com>
14012
6c311a26 14013 * config/rs6000/rs6000.c (altivec_init_builtins): Handle
14014 __builtin_altivec_abs*.
14015 (bdesc_abs): New.
d688971e 14016
6c311a26 14017 * config/rs6000/rs6000.h (rs6000_builtins): Add
14018 ALTIVEC_BUILTIN_ABS*.
d688971e 14019
6c311a26 14020 * config/rs6000/altivec.h: Use const char for builtins expecting
14021 literals.
14022 (vec_abs): New versions for C and C++.
14023 (vec_abss): Same.
d688971e 14024
80f7466f 140252002-02-10 Kazu Hirata <kazu@hxi.com>
14026
14027 * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
14028 using Pmode.
14029
2e9dc773 140302002-02-10 Kazu Hirata <kazu@hxi.com>
14031
14032 * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
14033 constant definition from h8300.md.
14034 (FRAME_POINTER_REGNUM): Likewise.
14035 * config/h8300/h8300.md (define_constants): Add FP_REG.
14036
b99f3ebb 140372002-02-10 Kazu Hirata <kazu@hxi.com>
14038
14039 * config/h8300/h8300.c (print_operand): Remove redundant code.
14040
7198848c 140412002-02-10 Kazu Hirata <kazu@hxi.com>
14042
14043 * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
14044 * config/h8300/h8300.c (byte_reg): Make it static.
14045
e40a1d5c 140462002-02-10 Richard Henderson <rth@redhat.com>
14047
14048 PR c/5623
14049 * c-typeck.c (incomplete_type_error): Handle flexible array members.
14050
4b186f02 140512002-02-10 Richard Henderson <rth@redhat.com>
14052
14053 PR c++/5624
14054 * tree.c (append_random_chars): Don't abort if main_input_filename
14055 does not exist.
14056
a5b59592 140572002-02-10 Hans-Peter Nilsson <hp@bitrange.com>
14058
14059 * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
14060
47ec1949 140612002-02-10 Kazu Hirata <kazu@hxi.com>
14062
4b186f02 14063 * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
47ec1949 14064 (pushhi1): Likewise.
14065
6df54749 140662002-02-10 John David Anglin <dave@hiauly1.hia.nrc.ca>
14067
14068 * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
14069 * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
14070
bed0172c 140712002-02-09 David O'Brien <obrien@FreeBSD.org>
14072
14073 * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
14074 remove MASK_VIS.
14075 (ASM_CPU_DEFAULT_SPEC): Remove. Default setting is fine.
14076
a9d986d9 140772002-02-09 Kazu Hirata <kazu@hxi.com>
14078
14079 * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
14080 a half of an SImode register on H8/300.
14081
f46279ed 14082Sat Feb 9 18:28:02 CET 2002 Jan Hubicka <jh@suse.cz>
14083
14084 * i386.md (movdi_2): Add missing '!'.
14085
24efb2a8 140862002-02-09 Kazu Hirata <kazu@hxi.com>
14087
14088 * config/h8300/h8300.h: Fix formatting. Remove commented-out
14089 definitions.
14090
a625f574 140912002-02-09 Kazu Hirata <kazu@hxi.com>
14092
14093 * config/h8300/h8300.md (length): Correct the distance valid
14094 for the short branch.
14095
93028baa 140962002-02-09 Kazu Hirata <kazu@hxi.com>
14097
14098 * config/h8300/h8300.md (iorhi3): Tighten the predicates.
14099
e27e52e0 141002002-02-09 Alexandre Oliva <aoliva@redhat.com>
14101
fcd4cb57 14102 * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
14103 registers in SImode.
14104 (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
14105 part-clobbered.
14106
87708ea5 14107 * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
14108 patch.
6be48139 14109
87e19636 14110 Contribute sh64-elf.
14111 2002-02-09 Alexandre Oliva <aoliva@redhat.com>
14112 * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
14113 (sh_cannot_modify_jumps_p): New function.
14114 2002-02-05 Alexandre Oliva <aoliva@redhat.com>
14115 * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
14116 (sh_ms_bitfield_layout_p): New function.
14117 2002-02-04 Alexandre Oliva <aoliva@redhat.com>
14118 Zack Weinberg <zack@codesourcery.com>
14119 * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
14120 expand_simple_binop instead of expand_binop.
14121 2002-02-03 Alexandre Oliva <aoliva@redhat.com>
14122 * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
14123 use of .quad and .uaquad.
14124 * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
14125 TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
14126 2002-01-24 Alexandre Oliva <aoliva@redhat.com>
14127 * config/sh/sh.md (movdi_const, movdi_const_32bit,
14128 movdi_const_16bit): Make sure all CONSTs have modes.
14129 (sym2PIC): Ditto, but by adjusting all callers.
14130 * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
14131 if the prologue calls the SHmedia argument decoder or register
14132 saver.
14133 2002-01-24 Alexandre Oliva <aoliva@redhat.com>
14134 * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
14135 (TARGET_ASM_ALIGNED_DI_OP): Likewise.
14136 (sh_expand_epilogue): Don't emit USE of return target register.
14137 (prepare_move_operands): Legitimize DImode PIC addresses.
14138 (sh_media_register_for_return): Skip tr0, used to initialize the
14139 PIC register.
14140 (sh_expand_prologue): Remove explicit USE of return register.
14141 (nonpic_symbol_mentioned_p): PC is non-PIC. Don't recurse in
14142 CONST_DOUBLEs. UNSPEC_GOTPLT is PIC.
14143 * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
14144 (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
14145 (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
14146 EXTRA_CONSTRAINT_T.
14147 (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
14148 (MOVI_SHORI_BASE_OPERAND_P): New.
14149 (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
14150 (EXTRA_CONSTRAINT_T): Define in terms of them.
14151 (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
14152 * config/sh/sh.md (movsi_media, movsi_media_nofpu,
14153 movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
14154 alternatives supporting TARGET_REGS.
14155 (UNSPEC_GOTPLT): New constant.
14156 (movdi split): Move incrementing of LABEL_NUSES...
14157 (movdi_const, movdi_const_32bit): Here. Use
14158 MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
14159 (movdi_const_16bit): New.
14160 (call, call_value) [flag_pic]: Use GOTPLT.
14161 (call_pop, call_value_pop): New expands.
14162 (call_pop_compact, call_pop_rettramp): New insns.
14163 (call_value_pop_compact, call_value_pop_rettramp): New insns.
14164 (sibcall) [flag_pic]: Use GOT.
14165 (builtint_setjmp_receiver): Remove bogus, unused expand.
14166 (GOTaddr2picreg): Implement for SHcompact and SHmedia.
14167 (*pt, *ptb, ptrel): New insns.
14168 (sym2GOT): Handle DImode GOT.
14169 (sym2GOTPLT, symGOTPLT2reg): New expands.
14170 (sym2PIC): New expand.
14171 (shcompact_return_tramp): Use GOTPLT to return trampoline.
14172 (shcompact_return_tramp_i): Use return register explicitly.
14173 * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
14174 disable flag_reorder_blocks.
14175 2002-01-19 Alexandre Oliva <aoliva@redhat.com>
14176 * config/sh/sh.md (sibcall_compact): Reorder return, uses and
14177 clobbers, for clarity.
14178 (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
14179 restoring of r0 in macl as MAYBE_DEAD.
14180 2002-01-18 Alexandre Oliva <aoliva@redhat.com>
14181 * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
14182 * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
14183 alter_subreg all over.
14184 (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
14185 reload, instead of emitting instructions that would require
14186 reloading.
14187 (casesi_load_media): Add missing modes.
14188 2001-11-09 Alexandre Oliva <aoliva@redhat.com>
14189 * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
14190 as used if the argument decoder is called.
14191 2001-08-28 Alexandre Oliva <aoliva@redhat.com>
14192 * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
14193 Pmode, then extend it to DImode if necessary.
14194 2001-08-28 Stephen Clarke <Stephen.Clarke@st.com>
14195 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
14196 constants in FPU-enabled SHmedia, let them be loaded from memory.
14197 2001-08-28 Alexandre Oliva <aoliva@redhat.com>
14198 * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
14199 Adjust whitespace in assembly output templates.
14200 2001-08-28 Stephen Clarke <Stephen.Clarke@st.com>
14201 * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
14202 mode of if_then_else.
14203 2001-08-04 Alexandre Oliva <aoliva@redhat.com>
14204 * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
14205 sh.h.
14206 2001-07-26 Andrew Haley <aph@cambridge.redhat.com>
14207 Joern Rennecke <amylaar@redhat.com>
14208 * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
14209 (SUBTARGET_CPP_PTR_SPEC): New.
14210 (SUBTARGET_CPP_SPEC): Remove.
14211 2001-07-06 Chandrakala Chavva <cchavva@redhat.com>
14212 * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14213 Fix typo in previous checkin.
14214 2001-07-11 Chandrakala Chavva <cchavva@redhat.com>
14215 * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
14216 2001-07-10 Chandrakala Chavva <cchavva@cygnus.com>
14217 Alexandre Oliva <aoliva@redhat.com>
14218 * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
14219 what single FP register can hold for SHmedia target.
14220 2001-07-06 Chandrakala Chavva <cchavva@redhat.com>
14221 Alexandre Oliva <aoliva@redhat.com>
14222 * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
14223 Do not split into SUBREG.
14224 2001-06-14 Alexandre Oliva <aoliva@redhat.com>
14225 * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
14226 and added new functions as specified in SH5 ABI r9.
14227 2001-06-04 Alexandre Oliva <aoliva@redhat.com>
14228 * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
14229 8-byte boundary.
14230 2001-06-03 Alexandre Oliva <aoliva@redhat.com>
14231 * config/sh/sh.c (dump_table): Add const0_rtx in calls of
14232 gen_consttable_4 and gen_consttable_8. Emit multiple labels
14233 and consttable_window_ends.
14234 2001-06-03 Graham Stott <grahams@redhat,com>
14235 * config/sh/sh.md (movdi split): Remove unused variable last_insn.
14236 2001-05-16 Alexandre Oliva <aoliva@redhat.com>
14237 * config/sh/sh.c (print_operand): Handle floating-point pair,
14238 vector and matrix registers.
14239 * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
14240 vector modes into account.
14241 * config/sh/sh.md (movv2sf): Split move between registers into
14242 movdf.
14243 (movv4sf, movv16sf): Introduce insns that get split only after
14244 reload.
14245 * config/sh/shmedia.h: Fix Copyright dates.
14246 * config/sh/ushmedia.h: Likewise. Move loop counter
14247 declarations into conditionals that uses them.
14248 (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
14249 loop boundary.
14250 * config/sh/sshmedia.h: Fix Copyright dates.
14251 (sh_media_PUTCFG): Fix constraints.
14252 2001-05-12 Alexandre Oliva <aoliva@redhat.com>
14253 * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
14254 ptrmemfunc_vbit_in_delta for SH5.
14255 2001-05-08 Alexandre Oliva <aoliva@redhat.com>
14256 * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
14257 * invoke.texi: Likewise.
14258 2001-04-14 Alexandre Oliva <aoliva@redhat.com>
14259 * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
14260 GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
14261 GCC_pop_shmedia_regs_nofpu): New global symbols.
14262 * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
14263 * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
14264 * config/sh/sh.c (calc_live_regs): Account for PR's saving in
14265 compact function with nonlocal labels.
14266 (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
14267 (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
14268 (initial_elimination_offset): Account for their stack space.
14269 * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
14270 * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
14271 movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
14272 movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
14273 least one of the operands to be a register.
14274 (movv2sf): Likewise. Renamed to movv2sf_i.
14275 (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
14276 prepare_move_operands() before emitting SHmedia insns.
14277 2001-04-03 Alexandre Oliva <aoliva@redhat.com>
14278 * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
14279 Don't save nor initialize r12. Don't mis-align the stack.
14280 Pad the code with a nop.
14281 * config/sh/crti.asm: Don't restore r12. Don't mis-align the
14282 stack.
14283 2001-03-13 Alexandre Oliva <aoliva@redhat.com>
14284 * gcc/longlong.h (__umulsidi3, count_leading_zeros)
14285 [__SHMEDIA__]: Implement.
14286 2001-03-11 Alexandre Oliva <aoliva@redhat.com>
14287 * config/sh/sh.md: Set latency of `pt' closer to reality.
14288 (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
14289 movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
14290 Set move, load and store type attributes.
14291 * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
14292 * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
14293 profiling.
14294 * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
14295 * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
14296 * config/sh/sh.c (sh_media_register_for_return): New function.
14297 (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
14298 branch-target register.
14299 (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
14300 * config/sh/sh.md (return_media_i): Use any call-clobbered
14301 branch-target register.
14302 (return_media): If r18 wasn't copied in the prologue, copy it
14303 here.
14304 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
14305 Clear class FP0_REGS.
14306 * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
14307 from elf.h.
14308 2001-03-08 DJ Delorie <dj@redhat.com>
14309 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
14310 2001-02-09 Alexandre Oliva <aoliva@redhat.com>
14311 * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
14312 2001-02-07 Alexandre Oliva <aoliva@redhat.com>
14313 * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
14314 2001-02-03 Alexandre Oliva <aoliva@redhat.com>
14315 * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
14316 return value correctly for call_cookie.
14317 2001-02-01 Alexandre Oliva <aoliva@redhat.com>
14318 * config/sh/crt1.asm (start): Modified so as to call
14319 ___setup_argv_and_call_main.
14320 2001-01-26 Alexandre Oliva <aoliva@redhat.com>
14321 * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
14322 SHmedia mode.
14323 2001-01-20 Alexandre Oliva <aoliva@redhat.com>
14324 * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
14325 (STRIP_NAME_ENCODING): Use it.
14326 (ASM_OUTPUT_LABELREF): Likewise. Don't call assemble_name().
14327 2001-01-19 Alexandre Oliva <aoliva@redhat.com>
14328 * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
14329 prepare_scc_operands().
14330 * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
14331 (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
14332 2001-01-17 Alexandre Oliva <aoliva@redhat.com>
14333 * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
14334 2001-01-13 Alexandre Oliva <aoliva@redhat.com>
14335 * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
14336 * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
14337 used in shcompact_incoming_args.
14338 * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
14339 change.
14340 * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
14341 mode.
14342 * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
14343 Adjust accordingly.
14344 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
14345 Simplify. Adjust. Add sanity check.
14346 * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
14347 FPU_SINGLE_BIT.
14348 * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
14349 TARGET_SHCOMPACT.
14350 (udivsi3, divsi3): Use them.
14351 (force_mode_for_call): New insn.
14352 (call, call_value, sibcall_value): Emit it before SHcompact
14353 calls.
14354 2001-01-11 Alexandre Oliva <aoliva@redhat.com>
14355 * config/sh/sh.md (call, call_value, sibcall): Make sure the
14356 call cookie is non-NULL before taking its value.
14357 2001-01-10 Alexandre Oliva <aoliva@redhat.com>
14358 * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
14359 2001-01-09 Alexandre Oliva <aoliva@redhat.com>
14360 * config/sh/sh.md (shcompact_incoming_args): Set argument memory
14361 block.
14362 * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
14363 * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
14364 temporary for stack adjusts. Use MACL and MACH to pass
14365 arguments to shcompact_incoming_args.
14366 * config/sh/sh.md (shcompact_incoming_args): Adjust. Don't
14367 clobber r1.
14368 * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
14369 (nested_trampoline): Load static chain address into r1.
14370 * config/sh/sh.md (movdi_media splits): Fix sign-extension.
14371 2001-01-07 Alexandre Oliva <aoliva@redhat.com
14372 * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
14373 fp_arith_reg_operand().
14374 2001-01-06 Alexandre Oliva <aoliva@redhat.com>
14375 * config/sh/sh.md (casesi): Sign-extend the first two operands,
14376 and use signed compares for them.
14377 * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
14378 4-byte ones. Instead, inter-leave them, maintaining the 8-byte
14379 ones properly aligned.
14380 (find_barrier): Account for extra alignment needed for 8-byte wide
14381 constants.
14382 (machine_dependent_reorg): Require a label for the second 4-byte
14383 constant after an 8-byte one.
14384 * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
14385 change.
14386 2001-01-05 Alexandre Oliva <aoliva@redhat.com>
14387 * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
14388 last_float when switching float modes.
14389 * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
14390 auto-increment for general-purpose registers.
14391 * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
14392 result.
14393 * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
14394 for stack adjust.
14395 * config/sh/sh.c (sh_builtin_saveregs): Support using all
14396 registers for varargs.
14397 2001-01-01 Alexandre Oliva <aoliva@redhat.com>
14398 * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
14399 * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
14400 CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
14401 (CALL_COOKIE_INT_REG_SHIFT): Adjust.
14402 (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK. Adjust
14403 call_cookie accordingly.
14404 (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
14405 (SHCOMPACT_BYREF): Likewise.
14406 (SHCOMPACT_FORCE_ON_STACK): New macro.
14407 * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
14408 (sh_builtin_saveregs): Likewise.
14409 * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14410 shcompact_incoming_args): Use new shift values. Support
14411 sequences of consecutive and non-consecutive pushes/pops.
14412 * config/sh/sh.md (return): Don't explicitly use PR_REG.
14413 2001-01-05 Hans-Peter Nilsson <hpn@cygnus.com>
14414 * config/sh/sh.h (TEXT_SECTION): Define.
14415 * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
14416 2001-01-05 Alexandre Oliva <aoliva@redhat.com>
14417 * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
14418 * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
14419 return values on FPU-enabled SHmedia.
14420 (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
14421 FPU-enabled SHmedia.
14422 (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
14423 value is returned in a non-FP reg and is not returned by
14424 reference.
14425 * config/sh/sh.md (shcompact_return_tramp_i): Change type to
14426 jump_ind.
14427 2000-01-04 Alexandre Oliva <aoliva@redhat.com>
14428 * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
14429 (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
14430 quad-aligned to be passed by callee-copy reference.
14431 2001-01-03 Alexandre Oliva <aoliva@redhat.com>
14432 * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
14433 * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
14434 2001-01-02 Alexandre Oliva <aoliva@redhat.com>
14435 * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
14436 copying low-numbered FP regs to r7 and r8.
14437 * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
14438 FP regs to general-purpose regs only if the copy was passed on the
14439 stack.
14440 * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
14441 copying FP reg to r9.
14442 * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
14443 copy FP regs to general-purpose regs only in outgoing calls.
14444 * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
77353e4f 14445 change from 2000-10-30. Adjust for 64-bit (or 32-bit)
87e19636 14446 HOST_WIDE_INT.
14447 * config/sh/sh.h (struct sh_args): Document all fields.
14448 (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
14449 passed partially on the stack should not consider making
14450 sibcalls.
14451 * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
14452 stack_regs only for incoming calls. When passing FP args,
14453 make sure there are FP regs available before modifying
14454 call_cookie.
14455 (SHCOMPACT_BYREF): Pass double args in general-purpose
14456 registers by reference.
14457 2000-12-30 Alexandre Oliva <aoliva@redhat.com>
14458 * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
14459 attempt to generate sibcalls if the caller got any arguments
14460 by reference.
14461 * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
14462 * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
14463 to 8-byte boundaries.
14464 * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
14465 * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
14466 * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
14467 stored in the stack.
14468 * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
14469 for the offsets to have the ISA bit set.
14470 (shcompact_call_trampoline): Document. Swap r0 and r1, to match
14471 invocation. Use beq instead of bgt to mark end of sequence of
14472 loads.
14473 (shcompact_incoming_args): Fix store of r2. Use beq instead of
14474 bgt to mark end of sequence of stores.
14475 * config/sh/sh.c (arith_operand): Don't check whether
14476 CONST_OK_FOR_J for now.
14477 * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
14478 instead of long for conversion.
14479 2000-12-29 Alexandre Oliva <aoliva@redhat.com>
14480 * config/sh/sh.c (print_operand_address): Convert INTVAL to int
14481 before passing it to fprintf.
14482 2000-12-28 Alexandre Oliva <aoliva@redhat.com>
14483 * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
14484 Call set_fpscr before reading/writing SR.
14485 * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
14486 Call set_fpscr.
14487 * config/sh/lib1funcs.asm: Add `.align 2' directives before
14488 SHmedia code.
14489 (FMOVD_WORKS): Define on SH5 with FPU.
14490 (set_fpscr): Define on SH5. Remove separate _fpscr_values
14491 setting.
14492 * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
14493 _fpscr_values.
14494 2000-12-28 Hans-Peter Nilsson <hpn@cygnus.com>
14495 * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
14496 address.
14497 (ia_main_table): Ditto.
14498 2000-12-27 Alexandre Oliva <aoliva@redhat.com>
14499 * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
14500 * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
14501 the definitions from sh.h.
14502 * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
14503 TARGET_SH5.
14504 (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
14505 * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
14506 * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
14507 2000-12-26 Alexandre Oliva <aoliva@redhat.com>
14508 * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
14509 Increment LABEL_NUSES.
6be48139 14510
87e19636 14511 * config/sh/sh.h (SIZE_TYPE): Define as conditional on
14512 TARGET_SH5.
14513 (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
14514 defined.
14515 * config/sh/elf.h (SIZE_TYPE): Likewise.
14516 * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
14517 * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14518 shcompact_incoming_args): Load switch table addresses using
14519 datalabel.
14520 * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
14521 (NO_BUILTIN_SIZE_TYPE): Define.
14522 (SIZE_TYPE): Don't define.
14523 * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
14524 * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
14525 definition of __SH5__=32 for -m5-compact-nofpu.
14526 * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
14527 ADDR_DIFF_VEC.
14528 2000-12-24 Alexandre Oliva <aoliva@redhat.com>
14529 * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
14530 2000-12-23 Alexandre Oliva <aoliva@redhat.com>
14531 * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
14532 (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
14533 (INSN_LENGTH_ALIGNMENT): Likewise.
14534 2000-12-22 Alexandre Oliva <aoliva@redhat.com>
14535 * config/sh/sh.md (call, call_value, sibcall): Simplify
14536 copying of non-branch-target register.
14537 2000-12-22 Alexandre Oliva <aoliva@redhat.com>
77353e4f 14538 * glimits.h (__LONG_MAX__): Revert 2000-12-13's patch.
87e19636 14539 * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
14540 2000-12-22 Alexandre Oliva <aoliva@redhat.com>
14541 * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
14542 floating-point values as structs.
14543 (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
14544 (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
14545 general-purpose register.
14546 (SH5_PROTOTYPED_FLOAT_ARG): New macro.
14547 2000-12-20 Alexandre Oliva <aoliva@redhat.com>
14548 * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
14549 * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
14550 * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
14551 (ENCODE_SECTION_INFO): Enclose variables and constants in
14552 DATALABEL unspecs.
14553 (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
14554 (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
14555 (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
14556 * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
14557 only for LABEL_REFs. For SYMBOL_REFs, prepend
14558 SH_DATALABEL_ENCODING to the symbol name.
14559 * config/sh/sh.md (indirect_jump): Use SUBREG instead of
14560 convert_mode().
14561 2000-12-20 Alexandre Oliva <aoliva@redhat.com>
14562 * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
14563 UNSPEC_DATALABEL.
14564 * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
14565 * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
14566 (DATALABEL_REF_P): Don't require CONST.
14567 (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
14568 REL label.
14569 2000-12-19 Alexandre Oliva <aoliva@redhat.com>
14570 * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
14571 right.
14572 2000-12-18 Alexandre Oliva <aoliva@redhat.com>
14573 * config/sh/sh.md (movsi_media, call, call_value, sibcall):
14574 Use shallow_copy_rtx and PUT_MODE to change the mode of
14575 SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
14576 * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
14577 on SHmedia using GENERAL_REGs.
14578 * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
14579 bltu_media_i): Fix reversion of conditions.
14580 2000-12-18 Alexandre Oliva <aoliva@redhat.com>
14581 * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
14582 * config/sh/sh.c (output_far_jump): Save r13 in macl.
14583 2000-12-17 Alexandre Oliva <aoliva@redhat.com>
14584 * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
14585 2000-12-16 Alexandre Oliva <aoliva@redhat.com>
14586 * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
14587 (GCC_nested_trampoline): Likewise.
14588 * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
14589 * config/sh/sh.c (gen_datalabel_ref): Define.
14590 * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
14591 (INITIALIZE_TRAMPOLINE): Likewise.
14592 (TRAMPOLINE_ADJUST_ADDRESS): Define.
14593 (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
14594 (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
14595 (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
14596 * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
14597 (ic_invalidate): Adjust for SH5.
14598 (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
14599 * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
14600 _nested_trampoline.
14601 2000-12-15 Alexandre Oliva <aoliva@redhat.com>
14602 * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
14603 (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
14604 2000-12-14 Alexandre Oliva <aoliva@redhat.com>
14605 * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
14606 * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
14607 2000-12-14 Alexandre Oliva <aoliva@redhat.com>
14608 * config/sh/sh.c (target_reg_operand): Match only target-branch
14609 registers and pseudos that aren't virtual registers.
14610 * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
14611 Copy operands that don't match target_reg_operand to pseudos.
14612 (call_media, call_value_media, sibcall_media): Use
14613 target_reg_operand instead of target_operand.
14614 2000-12-13 Alexandre Oliva <aoliva@redhat.com>
6be48139 14615 * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
87e19636 14616 * config/sh/sh.c (target_reg_operand): Match hardware registers
14617 other than branch-target registers.
14618 * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
14619 * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
14620 (fpscr_values) [SH5 == 32]: Define.
14621 * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
14622 * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
14623 Handle function addresses coming in SUBREGs.
14624 2000-12-12 Alexandre Oliva <aoliva@redhat.com>
14625 * config/sh/lib1funcs.asm (shcompact_call_trampoline,
14626 shcompact_return_trampoline): Use datalabel where appropriate.
14627 2000-12-09 Alexandre Oliva <aoliva@redhat.com>
14628 * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
14629 general-purpose register to copy one branch-target register to
14630 another.
14631 2000-12-06 Alexandre Oliva <aoliva@redhat.com>
14632 * config/sh/sh.c (target_operand): Accept LABEL_REFs and
14633 SYMBOL_REFs with VOIDmode.
14634 * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
14635 bltu_media_i): New insns.
14636 2000-12-06 Alexandre Oliva <aoliva@redhat.com>
14637 * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
14638 (INIT_CUMULATIVE_ARGS): Likewise.
14639 2000-12-01 Alexandre Oliva <aoliva@redhat.com>
14640 * machmode.def (V16SFmode): New mode.
14641 * c-common.c (type_for_mode): Support V2SF and V16SF.
14642 * tree.c (build_common_tree_nodes_2): Likewise.
14643 * tree.h (tree_index): Likewise.
14644 * calls.c (emit_call_1): Take args_so_far. Adjust all
14645 callers. Introduce CALL_POPS_ARGS.
14646 * tm.texi (CALL_POPS_ARGS): Document.
14647 * config/sh/crt1.asm: Implement in SHmedia mode.
14648 * config/sh/crti.asm, config/sh/crtn.asm: Likewise
14649 * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
14650 (DBX_REGISTER_NUMBER): Renumber registers for SH5.
14651 * config/sh/lib1funcs.asm: Disable functions unused in SH5.
14652 Implement divsi and udivsi in SHmedia mode. Introduce
14653 SHcompact trampolines.
14654 * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
14655 only in SHmedia64.
14656 (regno_reg_class): Rewrite.
14657 (fp_reg_names): Remove.
14658 (sh_register_names, sh_additional_register_names): New.
14659 (print_operand): Added `u'. Support SUBREGs in addresses.
14660 Add parentheses around shifted CONSTs.
14661 (output_file_start): Output .mode and .abi directives.
14662 (shiftcosts, addsubcosts, multcosts): Adjust.
14663 (output_stack_adjust): Compute alignment. Sanity-check SIZE.
14664 (push_regs): Take array of HOST_WIDE_INTs. Adjust callers.
14665 (calc_live_regs): Output to array of HOST_WIDE_INTs. Count
14666 bytes, not registers. Take into account the need for the
14667 SHcompact incoming args trampoline. Adjust all callers.
14668 (sh_expand_prologue): Take stack_regs into account. Call
14669 incoming args trampoline. Keep stack aligned as per SH5 ABI.
14670 (sh_expand_epilogue): Take stack_regs into accoutn. Keep
14671 stack aligned as per SH5 ABI.
14672 (sh_builtin_saveregs): Support SH5 ABI.
14673 (sh_build_va_list, sh_va_start): Likewise.
14674 (initial_elimination_offset): Take alignment into account.
14675 Compute location of PR according to the SH5 stack frame.
14676 (arith_reg_operand): Reject branch-target registers.
14677 (shmedia_6bit_operand): New.
14678 (logical_operand): Use CONST_OK_FOR_P on SHmedia.
14679 (target_reg_operand): Match DImode only. Accept SUBREGs.
14680 (target_operand): New.
14681 * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
14682 (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI. Initialize
14683 SIBCALL_REGS for SHmedia.
14684 (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
14685 (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
14686 (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
14687 (TARGET_SWITCHES): New SH5 flags.
14688 (OVERRIDE_OPTIONS): Set SH5-specific options. Use
14689 VALID_REGISTER_P to disable unsupported registers.
14690 (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
14691 (POINTER_SIZE, PARM_BOUNDARY): Adjust.
14692 (FUNCTION_ARG_PADDING): Define.
14693 (FASTEST_ALIGNMENT): Adjust.
14694 (SH_REGISTER_NAMES_INITIALIZER): New.
14695 (sh_register_names): Declare.
14696 (DEBUG_REGISTER_NAMES): Define.
14697 (REGISTER_NAMES): Define based on sh_register_names.
14698 (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
14699 (sh_additional_register_names): Declare.
14700 (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
14701 (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
14702 (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
14703 (REGISTER_NATURAL_MODE): Define.
14704 (FIRST_PSEUDO_REGISTER): Adjust.
14705 (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
14706 (HARD_REGNO_CALL_PART_CLOBBERED): Define.
14707 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
14708 (VECTOR_MODE_SUPPORTED_P): Define.
14709 (REG_CLASS_CONTENTS): Adjust.
14710 (SMALL_REGISTER_CLASSES): Adjust.
14711 (REG_ALLOC_ORDER): Adjust.
14712 (INDEX_REG_CLASS): Adjust.
14713 (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
14714 (CONST_OK_FOR_LETTER_P): Adjust.
14715 (PREFERRED_RELOAD_CLASS): Adjust.
14716 (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
14717 (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
14718 (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
14719 (FIRST_FP_PARM_REG): Adjust.
14720 (CALL_POPS_ARGS): Define.
14721 (FUNCTION_ARG_REGNO_P): Adjust.
14722 (struct sh_args): New fields.
14723 (GET_SH_ARG_CLASS): Adjust.
14724 (INIT_CUMULATIVE_ARGS): Adjust.
14725 (INIT_CUMULATIVE_INCOMING_ARGS): Define.
14726 (FUNCTION_ARG_ADVANCE): Adjust.
14727 (FUNCTION_ARG): Adjust.
14728 (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
14729 (FUNCTION_ARG_CALLEE_COPIES): Define.
14730 (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
14731 (STRICT_ARGUMENT_NAMING): Define.
14732 (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
14733 (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
14734 (SH5_WOULD_BE_PARTIAL_NREGS): Define.
14735 (SETUP_INCOMING_VARARGS): Adjust.
14736 (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
14737 (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
14738 (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
14739 (SUBREG_OK_FOR_INDEX_P): Adjust.
14740 (EXTRA_CONSTRAINT_S): Update.
14741 (EXTRA_CONSTRAINT_T): New.
14742 (EXTRA_CONSTRAINT): Adjust.
14743 (GO_IF_LEGITIMATE_INDEX): Adjust.
14744 (GO_IF_LEGITIMATE_ADDRESS): Adjust.
14745 (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
14746 (MOVE_MAX): Adjust.
14747 (MAX_MOVE_MAX): Define.
14748 (Pmode): Adjust.
14749 (CONST_COSTS): Adjust.
14750 (REGISTER_MOVE_COST): Adjust.
14751 (BRANCH_COST): Adjust.
14752 (TEXT_SECTION_ASM_OP): Adjust.
14753 (DBX_REGISTER_NUMBER): Adjust.
14754 (ASM_OUTPUT_DOUBLE_INT): New.
14755 (UNALIGNED_DOUBLE_INT_ASM_OP): New.
14756 (PREDICATE_CODES): Adjust.
14757 (PROMOTE_MODE): Adjust.
14758 (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
14759 * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
14760 (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
14761 (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
14762 (DR0_REG, DR2_REG, DR4_REG): Renumber.
14763 (TR0_REG, TR1_REG, TR2_REG): New.
14764 (XD0_REG): Renumber.
14765 (UNSPEC_COMPACT_ARGS): New.
14766 (type): Added pt and ptabs.
14767 (length): Default to 4 on SHmedia. Default pt length to 12
77353e4f 14768 and 20 on SHmedia32 and SHmedia64, respectively.
87e19636 14769 (pt): New function unit.
14770 (movdi, movsi): Add types pt and ptabs. Don't increment LABEL_NUSES.
14771 Add whitespace between operands of SHmedia instructions.
14772 (movdicc): Fix.
14773 (adddi3_media, addsi3_media): Adjust constraints.
14774 (subsi3) [SHmedia]: Force operand 1 into a register.
14775 (udivsi3_i1_media, udivsi3_i4_media): New.
14776 (udivsi3): Support SHmedia.
14777 (divsi3_i1_media, divsi3_i4_media): New.
14778 (divsi3): Support SHmedia.
14779 (anddi3, iordi3, xordi3): Adjust constraints.
14780 (zero_extendhidi2, zero_extendqidi2): New.
14781 (extendsidi2, extendhidi2, extendqidi2): New.
14782 (push, pop, push_e, push_fpul, push_4): Disable on SH5.
14783 (pop_e, pop_fpul, pop_4): Likewise.
14784 (movsi_media): Support FP and BT registers.
14785 (movsi_media_nofpu): New. Adjust splits to DImode.
14786 (lduw, ldub): Renamed to zero_extend* above.
14787 (movqi_media): Fix typo.
14788 (movdi_media): Support FP and BT registers.
14789 (movdi_media_nofpu): New. Adjust splits for SHmedia32.
14790 (movdi_const_32bit): New.
14791 (shori_media): Require immediate operand. Use `u' for output.
14792 (movdf_media, movsf_media): Simplified.
14793 (movdf_media_nofpu, movsf_media_nofpu): New.
14794 (movdf, movsf): Adjust
14795 (movv2sf, movv2sf, movv16sf): New.
14796 (beq_media, beq_media_i): Adjust constraints. Don't use
14797 scratch BT register.
14798 (bne_media, bne_media_i): Likewise.
14799 (bgt_media, bgt_media_i): Likewise.
14800 (bge_media, bge_media_i): Likewise.
14801 (bgtu_media, bgtu_media_i): Likewise.
14802 (bgeu_media, bgeu_media_i): Likewise.
14803 (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
14804 bunordered): Emit jump insn. Force operands to registers when
14805 needed.
14806 (jump_media, jump): Simplify.
14807 (call_compact, call_compact_rettramp): New.
14808 (call_value_compact, call_value_compact_rettramp): New.
14809 (call_media, call_value_media): Simplify.
14810 (sibcall_compact, sibcall_media): New.
14811 (call, call_value): Adjust for SHmedia and SHcompact.
14812 (sibcall, sibcall_value, untyped_call): Likewise.
14813 (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
14814 (indirect_jump): Adjust for SHmedia.
14815 (casesi_jump_media): New.
14816 (nop): Re-enable for SHmedia.
14817 (call_site): Restrict to SH1.
14818 (casesi): Adjust for SHmedia.
14819 (casesi_shift_media, casesi_load_media): New.
14820 (return): Explicitly use PR register. Call return trampoline
14821 on SHcompact.
14822 (return_i): Explicitly use PR register.
14823 (shcompact_return_tramp, shcompact_return_tramp_i): New.
14824 (return_media): Adjust.
14825 (shcompact_incoming_args): New.
14826 (epilogue): Adjust.
14827 (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
14828 (movstrsi): Disable on SH5.
14829 (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
14830 (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
14831 (subsf3, subsf3_media): Likewise.
14832 (mulsf3, mulsf3_media, mac_media): Likewise.
14833 (divsf3, divsf3_media): Likewise.
14834 (floatdisf2, floatsisf2_media): Likewise. Adjust constraints.
14835 (floatsisf2, fux_truncsfsi2): Likewise.
14836 (fix_truncsfdi2, fix_truncsfsi2_media): Likewise. Adjust
14837 constraints.
14838 (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
14839 (cmpunsf_media, cmpsf): Likewise.
14840 (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
14841 (abssf2, abssf2_media): Likewise.
14842 (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
14843 (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
14844 (floatdidf2, floatsidf2_media): Likewise. Adjust constraints.
14845 (floatsidf2, fix_truncdfsi2): Likewise.
14846 (fix_truncdfdi2, fix_truncdfsi2_media): Likewise. Adjust
14847 constraints.
14848 (cmpeqdf_media, cmpgtdf_media): Likewise.
14849 (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
14850 (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
14851 (absdf2, absdf2_media): Likewise.
14852 (extendsfdf2, extendsfdf2_media): Likewise.
14853 (truncsfdf2, truncsfdf2_media): Likewise.
14854 * config/sh/sh64.h: New file.
14855 * config/sh/t-sh64: New file.
14856 * config/sh/shmedia.h: New file.
14857 * config/sh/ushmedia.h: New file.
14858 * config/sh/sshmedia.h: New file.
14859 * configure.in: Added sh64-*-elf.
14860 * configure: Rebuilt.
14861 2000-10-10 Alexandre Oliva <aoliva@redhat.com>
14862 * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
14863 (reg_class_from_letter): Use `b' for TARGET_REGS.
14864 (print_operand): Support `%M', `%m', `AND' and
14865 `ASHIFTRT'. Do not precede constants with `#' on SHmedia.
14866 (andcosts): Adjust for SHmedia.
14867 (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
14868 Likewise.
14869 (target_reg_operand): New function.
14870 * config/sh/sh-protos.h (target_reg_operand): Declare.
14871 * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
14872 FP registers on SH5.
14873 (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
14874 on SH4.
14875 (TARGET_REGISTER_P): New macro.
14876 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
14877 (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
14878 (EXTRA_CONSTRAINT_S): New macro.
14879 (EXTRA_CONSTRAINT): Adjust.
14880 (FLOAT_TYPE_SIZE): Define to 32.
14881 (Pmode): DImode on SHmedia.
14882 (CONST_COSTS): Adjust for SHmedia literals.
14883 (PREDICATE_CODES): Added target_reg_operand.
14884 (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
14885 * config/sh/sh.md: Remove all attrs from SHmedia insns.
14886 (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
14887 (cmpdi): Accept SHmedia.
14888 (movdicc_false, movdicc_true): New insns.
14889 (movdicc): New expand.
14890 (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
14891 no_new_pseudos.
14892 (addsi3_media): Match `S' constraint.
14893 (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
14894 (negdi2): Expand for SHmedia.
14895 (one_cmpldi2): New expand.
14896 (zero_extendsidi2): Change from expand to insn.
14897 (extendsidi2): Add constraints.
14898 (movdi_media, movsi_media): Change `%x' to `%M'. Use `%m' for
14899 LD/ST address. Fix SI immediate loading split.
14900 (movhi_media, movqi_media, lduw, ldub): New insns.
14901 (movhi, movqi): Accept SHmedia.
14902 (shori_media, movdi_media): Relax input constraints. Split
14903 symbolic constants.
14904 (movdf_media, movsf_media): New insn. New split to movdi.
14905 (movdf, movsf): Match on SHmedia.
14906 (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
14907 bgeu_media): New insns and splits. New insns with `_i' suffix.
14908 (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
14909 (bunordered): New expand.
14910 (jump_compact): Renamed from `jump'.
14911 (jump_media): New insn.
14912 (jump): New expand.
14913 (call_media, call_value_media): New insns.
14914 (call, call_value): Adjust.
14915 (indirect_jump_compact): Renamed from `indirect_jump'.
14916 (indirect_jump_media): New insn.
14917 (indirect_jump): New expand.
14918 (untyped_call, return): Accept SHmedia.
14919 (return_media): New insn.
14920 (prologue, epilogue, blockage): Accept SHmedia.
14921 (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
14922 (sunordered): New expand.
14923 (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
14924 cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
14925 (addsf3_media, subsf3_media, mulsf3_media, mac_media,
14926 divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
14927 fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
14928 cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
14929 abssf2_media): New insns.
14930 (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
14931 cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
14932 (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
14933 floatdidf2, floatsidf2_media, fix_truncdfdi2,
14934 fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
14935 cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
14936 absdf2_media): New insns.
14937 (extendsfdf2, truncdfsf2): Adjust for SHmedia.
14938 (extendsfdf2_media, truncdfsf2_media): New insns.
14939 2000-09-14 Alexandre Oliva <aoliva@redhat.com>
14940 * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
14941 * config/sh/sh.h (CONST_OK_FOR_J): Document.
14942 (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
14943 * config/sh/sh.md (adddi3): New expand.
14944 (adddi3_media, adddi3z_media): New insns.
14945 (adddi3_compact): Renamed from adddi3.
14946 (addsi3_media): Use add.l r63 to add constant zero.
14947 (subdi3): New expand.
14948 (subdi3_media): New insn.
14949 (subdi3_compact): Renamed from subdi3.
14950 (mulsidi3): New expand.
14951 (mulsidi3_media): New insn.
14952 (mulsidi3_compact): Renamed from mulsidi3.
14953 (umulsidi3): New expand.
14954 (umulsidi3_media): New insn.
14955 (umulsidi3_compact): Renamed from umulsidi3.
14956 (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
14957 (ashlsi3, ashrsi3, lshrsi3): Use them.
14958 (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
14959 (ashldi3, ashrdi3, lshrdi3): Use them.
14960 (zero_extendsidi2): New expand.
14961 (extendsidi2): New insn.
14962 (movsi_media): New insn. Split to movdi to load constants.
14963 (movsi): Enable for shmedia.
14964 (movdi_media): New insn. Use shori_media to load wide constants.
14965 (short_media): New insn.
14966 (movdi): Enable for shmedia.
14967 2000-09-08 Alexandre Oliva <aoliva@redhat.com>
14968 * config/sh/sh.h (CPP_SPEC): Added `m5'.
14969 (SUBTARGET_CPP_SPEC): Added `!m5'.
14970 (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
14971 (TARGET_SWITCHES): Added `5' and `5-compact'. Added SH1_BIT
14972 to all other SH variants.
14973 (TARGET_DEFAULT): Set to SH1_BIT.
14974 (OVERRIDE_OPTIONS): Recognize sh5 CPU.
14975 (BITS_PER_WORD): Raise to 64 on shmedia.
14976 (MAX_BITS_PER_WORD): Change to 64.
14977 (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
14978 (INT_TYPE_SIZE): Keep as 32.
14979 (UNITS_PER_WORD): Raise to 8 on shmedia.
14980 (MIN_UNITS_PER_WORD): Keep as 4.
14981 (POINTER_SIZE): Raise to 64 on shmedia.
14982 (CONST_OK_FOR_J): New macro.
14983 (CONST_OK_FOR_LETTER_P): Use it.
14984 (processor_type): Add PROCESSOR_SH5.
14985 * config/sh/sh.md: Conditionalize all expands, insns and
14986 splits to TARGET_SH1.
14987 (cpu): Added sh5.
14988 (addsi3_compact): Renamed from...
14989 (addsi3): Now an expand.
14990 (addsi3_media, subsi3_media): New insns.
14991 (subsi3): Don't negate constants with SHmedia.
14992
e27e52e0 14993 * hooks.c: New file.
14994 * hooks.h: New file.
14995 * Makefile.in (HOOKS_H): New.
14996 (TARGET_DEF_H): Added $(HOOKS_H).
14997 (OBJS): Added hooks.o.
14998 (cfgcleanup.o, bb-reorder.o): Added target.h.
14999 (hooks.o): Added dependencies.
15000 * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
15001 (TARGET_INITIALIZER): this.
15002 * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
15003 * target.h (struct gcc_target): Added cannot_modify_jumps_p.
15004 * bb-reorder.c: Include target.h.
15005 (reorder_basic_blocks): Skip if cannot modify jumps.
15006 * cfgcleanup.c: Include target.h.
15007 (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
15008
edef0027 150092002-02-08 Chris Demetriou <cgd@broadcom.com>
15010
4fc5f895 15011 * config/mips/mips.md (casesi_internal, casesi_internal_di):
15012 Protect jump delay slot instructions with .set noreorder and
15013 .set nomacro.
edef0027 15014
150152002-02-08 Chris Demetriou <cgd@broadcom.com>
47ea8fe4 15016
15017 * config/mips/mips.md (casesi_internal_di): Calculate
15018 the index into the target offset table correctly.
15019
5b1bb114 150202002-02-08 Richard Henderson <rth@redhat.com>
15021
15022 * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
15023 * final.c (output_addr_const): Accept and discard SUBREG.
15024 * varasm.c (decode_addr_const): Don't abort on unknown expressions --
15025 mark them unknown instead.
15026 (simplify_subtraction): Handle RTX_UNKNOWN.
15027 (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
15028
668e259a 150292002-02-08 David Edelsohn <edelsohn@gnu.org>
15030
15031 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
15032
cd0751f1 150332002-02-08 Richard Henderson <rth@redhat.com>
15034
15035 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
15036
f600b94d 150372002-02-08 Andreas Jaeger <aj@suse.de>
15038
15039 * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
15040 * config/i386/t-linux64: New file.
15041
64fbdcbf 150422002-02-08 Jakub Jelinek <jakub@redhat.com>
15043
15044 * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
15045 * c-parse.in (compstmt): Clear last_expr_type.
15046
d2aa2d17 150472002-02-07 Richard Henderson <rth@redhat.com>
15048
15049 * loop.c (strength_reduce): Sink final_value when not
15050 eliminating a biv.
15051
ea809976 150522002-02-07 David O'Brien <obrien@FreeBSD.org>
15053
15054 * config/sparc/freebsd.h: Fix mismatched spec {.
15055
088f179c 150562002-02-07 Richard Henderson <rth@redhat.com>
15057
15058 * cfgrtl.c: Include recog.h and insn-config.h.
15059 (keep_with_call_p): Fix general_operand invocation.
15060 * Makefile.in (cfgrtl.o): Update dependencies.
15061
c5599633 150622002-02-07 Kazu Hirata <kazu@hxi.com>
15063
15064 * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
15065 comment. Accept HImode only if TARGET_H8300.
15066
dae05141 150672002-02-07 Eric Christopher <echristo@redhat.com>
15068
15069 * config/mips/crtn.asm: Cleanup #ifdefs.
15070
150712002-02-07 Eric Christopher <echristo@redhat.com>
15072
15073 * config/mips/crti.asm: Add changes for mips16. mips16 uses
15074 register 7 as RA instead of $31.
15075 * config/mips/crtn.asm: Ditto.
15076 * config/mips/mips.c (mips_move_2words): Add case for
15077 TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
15078 (compute_frame_size): Fix typo.
15079 (save_restore_insns): Ditto. Make documentation about using
15080 register $7 as return register more precise.
15081 (mips_expand_epilogue): Fix comment. Add code to work around not
15082 being able to add to the stack pointer directly.
15083 * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
15084 to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
15085 epilogue.
15086
f86ef5aa 150872002-02-07 Tom Rix <trix@redhat.com>
15088
dae05141 15089 * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
f86ef5aa 15090 immediates in ldu and stdu DS opcode field.
15091 * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
15092 * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
15093 * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
15094
9b2e8d38 150952002-02-07 Jeff Sturm <jsturm@one-point.com>
15096
15097 * config/sparc/sparc.c (compute_frame_size): Don't correct frame
15098 offset for stack bias.
15099
bc18a051 151002002-02-07 H.J. Lu <hjl@gnu.org>
15101
15102 * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
15103
59a893a8 151042002-02-07 Ulrich Weigand <uweigand@de.ibm.com>
15105
15106 * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
15107
717db2f5 15108Thu Feb 7 12:14:17 CET 2002 Jan Hubicka <jh@suse.cz>
15109
15110 * i386-protos.h (x86_order_regs_for_local_alloc): Declare
15111 * i386.c (x86_order_regs_for_local_alloc): New global function.
15112 * i386.h (REG_ALLOC_ORDER): CLeanup.
15113 (ORDER_REGS_FOR_LOCAL_ALLOC): New.
15114
9464d436 151152002-02-07 Richard Henderson <rth@redhat.com>
15116
303f86ec 15117 PR optimization/2463
9464d436 15118 * alias.c (find_base_value): Recall base values for fixed hard regs.
15119 * loop.c (loop_regs_update): Don't use single_set on non-insns.
15120
f8a0c1f2 151212002-02-07 Alexandre Oliva <aoliva@redhat.com>
15122
15123 * config/mips/mips.md (define_delay) [mips16]: Adjust required
15124 length.
15125
db4c0bc2 151262002-02-06 Richard Henderson <rth@redhat.com>
15127
15128 PR c/5609
15129 * stmt.c (resolve_operand_name_1): Take more care with mixed
15130 named and unnamed operands.
15131
56b6134d 151322002-02-06 Janis Johnson <janis187@us.ibm.com>
15133 Jan Hubicka <jh@suse.cz>
15134
15135 * loop.c (remove_constant_addition): Avoid clobbering a shared
15136 CONST expression.
15137
8994bd9e 151382002-02-06 Ulrich Weigand <uweigand@de.ibm.com>
15139
15140 * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
15141 * config/s390/t-linux64: New file.
15142 * config/s390/libgcc-glibc.ver: New file.
15143
d50213e6 151442002-02-06 Ulrich Weigand <uweigand@de.ibm.com>
15145
15146 * config/s390/linux64.h: Delete file.
15147 * config/s390/s390x.h: New file.
15148 * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
15149 as target header file.
15150 * config/s390/linux.h (TARGET_VERSION): Define depending on
15151 DEFAULT_TARGET_64BIT.
15152 (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
15153 (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
15154 (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
15155 (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
15156 (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
15157 (EXTRA_SPEC): New define.
15158 * config/s390/s390.h (TARGET_VERSION): Define depending on
15159 DEFAULT_TARGET_64BIT.
15160 (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
15161
af857942 151622002-02-06 Jason Merrill <jason@redhat.com>
15163
15164 * c-decl.c (finish_function): Warn about a non-void function with
15165 no return statement and no abnormal exit.
15166 (current_function_returns_abnormally): New variable.
15167 (start_function): Clear it.
15168 (struct c_language_function): Add returns_abnormally.
15169 (push_c_function_context): Save it.
15170 (pop_c_function_context): Restore it.
15171 (builtin_function): Set TREE_THIS_VOLATILE on return fns.
15172 (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
15173 an explicit return type.
15174 * c-tree.h: Declare current_function_returns_abnormally.
15175 (C_FUNCTION_IMPLICIT_INT): New macro.
15176 * c-typeck.c (build_function_call): Set it.
15177 (c_expand_return): Set current_function_returns_value even if the
15178 value is erroneous.
15179
0e62d8da 151802002-02-06 Jakub Jelinek <jakub@redhat.com>
15181
15182 PR c/5420:
15183 * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
15184 unsafe for reevaluation.
15185
5fc77c6c 151862002-02-06 Jakub Jelinek <jakub@redhat.com>
15187
15188 PR c/5482:
15189 * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
15190 EXPR_STMT, but COMPOUND_STMT, recurse into it.
15191
9ddc1858 151922002-02-06 Richard Henderson <rth@redhat.com>
15193
15194 * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
15195 be a general_operand. Dest for function value must be a pseudo.
15196
a96a05e6 151972002-02-06 Nick Clifton <nickc@cambridge.redhat.com>
15198
15199 * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
15200 as SYMBOL_REFs from the constant pool.
15201
08ba4893 152022002-02-06 Alexandre Oliva <aoliva@redhat.com>
15203
15204 * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
15205 passed by invisible reference.
15206
394e2618 152072002-02-05 Richard Henderson <rth@redhat.com>
15208
15209 * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
15210
f0b228a5 152112002-02-06 Hans-Peter Nilsson <hp@bitrange.com>
15212
15213 Implement using "base addresses" in insn operands as default.
15214 * config/mmix/mmix.c (mmix_conditional_register_usage): if
15215 -mabi=gnu, modify fixed_regs to fit the GNU ABI.
15216 (mmix_extra_constraint): Use 'R' to indicate that GETA should be
15217 used to read the rtx value.
15218 (mmix_target_asm_function_epilogue): Fix spacing.
15219 (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
15220 (mmix_legitimate_address): Ditto.
15221 (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
15222 should be loaded with a GETA insn. Don't allocate needless extra
15223 char for nul termination and fix misleading comment.
15224 (mmix_print_operand_address): Handle constants if
15225 TARGET_BASE_ADDRESSES.
15226 (mmix_output_register_setting): Use base addressing if
15227 TARGET_BASE_ADDRESSES and the number of insns is 3.
15228 * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
15229 * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
15230 to use R as constraint, add LDA to match s.
15231 * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
15232 (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
15233 (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
15234 (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
15235 (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
15236 order with other fixed registers.
15237 (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
15238 other parameter/call-clobbered registers.
15239 * doc/invoke.texi (Option Summary) <MMIX Options>: Add
15240 -mbase-addresses, -mno-base-addresses.
15241 (MMIX Options): Ditto.
15242
55bfeac3 152432002-02-05 John David Anglin <dave@hiauly1.hia.nrc.ca>
15244
15245 * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
15246
aac0536f 152472002-02-06 Aldy Hernandez <aldyh@redhat.com>
15248
4fc5f895 15249 * config/rs6000/altivec.h: Change elem to _S_elem.
aac0536f 15250
788aa53e 152512002-02-05 Jason Thorpe <thorpej@wasabisystems.com>
15252
15253 * config/netbsd.h (WCHAR_TYPE): Define.
15254 (WCHAR_TYPE_SIZE): Ditto.
15255 (WINT_TYPE): Ditto.
15256 * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
15257 (WCHAR_UNSIGNED): Ditto.
15258 (WCHAR_TYPE_SIZE): Ditto.
15259 (WINT_TYPE): Ditto.
15260 * config/arm/netbsd.h: Likewise.
15261 * config/i386/netbsd-elf.h: Likewise.
15262 * config/i386/netbsd.h: Likewise.
15263 * config/m68k/netbsd-elf.h: Likewise.
15264 * config/m68k/netbsd.h: Likewise.
15265 * config/ns32k/netbsd.h: Likewise.
15266 * config/sparc/netbsd.h: Likewise.
15267 * config/vax/netbsd.: Likewise.
15268
f04f096b 152692002-02-05 Alexandre Oliva <aoliva@redhat.com>
15270
15271 * target.h (struct gcc_target): Added ms_bitfield_layout_p.
15272 * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New. Added to...
15273 (TARGET_INITIALIZER): this.
15274 * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
15275 (BITFIELD_NBYTES_LIMITED): Markup fix.
15276 * tree.h (default_ms_bitfield_layout_p): Declare.
15277 (record_layout_info): Added prev_field.
15278 * tree.c (default_ms_bitfield_layout_p): New fn.
15279 * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
15280 PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
15281 * stor-layout.c: Include target.h.
15282 (start_record_layout): Initialize prev_field.
15283 (place_field): Handle MS bit-field layout, and disregard
15284 EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
15285 PCC_BITFIELD_TYPE_MATTERS in this case. Update prev_field.
15286 * Makefile.in (stor-layout.o): Adjust dependencies.
15287
c6d86b63 152882002-02-05 Jason Merrill <jason@redhat.com>
15289
c6d86b63 15290 * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
15291
71fcebb2 152922002-02-05 Andreas Jaeger <aj@suse.de>
15293
15294 * crtstuff.c: Fix comments.
15295
0a8301be 152962002-02-05 Richard Henderson <rth@redhat.com>
15297
115bceb9 15298 PR fortran/3393
15299 * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
15300 (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
15301
0a8301be 15302 PR fortran/3392
15303 * config/mips/mips.c (function_arg): Handle TImode.
15304 (function_arg_advance): Likewise.
15305
6ec6ead4 153062002-02-05 Aldy Hernandez <aldyh@redhat.com>
15307
c6d86b63 15308 * config/rs6000/altivec.h (vec_step_help): Rename to
15309 __vec_step_help.
6ec6ead4 15310
78bab5bb 153112002-02-05 Aldy Hernandez <aldyh@redhat.com>
15312
c6d86b63 15313 * config/rs6000/altivec.h: Fix typos.
78bab5bb 15314
7c9e4aae 153152002-02-05 Jason Thorpe <thorpej@wasabisystems.com>
15316
15317 * config/arm/netbsd.h: Correct a comment.
15318
391c48ec 153192002-02-05 Aldy Hernandez <aldyh@redhat.com>
15320
c6d86b63 15321 * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
15322 building void typed builtins.
391c48ec 15323
c6d86b63 15324 * config/rs6000/altivec.h (vec_ld*): Fix typos.
15325 (vec_step): Implement for C++.
391c48ec 15326
c6d86b63 15327Mon Feb 4 19:23:19 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
0d3c91d4 15328
15329 * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
15330
842e01df 153312002-02-04 Richard Henderson <rth@redhat.com>
15332
15333 * combine.c (nonzero_bits): Re-introduce special case for
15334 sp/fp/ap wrt REGNO_POINTER_ALIGN.
15335
15e5a1c8 153362002-02-05 Aldy Hernandez <aldyh@redhat.com>
15337
c6d86b63 15338 * doc/extend.texi: Warn about unsupported usage of altivec
15339 builtins.
15e5a1c8 15340
c6d86b63 15341 * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
15342 (altivec_predicate_*): New.
15e5a1c8 15343
c6d86b63 15344 * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
15345 Add C++ version of vec_*() functions.
15e5a1c8 15346
c6d86b63 15347 * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
15348 (bdesc_2arg): Remove altivec predicates.
15349 (altivec_expand_builtin): Handle predicates.
15350 (altivec_init_builtins): Handle predicates.
15351 (altivec_expand_predicate_builtin): New.
15e5a1c8 15352
6a2c16d6 153532002-02-04 John David Anglin <dave@hiauly1.hia.nrc.ca>
15354
15355 * pa.c (DO_FRAME_NOTES): Move forward.
15356 (store_reg): Revise handling of frame notes.
15357 (load_reg): Likewise.
15358 (set_reg_plus_d): Likewise.
15359 (hppa_expand_prologue): Likewise.
15360 (hppa_expand_epilogue): Likewise.
dae05141 15361
8f248ced 153622002-02-04 John David Anglin <dave@hiauly1.hia.nrc.ca>
15363
15364 * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
15365
79dc3b8e 153662002-02-04 Jakub Jelinek <jakub@redhat.com>
15367
15368 PR c/4475, c++/3780:
15369 * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
15370 * c-common.h (SWITCH_TYPE): Define.
15371 * c-typeck.c (c_start_case): Set SWITCH_TYPE.
15372 * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
15373 Rename spareness variable to sparseness.
15374 (expand_end_case_type): Renamed from expand_end_case, use orig_type
15375 if non-NULL instead of TREE_TYPE (orig_index).
15376 * tree.h (expand_end_case_type): Renamed from expand_end_case.
15377 (expand_end_case): Define using expand_end_case_type.
15378 * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
15379 to expand_end_case_type.
15380 * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
15381
5c56a3a9 153822002-02-04 John David Anglin <dave@hiauly1.hia.nrc.ca>
15383
15384 * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
15385 (BIGGEST_ALIGNMENT): Change to 128.
15386
ac5c955b 153872002-02-04 John David Anglin <dave@hiauly1.hia.nrc.ca>
15388
15389 * pa32-linux.h (LINK_COMMAND_SPEC): Define.
15390
39bf1bf0 153912002-02-04 John David Anglin <dave@hiauly1.hia.nrc.ca>
15392
15393 * pa.md (call_internal_reg_64bit): Remove unused variable.
15394
71904594 153952002-02-04 Nick Clifton <nickc@cambridge.redhat.com>
15396
15397 * config/arm/arm.h (machine_function): Add uses_anonymous_args
15398 field.
4fc5f895 15399 (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
71904594 15400 * config/arm/arm.c (current_function_anonymous_args): Delete,
4fc5f895 15401 replace uses with cfun->machine->uses_anonymous_args.
15402 (arm_reorg): Do not reset uses_anonymous_args.
71904594 15403
15404 * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
15405 any geenral register.
dae05141 15406
9e8503e6 154072001-02-04 Bernd Schmidt <bernds@redhat.com>s
76cc9616 15408
15409 * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
15410 the entry block.
15411
04a917bf 154122002-02-04 Richard Henderson <rth@redhat.com>
15413
15414 * combine.c (force_to_mode): Remove STACK_BIAS code.
15415 (nonzero_bits): Likewise. Replace sp/fp special case with
15416 REGNO_POINTER_ALIGN.
15417
15418 * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
15419 (HARD_FRAME_POINTER_REGNUM): New.
15420 (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
15421 (FIXED_REGS, CALL_USED_REGS): Update.
15422 (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
15423 (CONDITIONAL_REGISTER_USAGE): Update for HFP.
15424 (HARD_REGNO_NREGS): Update for SFP.
15425 (STACK_POINTER_OFFSET): Include bias here ...
15426 (FIRST_PARM_OFFSET): ... not here.
15427 (STACK_BIAS): Remove.
15428 (INIT_EXPANDERS): New.
15429 (STARTING_FRAME_OFFSET): Do not include bias.
15430 (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
15431 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
15432 (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
15433 * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
15434 * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
15435 * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
15436 (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
15437 (MUST_SAVE_REGISTER): Likewise.
15438 (sparc_flat_function_prologue): Likewise.
15439 (sparc_flat_function_epilogue): Likewise.
15440 (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
15441 (sparc_init_modes): SFP is GENERAL_REGS.
15442 (sparc_builtin_saveregs): SFP does not have bias applied.
15443
961d6ddd 154442002-02-04 Richard Henderson <rth@redhat.com>
15445
15446 * config/alpha/alpha.c (current_function_is_thunk): Don't check
15447 current_function_is_thunk.
15448 (alpha_sa_mask): Distinguish between current_function_is_thunk
15449 called from ASM_OUTPUT_MI_THUNK and not.
15450 (alpha_does_function_need_gp): Thunks always need gp.
15451 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
15452 (alpha_output_mi_thunk_osf): New.
15453 * config/alpha/alpha-protos.h: Update.
15454 * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
15455
43674c99 154562002-02-04 Richard Sandiford <rsandifo@redhat.com>
15457
15458 * c-typeck.c (build_c_cast): Warn when qualifiers are added to
15459 function types, not when they're taken away.
15460
869fe49e 15461Mon Feb 4 09:05:58 2002 Jeffrey A Law (law@redhat.com)
15462
15463 * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
15464 CODE_LABEL and jump table when replacing a table jump with a
15465 simple jump.
15466
64f977d6 154672002-02-04 Ulrich Weigand <uweigand@de.ibm.com>
15468
15469 * config/s390/s390-protos.h (legitimize_la_operand,
15470 s390_secondary_input_reload_class, s390_plus_operand,
15471 s390_expand_plus_operand): Add prototypes.
15472
15473 config/s390/s390.c (s390_secondary_input_reload_class,
15474 s390_plus_operand, s390_expand_plus_operand): New functions.
15475
15476 (struct s390_address): New member 'pointer'.
15477 (s390_decompose_address): Compute it.
15478 (legitimate_la_operand_p): Use it.
15479 (legitimize_la_operand): New function.
15480 (movti, movdi, movdf splitters): Call it.
15481
15482 config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
15483 (PREDICATE_CODES): Add s390_plus_operand.
15484
15485 config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
15486 (la_ccclobber): Allow GENERAL_REGS as output operand.
15487
15488 (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
15489 *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
15490 (*la_64, *la_31, reload_indi, reload_insi): ... these.
15491
b442c5a9 154922002-02-04 Ulrich Weigand <uweigand@de.ibm.com>
15493
15494 * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
15495 register names for regular asm () construct.
15496
03ce3f23 154972002-02-04 Jakub Jelinek <jakub@redhat.com>
15498
15499 * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
15500 registers.
15501
c679a3d3 155022002-02-04 Jakub Jelinek <jakub@redhat.com>
15503
15504 * combine.c (recog_for_combine): Create a dummy insn with PATTERN
15505 pat for recog.
15506
5d9a3aea 155072002-02-04 Hartmut Penner <hpenner@de.ibm.com>
15508
4fc5f895 15509 * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
15510 constant pool to be identical by string address and index.
5d9a3aea 15511
2ab08d57 155122002-02-04 Anthony Green <green@redhat.com>
15513
15514 * output.h (SECTION_OVERRIDE): Define.
15515 * varasm.c (named_section): Obey SECTION_OVERRIDE.
15516
f470dade 155172002-02-03 Jason Thorpe <thorpej@wasabisystems.com>
15518
15519 * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
15520 by existing arm*-*-netbsd* (a.out) target.
15521 (ns32k-*-netbsdelf*): Likewise.
15522 (sparc-*-netbsdelf*): Likewise.
15523 (vax-*-netbsdelf*): Likewise.
15524
5a1890fd 155252002-02-03 Danny Smith <dannysmith@users.sourceforge.net>
61dcce9c 15526
15527 * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
15528 headers and libobjc headers.
15529
155302002-02-03 Mumit Khan <khan@nanotech.wisc.edu>
15531
15532 * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
15533 (_mingw.h): Remove duplicate include.
15534
124c3198 155352002-02-03 Jason Thorpe <thorpej@wasabisystems.com>
15536
15537 * config.gcc: Set cpu_type to m68k for 68010, as well.
15538 (m68010-*-netbsdelf*): New...
15539 (m68k*-*-netbsdelf*): ...targets.
15540 * config/m68k/netbsd-elf.h: New file.
15541
70a21926 155422002-02-02 Kazu Hirata <kazu@hxi.com>
15543
15544 * config/h8300/h8300.c (hand_list): Move inside function_arg.
15545
1592a00c 155462002-02-02 Kazu Hirata <kazu@hxi.com>
15547
15548 * config/h8300/h8300.c (h8_push_ops): Move inside
15549 h8300_init_once.
15550 (h8_pop_ops): Likewise.
15551 (h8_move_ops): Likewise.
15552
8ba450ad 155532002-02-02 Kazu Hirata <kazu@hxi.com>
15554
15555 * config/h8300/h8300.c (os_task): Make it static.
15556 (monitor): Likewise.
15557 (pragma_saveall): Likewise.
15558
78464229 155592002-02-02 Alexandre Oliva <aoliva@redhat.com>
15560
15561 * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
15562 constant is a valid sign-extension for Pmode.
15563
ded3e58c 155642002-02-02 Kazu Hirata <kazu@hxi.com>
15565
15566 * config/h8300/h8300.c: Fix formatting.
15567
5eb937e3 155682002-02-02 Kazu Hirata <kazu@hxi.com>
15569
15570 * config/h8300/h8300.md: Fix formatting.
15571
d43b4593 155722002-02-02 Kazu Hirata <kazu@hxi.com>
15573
15574 * config/h8300/h8300.md (one_cmpl patterns): Tighten the
15575 predicates of operands[1]. Split the patterns for each
15576 processor variant.
15577
1177de69 155782002-02-02 Kazu Hirata <kazu@hxi.com>
15579
15580 * config/h8300/h8300.md (xor patterns): Tighten the predicates
15581 of operands[1] to register_operand.
15582
537c4bc6 155832002-02-02 Neil Booth <neil@daikokuya.demon.co.uk>
15584
15585 * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
15586 * cpphash.c (_cpp_init_hashtable): Similarly.
15587 * cppinit.c (cpp_create_reader): Default the signed_char flag.
15588 (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
15589 (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
15590 (cpp_handle_option): Handle the new options.
15591 * cpplex.c (cpp_interpret_charconst): Use new flag.
15592 * cpplib.h (struct cpp_options): New member signed_char.
15593 * gcc.c (cpp_unique_options): Remove %c spec and documentation.
15594 (cpp_options): Handle -fsigned-char and -funsigned-char.
15595 (static_specs): Remove signed_char_spec.
15596 (do_spec1): Don't handle %c.
15597 * system.h: Poison SIGNED_CHAR_SPEC.
15598 * tradcif.y (yylex): Use flag_signed_char.
15599 * tradcpp.h (flag_signed_char): New.
15600 * tradcpp.c (flag_signed_char): New.
15601 (main): Handle new command-line options.
15602 (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
15603config:
15604 * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
15605 * avr/avr.h: Remove old comments.
15606 * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
15607 (CC1_SPEC): Pass -fsigned-char if -mic*.
15608 (SIGNED_CHAR_SPEC): Remove.
15609doc:
15610 * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
15611
a4b726cb 156122002-02-01 Eric Christopher <echristo@redhat.com>
15613
15614 From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
15615 * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
15616 * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
15617 (ASM_OUTPUT_REG_POP): Ditto.
15618
b9d8dcc9 156192002-02-02 Neil Booth <neil@daikokuya.demon.co.uk>
15620
15621 * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
15622 patch.
15623
ca29ad57 156242002-02-02 Jakub Jelinek <jakub@redhat.com>
15625
15626 * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
15627
4d6ffac5 156282002-02-02 Jakub Jelinek <jakub@redhat.com>
15629
15630 PR c/5304:
15631 * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
15632 unconditionally.
15633
6f14033a 156342002-02-01 Janis Johnson <janis187@us.ibm.com>
15635
15636 * cfganal.c: Include tm_p.h.
15637 (keep_with_call_p): Fix the test that determines if a register holds
15638 the return value of a call.
15639
c3479b10 156402002-02-01 DJ Delorie <dj@redhat.com>
15641
15642 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
15643 we are given conflicting registers, switch to the other one we
15644 had allocated for us.
15645 * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
15646 as TImode so we know when the "other" register is available.
15647
11ce0f1a 156482002-02-01 David O'Brien <obrien@FreeBSD.org>
15649
15650 * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
15651 sparc/sparc_bi.h.
15652
e3e0e46a 156532002-02-01 Janis Johnson <janis187@us.ibm.com>
15654
15655 * cfganal.c (keep_with_call_p): New function.
15656 (flow_call_edges_add): Prevent splitting a block between a call and
15657 a single-set instruction that should be kept in the same block.
15658
f86664e6 156592002-02-01 Craig Rodrigues <rodrigc@gcc.gnu.org>
15660
15661 * doc/install.texi (avr): Update outdated URL.
15662
00d49f5c 156632002-01-30 Andrew Haley <aph@cambridge.redhat.com>
15664
4fc5f895 15665 * config/stormy16/stormy16.md (pushqi): New.
15666 (popqi): New.
15667 (pushhi): New.
15668 (pophi): New.
15669 (movhi): Remove stack operands.
15670 (movqi): Likewise.
15671 * config/stormy16/stormy16.h (PREDICATE_CODES): Add
15672 nonimmediate_nonstack_operand.
15673 * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
15674 New.
15675 * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
15676 New.
00d49f5c 15677
86172eb0 156782002-01-31 Jason Merrill <jason@redhat.com>
15679
15680 * Makefile.in (c-parse.c): Handle .output file.
15681 * objc/Make-lang.in (objc-parse.c): Likewise.
15682
557acce7 156832002-02-01 Alexandre Oliva <aoliva@redhat.com>
15684
15685 * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
15686 the -me[lb] option is given. Don't output the default flag
15687 twice.
15688
e62fd7d5 156892002-01-31 Zack Weinberg <zack@codesourcery.com>
15690
15691 * c-lex.c (yyparse): Call debug_hooks->start_source_file for
15692 the primary source file; this has not been done yet.
15693 * c-decl.c (c_expand_body): Reset input_filename from
15694 DECL_SOURCE_FILE (fndecl) before calling init_function_start.
15695
ebcd99ea 156962002-01-31 Kazu Hirata <kazu@hxi.com>
15697
15698 * rtlanal.c (subreg_regno_offset): Do not use
15699 SUBREG_REGNO_OFFSET.
15700 * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
15701 * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
15702
4fbea729 157032002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
15704
15705 * gccbug.in: Follow GNU Coding Standards for --version. Use GCC
15706 version rather than GNATS version in --version output.
15707
a186b63f 157082002-01-31 Richard Sandiford <rsandifo@redhat.com>
15709
15710 * ifcvt.c (noce_process_if_block): Make a copy of the destination
15711 when copying back from a temporary.
15712
13b07dab 157132002-01-30 Richard Henderson <rth@redhat.com>
15714
15715 * ifcvt.c (dead_or_predicable): Handling merging when other_bb
15716 and new_dest are the same.
15717
cab14df7 157182002-01-30 Richard Henderson <rth@redhat.com>
15719
610cfb01 15720 PR opt/5076
cab14df7 15721 * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
15722 * rtl.c (note_insn_name): Update.
15723 * emit-rtl.c (remove_unnecessary_notes): Kill it.
15724 * stmt.c (expand_end_loop): Kill jump opt code. Use LOOP_END_TOP_COND
15725 to perform loop rotation.
15726 (expand_exit_loop_top_cond): New.
15727 * tree.h (expand_exit_loop_top_cond): Declare it.
15728 * c-semantics.c (genrtl_while_stmt): Use it.
15729 (genrtl_for_stmt): Likewise.
15730
fe701bb3 157312002-01-30 Alexandre Oliva <aoliva@redhat.com>
15732
15733 * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
15734 arguments to 64-bit boundaries on 64-bit ABIs.
15735
930cea6a 157362002-01-30 Steve Ellcey <sje@cup.hp.com>
15737
15738 * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
15739
b36e470a 157402002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
15741
15742 * c-decl.c (grokdeclarator): Handle type being a typedef for an
15743 invalid type.
15744
74b68692 157452002-01-30 David O'Brien <obrien@FreeBSD.org>
15746
15747 * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
15748 * config/sparc/sparc_bi.h: Remove file.
15749 * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
15750
501793e3 157512002-01-30 Richard Henderson <rth@redhat.com>
15752
15753 * sched-deps.c (sched_analyze): Make a call read the frame pointer.
15754
deab2811 157552002-01-30 Zack Weinberg <zack@codesourcery.com>
15756
15757 * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
15758
86172eb0 157592002-01-30 Jason Merrill <jason@redhat.com>
15a56411 15760
15761 * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
15762 (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
15763 (reg_save): Use DW_CFA_offset_extended_sf instead.
15764
15765 * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
15766
d0bfd0b5 157672002-01-29 Jakub Jelinek <jakub@redhat.com>
15768
15769 * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
15770 in cselib_lookup.
15771
7ab8705d 157722002-01-29 Aldy Hernandez <aldyh@redhat.com>
15773
e62fd7d5 15774 * rs6000.md ("*call_value_local32"): Remove constraints.
15775 ("*call_value_local64"): Same.
15776 ("*call_value_indirect_nonlocal_aix32"): Same.
15777 ("*call_value_nonlocal_aix32"): Same.
15778 ("*call_value_indirect_nonlocal_aix64"): Same.
15779 ("*call_value_nonlocal_aix64"): Same.
15780 ("*call_value_nonlocal_sysv"): Same.
7ab8705d 15781
d392c121 157822002-01-29 Richard Henderson <rth@redhat.com>
15783
15784 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
15785
41828ba0 157862002-01-29 Richard Henderson <rth@redhat.com>
15787
15788 * expr.c (force_operand): Ignore flag_pic for detecting pic
15789 address loads.
15790 * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
15791 for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
15792 * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
15793 instead of open-coded loop.
15794 * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
15795 be fixed when in use.
15796
d922644a 157972002-01-29 Richard Henderson <rth@redhat.com>
15798
15799 * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
15800 * sched-rgn.c (propagate_deps): Update them.
15801 * sched-deps.c (sched_analyze_insn): Update them. Flush the
15802 clobbers list when either gets too long.
15803
c0a5a33a 158042002-01-29 Jakub Jelinek <jakub@redhat.com>
15805
15806 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
15807 and INDEX_REGS the same as GENERAL_REGS.
15808 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15809
c74ee641 158102002-01-29 Neil Booth <neil@daikokuya.demon.co.uk>
15811
e62fd7d5 15812 * tree.c (build_nonstandard_integer_type): Correct prototype.
c74ee641 15813
66a63c5b 158142002-01-29 Ulrich Weigand <uweigand@de.ibm.com>
15815
e62fd7d5 15816 * config/s390/s390.md (movstrsico, movstrdix_64,
66a63c5b 15817 movstrsix_31): Remove, replace by ...
e62fd7d5 15818 (movstrdi_short, movstrsi_short, movstrdi_long,
66a63c5b 15819 movstrsi_long): ... these. New.
15820 (movstrdi, movstrsi): Adapt.
15821
15822 (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
e62fd7d5 15823 ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
66a63c5b 15824 Remove unnecessary CC clobber.
15825 (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
15826 *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
15827
15828 (divmoddi4): Don't partially initialize TImode register.
15829
4433ec51 158302002-01-29 Geoffrey Keating <geoffk@redhat.com>
15831
15832 * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
15833
a9d18fe1 158342002-01-29 Richard Henderson <rth@redhat.com>
15835
15836 * flow.c (print_rtl_and_abort): Remove.
15837 (print_rtl_and_abort_fcn): Remove.
15838 (verify_local_live_at_start): Use dump_bb instead.
15839 (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
15840 (verify_wide_reg_1): Return 2 on mode test failure.
15841
c0d30539 158422002-01-29 Neil Booth <neil@daikokuya.demon.co.uk>
15843
15844 PR c/3325, c/3326, c/2511, c/3347
15845 * c-decl.c (enum_decl_context): Remove BITFIELD.
15846 (grokdeclarator): Take bitfield width as an input.
15847 Ensure bitfields are given the correct type. Perform
15848 bitfield width validation with build_bitfield_integer_type
15849 rather than waiting for finish_struct.
15850 (grok_typename, grok_typename_in_parm_context, start_decl,
15851 push_parmdecl, grokfield, start_function): Update calls to
15852 grokdeclarator.
15853 (build_bitfield_integer_type): New function.
15854 (finish_struct): Move bitfield validation to grokdeclarator
e62fd7d5 15855 and build_bitfield_integer_type.
c0d30539 15856 * tree.c (build_nonstandard_integer_type): New function.
15857 * tree.h (build_nonstandard_integer_type): New prototype.
15858objc:
15859 * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
15860
a182c763 158612002-01-29 Jakub Jelinek <jakub@redhat.com>
15862
15863 PR other/1502:
15864 * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
15865 don't ignore unrecognized -W* options.
15866 (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
15867 * cpplib.h (cpp_handle_option): Adjust prototype.
15868 * c-decl.c (c_decode_options): Pass 0 as last argument to
15869 cpp_handle_option.
15870
15871 PR c/2896:
15872 * gcc.c (cpp_unique_options): Split from cpp_options.
15873 (cpp_options): Source cpp_unique_options.
15874 (default_compilers): Use cpp_unique_options instead of cpp_options
15875 when used together with cc1_options.
15876 (static_specs): Add cpp_unique_options.
15877 * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
15878 when used together with cc1_options.
15879
8aaeb4a6 158802002-01-29 Kazu Hirata <kazu@hxi.com>
15881
15882 * config/h8300/h8300-protos.h: Update the prototype of
15883 output_a_shift.
15884 * config/h8300/h8300.c (output_a_shift): Remove an unused
15885 argument 'insn'. Remove redundant code.
15886 * config/h8300/h8300.md: Adust to the new prototype of
15887 output_a_shift.
15888
efb83474 158892002-01-29 Kazu Hirata <kazu@hxi.com>
15890
15891 * config/h8300/h8300-protos.h: Update the prototypes of
15892 emit_a_rotate and expand_a_rotate.
15893 * config/h8300/h8300.c (emit_a_rotate): Change the type of the
15894 first argument to 'enum rtx_code'.
15895 (expand_a_rotate): Likewise.
15896
909c9c5c 158972002-01-28 Kazu Hirata <kazu@hxi.com>
15898
15899 * config/h8300/h8300-protos.h: Update the prototype of
15900 output_simode_bld.
15901 * config/h8300/h8300.c (output_simode_bld): Remove an argumen
15902 'log2'.
15903 * config/h8300/h8300.md: Adjust to the new prototype.
15904
6f04daec 159052002-01-28 Kazu Hirata <kazu@hxi.com>
15906
15907 * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
15908 redundant code.
15909
6ea47475 159102002-01-28 John David Anglin <dave@hiauly1.hia.nrc.ca>
15911
15912 * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
15913 is a fixed register before returning pic_offset_table_rtx.
15914 * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
15915 when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
15916
6bb7c2f2 159172002-01-28 Jason Merrill <jason@redhat.com>
15918
15a56411 15919 * dwarf2.h: Sync with src version.
6bb7c2f2 15920
82086392 159212002-01-28 Paul Koning <pkoning@equallogic.com>
15922
15923 * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
15924 BT_FN_VOID_PTR_VAR.
15925 * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
15926 * doc/extend.texi (__builtin_prefetch): Update documentation:
15927 first argument is now const void ptr.
15928
f60573c8 159292002-01-28 Kazu Hirata <kazu@hxi.com>
15930
15931 * config/h8300/h8300-protos.h: Remove an unused prototype.
15932
4d859885 159332002-01-28 Roman Zippel <zippel@linux-m68k.org>
15934
15935 * toplev.c (lang_independent_init): Round up identifier size.
15936
87a1ff8e 159372002-01-28 Richard Earnshaw <rearnsha@arm.com>
15938
15939 * config.gcc: Revert previous change.
15940
061404a6 159412002-01-28 Andris Pavenis <pavenis@latnet.lv>
15942
15943 * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
15944
d02da15e 159452002-01-28 Richard Earnshaw <rearnsha@arm.com>
15946
15947 * config.gcc (*-*-netbsdelf*): Set up generic parameters.
15948 (*-*-netbsd*): Always use collect2. Remove collect2 settings from
15949 other non-elf netbsd config frags.
15950 * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
15951 collect2 will does that.
15952 * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
15953 shared-lib frobbing will work.
15954
70a7518f 159552002-01-28 Kazu Hirata <kazu@hxi.com>
15956
15957 * config/h8300/h8300.h: Fix formatting.
15958 * config/h8300/h8300.md: Likewise.
15959
68d0517a 159602002-01-28 Loren J. Rittle <ljrittle@acm.org>
15961
15962 * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
15963 the old, removed AAA_standards fix.
15964 * fixinc/fixincl.x: Rebuilt.
15965
25fe8b9e 159662002-01-28 Hans-Peter Nilsson <hp@axis.com>
15967
15968 * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
15969 atexit call in crtbegin, hooked in after call to frame_dummy;
15970 register EH before registering __fini__start.
15971
abaff6c6 159722002-01-28 Aldy Hernandez <aldyh@redhat.com>
15973
15974 * config/rs6000/altivec.h: Remove spurious semicolons.
15975
dc0fa99c 159762002-01-27 Kazu Hirata <kazu@hxi.com>
15977
15978 * config/h8300/h8300.md: Replace dead bit extraction patterns
15979 with ones that work.
15980
981336a3 15981Sun Jan 27 13:23:40 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
15982
15983 * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
15984 if not STRICT_ALIGNMENT.
15985 * rtl.h (MEM_ALIGN): Likewise.
15986
9e1e55c2 159872002-01-27 Craig Rodrigues <rodrigc@gcc.gnu.org>
15988
15989 * doc/invoke.texi (-fdump-translation-unit): Revert this
15990 patch: 2001-10-21 Craig Rodrigues <rodrigc@gcc.gnu.org>
15991
478a0ee2 159922002-01-27 Kazu Hirata <kazu@hxi.com>
15993
15994 * config/h8300/h8300.md (define_constants): New.
15995 (anonymous patterns) Use defined constants appropriately.
15996
60ff2ea8 159972002-01-27 Kazu Hirata <kazu@hxi.com>
15998
15999 * config/h8300/h8300.c (function_arg): Remove redundant code.
16000
5deaeb50 160012002-01-26 Richard Henderson <rth@redhat.com>
16002
16003 * sched-deps.c (reg_pending_uses_head): New.
16004 (reg_pending_barrier): Rename from reg_pending_sets_all.
16005 (find_insn_list): Don't mark inline.
16006 (find_insn_mem_list): Remove.
16007 (add_dependence_list, add_dependence_list_and_free): New.
16008 (flush_pending_lists): Replace only_write param with separate
16009 for_read and for_write parameters. Update all callers. Use
16010 add_dependence_list_and_free.
16011 (sched_analyze_1): Do not add reg dependencies here; just set
16012 the pending bits. Use add_dependence_list.
16013 (sched_analyze_2): Likewise.
16014 (sched_analyze_insn): Replace schedule_barrier_found with
16015 reg_pending_barrier. Add all dependencies for pending reg
16016 uses, sets, and clobbers.
16017 (sched_analyze): Don't add reg dependencies for calls, just
16018 set pending bits. Use regs_invalidated_by_call. Treat
16019 sched_before_next_call as a normal list, not a fake insn.
16020 (init_deps): No funny init for sched_before_next_call.
16021 (free_deps): Free pending mems lists. Don't zero reg_last.
16022 (init_deps_global): Init reg_pending_uses.
16023 (finish_deps_global): Free it.
16024 * sched-int.h (deps): Make in_post_call_group_p boolean. Update docs.
16025 (find_insn_mem_list): Remove.
16026 * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
16027 (propagate_deps): Use them. Zero temp mem lists.
16028
e1ff7102 160292002-01-26 Richard Henderson <rth@redhat.com>
16030
16031 * Makefile.in (CRTSTUFF_CFLAGS): New.
16032 (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
16033 * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
16034 crtstuff.c instead of alpha assembly version.
16035 * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
16036 entire dummy function sequence. Use FORCE_CODE_SECTION_ALIGN
16037 not FORCE_{INIT,FINI}_SECTION_ALIGN.
16038 (__do_global_dtors_aux): Mark used.
16039 (frame_dummy, __do_global_ctors_aux): Mark used.
16040 (fini_dummy, init_dummy): Remove.
16041
16042 * config/alpha/crtbegin.asm: Remove file.
16043 * config/alpha/crtend.asm: Remove file.
16044 * config/alpha/t-crtbe: Remove file.
16045 * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
16046 (LINK_EH_SPEC): New.
16047
16048 * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
16049 FORCE_INIT_SECTION_ALIGN hack. Register __fini_start before
16050 calling constructors.
16051 * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
16052
16053 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
16054 * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
16055 CRT_END_INIT_DUMMY hack.
16056 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
16057 FORCE_{INIT,FINI}_SECTION_ALIGN.
16058
16059 * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
16060 FORCE_{INIT,FINI}_SECTION_ALIGN.
16061
16062 * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
16063 invocation sequence.
16064 * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
16065
16066 * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
16067 (FORCE_CODE_SECTION_ALIGN): New.
16068
82d8cc5a 160692002-01-26 Richard Henderson <rth@redhat.com>
16070
16071 * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
16072
5aae9d06 160732002-01-26 Richard Henderson <rth@redhat.com>
16074
16075 * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
16076 (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
16077
4de8ccba 160782002-01-26 Kazu Hirata <kazu@hxi.com>
16079
16080 * config/h8300/h8300.md: Remove bit extraction patterns that
16081 cannot be triggered.
16082 Restrict each bit extraction pattern to a variant on which the
16083 pattern is tested.
16084
dc64c56d 160852002-01-26 Joseph S. Myers <jsm28@cam.ac.uk>
16086
16087 * doc/include/texinfo.tex: Update to version 2002-01-04.07.
16088
6e548a60 160892002-01-26 Kazu Hirata <kazu@hxi.com>
16090
16091 * config/h8300/h8300.md: Remove bit test patterns that cannot
16092 be triggered.
16093 Restrict each bit test pattern to a variant on which the
16094 pattern is tested.
16095
b527e67e 160962002-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16097
16098 * builtins.c (expand_builtin_strncat): Remove redundant check for
16099 INTEGER_CST.
16100
cbe0a0fe 161012002-01-25 David O'Brien <obrien@FreeBSD.org>
16102
16103 * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
16104 default setting.
16105 * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
16106 existing setting.
16107
aae061fd 161082002-01-25 Geoffrey Keating <geoffk@redhat.com>
16109
16110 * dbxout.c (dbxout_init): Use assemble_name rather than just
16111 stripping off the first character.
16112 (dbxout_source_file): Likewise.
16113
7f63e91b 161142002-01-25 DJ Delorie <dj@redhat.com>
16115
16116 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
16117 using rtx_equal_p, not by comparing pointers.
16118
52bcea50 161192002-01-25 Steve Ellcey <sje@cup.hp.com>
16120
16121 * emit-rtl.c (gen_rtx_REG): Always return the same rtx
16122 for PIC_OFFSET_TABLE_REGNUM.
16123 (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
16124
a8456aba 161252002-01-25 David O'Brien <obrien@FreeBSD.org>
16126
16127 * config.gcc (x86_64-*-freebsd*): New target.
16128 (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
16129 value.
16130 (i[34567]86-*-freebsd*): Don't include svr4.h.
16131 * config/i386/freebsd64.h: New file.
16132
ffe38693 161332002-01-25 Douglas B Rupp <rupp@gnat.com>
16134
7531c549 16135 * config/alpha/x-vms (version): Make static.
16136
16137 * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
16138 in previous checkin.
16139
ffe38693 16140 * Makefile.in (install-headers-cp): New target.
16141 * config.gcc (alpha-dec-*vms*): Install headers with
16142 install-headers-cp
16143
4aa863f8 16144Fri Jan 25 22:42:49 CET 2002 Jan Hubicka <jh@suse.cz>
16145
16146 * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
16147 avoid it's copies.
16148
df5c389e 16149Fri Jan 25 08:26:19 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
16150
16151 * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
16152 of compare_tree_int.
16153 (expand_builtin_strncat): Likewise.
16154 * c-decl.c (finish_struct): Use tree_low_cst.
16155 * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
16156 * tree.c (compare_tree_int): Likewise.
16157
79ed0259 161582002-01-25 Ulrich Weigand <uweigand@de.ibm.com>
16159
16160 * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
16161 adjustments even if they are implemented by more than two insns.
16162
992c7138 16163Fri Jan 25 20:43:56 CET 2002 Jan Hubicka <jh@suse.cz>
16164
df5c389e 16165 * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
992c7138 16166 * df.h (struct ref): Kill B.
16167 (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
16168
16169 * basic-block.h (PROP_EQUAL_NOTES): New flag.
16170 * flow.c (propagate_one_insn): Use it.
16171 (mark_used_regs): Handle NIL.
16172
b193f2d5 161732002-01-25 Geoffrey Keating <geoffk@redhat.com>
ed0da988 16174
16175 * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
16176 to help folding.
16177
85f6e5ea 161782002-01-25 David Edelsohn <edelsohn@gnu.org>
16179
16180 * rs6000.md (prefetch): Make address V4SI mode so that the address
16181 is restricted to legitimate form for instruction.
16182
6b989ab5 161832002-01-25 Bob Wilson <bob.wilson@acm.org>
16184
16185 * doc/install.texi (xtensa-*-elf): New target.
16186 (xtensa-*-linux*): New target.
16187 * doc/contrib.texi: Add myself.
16188
26edf9fb 161892002-01-25 Nick Clifton <nickc@cambridge.redhat.com>
16190
16191 * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
16192 purpose register to hold an SImode (or smaller) value.
16193
3cfa3aba 161942002-01-25 Jakub Jelinek <jakub@redhat.com>
16195
16196 * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
16197 registry only.
16198 * crtstuff.c: Likewise.
16199
8250ae22 162002002-01-25 Kazu Hirata <kazu@hxi.com>
16201
16202 * config/h8300/h8300.md (negation patterns): Tighten
16203 predicates to register_operand.
16204
ad12b905 162052002-01-24 Aldy Hernandez <aldyh@redhat.com>
16206
82086392 16207 * loop.c (emit_prefetch_instructions): Use the prefetch insn's
16208 mode, not Pmode.
ad12b905 16209
82086392 16210 * builtins.c (expand_builtin_prefetch): Same.
ad12b905 16211
a50d3fba 162122002-01-24 Alexandre Oliva <aoliva@redhat.com>
16213
16214 * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
16215 modes.
16216
ecaf06e1 162172002-01-24 Kazu Hirata <kazu@hxi.com>
16218
16219 * config/h8300/h8300.c (print_operand): Remove support for
16220 operand character 'A'.
16221 * config/h8300/h8300.md (three anonymous patterns): Replace
16222 operand character 'A' with either 'T' or 'S'.
16223
1cb1d235 162242002-01-24 Kazu Hirata <kazu@hxi.com>
16225
16226 * config/h8300/h8300.c (print_operand): Remove support for
16227 operand character 'U'.
16228
2160b914 162292002-01-24 Andris Pavenis <pavenis@latnet.lv>
16230
82086392 16231 * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
2160b914 16232
6105c88b 162332002-01-24 Nick Clifton <nickc@cambridge.redhat.com>
16234
16235 * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
16236 values to be assigned to the stack pointer.
16237
06ca573a 162382002-01-14 Hartmut Penner <hpenner@de.ibm.com>
16239
e62fd7d5 16240 * emit_rtl.c (gen_lowpart_common): Conversion from const_int
06ca573a 16241 to const_double needs to be done right for big-endian systems.
16242
330fd4e6 162432002-01-24 Jason Merrill <jason@redhat.com>
16244
a38bc69a 16245 PR c++/2432
330fd4e6 16246 * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
16247 to can_throw_internal.
16248
9fb436bb 162492002-01-23 Richard Henderson <rth@redhat.com>
16250
16251 * fold-const.c (fold): Change UINT_MAX test to check vs precision
16252 rather than TYPE_MAX_VALUE. Fix indentation and a bogus negation.
16253
2810aad4 162542002-01-24 Alexandre Oliva <aoliva@redhat.com>
16255
16256 * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
16257 (symGOT2reg): Use them, then set as GOT value as unchanging.
16258 (symGOTOFF2reg): Set REG_EQUAL note. Use a different pseudo
16259 as a temporary, if possible.
16260 (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC. Emit
16261 sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
16262
8d2755f8 162632002-01-23 Kazu Hirata <kazu@hxi.com>
16264
16265 * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
16266 accept to accept 0x80 as operands[2].
16267
c3b0d92f 162682002-01-24 Alexandre Oliva <aoliva@redhat.com>
16269
16270 * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
16271
20044aeb 162722002-01-23 Richard Henderson <rth@redhat.com>
16273
16274 * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
16275
bc3195ce 162762002-01-23 Aldy Hernandez <aldyh@redhat.com>
16277
82086392 16278 * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
16279 (parmlist_or_identifiers_1): Verify that only a parmlist follows
16280 an attribute.
bc3195ce 16281
e1855348 162822002-01-23 Richard Henderson <rth@redhat.com>
16283
16284 * expr.c (move_by_pieces_1): Extend size before negation.
16285
a9ef3391 16286 * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
16287 (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
16288 (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
16289 * config/m68k/t-m68kelf: Likewise.
16290
f6b7ba2b 162912002-01-23 Bob Wilson <bob.wilson@acm.org>
16292
16293 * config/xtensa/elf.h: New file.
16294 * config/xtensa/lib1funcs.asm: New file.
16295 * config/xtensa/lib2funcs.S: New file.
16296 * config/xtensa/linux.h: New file.
16297 * config/xtensa/t-xtensa: New file.
16298 * config/xtensa/xtensa-config.h: New file.
16299 * config/xtensa/xtensa-protos.h: New file.
16300 * config/xtensa/xtensa.c: New file.
16301 * config/xtensa/xtensa.h: New file.
16302 * config/xtensa/xtensa.md: New file.
16303 * config.gcc (xtensa-*-elf*): New target.
16304 (xtensa-*-linux*): New target.
16305 * cse.c (canon_hash): Compare rtx pointers instead of register
16306 numbers. This is required for the Xtensa port.
16307 * integrate.c (copy_insn_list): Handle case where the static
16308 chain is in memory and the memory address has to be copied to
16309 a register.
16310 * doc/invoke.texi (Option Summary): Add Xtensa options.
16311 (Xtensa Options): New node.
16312 * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
16313
5601fc98 163142002-01-23 Zack Weinberg <zack@codesourcery.com>
16315
fab1c3fb 16316 * diagnostic.c (internal_error): Do ICE suppression only
16317 when ENABLE_CHECKING is not defined.
16318
5601fc98 16319 * c-typeck.c (require_complete_type): Return error_mark_node
16320 if type is error_mark_node.
16321
9544445b 163222002-01-23 Janis Johnson <janis187@us.ibm.com>
16323
16324 * toplev.c (process_options): Disable -fprefetch-loop-arrays with
16325 -Os and issue a warning.
16326
531d4872 163272002-01-23 Zack Weinberg <zack@codesourcery.com>
16328
16329 * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
16330 current (lack of) need for host configuration by hand.
16331
16332 * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
16333 references. Documentation of some target macros moved from
16334 hostconfig.texi to tm.texi.
16335
f4b2cef9 163362002-01-23 Will Cohen <wcohen@redhat.com>
16337
16338 * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
16339 defined.
16340
1deb4c04 163412002-01-23 Kazu Hirata <kazu@hxi.com>
16342
16343 * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
16344 operand[3].
16345
b3f516cb 163462002-01-23 Jason Merrill <jason@redhat.com>
16347
d965574e 16348 * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
16349
b3f516cb 16350 * function.c (assign_parms): Don't put args of inline functions
16351 into registers when not optimizing.
16352
063a05c7 163532002-01-23 Nick Clifton <nickc@cambridge.redhat.com>
16354
16355 * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
16356 (prologue_use): New pattern.
16357 * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
16358 preference to gen_rtx_USE.
16359 (thumb_expand_prologue): Use gen_prologue_use in preference to
16360 gen_rtx_USE.
16361 (thumb_expand_epilogue): Use gen_prologue_use in preference to
16362 gen_rtx_USE.
16363
71fe72ed 163642002-01-23 Hans-Peter Nilsson <hp@bitrange.com>
16365
16366 * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
16367
d3200805 163682002-01-23 Neil Booth <neil@daikokuya.demon.co.uk>
16369
16370 PR c/3504
16371 * doc/extend.texi: Correct documentation of __alignof__.
16372
25afff2f 163732002-01-22 Zack Weinberg <zack@codesourcery.com>
16374
16375 * params.h: Rename arguments of DEFPARAM so that it will be
16376 recognized as a translation keyword.
16377
0ae4308e 163782002-01-22 Aldy Hernandez <aldyh@redhat.com>
16379
25afff2f 16380 * extend.texi: Document altivec functions.
16381 Fix N-bit adjectives in X86 builtin documentation.
0ae4308e 16382
57148e48 163832002-01-22 Alexandre Oliva <aoliva@redhat.com>
16384
16385 * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
16386 auto_inc_dec values.
16387
112e1627 163882002-01-22 Richard Earnshaw <rearnsha@arm.com>
16389
16390 * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
16391 after backslash.
16392 (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
16393
04130762 163942002-01-22 Alexandre Oliva <aoliva@redhat.com>
16395
16396 * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
16397
455b78a0 163982002-01-22 Richard Henderson <rth@redhat.com>
16399
16400 * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
16401 copy_insn not copy_rtx.
16402
ec00a5f6 164032002-01-23 Alan Modra <amodra@bigpond.net.au>
16404
16405 * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
16406 "nonzero" as that might add "1" bits. Ensure "constop" is
16407 properly sign extened.
16408 (force_to_mode): Tweak for sign extended constop.
16409
367e2ab3 164102002-01-22 Richard Henderson <rth@redhat.com>
16411
16412 * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
16413 for_each_rtx instead of assuming we're already looking at the MEM.
16414 (split_small_symbolic_mem_operand): Likewise.
16415 * config/alpha/alpha.h (PREDICATE_CODES): Update.
16416 * config/alpha/alpha.md (small symbolic memory splitters): Update.
16417
164182002-01-22 Richard Henderson <rth@redhat.com>
203b9630 16419
16420 * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
16421 sequence number for the literal.
16422 (divmoddi_internal_er): Likewise.
16423
a63f7018 164242002-01-22 Craig Rodrigues <rodrigc@gcc.gnu.org>
16425
16426 PR java/4972
16427 * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
16428 in LIBICONV variable.
16429 * configure: Regenerated.
16430
2026f127 164312002-01-22 Krister Walfridsson <cato@df.lth.se>
16432
16433 * dependence.c (build_def_use): Remove array_idx.
16434
bd861789 16435 * dwarfout.c (last_filename): Remove.
16436 (output_compile_unit_die): Remove last_filename.
16437
a3f632bd 164382002-01-22 Roger Sayle <roger@eyesopen.com>
16439 Richard Henderson <rth@redhat.com>
16440
16441 PR opt/3640
16442 * fold-const.c (fold): Optimize unsigned comparisons against
16443 UINT_MAX (and similar unsigned constants).
16444
e57e6445 164452002-01-22 Janis Johnson <janis187@us.ibm.com>
16446
a3f632bd 16447 * Makefile.in (loop.o): Depend on OPTABS_H.
9544445b 16448 * loop.c (emit_prefetch_instructions): Check the prefetch operand
a3f632bd 16449 against the predicate.
3d941517 16450
e57e6445 16451 PR target/5379
16452 * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
16453 for the address operand.
16454
f5a287da 164552002-01-22 Richard Henderson <rth@redhat.com>
16456
16457 * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
16458
9ac60e09 164592002-01-22 Craig Rodrigues <rodrigc@gcc.gnu.org>
16460
16461 PR other/5450
f5a287da 16462 * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
16463 preprocessor flags.
9ac60e09 16464
8bc47d57 164652002-01-22 Jason Thorpe <thorpej@wasabisystems.com>
16466
16467 * config.gcc (x86_64-*-netbsd*): New target.
16468 * config/i386/netbsd64.h: New file.
16469
99f5f7d8 164702002-01-22 Aldy Hernandez <aldyh@redhat.com>
16471
a3f632bd 16472 * regrename.c (kill_value): Fix typo.
99f5f7d8 16473
164742002-01-22 Aldy Hernandez <aldyh@redhat.com>
16475
a3f632bd 16476 * doc/tm.texi: Remove STARTING_FRAME_PHASE.
99f5f7d8 16477
a3f632bd 16478 * config/rs6000/rs6000.h: Same.
99f5f7d8 16479
a3f632bd 16480 * function.c (instantiate_virtual_regs): Remove
16481 STARTING_FRAME_PHASE.
16482 (assign_stack_local_1): Same.
16483 Calculate frame phase.
99f5f7d8 16484
d19ef66f 164852002-01-22 Nick Clifton <nickc@redhat.com>
16486
16487 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
16488 variable declaration to outer scope in order to simplify
16489 future extensions.
16490 (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
16491 arm_hard_regno_mode_ok.
16492 * config/arm/arm-protos.h: Add a prototype for
16493 arm_hard_regno_mode_ok.
16494 * config/arm/arm.c (soft_df_operand): Remove now redundant
16495 check for DImode values using IP_REGNUM.
16496 (nonimmediate_soft_df_operand): Remove now redundant check for
16497 DImode values using IP_REGNUM.
16498 (arm_hard_regno_mode_ok): New function. New check: make sure
16499 that DImode values are not stored in IP_REGNUM.
bf82d677 16500
16501 * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
16502 note with a USE.
16503 (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
16504
b3959812 165052002-01-22 Jason Merrill <jason@redhat.com>
16506
16507 * c-semantics.c (genrtl_compound_stmt): Only check nesting
16508 consistency if this COMPOUND_STMT is scoped.
16509
47c251e5 165102002-01-22 Kazu Hirata <kazu@hxi.com>
16511
16512 * predict.c: Fix formatting.
16513 * print-tree.c: Likewise.
16514 * protoize.c: Likewise.
16515 * real.h: Likewise.
16516 * rtl.h: Likewise.
16517 * sbitmap.h: Likewise.
16518 * scan.c: Likewise.
16519 * sched-deps.c: Likewise.
16520 * sched-vis.c: Likewise.
16521 * sdbout.c: Likewise.
16522 * sibcall.c: Likewise.
16523 * ssa.c: Likewise.
16524 * ssa-ccp.c: Likewise.
16525 * ssa-dce.c: Likewise.
16526 * stmt.c: Likewise.
16527 * stor-layout.c: Likewise.
16528 * system.h: Likewise.
16529
dff29840 16530Tue Jan 22 06:26:33 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
16531
9b388aca 16532 * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
16533 if fits in bounds of base type.
16534
dff29840 16535 * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
16536 (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
16537 (add_bound_info, default): If can't find a context, make a
16538 SAVE_EXPR.
16539 (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
16540
5eaf60b3 165412002-01-22 Hans-Peter Nilsson <hp@axis.com>
16542
16543 * c-typeck.c (parser_build_binary_op): If result from
16544 build_binary_op is ERROR_MARK just return error_mark_node without
16545 further processing.
16546
4ace673e 165472002-01-21 Jason Thorpe <thorpej@wasabisystems.com>
16548
16549 * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
16550 Split a.out-specific bits into...
16551 * config/netbsd-aout.h: ...this.
16552 * config/netbsd-elf.h: New file.
16553 * config/alpha/netbsd-elf.h: Remove.
16554 * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
16555 * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
25afff2f 16556 (STARTFILE_SPEC): Remove redundant definition.
4ace673e 16557 (ENDFILE_SPEC): Likewise.
16558 (LINK_SPEC): Likewise.
16559 (CPP_SPEC): Likewise.
16560 (ASM_SPEC): Likewise.
16561 (LIB_SPEC): Likewise.
16562 (SWITCH_TAKES_ARG): Likewise.
16563 (TARGET_MEM_FUNCTIONS): Likewise.
16564 (CPP_PREDEFINES): Redefine.
16565 (ASM_FINAL_SPEC): Remove redefinition.
16566 (ASM_COMMENT_START): Redefine.
16567 (FUNCTION_PROFILER): Define.
16568 (TARGET_VERSION): Redefine.
16569 Comment and formatting cleanup.
16570 * config/i386/netbsd.h: Include <netbsd-aout.h>.
16571 * config/m68k/netbsd.h: Include <netbsd-aout.h>.
16572 * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
16573 big- or little-endian.
16574 * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
16575 * config.gcc (*-*-netbsd*): Add definitions common to all
16576 NetBSD configs.
16577 (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
16578 gnu_ld definitions. Add netbsd-elf.h to and remove
16579 alpha/netbsd-elf.h from tm_file. Remove alpha/t-crtfm from
16580 tmake_file, and don't lose previous tmake_file contents.
16581 (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
16582 (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
16583 gnu_ld definitions. Add netbsd-elf.h to tm_file.
16584 (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
16585 (mipsel-*-netbsd*): Rename this to...
16586 (mips*-*-netbsd*): ...this. Add elfos.h to tm_file. Add
16587 mips/little.h to tm_file for mips*el-*.
16588 (powerpc-*-netbsd*): Remove redundant xm_defines definition.
16589 (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
16590 (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
16591
d3138877 165922002-01-21 John David Anglin <dave@hiauly1.hia.nrc.ca>
16593
16594 * pa-protos.h (reg_before_reload_operand): New function prototype.
16595 * pa.c (reg_before_reload_operand): New function implementation.
16596 * pa.md (decrement_and_branch_until_zero, movb): Use it. Change "!*m"
16597 contraints to "*m".
16598
e45d8203 165992002-01-21 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
16600
16601 * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
16602
29192431 166032002-01-21 John David Anglin <dave@hiauly1.hia.nrc.ca>
16604
16605 * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
16606 (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
16607 (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
16608 (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
16609 (ENDFILE_SPEC): Undefine.
16610 (STARTFILE_SPEC): Redefine for PA.
16611
7f498748 166122002-01-21 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
16613
16614 * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
16615
554b40d5 166162002-01-21 Daniel Jacobowitz <drow@mvista.com>
16617
16618 * config.gcc: Add entries to supported PowerPC --with-cpu
16619 types.
16620
25dd0f29 166212002-01-21 Jakub Jelinek <jakub@redhat.com>
16622
16623 * config/i386/i386.c (ix86_function_arg_regno_p): Never return
16624 true for 64-bit mode only SSE registers in 32-bit mode.
16625
188879e7 166262002-01-21 Kazu Hirata <kazu@hxi.com>
16627
16628 * unwind-dw2.c: Fix formatting.
16629 * unwind-dw2-fde.c: Likewise.
16630 * unwind-dw2-fde.h: Likewise.
16631 * unwind-pe.h: Likewise.
16632 * varasm.c: Likewise.
16633 * varray.h: Likewise.
16634
c0475536 166352002-01-21 Hans-Peter Nilsson <hp@bitrange.com>
16636
16637 Remove workaround for register stack overwrite bug in mmix.
16638 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
16639 support for TARGET_REG_STACK_FILL_BUG.
16640 * config/mmix/mmix.h: Remove member has_call_without_parameters.
16641 (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
16642 Delete.
16643 (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
16644 (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
16645 -mno-reg-stack-fill-bug-workaround.
16646 * config/mmix/mmix.md ("call", "call_value"): Don't set struct
16647 machine member has_call_without_parameters.
16648 * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
16649 -mreg-stack-fill-bug-workaround and
16650 -mno-reg-stack-fill-bug-workaround.
16651 (MMIX Options): Ditto.
16652
6996dd46 166532002-01-21 Kazu Hirata <kazu@hxi.com>
16654
16655 * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
16656 as appropriate.
16657 Remove redundant code.
16658
3b2aec94 166592002-01-21 Joseph S. Myers <jsm28@cam.ac.uk>
16660
16661 * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
16662 config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
16663 config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
16664 config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
16665 config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
16666 out target macro definitions and non-target-specific comments
16667 mostly taken from old versions of the manual.
16668
87d3145e 166692002-01-20 Kazu Hirata <kazu@hxi.com>
16670
16671 * config/h8300/h8300.h: Fix comment formatting.
16672 * config/ia64/aix.h: Likewise.
16673 * config/ia64/ia64-protos.h: Likewise.
16674 * config/ia64/ia64.c: Likewise.
16675 * config/ia64/ia64.h: Likewise.
16676 * config/ia64/ia64intrin.h: Likewise.
16677 * config/ia64/linux.h: Likewise.
16678 * config/ia64/unwind-aix.c: Likewise.
16679 * config/ia64/unwind-ia64.c: Likewise.
16680
f465f633 166812002-01-20 Kazu Hirata <kazu@hxi.com>
16682
16683 * config/h8300/h8300.c: Revise comments about shift code.
16684
c738c371 166852002-01-20 Kazu Hirata <kazu@hxi.com>
16686
16687 * config/h8300/h8300.c (function_arg): Update a comment.
16688
ec8f1737 166892002-01-20 Kazu Hirata <kazu@hxi.com>
16690
16691 * config/h8300/h8300.md: Update the comments at the beginning
16692 of the file.
16693
1d7ac33a 166942002-01-20 Kazu Hirata <kazu@hxi.com>
16695
16696 * config/i370/i370.c: Fix comment formatting.
16697 * config/i370/i370.h: Likewise.
16698 * config/i370/i370.md: Likewise.
16699 * config/i370/linux.h: Likewise.
16700
cfd66c04 16701Sun Jan 20 18:40:14 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
16702
5192f3ed 16703 * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
16704
cfd66c04 16705 * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
16706 (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
16707 in incomplete case.
16708
2360d7e0 167092002-01-20 Graham Stott <grahams@redhat.com>
16710
16711 * cfgloop.c (flow_loop_preheader_scan): Fix typo.
16712
3c066828 167132002-01-19 John David Anglin <dave@hiauly1.hia.nrc.ca>
16714
16715 * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
16716
33707510 167172002-01-19 Tom Rix <trix@redhat.com>
16718
16719 * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
16720
0d83ba3e 167212002-01-18 Aldy Hernandez <aldyh@redhat.com>
16722
a3f632bd 16723 * doc/tm.texi (STARTING_FRAME_PHASE): Document.
0d83ba3e 16724
a3f632bd 16725 * function.c (assign_stack_local_1): Adjust x_frame_offset with
16726 STARTING_FRAME_PHASE.
16727 (STARTING_FRAME_PHASE): New.
16728 (instantiate_virtual_regs): Check saneness of
16729 STARTING_FRAME_PHASE.
0d83ba3e 16730
a3f632bd 16731 * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
0d83ba3e 16732
e53d227a 167332002-01-19 Alexandre Oliva <aoliva@redhat.com>
16734
16735 * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
16736
508308cc 167372002-01-18 Craig Rodrigues <rodrigc@gcc.gnu.org>
16738
16739 * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
16740 be used for bootstrapping GCC 3.0.
16741
08426512 167422002-01-18 Kazu Hirata <kazu@hxi.com>
16743
16744 * config/h8300/h8300.md: Fix an insn length.
16745
04641143 167462002-01-18 Kazu Hirata <kazu@hxi.com>
16747
16748 * bitmap.h: Fix comment formatting.
16749 * combine.c: Likewise.
16750 * cppfiles.c: Likewise.
16751 * c-pragma.h: Likewise.
16752 * c-typeck.c: Likewise.
16753 * df.c: Likewise.
16754 * dwarf2out.c: Likewise.
16755 * function.c: Likewise.
16756 * gcc.c: Likewise.
16757 * genattrtab.c: Likewise.
16758 * gthr-win32.h: Likewise.
16759 * haifa-sched.c: Likewise.
16760 * predict.c: Likewise.
16761 * rtlanal.c: Likewise.
16762 * rtl.h: Likewise.
16763 * unwind-dw2-fde.h: Likewise.
16764 * unwind-pe.h: Likewise.
16765 * vmsdbgout.c: Likewise.
16766
aa9c60c1 16767Thu Jan 17 15:28:26 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
16768
16769 * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
16770 if type_required and passed decl.
16771
25b7153e 167722002-01-17 Aldy Hernandez <aldyh@redhat.com>
16773
a3f632bd 16774 * config.gcc (cpu_type): Include altivec.h in powerpc
16775 extra_headers.
16776 Same for darwin.
25b7153e 16777
a3f632bd 16778 * config/rs6000/altivec.h: New.
25b7153e 16779
4699ada1 167802002-01-17 David Edelsohn <edelsohn@gnu.org>
16781
16782 * doc/install.texi (*-ibm-aix*): Update assembler and exception
16783 handling information.
16784 * doc/trouble.texi (Interoperation): Add libstdc++ information
16785 for AIX.
16786 (Misunderstandings): Add template instantiation and static template
16787 member information for AIX.
16788
425f2cac 167892002-01-17 Jason Merrill <jason@redhat.com>
16790
1d971bfd 16791 * dbxout.c (dbxout_type): Support const and volatile.
16792
425f2cac 16793 * except.c (add_partial_entry): Remove backwards compatibility code.
16794 (end_protect_partials): Likewise.
16795
8ced207e 167962002-01-17 Jakub Jelinek <jakub@redhat.com>
16797
16798 * config/ia64/ia64.md (prologue_use): New.
16799 * config/ia64/ia64.c (ia64_expand_prologue): Use
16800 gen_prologue_use instead of gen_rtx_USE.
16801 (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
16802 as CODE_FOR_pred_rel_mutex.
16803 (ia64_sched_reorder2): Likewise.
16804
dd93d2ce 168052002-01-16 Eric Christopher <echristo@redhat.com>
16806
16807 * config/mips/r3900.h: Reformat.
16808 (SUBTARGET_CPP_SIZE_SPEC): Remove.
16809 * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
16810 * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
16811 (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
16812 * config/mips/t-elf: Remove mips3 multilib.
16813
3cbae491 168142002-01-16 H.J. Lu <hjl@gnu.org>
16815
16816 * config/mips/linux.h: Include "mips/abi64.h".
16817
a5159deb 168182002-01-16 H.J. Lu <hjl@gnu.org>
16819
16820 * config/mips/t-linux: New.
16821
16822 * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
16823
16824 * config/mips/linux.h: Don't include "gofast.h".
16825 (INIT_SUBTARGET_OPTABS): Removed.
16826
3f2833fd 168272002-01-16 Kazu Hirata <kazu@hxi.com>
16828
16829 * config/h8300/h8300-protos.h: Replace emit_a_shift with
16830 output_a_shift.
16831 * config/h8300/h8300.c: Likewise.
16832 * config/h8300/h8300.md: Likewise.
16833
86af1182 168342002-01-16 Kazu Hirata <kazu@hxi.com>
16835
16836 * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
16837 spaces after an opcode name.
16838 (pushqi1_h8300hs): Likewise.
16839 (pushhi1_h8300hs): Likewise.
16840
eafbc061 168412002-01-16 Kazu Hirata <kazu@hxi.com>
16842
16843 * doc/extend.texi: Replace "option" with "attribute"
16844 appropriately.
16845
443bb1a6 168462002-01-16 Jakub Jelinek <jakub@redhat.com>
16847
16848 * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
16849 (and:DI () (const_int -8)).
16850 (split_small_symbolic_mem_operand): Split
16851 (mem (and:DI () (const_int -8)).
16852
e2294eb4 168532002-01-16 Jakub Jelinek <jakub@redhat.com>
16854
16855 PR target/5309:
a3f632bd 16856 * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
e2294eb4 16857 same way as TYPE_IMUL.
16858 (ultrasparc_sched_reorder): Likewise.
16859 * config/sparc/sparc.md (type): Add comment to update
16860 ultrasparc_sched_reorder when making changes.
16861
fe07365c 168622002-01-16 Kazu Hirata <kazu@hxi.com>
16863
16864 * doc/invoke.texi: Change the dump file name of block
16865 reordering pass from 28.bbro to 29.bbro.
16866 Mention -dk option.
16867
73b87fe4 16868Wed Jan 16 17:54:22 CET 2002 Jan Hubicka <jh@suse.cz>
16869
16870 * i386.md (minsf splitter): Fix pasto.
16871
a150f9e1 168722002-01-16 Nick Clifton <nickc@cambridge.redhat.com>
16873
16874 * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
16875 to frame pointer initialisation instruction.
16876 (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
16877 initialisation instruction.
277f24de 16878 (soft_df_operand): Do not accept the IP register.
16879 (nonimmediate_soft_df_operand): Do not accept the IP register.
a150f9e1 16880
13153281 168812002-01-16 Jakub Jelinek <jakub@redhat.com>
16882
16883 PR target/5357:
16884 * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
16885 MASK_V8 being both set.
16886
c89f9ed7 168872002-01-16 Ulrich Weigand <uweigand@de.ibm.com>
16888
16889 * config/s390/s390.c (s390_emit_prologue): Do not emit USE
16890 insn for GOT register; add REG_MAYBE_DEAD notes instead.
16891 config/s390/s390.md (call, call_value): Add GOT register to
16892 CALL_INSN_FUNCTION_USAGE where needed.
16893 (call_exp, call_value_exp): New.
16894
a12be13c 168952002-01-16 Nick Clifton <nickc@cambridge.redhat.com>
16896
16897 * config/arm/arm.c: General formatting tidy up.
16898
168992002-01-16 Graham Stott <grahams@redhat.com>
be051fd5 16900
16901 * calls.c (try_to_integrate): Use "(size_t)" intermediate
16902 cast and when casting an integer literal to "rtx" pointer.
16903 (expand_call): Likewise.
16904 * flow.c (try_pre_increment): Likewise.
16905 (find_use_as_address): Likewise.
16906 * integrate.c (expand_iline_function): Likewise.
16907 * regmove.c (try_auto_increment): Likewise.
16908
a12be13c 169092002-01-16 Graham Stott <grahams@redhat.com>
265a9759 16910
16911 * sched-rgn.c (passed): Use sbitmap_free.
16912 (header): Likewise.
16913 (inner): Likewise.
16914 (in_queue): Likewise.
16915 (in_stack): Likewise.
16916
816c4c4b 169172002-01-15 Eric Christopher <echristo@redhat.com>
16918
16919 * flow.c (propagate_one_insn): Change to use fatal_insn.
16920
ab89ec1b 169212002-01-15 Kazu Hirata <kazu@hxi.com>
16922
16923 * expmed.c (extract_fixed_bit_field): Remove unused code.
16924 * system.h: Poison SLOW_ZERO_EXTEND.
16925 * doc/tm.texi: Remove.
16926 * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
16927 * config/arm/arm.h: Likewise.
16928 * config/avr/avr.h: Likewise.
16929 * config/clipper/clipper.h: Likewise.
16930 * config/convex/convex.h: Likewise.
16931 * config/d30v/d30v.h: Likewise.
16932 * config/dsp16xx/dsp16xx.h: Likewise.
16933 * config/elxsi/elxsi.h: Likewise.
16934 * config/fr30/fr30.h: Likewise.
16935 * config/h8300/h8300.h: Likewise.
16936 * config/i370/i370.h: Likewise.
16937 * config/i386/i386.h: Likewise.
16938 * config/m68k/m68k.h: Likewise.
16939 * config/mips/mips.h: Likewise.
16940 * config/ns32k/ns32k.h: Likewise.
16941 * config/pdp11/pdp11.h: Likewise.
16942 * config/pj/pj.h: Likewise.
16943 * config/s390/s390.h: Likewise.
16944 * config/sh/sh.h: Likewise.
16945 * config/stormy16/stormy16.h: Likewise.
16946 * config/v850/v850.h: Likewise.
16947 * config/vax/vax.h: Likewise.
16948 * config/we32k/we32k.h: Likewise.
16949
4ab64e50 169502002-01-15 Aldy Hernandez <aldyh@redhat.com>
16951
a3f632bd 16952 * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
16953 (altivec_lvsl): Change constraint to b.
16954 (altivec_lvsr): Same.
16955 (altivec_lvebx): Same.
16956 (altivec_lvehx): Same.
16957 (altivec_lvewx): Same.
16958 (altivec_lvxl): Same.
16959 (altivec_lvx): Same.
16960 (altivec_stvx): Add parallel.
16961 (altivec_stvxl): Same.
16962 (altivec_stvehx): Same.
16963 (altivec_stvebx): Same.
16964 (altivec_stvebx): Same.
4ab64e50 16965
0679bf07 169662002-01-15 Aldy Hernandez <aldyh@redhat.com>
16967
a3f632bd 16968 * config.gcc: Change altivec.h to altivec-defs.h.
0679bf07 16969
a3f632bd 16970 * config/rs6000/altivec.h: Delete.
0679bf07 16971
a3f632bd 16972 * config/rs6000/altivec-defs.h: Add.
0679bf07 16973
10d15e22 169742002-01-15 John David Anglin <dave@hiauly1.hia.nrc.ca>
16975
16976 * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
16977 and UMOD modes.
16978
16979 * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
16980 less than or equal to eight bytes.
16981
16982 * vax.md (andsi3): Remove constraints and change SET destination
16983 operand type to nonimmediate_operand.
16984 (andhi3, andqi3): Likewise. Don't clear high order bits of operand 1
16985 when it is a CONST_INT.
16986
204ca66e 169872002-01-15 Jason Merrill <jason@redhat.com>
16988
16989 * c-common.def (FILE_STMT): New code.
16990 * c-common.c (statement_code_p): It's a statement.
16991 * c-common.h (stmt_tree_s): Add x_last_filename.
16992 (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
16993 (last_expr_filename): New macro.
16994 * c-semantics.c (begin_stmt_tree): Initialize it.
16995 (add_stmt): If the filename changed, also insert a
16996 FILE_STMT.
16997 (expand_stmt): Handle seeing one.
16998
031ed459 169992002-01-15 Eric Christopher <echristo@redhat.com>
17000
17001 * flow.c (propagate_one_insn): Add error message and print out
17002 insn for debugging.
17003
c98efb56 170042002-01-15 Joseph S. Myers <jsm28@cam.ac.uk>
17005
17006 * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
17007 ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
17008 * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
17009 TRAMPOLINE_ALIGNMENT.
17010 * config/arm/arm.h, config/mcore/mcore.h: Likewise. Change value
17011 to be in bits.
17012 * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
17013 PCC_BITFIELD_TYPE_MATTERS.
17014 * config/interix.h (STDC_VALUE): Remove. Use
17015 STDC_0_IN_SYSTEM_HEADERS.
17016 * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
17017 (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
17018 ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
17019
f7249309 170202002-01-15 Craig Rodrigues <rodrigc@gcc.gnu.org>
17021
17022 * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
17023 not work on this platform currently.
17024
34b637b1 170252002-01-15 Joseph S. Myers <jsm28@cam.ac.uk>
17026
17027 * c-typeck.c (build_unary_op): Don't wrap msgid argument of
17028 readonly_warning in _().
17029
b4eac72f 170302002-01-15 Douglas B Rupp <rupp@gnat.com>
080a7bc9 17031
b4eac72f 17032 * gcc.c (delete_if_ordinary): Backout previous change.
080a7bc9 17033
337d789b 170342002-01-15 Kazu Hirata <kazu@hxi.com>
17035
b4eac72f 17036 * config/h8300/h8300.c (print_operand): Remove support for
17037 unused operand characters.
17038
337d789b 17039 * read-rtl.c: Fix formatting.
17040 * real.c: Likewise.
17041 * recog.c: Likewise.
17042 * regclass.c: Likewise.
17043 * regmove.c: Likewise.
17044 * reg-stack.c: Likewise.
17045 * reload1.c: Likewise.
17046 * rtlanal.c: Likewise.
17047
039c27d6 170482002-01-15 Kazu Hirata <kazu@hxi.com>
17049
17050 * config/i386/i386.c: Fix formatting.
17051
a54f5de8 170522002-01-15 Jakub Jelinek <jakub@redhat.com>
17053
17054 * c-typeck.c (process_init_element): Don't save_expr
17055 COMPOUND_LITERAL_EXPR if just its initializer will be used.
17056
c0efea40 170572002-01-15 David Edelsohn <edelsohn@gnu.org>
17058
17059 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
17060 emit optional traceback table if optimize_size or TARGET_ELF.
17061 * config/rs6000/rs6000.md (prefetch): New.
17062
d2f37b7f 170632002-01-15 Andreas Jaeger <aj@suse.de>
17064
17065 * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
17066
102202a9 170672002-01-15 Kazu Hirata <kazu@hxi.com>
17068
17069 * mips-tfile.c: Fix formatting.
17070
d1d13567 17071Tue Jan 15 00:56:11 CET 2002 Jan Hubicka <jh@suse.cz>
17072
17073 * unroll.c (final_reg_note_copy): Fix previous commit.
17074
651673c2 170752002-01-14 Kazu Hirata <kazu@hxi.com>
17076
17077 * config/h8300/h8300-protos.h: Remove the prototype for
17078 eq_operator.
17079 * config/h8300/h8300.c (eq_operator): Remove.
17080
345b3c98 170812002-01-14 Richard Henderson <rth@redhat.com>
17082
17083 * config/i386/i386.md (prefetch): Tidy.
17084 (prefetch_3dnow): Fix locality operand.
17085
52703946 170862002-01-14 Richard Henderson <rth@redhat.com>
17087
17088 * config/mips/mips.h (HI_AND_FP_REGS): New register class.
17089 (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
17090
7f758d0b 170912002-01-14 Hans-Peter Nilsson <hp@bitrange.com>
17092
17093 * reload1.c (reload_combine): Pass reg_sum replacement through
17094 copy_rtx in loop performing multiple changes.
17095
f491db07 170962002-01-14 Jakub Jelinek <jakub@redhat.com>
17097
17098 * except.c (remove_unreachable_regions): New.
17099 (free_eh_status): Clear exception_handler_labels.
17100 (convert_from_eh_region_ranges): Call remove_unreachable_regions.
17101 (find_exception_handler_labels): Don't add the same label more than
17102 once.
17103 (remove_exception_handler_label): Don't die if
17104 find_exception_handler_labels hasn't been called for the current
17105 function yet.
17106
f0d72396 17107Mon Jan 14 21:26:13 CET 2002 Jan Hubicka <jh@suse.cz>
17108
17109 * toplev.c (rest_of_compilation): Rebuild jump labels after
17110 gcse.
17111
ca5827cf 171122002-01-14 Joseph S. Myers <jsm28@cam.ac.uk>
17113
17114 * doc/extend.texi: Move documentation of X86 built-in functions
17115 here.
17116 * doc/invoke.texi: From here.
17117 * doc/sourcebuild.texi: Document location of documentation for
17118 machine built-in functions.
17119
c21f4dc1 171202002-01-13 Christopher Faylor <cgf@redhat.com>
17121
17122 * cppfiles.c (TEST_THRESHOLD): New macro.
17123 (SHOULD_MMAP): Ditto.
17124 (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
17125 be used.
17126
45c2115a 17127Mon Jan 14 20:23:34 CET 2002 Jan Hubicka <jh@suse.cz>
17128
17129 * unroll.c (final_reg_note_copy): Properly handle
17130 REG_LABEL
17131 (unroll_loops): Fix LOOP_CONDITION heuristics.
17132
455123cf 171332002-01-14 Geoffrey Keating <geoffk@redhat.com>
17134
17135 * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
17136 * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
17137
e9bc5a2d 17138Mon Jan 14 20:18:19 CET 2002 Jan Hubicka <jh@suse.cz>
17139
17140 * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
17141 threaded loop.
17142
b8dbae25 171432002-01-14 Tom Rix <trix@redhat.com>
17144
17145 * config/rs6000/rs6000.md: Fix typo with sradi.
17146
9f4d041d 171472002-01-14 Ulrich Weigand <uweigand@de.ibm.com>
17148
17149 * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
17150 movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
17151 (clrstrdi, clrstrsi): Adapt callers.
17152
17153 (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
17154
d2f37b7f 17155 (movti splitter): Never use register 0 as base register.
9f4d041d 17156
b9a4ce44 171572002-01-14 Hartmut Penner <hpenner@de.ibm.com>
17158
d2f37b7f 17159 * combine.c (simplify_shift_const): Always generate new rtx
17160 for shift expression instead of reusing given expression.
b9a4ce44 17161
62e050c6 17162Mon Jan 14 07:08:55 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17163
17164 * config/alpha/alpha.c (alpha_expand_mov): Don't call
17165 alpha_legitimize_address unless mode is Pmode.
17166
565d3099 171672002-01-13 Geoffrey Keating <geoffk@redhat.com>
17168
17169 * doc/md.texi (Modifiers): Document the '*' constraint for the
17170 user.
17171
17172 * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
17173 * doc/extend.texi (Function Attributes): 'interrupt' is valid
17174 for xstormy16 too.
17175
483fd82f 171762002-01-13 Richard Henderson <rth@redhat.com>
17177
17178 * reload.c (find_reloads): Use a hard reg destination as reload reg
17179 for an input reload of the source.
17180
c7443793 171812002-01-13 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
17182
17183 * doc/install.texi (Binaries): Make link to ftp.writtenword.com
17184 more generic.
17185
df4f5ffb 17186Sun Jan 13 07:23:01 2002 Douglas B Rupp <rupp@gnat.com>
17187
17188 * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17189 * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
17190
5db879bc 17191 * config/alpha/x-vms (USE_COLLECT2): Set to empty.
17192
52fa404f 17193Sun Jan 13 06:55:31 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17194
17195 * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
17196
f5fe5de2 171972002-01-12 Tom Rix <trix@redhat.com>
17198
d2f37b7f 17199 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
f5fe5de2 17200 TARGET_POWERPC64.
17201
bbc97097 172022002-01-12 Richard Henderson <rth@redhat.com>
17203
1da4678b 17204 * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
17205
2d27b714 17206 * doc/invoke.texi: Update Alpha options.
17207
bbc97097 17208 * doc/invoke.texi: Update i386 built-in function lists.
17209
985689b5 17210Sat Jan 12 17:38:11 CET 2002 Jan Hubicka <jh@suse.cz>
17211
17212 * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
17213 referencing outside.
17214
76ab50f8 17215Sat Jan 12 08:54:51 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17216
17217 * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
17218 * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
17219 offsets, and change line folding.
17220 * optabs.c (expand_binop): Remove warnings.
17221 * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
d2f37b7f 17222
7f54eb35 172232002-01-12 Graham Stott <grahams@redhat.com>
17224
17225 * attribs.c (handle_deprecated_attribute): constify WHAT.
17226 * diagnostic.c (warn_deprecated_use): Add braces, fixes
17227 dangling else warning and constify WHAT.
17228 * except.h (struct function, struct inline_remap): Move
17229 struct tag forward defs before all prototypes.
17230 (duplicate_eh_regions): Whitespace.
17231
5887eb0d 172322002-01-12 Nick Clifton <nickc@cambridge.redhat.com>
17233
17234 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
17235 MODE_BASE_REG_CLASS.
17236 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
17237
3381a03a 172382002-01-12 Richard Henderson <rth@redhat.com>
17239
17240 * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
17241 (ix86_expand_vector_move): New.
17242 (bdesc_2arg): Remove andps, andnps, orps, xorps.
17243 (ix86_init_mmx_sse_builtins): Make static. Remove composite builtins.
17244 Remove old prefetch builtins. Special case the logicals removed above.
17245 (ix86_expand_builtin): Likewise.
17246 (safe_vector_operand): Use V4SFmode, not TImode.
17247 (ix86_expand_store_builtin): Remove shuffle arg. Update callers.
17248 (ix86_expand_timode_binop_builtin): New.
17249 * config/i386/i386-protos.h: Update.
17250 * config/i386/i386.h (enum ix86_builtins): Update.
17251 * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
17252 Use ix86_expand_vector_move in vector move expanders.
17253 (movti_internal, movti_rex64): Add xorps alternative.
17254 (sse_clrv4sf): Rename and adjust from sse_clrti.
17255 (prefetch): Don't work so hard.
17256 (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
17257 * config/i386/xmmintrin.h (__m128): Use V4SFmode.
17258 (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
17259
d65bfb46 172602002-01-11 Richard Henderson <rth@redhat.com>
17261
17262 * config/i386/mmintrin.h: New file.
17263 * config/i386/xmmintrin.h: New file.
17264 * config.gcc (i?86-*-*): Add extra_headers.
17265 * simplify-rtx.c (simplify_unary_operation): Handle saturating
17266 truncation codes.
17267 (simplify_binary_operation): Handle saturating arithmetic codes.
17268 * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
17269 not the lowpart subreg.
17270 (ix86_expand_builtin): Return a TImode dummy register instead of 0
17271 on error.
17272 * config/i386/i386.md (mmx_clrdi): Override memory attribute.
17273
43db9003 172742002-01-12 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
17275
17276 * conflict.c (conflict_graph_compute): Free regsets when finished.
17277 * ssa.c (compute_coalesced_reg_partition): Likewise.
d2f37b7f 17278
ddaaa5fd 172792002-01-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17280
17281 * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
17282 every where we allocate a register.
17283
f5123ed5 172842002-01-12 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
17285
17286 * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
17287 * lcm.c (compute_earliest, compute_farthest): Likewise.
17288
666954ce 172892002-01-11 Janis Johnson <janis187@us.ibm.com>
17290
17291 * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
17292
f8c5d98c 172932002-01-11 Janis Johnson <janis187@us.ibm.com>
17294
17295 * doc/rtl.texi (Insns): Fix 2 typos.
17296
e71655b9 172972002-01-11 Joseph S. Myers <jsm28@cam.ac.uk>
17298
17299 * doc/invoke.texi: Avoid overfull hboxes. Add summary of D30V
17300 options. Use @table @gcctabopt for MMIX options. Add index
17301 entries for MMIX options. Start new paragraph with first
17302 heading of the machine-dependent options.
17303
78eda270 173042002-01-11 Craig Rodrigues <rodrigc@gcc.gnu.org>
17305
17306 PR other/5299
17307 * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
17308 * combine.c (force_to_mode): Same.
17309 * reload1.c (clear_reload_reg_in_use): Same.
17310
b6557085 173112002-01-11 Nick Clifton <nickc@cambridge.redhat.com>
17312
17313 * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
17314 and 'subtargets'.
17315
0295b9c1 173162002-01-11 Andreas Jaeger <aj@suse.de>,
17317 Brad Lucier <lucier@math.purdue.edu>
17318
17319 * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
17320 mcpu.
17321
e6c74fc0 17322Fri Jan 11 07:35:12 2002 Douglas B Rupp <rupp@gnat.com>
17323
17324 * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
17325 Protect with IN_LIBGCC.
17326 (LINK_EH_SPEC): Add required trailing space.
17327
e387c238 17328Fri Jan 11 09:25:05 2002 Nicola Pero <n.pero@mi.flashnet.it>
17329
0295b9c1 17330 * c-tree.h: Move function declarations so that they are listed
e387c238 17331 under the filename which contains them.
17332 (check_identifier, finish_decl_top_level,
17333 lookup_name_current_level_global, shadow_record_fields): Remove.
17334
caeca07f 173352002-01-11 Andreas Jaeger <aj@suse.de>
17336
17337 * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
17338 march.
17339
ad2ed779 173402002-01-10 Richard Henderson <rth@redhat.com>
17341
17342 * config/alpha/alpha.c (print_operand): Add 'J'.
17343 * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
17344 new operand with the sequence number for the lituse. When splitting
17345 the insns, use gen_movdi_er_high_g and generate a sequence number.
17346 (gen_movdi_er_high_g): Print the sequence number if non-zero.
17347
9f710c67 173482002-01-10 Aldy Hernandez <aldyh@redhat.com>
17349
a3f632bd 17350 * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
17351 lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
17352 stvxl.
17353 (altivec_expand_builtin): Same.
17354 (altivec_expand_stv_builtin): New.
17355
17356 * config/rs6000/rs6000.h (rs6000_builtins): Same.
17357
17358 * config/rs6000/rs6000.md ("altivec_lvebx"): New.
17359 ("altivec_lvehx"): New.
17360 ("altivec_lvewx"): New.
17361 ("altivec_lvxl"): New.
17362 ("altivec_lvx"): New.
17363 ("altivec_stvx"): New.
17364 ("altivec_stvebx"): New.
17365 ("altivec_stvehx"): New.
17366 ("altivec_stvewx"): New.
17367 ("altivec_stvxl"): New.
9f710c67 17368
e172357f 173692002-01-10 Richard Henderson <rth@redhat.com>
17370
17371 * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
17372 * reload1.c (delete_output_reload): Zap spill_reg_store. Take
17373 care not to delete instructions twice.
17374
b0624149 173752002-01-10 Zack Weinberg <zack@codesourcery.com>
17376
17377 * toplev.c: Don't declare environ (it's not used anywhere).
17378 * configure.in: Don't check for declaration of environ.
17379 * config/i386/xm-mingw32.h: Don't #define environ.
17380 * config.in, configure: Regenerate.
17381
c070948e 173822002-01-10 Zack Weinberg <zack@codesourcery.com>
17383
17384 * configure.in: Set stage1_cflags for powerpc-*-darwin*.
17385 * configure: Regenerate.
17386
17387 * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
17388 DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
17389 * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
17390 alpha/xm-vms.h.
17391 * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
17392 LIMITS_H_TEST here, not in m68k/x-next.
17393 * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
17394 SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
17395
17396 * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
17397 LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
17398 * config/alpha/x-vms: Don't set USE_COLLECT2. Add comments.
17399
17400 * config/i386/x-djgpp: Renamed i386/t-djgpp.
17401 * config/m88k/x-dolph: Renamed m88k/t-dolph.
17402 * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
17403 * config/pa/x-pa-mpeix: Renamed pa/t-mpeix. Update for
17404 replacement of quadlib.asm with quadlib.c.
17405
17406 * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
17407 config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
17408 config/rs6000/xm-beos.h: Delete file.
17409
17410 * config.gcc: Update to match above changes.
17411
a53c9f03 174122002-01-10 Kazu Hirata <kazu@hxi.com>
17413
17414 * config/h8300/h8300.h: Fix comment typos.
17415 * config/h8300/h8300.md: Likewise.
17416 * config/h8300/lib1funcs.asm: Likewise.
17417
ba26e2a7 174182002-01-10 Dale Johannesen <dalej@apple.com>
17419
17420 PR optimization/5269
17421 * unroll.c (precondition_loop_p): Make *increment be the correct
17422 sign when n_iterations known, to avoid confusing caller.
17423
6831447b 174242002-01-10 Kazu Hirata <kazu@hxi.com>
17425
17426 * doc/extend.texi (deprecated): Fix a typo.
17427
f884e43f 17428Thu Jan 10 22:35:54 CET 2002 Jan Hubicka <jh@suse.cz>
17429
17430 * basic-block.h (update_br_prob_note): Declare.
17431 * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
17432 (try_forward_edges): Care negative frequencies and update note.
17433 (outgoing_edges_match): Tweek conditional merging heuristics.
17434 (try_crossjump_to_edge): use update_br_prob_note.
17435 * cfglayout.c (fixup_reorder_chain): Likewise.
17436 * cfrtl.c (update_br_prob_note): New.
17437 * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
17438
17439 * i386.c (ix86_decompose_address): Return -1 if address contains
17440 shift.
17441 (legitimate_address_p): Require ix86_decompose_address to return 1.
17442
17443 * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
17444 (cprop_insn): Likewise.
17445
ac0c7fb1 174462002-01-10 Kazu Hirata <kazu@hxi.com>
17447
17448 * toplev.c: Fix formatting.
17449 * tree.c: Likewise.
17450 * tree-dump.c: Likewise.
17451 * unroll.c: Likewise.
17452 * unwind-dw2.c: Likewise.
17453 * unwind-dw2-fde.c: Likewise.
17454 * unwind-dw2-fde-glibc.c: Likewise.
17455 * unwind-sjlj.c: Likewise.
17456
29468146 174572002-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
17458
17459 * doc/invoke.texi: Document PDP-11 options.
17460
7baf3cdd 174612002-01-10 Kazu Hirata <kazu@hxi.com>
17462
17463 * config/h8300/h8300.h: Fix formatting.
17464
b193f2d5 174652002-01-10 Ira Ruben <ira@apple.com>
227b24ac 17466
17467 Add __attribute__ ((deprecated)).
17468 * extend.texi: Document __attribute__ ((deprecated)).
17469 * invoke.texi: Document -Wno-deprecated-declarations.
17470 * testsuite/g++.dg/other/deprecated.C: New C++ test.
17471 * testsuite/gcc.dg/deprecated.c: New C test.
17472 * attribs.c (enum attrs): Declare handle_deprecated_attribute().
17473 (c_common_attribute_table): Add "deprecated" entry.
17474 (handle_deprecated_attribute): New function.
17475 * c-decl.c (deprecated_states): New enum.
17476 deprecated_state: State of "deprecated" handling.
17477 (start_decl): Set deprecated_state based on attributes.
17478 (grokdeclarator): Test for deprecated uses, propagate attribute.
17479 * c-typeck.c (build_component_ref): Test for deprecated fields.
17480 (build_external_ref): Test for deprecated primaries.
17481 * diagnostic.c (warn_deprecated_use) New function to issue
17482 warnings about __attribute__ ((depricated)) references.
17483 * flags.h (warn_deprecated_decl): Extern declared for
17484 -W[no-]deprecated-declarations option.
17485 * print-tree.c (print_node): Show deprecated flag status.
17486 * toplev.c (warn_deprecated_decl): Defined.
17487 (W_options): Added "deprecated-declaration".
17488 * toplev.h (warn_deprecated_use): Extern declared.
17489 * tree.h (struct tree_common): Define deprecated_flag.
17490 (TREE_DEPRECATED): New macro to access flag.
17491 * cp/call.c (build_call): Test for deprecated calls.
17492 * cp/class.c (add_implicitly_declared_members): Set global
17493 flag to tell grokdeclarator to not issue deprecated warnings.
17494 * cp/cp-tree.h: Add extern for adding_implicit_members.
17495 * cp/decl.c (deprecated_states): New enum.
17496 (start_decl): Set deprecated_state based on attributes.
17497 (grokdeclarator): Test for deprecated uses, propagate attribute.
17498 * cp/lex.c (do_identifier): Test for deprecated primaries.
17499 * cp/typeck.c (build_component_ref): Test for deprecated fields.
17500
b193f2d5 175012002-01-10 Ira Ruben <ira@apple.com>
227b24ac 17502
17503 Fix to assign attributes to inline member functions.
17504 * cp/decl.c (start_method): Handle attrlist.
17505
b3a976d8 175062002-01-10 Kazu Hirata <kazu@hxi.com>
17507
17508 * combine.c (expand_field_assignment): Use subreg_lsb().
17509
2be64ef0 175102002-01-10 David Edelsohn <edelsohn@gnu.org>
17511
17512 * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
17513 POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
17514 (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
17515 Recurse for any operand of AND as long as constant is non-zero.
17516
27bb18bd 175172002-01-10 Kazu Hirata <kazu@hxi.com>
17518
17519 * config/h8300/h8300.md: Remove constraints from expanders.
17520
85db5591 175212002-01-10 Kazu Hirata <kazu@hxi.com>
17522
17523 * varasm.c: Fix formatting.
17524 * varray.c: Likewise.
17525 * vmsdbgout.c: Likewise.
17526 * xcoffout.c: Likewise.
17527
d2855ea6 17528Thu Jan 10 17:19:12 CET 2002 Jan Hubicka <jh@suse.cz>
17529
17530 * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
e172357f 17531 update edge probabilities to match.
d2855ea6 17532
a2e68e6d 175332002-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
17534
17535 * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
17536 dependencies.
17537 * doc/languages.texi, doc/sourcebuild.texi: New files.
17538 * doc/configfiles.texi: Make a subsubsection. Update.
17539 * doc/configterms.texi: Add @node. Remove warning that this isn't
17540 instructions for building GCC.
17541 * doc/makefile.texi: Make a subsection.
17542 * doc/gccint.texi: Update.
17543
6ac8fc24 17544Thu Jan 10 16:39:58 CET 2002 Jan Hubicka <jh@suse.cz>
17545
17546 * i386.md (sse_mov?fcc_const0_?): Fix constraints.
17547
d426ca3f 17548Thu Jan 10 12:45:50 2002 Nicola Pero <n.pero@mi.flashnet.it>
17549
17550 * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
17551
98431bf3 17552Thu Jan 10 11:19:18 CET 2002 Jan Hubicka <jh@suse.cz>
17553
17554 * optabs.c (expand_fix): Look for wider integer modes first.
17555
17556 * i386.md (mov?f): Avoid the fake const double trick for medium
17557 memory model.
17558 (min?f*/max?f*): Prohibit memory operands for i387 variant.
17559 (fop_df_4): Disable for SSE compilation.
17560
93f388f5 175612002-01-10 Graham Stott <grahams@redhat.com>
c366eeee 17562
17563 * dwarf2out.c (indirect_string_alloc, output_indirect_string):
e172357f 17564 Move prototype into DWARF2_DEBUGGING_INFO conditional block.
c366eeee 17565
73ce892a 175662002-01-10 Richard Henderson <rth@redhat.com>
17567
17568 * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
17569
f3ae2bae 175702002-01-10 Richard Henderson <rth@redhat.com>
17571
17572 * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
17573 (copyprop_hardreg_forward_1): Likewise. Use mode_change_ok.
17574
fd9d9afc 175752002-01-10 Kazu Hirata <kazu@hxi.com>
17576
17577 * combine.c (can_combine_p): Fix a comment typo.
17578
108251d9 175792002-01-09 Zack Weinberg <zack@codesourcery.com>
17580
17581 * Makefile.in (s-gencheck, s-options, s-specs): Handle an
17582 empty list correctly. Change loop index $t to $f for
17583 consistency with rest of Makefile.
17584
87ebe3d2 175852002-01-08 Aldy Hernandez <aldyh@redhat.com>
17586
17587 * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
17588 mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
17589
17590 * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
17591 mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
17592 (altivec_init_builtins): Same.
17593 (altivec_expand_unop_builtin): Return NULL_RTX on error.
17594 (altivec_expand_binop_builtin): Same.
17595 (altivec_expand_ternop_builtin): Same.
17596 (bdesc_dst): New.
17597
17598 * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
17599 ("altivec_vctuxs"): Fix typo.
17600 ("altivec_vnmsubfp"): Same.
17601 ("altivec_dssall"): New.
17602 ("altivec_mfvscr"): New.
17603 ("altivec_dss"): New.
17604 ("altivec_lvsl"): New.
17605 ("altivec_lvsr"): New.
17606 ("altivec_dstt"): New.
17607 ("altivec_dstst"): New.
17608 ("altivec_dststt"): New.
17609 ("altivec_dst"): New.
17610
17611 * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
17612 mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
17613
12f1cd0c 176142002-01-09 Richard Henderson <rth@redhat.com>
17615
17616 * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
17617
e133eb4b 176182002-01-10 Hans-Peter Nilsson <hp@bitrange.com>
17619
17620 * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
17621 function.
17622 * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
17623 prototype.
0f788811 17624 * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
e133eb4b 17625
33181afc 176262002-01-09 Kazu Hirata <kazu@hxi.com>
17627
17628 * read-rtl.c: Fix formatting.
17629 * real.c: Likewise.
17630 * regclass.c: Likewise.
17631 * regrename.c: Likewise.
17632 * reg-stack.c: Likewise.
17633 * reload1.c: Likewise.
17634 * reload.c: Likewise.
17635 * rtl.c: Likewise.
17636
ff90a874 176372002-01-09 Kazu Hirata <kazu@hxi.com>
17638
17639 * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
17640 to extract items in the expr_list chain.
17641
8aca3147 176422002-01-09 Richard Henderson <rth@redhat.com>
17643
17644 * config/vax/vax.c (vax_rtx_cost): Never abort.
17645
b93f38e1 17646 * config/vax/vax.h (REAL_ARITHMETIC): Define.
17647
27465d7d 176482002-01-09 Jan Hubicka <jh@suse.cz>
17649
17650 * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
17651
6382d316 176522002-01-09 Richard Henderson <rth@redhat.com>
17653
17654 * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
17655 Unify code from various alternatives.
17656
8a1ef47a 176572002-01-09 Richard Henderson <rth@redhat.com>
17658
17659 * regrename.c (copy_value): Ignore the copy if the source register
17660 is present in the value chain with a narrower mode.
17661
ddde6553 176622002-01-09 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17663
e172357f 17664 * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
17665 for the c4x target. Also improve layout.
ddde6553 17666
ccd9e27d 176672002-01-09 Richard Henderson <rth@redhat.com>
17668
17669 * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
17670 * config/m32r/m32r.md (and ior xor splitters): Swap operands
17671 to match insn patterns.
17672
c5a695f4 176732002-01-09 Richard Henderson <rth@redhat.com>
17674
17675 * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
17676 (copyprop_hardreg_forward_1): Likewise.
17677
a518236d 176782002-01-09 John David Anglin <dave@hiauly1.hia.nrc.ca>
17679
17680 * pa.md (decrement_and_branch_until_zero): Change predicate for
17681 operand 0 from register_operand to reg_or_nonsymb_mem_operand.
17682
158da7c0 176832002-01-09 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
17684
17685 * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
17686 gets undefined. For Darwin.
17687
29496e41 176882002-01-09 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17689
17690 * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
17691
358330c5 176922002-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
17693
17694 * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
17695
e932080c 176962002-01-08 Richard Henderson <rth@redhat.com>
17697
17698 * regrename.c (copy_value): Ignore overlapping copies.
17699
64656695 177002002-01-08 Richard Henderson <rth@redhat.com>
17701
17702 * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
17703 as needed to avoid shared structure.
17704
d2079f6d 177052002-01-08 Kazu Hirata <kazu@hxi.com>
17706
17707 * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
17708 H8/300H and H8/S.
17709
dcbec77e 177102002-01-08 Joseph S. Myers <jsm28@cam.ac.uk>
17711
17712 * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
17713 LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
17714 documentation of obsolete macros.
17715 * system.h: Poison these macros.
17716 * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
17717 config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
17718 config/c4x/c4x.h, config/clipper/clipper.h,
17719 config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
17720 config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
17721 config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
17722 config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
17723 config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
17724 config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
17725 config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
17726 config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
17727 config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
17728 config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
17729 config/sparc/sparc.h, config/stormy16/stormy16.h,
17730 config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
17731 definitions and commented out definitions of obsolete macros.
17732 * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
17733 of MAX_INT_TYPE_SIZE.
17734
0b300c86 177352002-01-08 Ulrich Weigand <uweigand@de.ibm.com>
17736
17737 * config/s390/s390.c (s390_preferred_reload_class): Never
17738 return ADDR_REGS if it isn't a subset of the given class.
17739 * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
17740 FP_REGS, but all superclasses as well.
17741
17742 * config/s390/s390.c (s390_function_profiler): Fix thinko.
17743
17744 * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
17745 cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
17746 must not be a const_int.
17747
e800ce79 177482002-01-08 Richard Henderson <rth@redhat.com>
17749
17750 * Makefile.in (toplev.o): Depend on options.h.
17751 (gcc.o): Depend on specs.h.
17752
f06d0bb1 177532002-01-08 Jakub Jelinek <jakub@redhat.com>
17754
17755 * expr.c (store_expr): Convert VOIDmode constants back to target's
17756 mode.
17757
a88a58d6 177582002-01-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
17759
17760 * doc/invoke.texi: Markup gcc as @command. Refer to
17761 http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
17762 of http://gcc.gnu.org/thanks.html.
17763
76e1c88e 177642002-01-08 Dale Johannesen <dalej@apple.com>
17765
17766 * config/rs6000/rs6000.md: Add missing int register
17767 target case to movdf_low.
17768
a1a7e9d5 177692002-01-08 Zack Weinberg <zack@codesourcery.com>
17770
17771 * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
17772 except.h. Remove commands to define USING_SJLJ_EXCEPTIONS.
17773 (cppinit.o): Depend on except.h.
17774 (gencheck.h, options.h, specs.h, s-gencheck, s-options,
17775 s-specs): New rules.
17776
17777 * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
17778 Don't create specs.h/options.h/gencheck.h here. Remove
17779 unnecessary variable settings from last argument of AC_OUTPUT.
17780 * config.in, configure: Regenerate.
17781 * intl.c: Hardcode package name as "gcc".
17782
17783 * cppinit.c: Include except.h.
17784 (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
17785 appropriate.
17786 * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
17787 Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
17788 (!)USING_SJLJ_EXCEPTIONS.
17789 * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
17790
eee3a990 177912002-01-08 Joseph S. Myers <jsm28@cam.ac.uk>
17792
17793 * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
17794 ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
17795 OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
17796 documentation of obsolete macros.
17797 * system.h: Poison these macros.
17798 * config/d30v/d30v.h, config/ns32k/encore.h,
17799 config/stormy16/stormy16.h: Remove definitions and commented out
17800 definitions of obsolete macros.
17801
6cf86ac6 17802Tue Jan 8 15:56:41 2002 Nicola Pero <nicola@brainstorm.co.uk>
17803
17804 * objc/objc-act.c (handle_class_ref): Mark the declaration of
17805 %sobjc_class_ref_%s as used - to prevent unwanted compiler
17806 warnings.
17807
f3fd783b 178082002-01-08 Ulrich Weigand <uweigand@de.ibm.com>
17809
17810 * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
17811 * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
17812 to insn adjusting stack/frame pointer.
a1a7e9d5 17813 * config/s390/s390.md (reload_la_64, reload_la_31): Do not
f3fd783b 17814 accept operands that cause the insn to be non-splittable.
17815
163d43d8 178162002-01-08 Graham Stott <grahams@redhat.com>
17817
17818 * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
17819 (C_TYPE_FIELDS_VOLATILE): Likewise.
17820 (C_TYPE_BEING_DEFINED): Likewise.
17821 (C_IS_RESERVED_WORD): Likewise.
17822 (C_TYPE_VARIABLE_SIZE): Likewise.
17823 (C_DECL_VARIABLE_SIZE): Likewise.
17824 (C_MISSING_PROTOTYPE_WARNED): Likewise.
17825 (C_SET_EXP_ORIGINAL_CODE): Likewise.
17826 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
17827 parenthesis.
17828 (C_DECL_ANTICIPATED): Likewise.
17829 (c_build_type_variant): Add parenthesis.
17830
6e50451f 178312002-01-08 Joseph S. Myers <jsm28@cam.ac.uk>
17832
17833 * gcc.c (option_map): Remove --version.
17834 (process_command): Handle -fversion following the GNU Coding
17835 Standards. Partially addresses PR other/704.
17836
e7ab03b3 178372002-01-08 Graham Stott <grahams@redhat.com>
17838
17839 * combine.c (combine_instructions): Fix typo.
17840
4615afcc 178412002-01-08 Graham Stott <grahams@redhat.com>
17842
17843 * debug.h: Use "tree" and "rtx" throughout.
17844
17845 * debug.c: Likewise.
17846
58f036fc 178472002-01-08 Nick Clifton <nickc@cambridge.redhat.com>
17848
17849 * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
17850 constant pool, use the pool's version of the symbol instead.
17851
6ec4bb60 178522002-01-07 Richard Henderson <rth@redhat.com>
17853
17854 * regrename.c (find_oldest_value_reg): Ignore the value chain if
17855 the original register was copied in a mode with a fewer number of
17856 hard registers than the desired mode.
17857 (copyprop_hardreg_forward_1): Likewise.
17858 (debug_value_data): Fix loop test.
17859 * toplev.c (parse_options_and_default_flags): Reenable
17860 -fcprop-registers at -O1.
17861
178622002-01-07 Aldy Hernandez <aldyh@redhat.com>
41b843a7 17863
a1a7e9d5 17864 * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
17865 (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
41b843a7 17866
a1a7e9d5 17867 * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
17868 predicates.
41b843a7 17869
a1a7e9d5 17870 * config/rs6000/rs6000.md: Add altivec predicate patterns.
41b843a7 17871
a9ac13e4 178722002-01-07 John David Anglin <dave@hiauly1.hia.nrc.ca>
17873
17874 * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
17875 (pa_output_function_prologue): Output local label at the beginning of
17876 the prologue when profiling.
17877 (hppa_profile_hook): Use the local label rather than the function label.
17878 * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
17879
965c179a 178802002-01-07 Aldy Hernandez <aldyh@redhat.com>
17881
a1a7e9d5 17882 * config/rs6000/rs6000.c (print_operand): Remove extra space.
17883 (altivec_expand_unop_builtin): Fix thinko.
17884 (altivec_expand_binop_builtin): Same.
17885 (altivec_expand_ternop_builtin): Same.
17886 (altivec_expand_builtin): Same.
965c179a 17887
3cd13a0a 178882002-01-07 Richard Henderson <rth@redhat.com>
17889
17890 * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
17891
f2c8b8e7 178922002-01-07 Jason Merrill <jason@redhat.com>
17893
17894 * unwind-dw2.c (execute_cfa_program): Use < again.
17895
c4a616f2 178962002-01-07 Jakub Jelinek <jakub@redhat.com>
17897
17898 * predict.c (combine_predictions_for_insn): Avoid division by zero.
17899
d2100772 179002002-01-07 Jakub Jelinek <jakub@redhat.com>
17901
17902 * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
17903 Don't allow -1 - x -> ~x simplifications in the first pass.
17904
e931e2d9 179052002-01-07 Aldy Hernandez <aldyh@redhat.com>
17906
a1a7e9d5 17907 * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
17908 arguments.
17909 (altivec_expand_binop_builtin): Same.
17910 (altivec_expand_unop_builtin): Same.
17911 (print_operand): Fix typo.
17912 (bdesc_1arg): Add vupk* variants.
e931e2d9 17913
a1a7e9d5 17914 * rs6000.h (rs6000_builtins): Add vupk* enums.
e931e2d9 17915
a1a7e9d5 17916 * rs6000.md: Add altivec_vupk* variants.
e931e2d9 17917
d2d8531d 179182002-01-07 Joseph S. Myers <jsm28@cam.ac.uk>
17919
17920 * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
17921 doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
17922 and last update dates.
17923
4ae38af9 179242002-01-07 Janis Johnson <janis187@us.ibm.com>
17925
17926 * doc/rtl.texi (Flags): Clean up documentation of RTL flags
17927
0d4cf8f2 179282002-01-07 Marek Michalkiewicz <marekm@amelek.gda.pl>
17929
17930 * config/avr/avr.c (avr_mcu_types): Add new MCU types.
17931 * config/avr/avr.h (CPP_SPEC): Likewise.
17932 (LINK_SPEC): Likewise.
17933 (CRT_BINUTILS_SPECS): Likewise.
17934 * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
17935 * doc/invoke.texi (AVR Options): Document them.
17936
111f982d 17937Mon Jan 7 11:59:34 CET 2002 Jan Hubicka <jh@suse.cz>
17938
17939 * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
17940 LABEL_NUSES.
17941
3395ab5f 179422002-01-07 Graham Stott <grahams@redhat.com>
17943
a1a7e9d5 17944 * config/i386/i386.h: Update copyright date.
17945 (HALF_PIC_PTR): Add parenthesis.
17946 (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
17947 (CONSTANT_ALIGNMENT): Add parenthesis.
17948 (DATA_ALIGNMENT): Likewise.
17949 (LOCAL_ALIGNMENT): Likewise.
17950 (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
17951 (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
17952 (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
17953 (HARD_REGNO_NREGS): Add paranethesis.
17954 (VALID_SSE_REG_MODE): Whitespace.
17955 (VALID_MMX_REG_MODE): Whitespace.
17956 (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
17957 (ix86_hard_regno_mode_ok): Add parenthesis.
17958 (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
17959 (RETURN_IN_MEMORY): Whitespace.
17960 (N_REG_CLASSES): Add parenthesis.
17961 (INTEGER_CLASS_P): Add parenthesis and wrap.
17962 (FLOAT_CLASS_P): Likewise.
17963 (SSE_CLASS_P): Likewise.
17964 (MMX_CLASS_P): Likewise.
17965 (MAYBE_INTEGER_CLASS_P): Likewise.
17966 (MAYBE_FLOAT_CLASS_P): Likewise.
17967 (MAYBE_SSE_CLASS_P): Likewise.
17968 (MAYBE_MMX_CLASS_P): Likewise.
17969 (Q_CLASS_P): Likewise.
17970 (GENERAL_REGNO_P): Uppercase macro parameter.
17971 (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
17972 (FP_REGNO_P): Likewise.
17973 (ANY_FP_REGNO_P): Uppercase macro parameter.
17974 (SSE_REGNO_P): Likewise.
17975 (SSE_REGNO): Likewise.
17976 (SSE_REG_P): Likewise.
17977 (SSE_FLOAT_MODE_P): Likewise.
17978 (MMX_REGNO_P): Likewise.
17979 (MMX_REG_P):Likewise.
17980 (STACK_REG_P): Likewise.
17981 (NON_STACK_REG_P): Likewise.
17982 (STACK_TOP_P): Likewise.
17983 (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
17984 (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
17985 (SECONDARY_MEMORY_NEEDED): Likewise.
17986 (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
17987 (MD_ASM_CLOBBERS): Whitespace and wrap.
17988 (MUST_PASS_IN_STACK): Whitespace and wrap.
17989 (RETURN_POPS_ARGS): Add parenthesis.
17990 (INIT_CUMULATIVE_ARGS): Likewise.
17991 (FUNCTION_ARG): Likewise.
17992 (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
17993 (SETUP_INCOMING_VARARGS): Likewise.
17994 (BUILD_VA_LIST_TYPE): Add parenthesis.
17995 (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
17996 parenthsis.
17997 (EXPAND_BUILTIN_VA_ARG): Likewise.
17998 (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
17999 (INITIALIZE_TRAMPOLINE): Add parenthesis.
18000 (INITIAL_ELIMINATION_OFFSET): Likewise.
18001 (REGNO_OK_FOR_INDEX_P): Add parenthesis.
18002 (REGNO_OK_FOR_BASE_P): Likewise.
18003 (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
18004 (REGNO_OK_FOR_DIREG_P): Likewise.
18005 (REG_OK_FOR_INDEX_P): Whitespace.
18006 (REG_OK_FOR_BASE_P): Whitespace.
18007 (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
18008 parenthesis.
18009 (FIND_BASE_TERM): Fix typo.
18010 (LEGITIMIZE_ADDRESS): Wrap in { .. } while (0) and add parenthesis.
18011 (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
18012 (SYMBOLIC_CONST; Whitespace.
18013 (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in { .. } while (0) and wrap.
18014 (ENCODE_SECTION_INFO): Whitespace.
18015 (FINALIZE_PIC): Remove do { ... } while (0).
18016 (PROMOTE_MODE): Wrap in do { ... } while (0).
18017 (CONST_COSTS): Whitespace.
18018 (RTX_COSTS): Add paramethesis, whitespace and wrap.
18019 (REGISTER_MOVE_COST): Add parenthesis.
18020 (MEMORY_MOVE_COST): Likewise.
18021 (EXTRA_CC_MODES): Whitespace.
18022 (SELECT_CC_MODE): Add parenthesis and whitespace.
18023 (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
18024 (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
18025 (ASM_OUTPUT_LABEL): Add paramethesis.
18026 (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
18027 (ASM_OUTPUT_REG_POP): Likewise.
18028 (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
18029 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
1b12cfd7 18030
173f37f4 18031 * config/i386/i386.c: Update copyright.
18032 (CHECK_STACK_LIMIT): Add parenthesis.
18033 (AT_BP): Uppercase macro parameter.
18034 (x86_64_int_parameter_registers): Constify.
18035 (x86_64_int_return_registers): Likewise.
18036 (ix86_compare_op0): Use rtx.
18037 (construct_container): Constify INTREG parameter.
18038 (function_arg): Use rtx.
18039
e718c89f 18040 * diagnostic.h: Update copyright date.
18041 (output_buffer_state): Add parenthesis.
18042 (output_buffer_format_args): Likewise.
18043
3395ab5f 18044 * combine.c (combine_instructions): Replace XEXP (links, 0)
18045 with link.
18046
dd782271 180472002-01-06 H.J. Lu <hjl@gnu.org>
18048
18049 * cfgcleanup.c (thread_jump): Fix 2 typos.
18050
180512002-01-06 Aldy Hernandez <aldyh@redhat.com>
3898b44a 18052
a1a7e9d5 18053 * config.gcc: Add support for --enable-altivec.
3898b44a 18054
81d5334a 180552002-01-06 Craig Rodrigues <rodrigc@gcc.gnu.org>
18056
18057 * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
18058
2fa8311b 180592002-01-06 Jakub Jelinek <jakub@redhat.com>
18060
18061 * objc/objc-act.c (handle_impent): Use assemble_variable to emit
18062 __objc_class_name_*.
18063
f617d398 180642002-01-06 Craig Rodrigues <rodrigc@gcc.gnu.org>
18065
18066 * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
18067
9b7d4a8f 180682002-01-06 Richard Henderson <rth@redhat.com>
18069
18070 * reorg.c (emit_delay_sequence): Remove death notes, not merely
18071 nop them out. Increment label reference count for REG_LABEL.
18072 (fill_slots_from_thread): Frob label reference count around
18073 delete_related_insns.
18074
acf4e6a8 180752002-01-05 Richard Henderson <rth@redhat.com>
18076
18077 * cfgcleanup.c (try_forward_edges): Detect infinite loops while
18078 jump threading.
18079
f3546830 180802002-01-05 Richard Henderson <rth@redhat.com>
18081
18082 * c-decl.c (c_expand_body): Don't call outlining_inline_function.
18083 * integrate.c (output_inline_function): Likewise.
18084 * toplev.c (rest_of_compilation): Do it here instead. Move call
18085 to remove_unnecessary_notes after emitting abstract instance.
18086 Force an emitted nested function to have its parent emited as well.
18087 * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
18088 for null.
18089 (rtl_for_decl_location): Do not look at reload data structures
18090 before reload has run.
18091
dfe09cce 180922002-01-05 Kazu Hirata <kazu@hxi.com>
18093
18094 * cse.c: Fix formatting.
18095 * dwarf2asm.c: Likewise.
18096 * dwarf2out.c: Likewise.
18097 * explow.c: Likewise.
18098 * expmed.c: Likewise.
18099 * function.c: Likewise.
18100 * gcov.c: Likewise.
18101 * gencheck.c: Likewise.
18102 * genrecog.c: Likewise.
18103 * ggc-common.c: Likewise.
18104 * ggc-page.c: Likewise.
18105 * global.c: Likewise.
18106
ea913091 181072002-01-05 Kazu Hirata <kazu@hxi.com>
18108
18109 * combine.c: Fix formatting.
18110
ea3f1ac0 181112002-01-05 Craig Rodrigues <crodrigu@bbn.com>
18112
18113 PR middle-end/1557
18114 * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
18115
560de2f8 181162002-01-05 David Edelsohn <edelsohn@gnu.org>
18117
18118 * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
18119 as 1 for __powerpc64__ as well.
18120
18121 * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
18122
18123 * alias.c (find_base_value, PLUS/MINUS): If we found a base,
18124 return it.
18125
3b7e1f27 181262002-01-05 Daniel Berlin <dan@dberlin.org>
18127
18128 * lcm.c: Revert change, due to performance regression it causes on
18129 SPEC because it's slightly more conservative (sigh, I hate
18130 edge-based LCM).
a1a7e9d5 18131
309306ce 18132Sat Jan 5 11:52:05 CET 2002 Jan Hubicka <jh@suse.cz>
18133
18134 * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
18135
58f79589 181362002-01-05 Neil Booth <neil@daikokuya.demon.co.uk>
18137
18138 * doc/cppinternals.texi: Update.
18139
5bd2c01e 181402002-01-05 Hans-Peter Nilsson <hp@bitrange.com>
18141
18142 * doc/invoke.texi (Option Summary) <MMIX Options>: Document
18143 -mbranch-predict, -mreg-stack-fill-bug-workaround and their
18144 negatives.
18145 (MMIX Options): Ditto. Fix item/itemx typo for -mno-zero-extend.
18146 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
18147 kludge for pre-october-14th mmix versions to handle new-found bug
18148 with PUSHJ/PUSHGO and the register stack.
18149 * config/mmix/mmix.h (struct machine_function): Rename member
18150 has_call_value_without_parameters to has_call_without_parameters.
18151 All referers changed.
18152 (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
18153 TARGET_MASK_BRANCH_PREDICT): New macros.
18154 (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
18155 -mno-reg-stack-fill-bug-workaround.
18156 * config/mmix/mmix.md ("call"): Set struct machine member
18157 has_call_without_parameters.
18158
148444fb 18159Sat Jan 5 02:20:22 CET 2002 Jan Hubicka <jh@suse.cz>
18160
18161 * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
18162
20eee3f6 18163Sat Jan 5 01:35:29 CET 2002 Jan Hubicka <jh@suse.cz>
18164
18165 * cfgcleanup.c: Include tm_p.h
18166 (mark_effect): Fix handling of hard register; fix handling of SET
18167
5bfbffbe 181682002-01-04 Kazu Hirata <kazu@hxi.com>
18169
18170 * config/h8300/h8300.md (anonymous patterns): Check that
18171 operands are registers before using REGNO on them.
18172
b41d83cb 181732002-01-03 Roland McGrath <roland@frob.com>
18174
18175 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
18176
4e3da239 181772002-01-04 Jakub Jelinek <jakub@redhat.com>
18178
18179 * tree.h (expand_expr_stmt_value): Add maybe_last argument.
18180 * c-common.h (genrtl_expr_stmt_value): Likewise.
18181 * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
18182 (expand_expr_stmt_value): Add maybe_last argument.
18183 Don't warn about statement with no effect if it is the last statement
18184 in expression statement.
18185 * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
18186 (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
18187 expand_expr_stmt_value.
18188 (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
18189 genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
18190 * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
18191 as maybe_last to expand_expr_stmt_value.
18192
e87da6ae 18193Fri Jan 4 11:45:05 2002 Jeffrey A Law (law@redhat.com)
18194
a1a7e9d5 18195 * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
18196 be passed in, do not build it.
18197 (c_begin_if_stmt): New function.
18198 (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18199 * c-common.h (c_expand_start_cond): Update prototype.
18200 (c_begin_if_stmt): Prototype new function.
18201 (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
18202 * c-parse.in (if_prefix): Use c_begin_if_stmt,
18203 c_begin_while_stmt and c_finish_while_stmt_cond.
e87da6ae 18204
c6c95491 182052002-01-04 William Cohen <wcohen@redhat.com>
18206
18207 * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
18208 * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
18209 * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
18210 * config/pa/som.h (ASM_FILE_START): Likewise.
18211
b193f2d5 182122002-01-04 Daniel Berlin <dan@cgsoftware.com>
5fe7bfff 18213
18214 * lcm.c: Include df.h.
18215 Add available_transfer_function prototype.
18216 (compute_available): Rework to use iterative dataflow framework.
18217 (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
18218 with bb_info in df.h
18219 (available_transfer_function): New function.
18220
18221 * Makefile.in (lcm.o): add df.h to dependencies.
18222
f5a60074 182232002-01-04 Richard Henderson <rth@redhat.com>
18224
18225 * config/alpha/alpha.c (some_operand): Accept HIGH.
18226 (input_operand): Likewise; accept simple references to globals.
18227 (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
18228 (alpha_const_double_ok_for_letter_p): Likewise.
18229 (alpha_extra_constraint): Likewise.
18230 (alpha_preferred_reload_class): Likewise. Do not force
18231 symbolic constants to memory.
18232 (alpha_legitimate_address_p): Accept simple references
18233 to small_symbolic_operand.
18234 (alpha_legitimize_address): New arg scratch. Be prepared to be
18235 called when no_new_pseudos. Emit simple symbolic references.
18236 Split integers into low, high, and rest.
18237 (alpha_expand_mov): Use alpha_legitimize_address.
18238 (some_small_symbolic_mem_operand): New.
18239 (split_small_symbolic_mem_operand): New.
18240 * config/alpha/alpha-protos.h: Update.
18241 * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
18242 (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
18243 (EXTRA_CONSTRAINT): Likewise.
18244 (PREFERRED_RELOAD_CLASS): Likewise.
18245 (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
18246 (PREDICATE_CODES): Update.
18247 * config/alpha/alpha.md: New post-reload splitters to convert
18248 simplfied symbolic operands to the form that references $29.
18249 (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
18250 (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
18251
6773ca2d 182522002-01-03 Richard Henderson <rth@redhat.com>
18253
18254 * local-alloc.c (function_invariant_p): Update commentary.
18255
2ea2aed0 182562002-01-04 H.J. Lu <hjl@gnu.org>
18257
18258 * toplev.c (rest_of_compilation): Fix a typo when calling
18259 cleanup_cfg.
18260
7cc7e163 182612002-01-03 Kazu Hirata <kazu@hxi.com>
18262
18263 * c-common.c: Fix formatting.
18264 * diagnostic.c: Likewise.
18265 * doloop.c: Likewise.
18266 * dwarf2out.c: Likewise.
18267
b0422000 182682002-01-03 Kazu Hirata <kazu@hxi.com>
18269
18270 * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
18271 of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
18272
e484a1cc 182732002-01-03 Neil Booth <neil@daikokuya.demon.co.uk>
18274
18275 * cpperror.c: Update comments and copyright.
18276 * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
18277 cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
18278
625bfde6 182792002-01-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
18280
18281 * collect2.c (main): Use strcmp when testing for "-shared".
18282
88cf66fa 182832002-01-03 Neil Booth <neil@daikokuya.demon.co.uk>
18284
18285 * cppmacro.c: Don't include intl.h. Update comments.
18286 (new_number_token): Allocate enough buffer for 64-bit unsigned
18287 integers; update prototype.
18288 * cppmain.c: Update comments.
18289
7811c823 182902002-01-03 William Cohen <wcohen@redhat.com>
18291
18292 * function.h (struct function): Add profile.
18293 (current_function_profile): New.
18294 doc/extend.texi: Update documentation.
18295 * final.c (final_start_function): Use current_function_profile
18296 instead of profile_flag.
18297 (profile_after_prologue): Likewise.
18298 * function.c (expand_function_start): Likewise.
18299 (expand_function_start): Likewise.
2ea2aed0 18300 * config/alpha/alpha.c (direct_call_operand):
7811c823 18301 (alpha_does_function_need_gp): Likewise.
18302 (alpha_expand_prologue): Likewise.
18303 * config/arm/arm.c (arm_expand_prologue): Likewise.
18304 thumb_expand_prologue: Likewise.
18305 * config/d30v/d30v.c (d30v_stack_info): Likewise.
18306 * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
18307 (fr30_expand_prologue): Likewise.
18308 * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
18309 * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
18310 * config/i386/i386.h (FINALIZE_PIC): Likewise.
18311 * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
18312 * config/i960/i960.c (i960_output_function_prologue): Likewise.
18313 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
18314 * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
18315 (m32r_expand_prologue): Likewise.
18316 * config/m88k/m88k.c (m88k_layout_frame): Likewise.
18317 (m88k_expand_prologue): Likewise.
18318 * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
18319 * config/mips/mips.c (compute_frame_size): Likewise.
18320 (mips_expand_prologue): Likewise.
18321 (mips_can_use_return_insn): Likewise.
18322 * config/pa/elf.h (ASM_FILE_START): Likewise.
18323 * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
18324 * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
18325 * config/pa/som.h (ASM_FILE_START): Likewise.
18326 * config/romp/romp.c (romp_using_r14): Likewise.
18327 * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
18328 (rs6000_stack_info): Likewise.
18329 * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
6cec026c 18330 * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
7811c823 18331 * config/v850/v850.c (compute_register_save_size): Likewise.
18332
89558e88 183332002-01-03 Jakub Jelinek <jakub@redhat.com>
18334
18335 * simplify-rtx.c (simplify_binary_operation) [DIV]: If
18336 gen_lowpart_common fails, use gen_lowpart_SUBREG.
18337
f24da1e1 183382002-01-03 Turly O'Connor <turly@apple.com>
89558e88 18339
f24da1e1 18340 * darwin.c (machopic_output_possible_stub_label): Don't generate
18341 stub routines for pseudo-stubs which we've just defined.
18342
e17f5b23 183432002-01-03 Kazu Hirata <kazu@hxi.com>
18344
18345 * builtins.c: Fix formatting.
18346 * c-typeck.c: Likewise.
18347 * combine.c: Likewise.
18348 * expr.c: Likewise.
18349 * loop.c: Likewise.
18350
54915428 183512002-01-03 Andreas Schwab <schwab@suse.de>
18352
18353 * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
18354 and return true if _cpp_push_next_buffer pushed a new include
18355 file.
18356 * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
18357 _cpp_pop_file_buffer did not push a new file.
18358 * cpphash.h (_cpp_pop_file_buffer): Update declaration.
18359
ed1e5d40 183602002-01-02 Eric Christopher <echristo@redhat.com>
18361
18362 * final.c (final_scan_insn): Change 0 -> NULL_RTX in
18363 FIND_REG_INC_NOTE call. Update copyright.
18364 * loop.c (canonicalize_condition): Ditto.
18365 * reorg.c (delete_scheduled_jump): Ditto.
18366
387732c1 183672002-01-03 Kazu Hirata <kazu@hxi.com>
18368
18369 * gcse.c: Fix formatting.
18370
f9c31076 183712002-01-03 Graham Stott <grahams@redhat.com>
18372
18373 * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
18374 forward defs for struct tags rtx_def, union_tree, rtvec_def
3395ab5f 18375 also output corresponding typedefs for rtx, tree, and rtvec.
f9c31076 18376
18377 * system.h: Move forward defs for struct tags rtx_def, union_tree,
18378 rtvec_def along with corresponding typedefs for rtx, tree, and
3395ab5f 18379 rtvec to config.h, hconfig.h, tconfig.h.
f9c31076 18380
183812002-01-03 Graham Stott <grahams@redhat.com>
76c6f48d 18382
18383 * tree.h: Update copyright date.
18384 (IS_EXPR_CODE_CLASS): Add parenthesis.
18385 (TREE_SET_CODE): Add whitespace.
18386 (TREE_CHECK): Add parenthesis.
18387 (TREE_CLASS_CODE): Add parenthesis and wrap long line.
18388 (CST_OR_CONSTRUCTOR_CHECK):
18389 (EXPR_CHECK): Add parenthis, whitespace and wrap line.
18390 (TREE_SYMBOL_REFERENCED): Whitespace.
18391 (INT_CST_LT): Likewise.
18392 (INT_CST_LT_UNSIGNED): Likewise.
18393 (tree_real_cst): Unwrap comment.
18394 (tree_string): Likewise.
18395 (tree_complex): Likewise.
18396 (IDENTIFIER_POINTER): correct cast.
18397 (SAVE_EXPR_CONTEXT): Whitespace.
18398 (EXPR_WFL_FILENAME_NODE): Likewise.
18399 (EXPR_WFL_FILENAME): Remove parenthesis.
18400 (DECL_ORIGIN): Add parenthesis.
18401 (DECL_FROM_INLINE): Use NULL_TREE.
18402 (build_int_2): Whitespace.
18403 (build_type_variant): Add parenthesis.
18404
18405 * gcc/jcf-parse.c: Update copyright date.
18406 (yyparse): Constify resource_filename.
18407
017c31d6 184082002-01-03 Graham Stott <grahams@redhat.com>
18409
18410 * rtl.h: Update copyright date.
18411 (RTL_CHECK1): Wrap long line.
18412 (RTL_CHECK2): Likewise.
18413 (RTL_CHECKC1): Wrap long line and whitespace.
18414 (RTL_CHECKC2): Likewise.
18415 (XWINT): Whitespace.
18416 (XINT): Likewise.
18417 (XSTR): Likewise.
18418 (XEXP): Likewise.
18419 (XVEC): Likewise.
18420 (XMODE): Likewise.
18421 (XBITMAP): Likewise.
18422 (XTREE): Likewise.
18423 (XBBDEF): Likewise.
18424 (XTMPL): Likewise.
18425 (X0WINT): Likewise.
18426 (X0INT):Likewise.
18427 (X0UINT): Likewise.
18428 (X0STR): Likewise.
18429 (X0EXP): Likewise.
18430 (X0VEC): Likewise.
18431 (X0MODE): Likewise.
18432 (X0BITMAP): Likewise.
18433 (X0TREE): Likewise.
18434 (X0BBDEF): Likewise.
18435 (X0ADVFLAGS): Likewise.
18436 (X0CSELIB): Likewise.
18437 (X0MEMATTR): Likewise.
18438 (XCWINT): Likewise.
18439 (XCINT): Likewise.
18440 (XCUINT): Likewise.
18441 (XCSTR): Likewise.
18442 (XCEXP): Likewise.
18443 (XCVEC): Likewise.
18444 (XCMODE): Likewise.
18445 (XCBITMAP): Likewise.
18446 (XCTREE): Likewise.
18447 (XCBBDEF): Likewise.
18448 (XCADVFLAGS): Likewise.
18449 (XCCSELIB): Likewise.
18450 (XC2EXP): Likewise.
18451 (INSN_UID): Likewise.
18452 (PREV_INSN): Likewise.
18453 (PATTERN): Likewise.
18454 (INSN_CODE): Likewise.
18455 (PUT_REG_NOTE_KIND): Likewise.
18456 (CODE_LABEL_NUMBER): Likewise.
18457 (NOTE_SOURCE_FILE): Likewise.
18458 (NOTE_BLOCK): Likewise.
18459 (NOTE_EH_HANDLER): Likewise.
18460 (NOTE_RANGE_INFO): Likewise.
18461 (NOTE_LIVE_INFO): Likewise.
18462 (NOTE_BASIC_BLOCK): Likewise.
18463 (NOTE_EXPECTED_VALUE): Likewise.
18464 (NOTE_LINE_NUMBER): Likewise.
18465 (LABEL_NAME): Likewise.
18466 (LABEL_NUSES): Likewise.
18467 (LABEL_ALTERNATE_NAME): Likewise.
18468 (ADDRESSOF_DECL): Likewise.
18469 (JUMP_LABEL): Likewise.
18470 (LABEL_NEXTREF): Likewise.
18471 (REGNO): Likewise.
18472 (ORIGINAL_REGNO: Likewise.
18473 (HARD_REGISTER_NUM_P): Add parenthesis.
18474 (SUBREG_REG): Whitespace.
18475 (SUBREG_BYTE): Likewise.
18476 (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
18477 (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
18478 (ASM_OPERANDS_OUTPUT_IDX): Likewise.
18479 (ASM_OPERANDS_INPUT_VEC): Likewise.
18480 (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
18481 (ASM_OPERANDS_INPUT): Likewise.
18482 (ASM_OPERANDS_INPUT_LENGTH): Likewise.
18483 (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
18484 (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
18485 (ASM_OPERANDS_INPUT_MODE): Likewise.
18486 (ASM_OPERANDS_SOURCE_FILE): Likewise.
18487 (ASM_OPERANDS_SOURCE_LINE): Likewise.
18488 (MEM_SET_IN_STRUCT_P): Minor reformat.
18489 (TRAP_CONDITION): Whitespace.
18490 (TRAP_CODE): Likewise.
18491 (COND_EXEC_TEST): Likewise.
18492 (COND_EXEC_CODE): Likewise.
18493 (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
18494 (PHI_NODE_P): Add parenthesis.
18495 (plus_constant): Whitespace and add parenthesis.
18496
ebb11c7b 184972002-01-03 Kazu Hirata <kazu@hxi.com>
18498
18499 * config/avr/avr.c: Fix comment typos.
18500 * config/c4x/c4x.md: Likewise.
18501 * config/dsp16xx/dsp16xx.h: Likewise.
18502 * config/dsp16xx/dsp16xx.md: Likewise.
18503 * config/i386/i386.md: Likewise.
18504 * config/ia64/ia64.c: Likewise.
18505 * config/m32r/m32r.h: Likewise.
18506 * config/m68hc11/m68hc11.md: Likewise.
18507 * config/mmix/mmix.c: Likewise.
18508 * config/mn10200/mn10200.c: Likewise.
18509 * config/romp/romp.c: Likewise.
18510 * config/sh/sh.c: Likewise.
18511 * config/stormy16/stormy16.c: Likewise.
18512 * config/stormy16/stormy16.h: Likewise.
18513 * config/stormy16/stormy16.md: Likewise.
18514
b9c9ea70 185152002-01-03 Graham Stott <grahams@redhat.com>
18516
18517 * loop.h: Update copyright date.
a1a7e9d5 18518 (LOOP_MOVABLES): Fix typo.
18519 (LOOP_REGS): Likewise.
18520 (LOOP_IVS): Likewise.
ed1e5d40 18521
355a19c4 185222002-01-03 Graham Stott <grahams@redhat.com>
18523
18524 * cppinit.c: Update copyright date.
18525 Don't include output.h
18526 * Makefile.in: Update copyright date.
18527 Update dependency.
18528
67613903 185292002-01-02 Craig Rodrigues <rodrigc@gcc.gnu.org>
18530
18531 PR c/5226
18532 * invoke.texi (-mthreads): Remove from documented RS/6000 options.
18533 (-pthread) Add to RS/6000 options.
18534
5d4f270c 185352002-01-02 Kazu Hirata <kazu@hxi.com>
18536
18537 * except.c: Fix comment typos.
18538 * loop.c: Likewise.
18539 * varasm.c: Likewise.
18540 * doc/tm.texi: Fix a typo.
18541
80dd10f3 185422002-01-02 Jakub Jelinek <jakub@redhat.com>
18543
18544 * c-typeck.c (output_init_element): Allow initializing static storage
18545 duration objects with compound literals.
18546
42f030bd 185472002-01-02 Richard Henderson <rth@redhat.com>
18548
18549 * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
18550 after abusing it.
18551
507293ca 185522002-01-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
18553
c077395f 18554 * gcc.c (default_compilers): Const-ify.
18555 * mips-tdump.c (stab_names): Likewise.
18556 * mips-tfile.c (map_coff_types, map_coff_storage,
18557 map_coff_sym_type, map_coff_derived_type, stabs_symbol,
18558 pseudo_ops_t, pseudo_ops): Likewise.
18559 * protoize.c (default_include): Likewise
18560
507293ca 18561 * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
18562 (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
18563 Add array size in declaration.
18564 (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
18565 emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
18566 esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
18567 etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
18568 eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
18569 efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
18570 c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
18571 emtens, make_nan): Const-ify.
18572 (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
18573 DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
18574
b965afcd 185752002-01-02 Joseph S. Myers <jsm28@cam.ac.uk>
18576
18577 * config.gcc (ia64-*-*): Set extra_headers.
18578 (alpha*-dec-osf*): Likewise. Don't use alpha/t-osf.
18579 * config/alpha/t-osf: Remove.
18580 * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
18581
5c2d7eb1 185822002-01-02 David Edelsohn <edelsohn@gnu.org>
18583
18584 * config/rs6000/t-aix43: Revert previous change.
18585
ca33c4d0 185862002-01-02 Jason Merrill <jason@redhat.com>
18587
18588 * c-decl.c (c_expand_body): Call outlining_inline_function when
18589 emitting an inline function out of line.
18590
15cfae4e 185912002-01-02 Richard Henderson <rth@redhat.com>
18592
18593 * dwarf2out.c (limbo_die_node): Add created_for member.
18594 (new_die): New argument created_for. Update all callers.
18595 (mark_limbo_die_list): New.
18596 (dwarf2out_init): Register limbo_die_list as a root.
18597 (dwarf2out_finish): Force insert limbo dies into their function
18598 context.
18599
d066d787 186002002-01-02 Nathan Sidwell <nathan@codesourcery.com>
18601
18602 PR c++/5089
18603 * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
18604
7913b5f4 186052002-01-02 Kazu Hirata <kazu@hxi.com>
18606
18607 * config/h8300/fixunssfsi.c: Update copyright.
18608 Fix comment typos.
18609 Fix formatting.
18610 * config/h8300/h8300.c: Update copyright.
18611 Eliminate warnings.
18612
d2833c15 186132002-01-02 Kazu Hirata <kazu@hxi.com>
18614
18615 * config/romp/romp.c: Fix comment formatting.
18616 * config/romp/romp.h: Likewise.
18617 * config/romp/romp.md: Likewise.
18618 * config/s390/s390.c: Likewise.
18619 * config/stormy16/stormy16.c: Likewise.
18620 * config/stormy16/stormy16.h: Likewise.
18621
d513ec2f 186222002-01-02 Alexandre Oliva <aoliva@redhat.com>
18623
18624 * c-common.h (genrtl_expr_stmt_value): Declare.
18625 * c-semantics.c (genrtl_goto_stmt): Redirect to...
18626 (genrtl_goto_stmt_value): ... this new function. Pass new
18627 argument down to expand_expr_stmt_value, taking
18628 TREE_ADDRESSABLE into account.
18629 * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
18630 STMT_EXPR as addressable, i.e., one whose result we want.
18631 * expr.c (expand_expr): Don't save expression statement value
18632 of labeled_blocks or loop_exprs.
18633 * stmt.c (expand_expr_stmt): Redirect to...
18634 (expand_expr_stmt_value): ... this new function. Use new
18635 argument to tell whether to save expression value.
18636 (expand_end_stmt_expr): Reset last_expr_type and
18637 last_expr_value if we don't have either.
18638 * tree-inline.c (declare_return_variable): Mark its use
18639 statement as addressable.
18640 * tree.h: Document new use of TREE_ADDRESSABLE.
18641 (expand_expr_stmt_value): Declare.
18642
60d2983e 186432002-01-01 Tom Rix <trix@redhat.com>
18644
18645 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
18646 rs6000_emit_allocate_stack.
18647
f448dfd0 186482002-01-01 Joseph S. Myers <jsm28@cam.ac.uk>
18649
18650 * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
18651 ${srcdir}/ginclude/ to every entry in extra_headers.
18652 * configure: Regenerate.
18653 * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
18654 * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
18655 * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
18656 * ginclude/proto.h: Rename to config/convex/proto.h.
18657
80fabb90 18658Tue Jan 1 17:12:56 2002 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18659
18660 * attribs.c (handle_vector_size_attribute): Use host_integerp
18661 and tree_int_cst; remove warnings.
18662 * caller-save.c (insert_restore): Add cast to get rid of warning.
18663 (insert_save): Likewise.
18664 * emit-rtl.c (adjust_address_1, offset_address): Likewise.
18665 * regmove.c (find_matches): Add temporary var to kill a warning.
18666
338f13ca 186672002-01-01 Douglas B Rupp <rupp@gnat.com>
18668
ffa4ba83 18669 * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
18670 LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
18671 * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
18672 (vms-dwarf2eh.o): Add Makefile rule.
18673 * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
18674 * config/alpha/vms-dwarf2eh.asm: New file.
18675
338f13ca 18676 * gcc.c (delete_if_ordinary): Delete all versions.
18677
91009d64 186782002-01-01 Hans-Peter Nilsson <hp@bitrange.com>
18679
18680 * config/mmix/mmix.md: Update FIXME to not mention
18681 define_constants.
18682 (MMIX_rJ_REGNUM): New define_constants constant.
18683 ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
18684 "*movdicc_real"): Adjust contraints formatting.
18685 ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
18686 for branch prediction.
18687 ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
18688 output template.
18689 ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
18690 "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
18691 number. Delete related FIXMEs.
18692 * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
18693 from number to MMIX_rJ_REGNUM.
18694 (TARGET_MASK_BRANCH_PREDICT): New.
18695 (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
18696 (TARGET_SWITCHES): Update comment. Correct -mno-toplevel-symbols
18697 value. Add -mbranch-predict and -mno-branch-predict.
18698 (TARGET_VERSION): Drop date.
18699 (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
18700 * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
18701 for finding out global symbols.
18702 (mmix_asm_output_labelref): Revert condition for global symbol.
18703 (mmix_print_operand): <case '+'>: Emit P for a likely branch.
18704 (mmix_print_operand_punct_valid_p): A '+' is valid.
18705
e9006a91 18706See ChangeLog.6 for earlier changes.