1 2001-09-23 Zack Weinberg <zack@codesourcery.com>
3 * errors.h (warning, error, fatal, internal_error): Don't mark
4 with ATTRIBUTE_PRINTF_n.
5 * toplev.h (internal_error, fatal_io_error, warning, error,
6 pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line,
7 error_with_file_and_line, sorry, error_for_asm, warning_for_asm):
10 Sun Sep 23 18:19:48 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12 * function.c (pop_function_context_from): var_refs_queue
13 and temp slots now in GC memory.
14 (mark_function_status, free_after_compilation): Likewise;
15 also struct function now in GC memory.
16 (assign_stack_temp_for_type): struct temp_slot now in GC memory.
17 (combine_temp_slots): Likewise.
18 (schedule_fixup_var_refs): var_refs_queue now in GC memory.
19 (prepare_function_start): Use GC memory for struct function.
20 (mark_temp_slot): Deleted.
21 (gcc_mark_struct_function): struct function now in GC memory.
23 * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust
24 code for division, not modulus.
26 * rtl.def (MEM): Remove obsolete part of comment.
28 2001-09-22 Joseph S. Myers <jsm28@cam.ac.uk>
30 * c-format.c (init_function_format_info): Check __builtin_printf
31 and __builtin_fprintf even if -ffreestanding. Check C99 functions
34 Sat Sep 22 09:09:32 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
36 * c-common.c (format_attribute_table): Remove decl.
37 * tree.h (format_attribute_table, lang_attribute_table): New decls.
38 (lang_attribute_common): Likewise.
40 * function.c (fix_lexical_address): Use set_mem_alias_set.
41 (expand_function_start): Likewise.
42 * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise.
44 * varasm.c (output_constant): Fix unused variable warning.
46 * attribs.c: New file, from c-common.c.
47 (attribute_tables): Now four elements.
48 (format_attribute_table, lang_attribute_common): New variables.
49 (init_attributes): Reflect above changes.
50 (handle_mode_attribute): Delete check for wider than uintmax.
51 * c-common.c: Delete parts moved to attribs.c.
52 (enum attrs): Deleted; unused.
53 (c_format_attribute_table): New variable.
54 (c_common_lang_init): Initialize format_attribute_table with it.
55 * c-common.h (decl_attributes): Remove decl.
56 * tree.h (decl_attribute): Move it to here.
57 * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o.
58 (attribs.o): New rule.
60 2001-09-22 Andreas Jaeger <aj@suse.de>
62 * builtins.c (c_getstr): Remove unused variable.
64 2001-09-21 Richard Henderson <rth@redhat.com>
66 * reload1.c (reload): Use delete_insn instead of splatting
69 2001-09-21 Richard Henderson <rth@redhat.com>
71 * reload.c (push_secondary_reload): Don't check for "=" in output
72 constraint after ""->ALL_REGS check.
74 2001-09-21 Richard Henderson <rth@redhat.com>
76 * predict.c (expected_value_to_br_prob): Use pc_set.
78 * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by
79 ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl.
81 2001-09-21 Richard Henderson <rth@redhat.com>
83 * rtl.h (LCT_RETURNS_TWICE): New.
84 * calls.c (emit_call_1): Set current_function_calls_setjmp for
86 (emit_library_call_value_1): Map LCT_RETURNS_TWICE
88 * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for
91 * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc.
93 * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New.
96 2001-09-21 Richard Henderson <rth@redhat.com>
98 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd'
101 2001-09-21 Richard Henderson <rth@redhat.com>
103 * tree.def (FDESC_EXPR): New.
104 * expr.c (expand_expr): Handle it.
105 * varasm.c (initializer_constant_valid_p): Likewise.
106 (output_constant): Likewise.
107 * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
108 * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New.
109 (ASM_OUTPUT_FDESC): New.
110 * doc/tm.texi: Document the new macros.
112 21-09-2001 Richard Earnshaw (reanrsha@arm.com)
114 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave
115 ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block
116 once merging is complete.
118 Fri Sep 21 11:20:12 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
120 * integrate.c (allocate_initial_values): Eliminate unused arg warning.
122 21-09-2001 Richard Earnshaw (reanrsha@arm.com)
124 * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes
125 that would be invalid after a merge.
127 Fri Sep 21 14:24:29 CEST 2001 Jan Hubicka <jh@suse.cz>
129 * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill.
130 * cfg.c (delete_insn): Rename from ....; use remove_insn; do not
132 (flow_delete_insn): This one.
133 (delete_insn_chain): Rename from ...; do not care labels.
134 (flow_delete_insn_chain): ... this one.
135 (flow_delete_block): Remove the insns one BB has been expunged.
136 (merge_blocks_nomove): Likewise.
137 (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care
138 updating BB boundaries.
139 (tidy_fallthru_edge): Likewise.
140 (commit_one_edge_insertion): Likewise.
141 * cfgbuild.c (find_basic_block): Likewise.
142 (find_basic_blocks_1): Likewise.
143 * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise.
144 (try_crossjump_to_edge): Likewise.
145 (try_optimize_cfg): Likewise.
146 * cse.c (delete_trivially_dead_insns): Likewise.
147 * df.c (df_insn_delete): Likewise.
148 * doloop.c (doloop_modify): Use delete_related_insns.
149 * emit-rtl.c (try_split): Likewise.
150 (remove_insn): Update BB boundaries.
151 * expect.c (connect_post_landing_pads): Use delete_related_insns.
152 * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care
153 updating BB boundaries.
154 (propagate_block_delete_insn): Likewise.
155 (propagate_block_delete_libcall): Likewise.
156 * function.c (delete_handlers): Use delete_related_insns.
157 (thread_prologue_and_epilogue_insns): Likewise.
158 * gcse.c (delete_null_pointer_checks): Use delete_related_insns.
159 * genpeep.c (gen_peephole): Use delete_related_insns.
160 * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating
162 (find_cond_trap): Likewise.
163 * integrate.c (save_for_inline): Use delete_related_insns.
164 (copy_insn_list): Likewise.
165 * jump.c (pruge_linie_number_notes): Likewise.
166 (duplicate_loop_exit_test): Likewise.
167 (delete_computation): Likewise.
168 (delete_related_insn): Rename from ...; use delete_insn
169 (delete_insn): ... this one.
170 (redirect_jump): Use delete_related_insns.
171 * loop.c (scan_loop): Likewise.
172 (move_movables): Likewise.
173 (find_and_verify_loops): Likewise.
174 (check_dbra_loop): Likewise.
175 * recog.c (peephole2_optimize): Likewise.
176 * reg-stack.c (delete_insn_for_stacker): Remove.
177 (move_for_stack_reg): Use delete_insn.
178 * regmove.c (combine_stack_adjustments_for_block): Likewise.
179 * reload1.c (delete_address_reloads): Use delete_related_insns.
180 (fixup_abnormal_edges): Use delete_insn.
181 * recog.c (emit_delay_sequence): Use delete_related_insns.
182 (delete_from-delay_slot): Likewise.
183 (delete_scheduled_jump): likewise.
184 (optimize_skip): Likewise.
185 (try_merge_delay_insns): Likewise.
186 (full_simple_delay_slots): Likewise.
187 (fill_slots_from_thread): Likewise.
188 (relax_delay_slots): Likewise.
189 (make_return_insns): Likewise.
190 (dbr_schedule): Likewise.
191 * rtl.h (delete_insn): Rename to delete_related_insns.
192 (delete_insn, delete_insn_chain): New prototypes.
193 * ssa-ccp (sse_fast_dce): Remove deleting of DEF, as it is done
194 by df_insn_delete already.
195 * ssa-dce.c (delete_insn_bb): Use delete_insn.
196 * ssa.c (convert_from_ssa): Use delete_related_insns.
197 * unroll.c (unroll_loop): Likewise.
198 (calculate_giv_inc): Likewise.
199 (copy_loop_body): Likewise.
201 * i386-protos.h (ix86_libcall_value, ix86_function_value,
202 ix86_function_arg_regno_p, ix86_function_arg_boundary,
203 ix86_return_in_memory, ix86_function_value): Declare.
204 * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers):
205 new static valurables.
206 (x86_64_reg_class): New enum
207 (x86_64_reg_class_name): New array.
208 (classify_argument, examine_argument, construct_container,
209 merge_classes): New static functions.
210 (optimization_options): Enable flag_omit_frame_pointer and disable
211 flag_pcc_struct_return on 64bit.
212 (ix86_libcall_value, ix86_function_value,
213 ix86_function_arg_regno_p, ix86_function_arg_boundary,
214 ix86_return_in_memory, ix86_function_value): New global functions.
215 (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg.
216 (function_arg_advance): Handle x86_64 passing conventions.
217 (function_arg): Likewise.
218 * i386.h (FUNCTION_ARG_BOUNDARY): New macro.
219 (RETURN_IN_MEMORY): Move offline.
220 (FUNCTION_VALUE, LIBCALL_VALUE): Likewise.
221 (FUNCTION_VALUE_REGNO_P): New macro.
222 (FUNCTION_ARG_REGNO_P): Move offline.
223 (struct ix86_args): Add maybe_vaarg.
224 * next.h (FUNCTION_VALUE_REGNO_P): Delete.
225 * unix.h (FUNCTION_VALUE_REGNO_P): Delete.
227 2001-09-21 Hartmut Penner <hpenner@de.ibm.com>
229 * s390.md: Changed attributes for scheduling.
230 * s390.c: (s390_adjust_cost, s390_adjust_priority)
233 2001-09-21 Joseph S. Myers <jsm28@cam.ac.uk>
235 Table-driven attributes.
236 * c-decl.c, config/alpha/alpha.c, config/arc/arc.c,
237 config/arm/arm.c, config/arm/pe.c, config/avr/avr.c,
238 config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h,
239 config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c,
240 config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c,
241 config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi,
242 doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c,
243 tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
244 * tree.h (struct tree_decl): Change machine_attributes to
246 * doc/c-tree.texi: Document that all attributes are now attached
248 * c-common.c (add_attribute, attrtab, attrtab_idx,
249 default_valid_lang_attribute, valid_lang_attribute): Remove.
250 (attribute_tables, attributes_initialized,
251 c_common_attribute_table, default_lang_attribute_table): New
253 (handle_packed_attribute, handle_nocommon_attribute,
254 handle_common_attribute, handle_noreturn_attribute,
255 handle_unused_attribute, handle_const_attribute,
256 handle_transparent_union_attribute, handle_constructor_attribute,
257 handle_destructor_attribute, handle_mode_attribute,
258 handle_section_attribute, handle_aligned_attribute,
259 handle_weak_attribute, handle_alias_attribute,
260 handle_no_instrument_function_attribute,
261 handle_no_check_memory_usage_attribute, handle_malloc_attribute,
262 handle_no_limit_stack_attribute, handle_pure_attribute): New
264 (init_attributes, decl_attributes): Rewrite to implement
265 table-driven attributes.
266 * c-common.h (enum attribute_flags): Move to tree.h.
267 * c-format.c (decl_handle_format_attribute,
268 decl_handle_format_arg_attribute): Rename to
269 handle_format_attribute and handle_format_arg_attribute. Update
270 for table-driven attributes.
271 * c-common.h (decl_handle_format_attribute,
272 decl_handle_format_arg_attribute): Remove prototypes.
273 (handle_format_attribute, handle_format_arg_attribute): Add
275 * c-decl.c (grokdeclarator): Handle attributes nested inside
277 * c-parse.in (setattrs, maybe_setattrs): Remove.
278 (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs.
279 Update to handle nested attributes properly.
280 (maybe_resetattrs, after_type_declarator,
281 parm_declarator_nostarttypename, notype_declarator, absdcl1_noea,
282 absdcl1_ea, direct_absdcl1): Update to handle nested attributes
284 (make_pointer_declarator): Update to handle nested attributes
286 * doc/extend.texi: Update documentation of limits of attributes
287 syntax. Warn about problems with attribute semantics in C++.
288 * target.h (struct target): Remove valid_decl_attribute and
289 valid_type_attribute. Add attribute_table and
290 function_attribute_inlinable_p.
291 * target-def.h (TARGET_VALID_DECL_ATTRIBUTE,
292 TARGET_VALID_TYPE_ATTRIBUTE): Remove.
293 (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P):
295 (TARGET_INITIALIZER): Update.
296 * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default
298 (function_attribute_inlinable_p): New function. Check for the
299 presence of any machine attributes before using
300 targetm.function_attribute_inlinable_p.
301 (function_cannot_inline_p): Update.
302 * Makefile.in (integrate.o): Update dependencies.
303 * doc/tm.texi: Update documentation of target attributes and
304 example definition of TARGET_VALID_TYPE_ATTRIBUTE.
305 * tree.c (default_valid_attribute_p, valid_machine_attribute):
307 (default_target_attribute_table,
308 default_function_attribute_inlinable_p): New.
309 (lookup_attribute): Update comment to clarify handling of multiple
310 attributes with the same name.
311 (merge_attributes, attribute_list_contained): Allow multiple
312 attributes with the same name but different arguments to appear in
313 the same attribute list.
314 * tree.h (default_valid_attribute_p): Remove prototype.
315 (struct attribute_spec): New.
316 (default_target_attribute_table): Declare.
317 (enum attribute_flags): Move from c-common.h. Add
318 ATTR_FLAG_TYPE_IN_PLACE.
319 (default_function_attribute_inlinable_p): Declare.
320 * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove.
321 (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
322 (TARGET_ATTRIBUTE_TABLE): Define.
323 (vms_attribute_table): New.
324 * config/arc/arc.c (arc_valid_decl_attribute): Remove.
325 (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
326 (TARGET_ATTRIBUTE_TABLE): Define.
327 (arc_attribute_table, arc_handle_interrupt_attribute): New.
328 * config/arm/arm.c (arm_valid_type_attribute_p,
329 arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p):
331 (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
333 (TARGET_ATTRIBUTE_TABLE): Define.
334 (arm_attribute_table, arm_handle_fndecl_attribute,
335 arm_handle_isr_attribute): New.
336 * config/avr/avr.c (avr_valid_type_attribute,
337 avr_valid_decl_attribute): Remove.
338 (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't
340 (TARGET_ATTRIBUTE_TABLE): Define.
341 (avr_attribute_table, avr_handle_progmem_attribute,
342 avr_handle_fndecl_attribute): New.
343 * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove.
344 (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
345 (TARGET_ATTRIBUTE_TABLE): Define.
346 (c4x_attribute_table, c4x_handle_fntype_attribute): New.
347 * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove.
348 (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
349 (TARGET_ATTRIBUTE_TABLE): Define.
350 (h8300_attribute_table, h8300_handle_fndecl_attribute,
351 h8300_handle_eightbit_data_attribute,
352 h8300_handle_tiny_data_attribute): New.
353 * config/i386/i386-protos.h (ix86_valid_type_attribute_p,
354 i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p):
356 (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New
358 * config/i386/i386.c (ix86_valid_type_attribute_p: Remove.
359 (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't
361 (TARGET_ATTRIBUTE_TABLE): Define.
362 (ix86_attribute_table, ix86_handle_cdecl_attribute,
363 ix86_handle_regparm_attribute): New.
364 * config/i386/winnt.c (i386_pe_valid_decl_attribute_p,
365 i386_pe_valid_type_attribute_p): Remove.
366 (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New.
367 * config/ia64/ia64.c (ia64_valid_type_attribute): Remove.
368 (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
369 (TARGET_ATTRIBUTE_TABLE): Define.
370 (ia64_attribute_table): New.
371 * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1,
372 interrupt_ident2, model_ident1, model_ident2): Remove.
373 (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
374 (TARGET_ATTRIBUTE_TABLE): Define.
375 (init_idents): Update.
376 (m32r_attribute_table, m32r_handle_model_attribute): New.
377 * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p):
379 (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
380 (TARGET_ATTRIBUTE_TABLE): Define.
381 (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New.
382 * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove.
383 (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
384 (TARGET_ATTRIBUTE_TABLE): Define.
385 (mcore_attribute_table, mcore_handle_naked_attribute): New.
386 * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove.
387 (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
388 (TARGET_ATTRIBUTE_TABLE): Define.
389 (ns32k_attribute_table, ns32k_handle_fntype_attribute): New.
390 * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove.
391 (TARGET_VALID_TYPE_ATTRIBUTE): Don't define.
392 (TARGET_ATTRIBUTE_TABLE): Define.
393 (rs6000_attribute_table, rs6000_handle_longcall_attribute): New.
394 * config/sh/sh.c (sh_valid_decl_attribute): Remove.
395 (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
396 (TARGET_ATTRIBUTE_TABLE): Define.
397 (sh_attribute_table, sh_handle_interrupt_handler_attribute,
398 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
400 * config/stormy16/stormy16.c (stormy16_valid_type_attribute):
402 (TARGET_VALID_TYPE_ATTRIBUTE): Don't define
403 (TARGET_ATTRIBUTE_TABLE): Define.
404 (stormy16_attribute_table, stormy16_handle_interrupt_attribute):
406 * config/v850/v850.c (v850_valid_decl_attribute): Remove.
407 (TARGET_VALID_DECL_ATTRIBUTE): Don't define.
408 (TARGET_ATTRIBUTE_TABLE): Define.
409 (v850_attribute_table, v850_handle_interrupt_attribute,
410 v850_handle_data_area_attribute): New.
411 * config/v850/v850-c.c (mark_current_function_as_interrupt):
412 Return void. Call decl_attributes instead of
413 valid_machine_attribute.
415 Fri Sep 21 01:49:41 2001 J"orn Rennecke <amylaar@redhat.com>
417 * sh-protos.h (sh_pr_n_sets): Declare.
418 * sh.c (calc_live_regs): If the initial value for PR has been copied,
419 look at the copy to determine if PR needs to be saved.
420 sh_pr_n_sets: New function.
421 * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val.
422 (ALLOCATE_INITIAL_VALUE): Define.
424 * sh.c (initial_elimination_offset):
425 Fix RETURN_ADDRESS_POINTER_REGNUM case.
427 Fri Sep 21 01:13:56 2001 J"orn Rennecke <amylaar@redhat.com>
429 * integrate.c (allocate_initial_values): New function.
430 * integrate.h (allocate_initial_values): Declare.
431 * local-alloc.c (local_alloc): Move call to allocate_reg_info from
433 * reload1.c (reload): And initialization of reg_equiv_memory_loc
435 * toplev.c (rest_of_compilation): To here.
436 Call allocate_initial_values.
437 * tm.texi: add description for ALLOCATE_INITIAL_VALUE.
439 Thu Sep 20 09:00:27 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
441 * ggc-page.c (ggc_marked_p): Properly convert return to boolean.
443 2001-09-20 DJ Delorie <dj@redhat.com>
445 * c-typeck.c (really_start_incremental_init): Discriminate
446 between zero-length arrays and flexible arrays.
447 (push_init_level): Detect zero-length arrays and handle them
448 like fixed-sized arrays.
449 * expr.c (store_constructor): Handle zero-length arrays and
450 flexible arrays correctly.
451 * doc/extend.texi: Update zero-length array notes.
453 2001-09-20 Jim Wilson <wilson@redhat.com>
455 * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle.
456 (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking
457 for issue port conflicts.
458 (cycle_end_fill_slots): TYPE_L instructions take two slots.
460 2001-09-20 Andrew MacLeod <amacleod@redhat.com>
462 * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3
465 Thu Sep 20 09:00:27 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
467 * fold-const.c (hashtab.h): Include.
468 (int_const_binop): Remove FORSIZE arg and compute from type; all
470 Call size_int_type_wide for all single-word constants.
471 (size_htab_hash, size_htab_eq): New functions.
472 (size_int_type_wide): Rework to use hash table.
473 * ggc-common.c (hashtab.h): Include.
474 (struct d_htab_root): New struct.
475 (d_htab_roots): New variable.
476 (ggc_add_deletable_htab, ggc_htab_delete): New functions
477 (ggc_mark_roots): Handle deletable htabs.
478 * ggc-page.c (ggc_marked_p): New function.
479 * ggc-simple.c (ggc_marked_p): Likewise.
480 * ggc.h: Reformatting throughout.
481 (ggc_marked_p, ggc_add_deletable_htab): New declarations.
482 * tree.c (init_obstacks): Make type_hash_table a deletable root.
483 (type_hash_add): Allocate struct type_hash from GC memory.
484 (mark_hash_entry, mark_type_hash): Deleted.
485 (type_hash_marked_p, type_hash_mark): New functions.
486 * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h.
488 Thu Sep 20 12:49:34 2001 J"orn Rennecke <amylaar@redhat.com>
490 * sh.c (shiftcosts): Don't use shiftcosts array for modes wider
493 Thu Sep 20 09:00:27 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
495 * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
496 array-too-large test for signed sizetype.
498 Thu Sep 20 12:19:36 CEST 2001 Jan Hubicka <jh@suse.cz>
500 * i386.md (indirect_jump): Allow Pmode operand.
501 (tablejump): LIkewise; perform expansion to 64bit mode.
502 * i386.c (symbolic_operand): Allow 64bit PIC references.
503 (pic_symbolic_operand): Likewise.
504 (ix86_find_base_term): Strip the 64bit PIC references.
505 (legitimate_pic_address_disp_p): Handle 64bit PIC.
506 (legitimize_pic_address): Likewise.
507 (i386_simplify_dwarf_addr): Strip down the 64bit PIC references.
508 * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation.
510 2001-09-19 Alexandre Petit-Bianco <apbianco@redhat.com>
512 * stringpool.c (get_identifier_with_length): New function.
513 * tree.h (get_identifier_with_length): New prototype.
515 2001-09-19 Alan Modra <amodra@bigpond.net.au>
516 David Edelsohn <edelsohn@gnu.org>
519 * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
520 already sign-extended.
522 * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers.
523 * config/rs6000/rs6000.c (logical_operand): Always compare op as
525 (rs6000_emit_set_long_const): Avoid unnecessary shift.
526 (output_profile_hook): Declare label_name const.
527 * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates
528 to match constraints.
530 2001-09-19 Stan Shebs <shebs@apple.com>
532 * alias.c: Fix typos in comments.
533 * sched-rgn.c (init_ready_list): Ditto.
534 * unwind-dw2.c (uw_frame_state_for): Ditto.
535 * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto.
536 * unwind.inc (_Unwind_RaiseException_Phase2): Ditto.
537 * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto.
539 2001-09-19 Richard Henderson <rth@redhat.com>
541 * cfg.c (force_nonfallthru_and_redirect): Handle redirecting
543 * Makefile.in (cfg.o): Depend on TM_P_H.
545 2001-09-19 Richard Henderson <rth@redhat.com>
547 * config/alpha/alpha.c (local_symbol_p): Split out from ...
548 (local_symbolic_operand): ... here.
549 (small_symbolic_operand): Check mode.
550 (global_symbolic_operand): New.
551 (input_operand): Reject symbolics if explicit relocs.
552 (call_operand): Tidy.
553 (alpha_legitimize_address): Use movdi_er_high_g.
554 (alpha_expand_mov): Likewise.
555 * config/alpha/alpha-protos.h: Update.
556 * config/alpha/alpha.h (PREDICATE_CODES): Update.
557 * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New.
558 (UNSPEC_LDGP2, UNSPECV_PLDGP2): New.
559 (UNSPECV_LDGP2): Remove.
560 (all call patterns): Use 's' not 'i' for symbolic constraint.
561 (call_osf call_value_osf): Use call_operand.
562 (all osf call patterns): Use $gp. New peepholes for explicit relocs.
563 (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative.
564 (prologue_ldgp_1_er): Remove.
565 (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New.
566 (builtin_setjmp_receiver_er patterns): Use them.
567 (exception_receiver_er): Likewise.
569 2001-09-19 Richard Henderson <rth@redhat.com>
571 * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw.
573 * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN
574 and NON_LOCAL_GOTO notes.
575 * recog.c (peephole2_optimize): Likewise. Handle EH_REGION;
576 copy over CALL_INSN_FUNCTION_USAGE.
578 2001-09-18 Catherine Moore <clm@redhat.com>
580 * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN):
583 2001-09-18 Ulrich Weigand <uweigand@de.ibm.com>:
585 * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to
586 new-style tm_file specification. Specify correct tm_p_file,
587 md_file, and out_file for s390x.
589 * config/s390/linux.h, linux64.h: Don't include other target
590 macro header files. Now handled via tm_file.
592 * config/s390/linux.h, s390.h: (IEEE_FLOAT, TARGET_IEEE_FLOAT,
593 TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they
594 are defined before use.
596 Tue Sep 18 09:51:11 2001 Eric Christopher <ecechristo@redhat.com>
598 * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf
599 code generation only for Gnu assembler.
601 2001-09-18 Catherine Moore <clm@redhat.com>
603 * config/stormy16 (LIB_SPEC): Remove -lnosys.
605 2001-09-18 Richard Sandiford <rsandifo@redhat.com>
607 * config/mips/mips.c (mips_frame_set): New.
608 (mips_emit_frame_related_store): When storing two 32-bit FPRs, use
609 a parallel frame-related expression with a set for each register.
611 2001-09-18 Philip Blundell <philb@gnu.org>
613 * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel
616 2001-09-17 Dale Johannesen <dalej@apple.com>
618 * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2.
619 * config/rs6000/aix.h (FIXED_R2): Define.
620 * config/rs6000/darwin.h (FIXED_R2): Define.
621 * config/rs6000/sysv4.h (FIXED_R2): Define.
623 2001-09-17 Jeff Sturm <jsturm@one-point.com>
625 * except.c (dw2_build_landing_pads): New local
626 clobbers_hard_regs. Emit an ASM_INPUT as a scheduling
627 barrier after clobbers. Fixes c++/4012.
629 2001-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
631 * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat.
633 2001-09-17 Joseph S. Myers <jsm28@cam.ac.uk>
635 * dostage2, dostage3, listing, make-l2.com, makefile.vms,
636 patch-apollo-includes, vmsconfig.com: Remove obsolete files.
638 2001-09-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
640 * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of
643 2001-09-17 Neil Booth <neil@daikokuya.demon.co.uk>
645 * cpphash.h (_cpp_lex_direct): New.
646 * cpplex.c (_cpp_lex_token): Update.
647 (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token,
648 and increment that pointer.
649 * cppmacro.c (alloc_expansion_token): New.
650 (lex_expansion_token): Lex macro expansion directly into
653 2001-09-16 Brad Lucier <lucier@math.purdue.edu>
655 * Makefile.in: Make rtl-error.o depend on $(CONFIG_H).
657 Sun Sep 16 21:59:46 CEST 2001 Jan hubicka <jh@suse.cz>
659 * basic-block.h (free_bb_for_insn): Declare.
660 * bb-reorder.c (label_for_bb): Use block_label.
661 (emit_jump_to_block_after): Remove.
662 (insert_intra_1): Do not update block_for_insn.
663 (insert_inter_bb_scope_notes): Likewise; update bb->end
664 * cfg.c (free_bb_for_insn): New.
665 (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call.
666 (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries.
667 (commit_one_edge_insertion): Likewise.
668 (commit_one_edge_insertion): Do not update BB boundary.
669 (commit_edge_insertions): Do not call compute_bb_for_insn.
670 * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn.
671 * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb.
672 (merge_blocks_move_successor_nojumps): Likewise.
673 (try_crossjump_to_edge): Do not update block_for_insn.
674 * combine.c (combine_instructions): Remove compute_bb_for_insn call.
675 * df.c (df_pattern_emit_later): Do not update BB boundary.
676 (df_jump_pattern_emit_after): Likewise.
677 (df_insn_move_before): Use emit_insn_before.
678 * emit-rtl.c (try_split): Emit after trial to get bb boundary updated
680 (add_insn_after, add_insn_before, emit_insns_after): Update BB
681 boundaries and basic_block_for_insn.
682 (reorder_insns_nobb): Rename from reorder_insns.
683 (reorder_insns): New.
684 (emit_block_insn_before, emit_block_insn_after): Kill.
685 * flow.c (check_function_return_warnings): Do not call
686 compute_bb_for_insn; Do not free basic_block_for_insn.
687 (attempt_auto_inc): Do not update basic_block_for_insn.
688 * function.c (emit_return_into_block): Likewise;
689 do not update BB boundaries.
690 * gcse.c (handle_avail_expr): Do not update basic_block_for_insn.
691 (insert_insn_end_bb): Use emit_insn_before; Likewise.
692 (pre_insert_copy_insn): Likewise.
693 (update_ld_motion_notes): Likewise.
694 (insert_insn_start_bb): Likewise.
695 (replace_store_insn): Likewise.
696 * ifcvt.c (noce_process_if_block): Likewise.
697 (if_convert): Do not call compute_bb_for_insn.
698 * lcm.c (optimize_mode_switching): Do not update BB boundaries.
699 Use emit_insn_before and emit_insn_after.
700 * recog.c (split_all_insns): Do not update BB boundaries;
701 Do not call compute_bb_for_insn.
702 (peephole2_optimize): Do not update BB boundaries.
703 * reg-stack.c (emit_pop_insn): Use emit_insn_after and
705 (emit_swap_insn): Likewise.
706 (convert_regs_1): Likewise.
707 * reload1.c (reload): Call compute_bb_for_insn.
708 * rtl.h (reorder_insns_nobb): Declare.
709 * ssa.c (rename_equivalent_regs): Use emit_insn_before.
710 * toplev.c (rest_of_compilation): Call free_bb_for_insn
711 at places CFG is invalidated; do not call compute_bb_for_insn.
713 * cfg.c (expunge_block): Invalidate BB structure.
715 * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN
718 * cfg.c (verify_flow_info): Verify the basic_block_for_insn array.
720 2001-09-16 Neil Booth <neil@daikokuya.demon.co.uk>
722 * cpphash.h (_cpp_lex_token): Update prototype.
723 * cpplex.c (_cpp_lex_token): New prototype.
724 * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive,
725 lex_macro_node, read_flag, do_pragma_poison): Update.
726 * cppmacro.c (cpp_get_token, parse_params,
727 lex_expansion_token): Update.
729 2001-09-16 Neil Booth <neil@daikokuya.demon.co.uk>
731 * cppmain.c (scan_translation_unit): Don't worry about
732 putting a space after hashes.
733 * cpplib.c (directive_diagnostics): New.
734 (_cpp_handle_directive): Update to use directive_diagnostics.
735 (run_directive): Don't toggle prevent_expansion.
736 (do_line): Backup in case of the line extension.
737 * cpplib.h (cpp_lexer_pos): Remove.
738 * cppmacro.c (_cpp_create_definition): Precede a leading #
741 2001-09-15 Richard Henderson <rth@redhat.com>
743 * c-typeck.c (comptypes): Handle zero-length arrays properly.
745 2001-09-15 Roman Lechtchinsky <rl@cs.tu-berlin.de>
747 * c-common.c (c_promoting_integer_type_p): Handle ?Imode types.
749 2001-09-15 Neil Booth <neil@daikokuya.demon.co.uk>
752 * tradcpp.c (handle_directive): Skip non-vertical space.
754 2001-09-15 Neil Booth <neil@daikokuya.demon.co.uk>
756 * cppmain.c (setup_callbacks): Set line callback only
757 if outputting preprocessed source.
759 2001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
761 * collect2.c (main): Const-ification.
762 * gcc.c (translate_options, process_command): Use xstrdup in
763 lieu of xmalloc/strcpy.
764 (main): Use concat in lieu of xmalloc/strcpy/strcat.
766 2001-09-14 Roman Lechtchinsky <rl@cs.tu-berlin.de>
768 * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix
771 2001-09-15 Neil Booth <neil@daikokuya.demon.co.uk>
773 * scan-decls.c (scan_decls): Fix typo.
775 2001-09-15 Neil Booth <neil@daikokuya.demon.co.uk>
777 * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos.
778 Split mlstring_pos into mls_line and mls_col.
779 * cppinit.c (cpp_create_reader): Initialize line to 1.
780 (cpp_destroy): Free tokenruns.
781 (push_include): Don't update lexer_pos.
782 * cpplex.c (unterminated, parse_string): Update.
783 (lex_token): Don't update lexer_pos, update.
784 * cpplib.c (if_stack): Save line instead of line + col.
785 (start_directive, _cpp_do__Pragma, do_else, do_elif,
786 push_conditional, _cpp_pop_buffer): Update.
787 * cppmacro.c (funlike_invocation_p): Don't save lexer_pos.
788 (_cpp_create_definition): Update.
790 2001-09-15 Eric Christopher <echristo@redhat.com>
792 * config/mips/abi64.h: Add support for MEABI.
794 2001-09-15 Eric Christopher <echristo@redhat.com>
796 * config/mips/mips.md: Add unspec #2.
798 (reload_outdi): Ditto.
799 (reload_outsi): Ditto.
802 2001-09-15 Eric Christopher <echristo@redhat.com>
803 Jason Eckhardt <jle@redhat.com>
805 * config.gcc: Add mipsisa32 target and mipsisa32-linux target.
806 * config/mips/isa32-linux.h: New file.
807 * config/mips/isa3264.h: Ditto.
808 * config/mips/mips-protos.h: Add mips_hard_regno_nregs.
809 * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h.
810 (output_block_mode): Support MEABI.
811 (function_arg): Ditto. Fix floating point arg passing.
812 (mips_va_start): Ditto.
813 (override_options): Add isas 32 and 64, meabi, mips32 and mips64
815 (mips_asm_file_start): Add new section to pass abi to gdb.
816 (function_arg_pass_by_reference): Support MEABI.
817 (mips_parse_cpu): Support mips32 and mips64 processors.
818 * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC,
819 TARGET_MIPS5KC. Support isa32 and isa64.
820 (processor_type): Add r4kc, r5kc, r20kc.
821 (GENERATE_MULT3_SI): New.
822 (GENERATE_MULT3_DI): Ditto.
823 (GENERATE_MULT3): Remove.
824 (ISA_HAS_64BIT_REGS): Add isa == 64.
825 (ISA_HAS_8CC): Add mips_isa = 32 and 64.
826 (ISA_HAS_MADD_MSUB): New.
827 (ISA_HAS_CLZ_CLO): Ditto.
828 (ISA_HAS_DCLZ_DCLO): Ditto.
829 (ABI_GAS_ASM_SPEC): New.
830 (GAS_ASM_SPEC): Use. Add support for mips32, mips64.
833 (SUBTARGET_CC1_SPEC): Ditto.
834 (SUBTARGET_CPP_SIZE_SPEC): Ditto.
835 (PAD_VARARGS_DOWN): Support MEABI.
836 (HARD_REGNO_NREGS): Move to mips.c.
837 (ASM_OUTPUT_IDENT): Add #undef.
838 * config/mips/mips.md: Add r4kc, r5kc, r20kc.
839 (mulsi3): Use GENERATE_MULT3_SI.
840 (mulsi3_mult3): Ditto. Support mips32, mips64.
841 (mul_acc_si): Use ISA_HAS_MADD_MSUB.
842 (mul_sub_si): New pattern.
843 (unnamed splitters): New.
844 (muldi3): Use GENERATE_MULT3_DI.
845 (muldi3_internal2): Ditto.
846 (movdicc): Support mips32.
847 * config/mips/t-isa3264: New file.
849 2001-09-15 Hans-Peter Nilsson <hp@axis.com>
851 * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT
852 || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT
853 || HAVE_POST_DECREMENT]: Call find_regno_note for REGs.
855 * reorg.c (fill_slots_from_thread): After call to
856 steal_delay_list_from_target, update own_thread as new_thread may
859 2001-09-14 Neil Booth <neil@daikokuya.demon.co.uk>
861 * cpperror.c (print_location): Take line and column, for
862 default positioning use the previously lexed token.
863 (_cpp_begin_message): Take line and column.
864 (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
865 cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
866 * cpphash.h (_cpp_begin_message): Update prototype.
867 * cppinit.c (push_include): Don't set output line.
868 * cpplex.c (_cpp_lex_token): Callback for start of new output lines.
869 * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update.
870 (do_pragma): Kludge for front ends. Don't expand macros at all.
871 * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove.
872 (struct cpp_token): Remove output_line.
873 (struct cpp_callbacks): New member line_change.
874 * cppmacro.c (builtin_macro, paste_all_tokens, replace_args,
875 cpp_get_token): Preserve BOL flag.
876 (cpp_get_line): Remove.
877 (_cpp_backup_tokens): Remove useless abort().
878 * cppmain.c (cb_line_change): New.
879 (scan_translation_unit): Don't worry about starting new lines here.
880 * scan-decls.c (scan_decls): Update.
881 * c-lex.c (c_lex, init_c_lex): Update.
882 (cb_line_change, src_lineno): New.
884 Fri Sep 14 13:54:50 EDT 2001 John Wehle (john@feith.com)
886 * tree.c (append_random_chars): Generate the random
887 characters in a reproducable fashion.
889 2001-09-14 Richard Henderson <rth@redhat.com>
891 * config/i386/i386.c (internal_label_prefix): New.
892 (internal_label_prefix_len): New.
893 (override_options): Set them.
894 (local_symbolic_operand): New.
895 (legitimate_pic_address_disp_p): Use it.
896 (legitimize_pic_address): Likewise.
898 2001-09-14 Marc Espie <espie@openbsd.org>
900 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Generate reference to GOT
903 2001-09-14 Roman Lechtchinsky <rl@cs.tu-berlin.de>
905 * config/alpha/alpha.md (unaligned_extendhidi_be): Fix.
906 * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New.
908 2001-09-14 Nick Clifton <nickc@cambridge.redhat.com>
910 * rtlanal.c (subreg_regno_offset): Add semicolon to end of
911 invocation of SUBREG_REGNO_OFFSET.
913 * haifa-sched.c: Fix typo in FSF copyright statement.
914 * sched-deps.c: Fix typo in FSF copyright statement.
915 * sched-ebb.c: Fix typo in FSF copyright statement.
916 * sched-rgn.c: Fix typo in FSF copyright statement.
917 * sched-vis.c: Fix typo in FSF copyright statement.
919 * config.gcc: Move inclusion of arm elf specific header files
920 from the files themselves into the tm_file variable. Make
921 sure that elfos.h is included before target specific elf
923 * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not
925 (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition.
926 * config/arm.arm.h (TARGET_MEM_FUNCTIONS,
927 ASM_OUTPUT_CASE_LABEL): Protect definition.
928 (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if
930 * config/arm/conix-elf.h: (USER_LABEL_PREFIX,
931 LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION):
932 Remove duplicate definition.
933 (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION,
934 (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP,
935 (RDATA_SECTION_FUNCTION): Remove redundant definition.
936 (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition.
937 Remove inclusion of arm/elf.h.
938 * config/arm/unknown-elf.h: as for conix-elf.h.
939 (STARTFILE_SPEC): Include crti.o and crtn.o.
940 * config/arm/linux-elf.h: as for conix-elf.h.
941 * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h.
942 * config/arm/strongarm-elf.h: Remove inclusion of
944 * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h.
945 * config/arm/unknown-elf-oabi.h: Remove inclusion of
946 unknown-elf.h and elf.h.
947 * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h.
948 * config/arm/linux-gas.h (DBX_DEBUGGING_INFO,
949 ASM_WEAKEN_LABEL): Remove redundant definition.
950 * config/arm/elf.h: Test for inclusion of elfos.h
951 (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT,
952 ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME,
953 SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION,
954 EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove
955 redundant definition.
956 (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME,
957 ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL,
958 ASM_OUTPUT_ALIGNED_COMMON): Protect definition.
959 * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o.
960 Add rules to build crti.o and crtn.o
961 * crti.asm: New file.
962 * crtn.asm: New file.
964 2001-09-13 Neil Booth <neil@daikokuya.demon.co.uk>
966 * c-parse.in (_yylex): Use _cpp_backup_tokens.
967 * cpphash.h (struct tokenrun): Add prev.
968 (struct lexer_state): Remove bol.
969 (struct cpp_reader): Remove old lookahead stuff, add lookaheads.
970 (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token)
972 * cppinit.c (cpp_create_reader): Don't set bol.
973 (cpp_destroy): Don't free lookaheads.
974 * cpplex.c (lex_directive): Remove.
975 (next_tokenrun): Update.
976 (_cpp_lex_token): Clean up logic.
977 (lex_token): Update to return a pointer to lexed token, since it
978 can move to the start of the buffer. Simpify newline handling.
979 * cpplib.c (SEEN_EOL): Update.
980 (skip_rest_of_line): Remove lookahead stuff.
981 (end_directive): Line numbers are already incremented. Revert
982 to start of lexed token buffer if we can.
983 (_cpp_handle_directive, do_pragma, do_pragma_dependency,
984 parse_answer): Use _cpp_backup_tokens.
985 (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags
986 instead. Don't check for EOL.
987 (do_include_common, do_line, do_pragma_system_header): Use
989 * cpplib.h (BOL, _cpp_backup_tokens): New.
990 * cppmacro.c (save_lookahead_token, take_lookahead_token,
991 alloc_lookahead, free_lookahead, _cpp_free_lookaheads,
992 cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove.
993 (builtin_macro): Don't use cpp_get_line.
994 (cpp_get_line): Short term kludge.
995 (parse_arg): Handle directives in arguments here. Back up when
996 appropriate. Store EOF at end of argument list.
997 (funlike_invocation_p): Use _cpp_backup_tokens.
998 (push_arg_context): Account for EOF at end of list.
999 (cpp_get_token): Remove lookahead stuff. Update.
1001 2001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1003 * c-parse.in (yyerror): Const-ification and/or static-ization.
1004 * c-typeck.c (push_member_name): Likewise.
1005 * collect2.c (main): Likewise.
1006 * dbxout.c (dbxout_parms): Likewise.
1007 * diagnostic.c (format_with_decl): Likewise.
1008 * dwarf2out.c (output_ranges): Likewise.
1009 * dwarfout.c (fundamental_type_code): Likewise.
1010 * except.c (dw2_output_call_site_table): Likewise.
1011 * gcc.c (do_spec_1): Likewise.
1012 * genopinit.c (optabs): Likewise.
1013 * objc/objc-act.c (synth_id_with_class_suffix, start_class,
1014 gen_declaration_1, handle_impent): Likewise.
1015 * protoize.c (default_include, in_system_include_dir, abspath):
1017 * sched-vis.c (visualize_stall_cycles): Likewise.
1018 * sdbout.c (plain_type_1, sdbout_end_function,
1019 sdbout_end_epilogue): Likewise.
1020 * varasm.c (decode_reg_name): Likewise.
1022 * 1750a.c (mod_regno_adjust): Likewise.
1023 * alpha.c (alpha_write_one_linkage,
1024 unicosmk_output_default_externs): Likewise.
1025 * arm.c (arm_condition_codes): Likewise.
1026 * arm.h (arm_condition_codes): Likewise.
1027 * avr.c (output_movsisf, encode_section_info): Likewise.
1028 * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL):
1030 * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1031 * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise.
1032 * m88k.c (output_function_profiler): Likewise.
1033 * mips.c (mips_output_conditional_branch): Likewise.
1034 * ns32k.c (ns32k_out_reg_names): Likewise.
1035 * ns32k.h (ns32k_out_reg_names): Likewise.
1036 * pj.c (pj_output_rval): Likewise.
1037 * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise.
1038 * sparc.c (sparc_flat_function_prologue,
1039 sparc_flat_function_epilogue): Likewise.
1041 2001-09-13 Markus Werle <numerical.simulation@web.de>
1042 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1044 * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at
1045 Aachen University of Technology".
1047 2001-09-13 Andreas Schwab <schwab@suse.de>
1049 * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for
1052 2001-09-13 Richard Henderson <rth@redhat.com>
1054 * config/alpha/alpha.c (small_symbolic_operand): New.
1055 (override_options): Set MASK_SMALL_DATA based on pic/PIC.
1056 (some_operand, input_operand): Don't handle HIGH.
1057 (alpha_legitimize_address): Use it. Emit HIGH with PLUS gp.
1058 (alpha_expand_mov): Likewise.
1059 (print_operand) [H]: Just print HIGH symbol.
1060 (print_operand_address): Handle small data.
1061 * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New.
1062 (TARGET_SWITCHES): Add -msmall-data/large-data.
1063 (PIC_OFFSET_TABLE_REGNUM): New.
1064 (PREFERRED_RELOAD_CLASS): Don't handle HIGH.
1065 (PREDICATE_COES): Update.
1066 * config/alpha/alpha.md (adddi_er_high): New.
1067 (adddi_er_low): Handle small data.
1068 * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA,
1069 prefer .sdata to .rodata.
1070 (SELECT_RTX_SECTION): Likewise.
1072 2001-09-12 Josh Martin <josh.martin@abq.sc.philips.com>
1074 * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from
1075 defining __size_t and leaving size_t undefined.
1077 2001-09-12 Diego Novillo <dnovillo@redhat.com>
1079 * basic-block.h (expunge_block): Declare.
1080 * cfg.c (expunge_block): Remove static declaration.
1082 2001-09-12 Richard Henderson <rth@redhat.com>
1084 * integrate.c (copy_insn_list): Copy label name from
1085 NOTE_INSN_DELETED_LABEL.
1087 2001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1089 * c-common.c (c_tree_code_name): Const-ification.
1090 * c-decl.c (c_decode_option): Likewise.
1091 * c-typeck.c (warn_for_assignment): Likewise.
1092 * collect2.c (libexts, is_ctor_dtor, main, ignore_library):
1094 * cppinit.c (output_deps): Likewise.
1095 * dependence.c (dependence_string, direction_string): Likewise.
1096 * dwarf2out.c (output_ranges): Likewise.
1097 * fixinc/fixfixes.c (emit_gnu_type): Likewise.
1098 * fixinc/gnu-regex.c (re_error_msgid): Likewise.
1099 * gcc.c (standard_exec_prefix, standard_exec_prefix_1,
1100 standard_startfile_prefix, standard_startfile_prefix_1,
1101 standard_startfile_prefix_2, tooldir_base_prefix,
1102 standard_bindir_prefix, find_a_file): Likewise.
1103 * genattrtab.c (make_length_attrs): Likewise.
1104 * gencheck.c (tree_codes): Likewise.
1105 * genemit.c (gen_split): Likewise.
1106 * genrecog.c (special_mode_pred_table): Likewise.
1107 * graph.c (graph_ext): Likewise.
1108 * protoize (default_include): Likewise.
1109 * reload.c (reload_when_needed_name): Likewise.
1110 * sched-vis.c (visualize_stall_cycles): Likewise.
1111 * tlink.c (recompile_files): Likewise.
1112 * toplev.c (decode_g_option): Likewise.
1113 * tradcpp.c (output_deps): Likewise.
1114 * varasm.c (decode_reg_name): Likewise.
1116 * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code):
1119 * avr.c (avr_regnames, encode_section_info): Likewise.
1120 * c4x.c (float_reg_names): Likewise.
1121 * darwin.h (ASM_GLOBALIZE_LABEL): Likewise.
1122 * elfos.h (const_section): Likewise.
1123 * i386.c (ix86_comp_type_attributes): Likewise.
1124 * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
1125 * ia64/aix.h (UNIQUE_SECTION): Likewise.
1126 * ia64.c (type_names): Likewise.
1127 * m68hc11.c (reg_class_names): Likewise.
1128 * m88k.c (m_options): Likewise.
1129 * mips.c (mips_output_conditional_branch, mips_unique_section):
1131 * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
1132 * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue,
1133 ultra_code_names): Likewise.
1134 * sparc.h (OVERRIDE_OPTIONS): Likewise.
1136 2001-09-12 Jakub Jelinek <jakub@redhat.com>
1138 * configure.in (gcc_cv_as_shf_merge): Fix a typo.
1139 Use --fatal-warnings option for gas.
1140 * configure: Rebuilt.
1142 2001-09-12 Roman Lechtchinsky <rl@cs.tu-berlin.de>
1144 * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document.
1146 2001-09-11 Jim Wilson <wilson@redhat.com>
1148 * alias.c (clear_reg_alias_info): Only handle pseudo registers.
1150 2001-10-11 Matt Kraai <kraai@alumni.carnegiemellon.edu>
1152 * builtins.c (c_strlen): Treat an offset too large for a
1153 HOST_WIDE_INT as out of range.
1155 Tue Sep 11 18:57:47 CEST 2001 Jan Hubicka <jh@suse.cz>
1157 * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags.
1158 (EDGE_CRITICAL_P): New predicate.
1159 * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL
1161 (insert_insn_on_edge): Use EDGE_CRITICAL_P.
1162 (dump_edge_info): Remove "crit".
1163 * cfganal.c (mark_critical_edges): Kill.
1164 * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call.
1165 * cfgcleanup.c (cleanup_cfg): Likewise.
1166 * profile.c (instrument_edges): Use EDGE_CRITICAL_P.
1167 (find_spanning_tree): Likewise.
1168 * reg-stack.c (convert_regs_1): Likewise.
1169 * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise.
1171 * basic-block.h (create_basic_block_structure): New.
1172 (create_basic_block): Update prototype.
1173 (force_nonfallthru): New.
1174 * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru.
1175 * cfg.c (create_basic_block_structure): Rename from create_basic_block;
1176 handle updating of block_for_insn, creating of empty BBs and BBs at
1177 the end of INSN chain.
1178 (create_basic_block): New function.
1179 (split_block): Use create_basic_block.
1180 (force_nonfallthru_and_redirect): Break out from ...; cleanup
1181 (redirect_edge_and_branch_force): ... here.
1182 (force_nonfallthru): New.
1183 (split_edge): Rewrite to use force_nonfallthru and create_block.
1184 * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure.
1185 (find_basic_blocks): Free basic_block_for_insn.
1186 * cfgcleanup.c (merge_blocks): Use force_nonfallthru.
1188 * cfg.c: Fix formating.
1189 * cfgcleanup.c: Fix formating.
1190 (merge_blocks, tail_recursion_label_p): Return bool.
1191 (merge_blocks_move_predecessor_nojumps,
1192 merge_blocks_move_successor_nojumps): Return void.
1194 2001-09-11 Jakub Jelinek <jakub@redhat.com>
1196 * configure.in: Check whether assembler supports section merging.
1197 * config.in: Rebuilt.
1198 * configure: Rebuilt.
1199 * varasm.c (variable_section, output_constant_pool): Pass alignment
1200 to SELECT_SECTION and SELECT_RTX_SECTION.
1201 (mergeable_string_section): New.
1202 (mergeable_constant_section): New.
1203 (default_elf_asm_named_section): Output SECTION_MERGE and
1204 SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1205 * output.h (mergeable_string_section): New.
1206 (mergeable_constant_section): New.
1207 (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define.
1208 * toplev.c (flag_merge_constants): New.
1209 (f_options): Add -fmerge-constants and -fmerge-all-constants
1211 (toplev_main): Default to -fno-merge-constants if not optimizing.
1212 * flags.h (flag_merge_constants): Add extern.
1213 * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document.
1214 * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third
1216 * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START):
1217 Define if assembler has working .subsection -1 support.
1218 (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument.
1219 Put constant into special SHF_MERGE sections if the linker should
1220 attempt to merge duplicates.
1221 * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third
1223 Put constant into special SHF_MERGE sections if the linker should
1224 attempt to merge duplicates.
1225 * config/alpha/elf.h: Likewise.
1226 (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler
1227 has working .subsection -1 support.
1228 * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and
1230 * config/svr3.h: Likewise.
1231 * config/darwin.h: Likewise.
1232 * config/arm/aof.h: Likewise.
1233 * config/arm/linux-elf.h: Likewise.
1234 * config/avr/avr.h: Likewise.
1235 * config/c4x/c4x.h: Likewise.
1236 * config/d30v/d30v.h: Likewise.
1237 * config/i386/dgux.h: Likewise.
1238 * config/i386/osfrose.h: Likewise.
1239 * config/i386/sco5.h: Likewise.
1240 * config/i386/svr3gas.h: Likewise.
1241 * config/ia64/aix.h: Likewise.
1242 * config/m32r/m32r.h: Likewise.
1243 * config/m68k/m68k.h: Likewise.
1244 * config/m88k/dgux.h: Likewise.
1245 * config/m88k/m88k.h: Likewise.
1246 * config/mcore/mcore-pe.h: Likewise.
1247 * config/mips/mips.h: Likewise.
1248 * config/pa/pa.h: Likewise.
1249 * config/pa/pa-linux.h: Likewise.
1250 * config/romp/romp.h: Likewise.
1251 * config/rs6000/sysv4.h: Likewise.
1252 * config/rs6000/xcoff.h: Likewise.
1253 * config/s390/linux.h: Likewise.
1254 * config/sparc/sparc.h: Likewise.
1255 * config/sparc/sysv4.h: Likewise.
1256 * config/stormy16/stormy16.h: Likewise.
1257 * config/v850/v850.h: Likewise.
1258 * config/vax/vms.h: Likewise.
1259 * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE
1260 and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size.
1261 * config/sparc/sparc.c (sparc_elf_asm_named_section): Use
1262 default_elf_asm_named_section for SHF_MERGE sections.
1264 Tue Sep 11 17:55:54 CEST 2001 Jan Hubicka <jh@suse.cz>
1266 * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block
1269 2001-09-11 Joseph S. Myers <jsm28@cam.ac.uk>
1271 * c-common.c (split_specs_attrs): Allow for empty attributes with
1272 empty TREE_PURPOSE. Fixes PR c/4294.
1274 Tue Sep 11 11:37:52 CEST 2001 Jan Hubicka <jh@suse.cz>
1276 * basic-block.h (cached_make_edge, make_single_succ): New.
1277 (make_edge): Remove first parameter.
1278 * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge.
1279 * cfg.c (cached_make_edge): Rename from make_edge; return newly
1280 created edge; use obstack allocation.
1281 (make_edge, make_single_succ_edge): New.
1282 (first_removed_edge): New static variable.
1283 (init_flow): Initialize first_removed_edge and n_edges.
1284 (clear_edges): Use remove_edge.
1285 (flow_delete_block): Likewise.
1286 (remove_edge): Add removed edges to the removed edges list.
1287 (split_block, redirect_edge_and_branch_force, split_edge):
1289 * cfganal.c (flow_call_edges_add): Updaet make_edge call.
1290 (add_noreturn_fake_exit_edges): Likewise.
1291 (connect_infinite_loops_to_exit): Liekwise.
1292 * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks):
1293 Use cached_make_edge.
1294 * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge.
1295 * profile.c (branch_prob): Update make_edge call.
1296 * ssa-dce.c (ssa_eliminate_dead_code): Likewise.
1298 2001-09-11 Richard Henderson <rth@redhat.com>
1300 * config/alpha/alpha.c: Tidy formatting.
1301 (local_symbolic_operand): Verify mode.
1302 (alpha_sa_mask): Ignore unicos for eh_return.
1303 (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL.
1304 * config/alpha/alpha.md (umk divsi patterns): Remove.
1305 (extendsfdf2): Remove unicos check.
1306 (tablejump): Merge vms and unicos code; always use direct set
1309 2001-09-11 Roman Lechtchinsky <rl@cs.tu-berlin.de>
1311 * config.gcc (alpha*-*-unicosmk*): New target.
1313 * config/alpha/alpha-protos.h (symbolic_operand,
1314 unicosmk_add_call_info_word, unicosmk_add_extern,
1315 unicosmk_defer_case_vector, unicosmk_unique_section,
1316 unicosmk_output_align, unicosmk_text_section, unicosmk_data_section,
1317 unicosmk_asm_file_start, unicosmk_asm_file_end,
1318 unicosmk_output_common): Declare.
1320 * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand,
1321 direct_return, function_arg, alpha_va_start, alpha_va_arg,
1322 alpha_does_function_need_gp, alpha_end_function): Support Cray
1324 (alpha_init_machine_status, alpha_mark_machine_status,
1325 alpha_free_machine_status, unicosmk_output_deferred_case_vectors,
1326 unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex,
1327 unicosmk_asm_named_section, unicosmk_insert_attributes,
1328 unicosmk_section_type_flags, symbolic_operand,
1329 unicosmk_output_module_name, unicosmk_output_default_externs,
1330 unicosmk_output_dex, unicosmk_output_externs,
1331 unicosmk_output_addr_vec, unicosmk_ssib_name,
1332 unicosmk_initial_elimination_offset, unicosmk_asm_file_start,
1333 unicosmk_asm_file_end, unicosmk_output_common,
1334 unicosmk_section_type_flags, unicosmk_unique_section,
1335 unicosmk_add_call_info_word, unicosmk_text_section,
1336 unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head,
1337 unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list,
1338 unicosmk_dex_count, unicosmk_special_name): New.
1339 (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for
1340 TARGET_ABI_UNICOSMK.
1341 (get_aligned_mem, alpha_expand_unaligned_load,
1342 alpha_expand_unaligned_store, alpha_expand_unaligned_load_words,
1343 alpha_expand_unaligned_store_words): Support big-endian mode.
1344 (print_operand): Likewise. New format specifier 't'. Use
1345 TARGET_AS_SLASH_BEFORE_SUFFIX.
1346 (alpha_is_stack_procedure): Rename from vms_is_stack_procedure.
1347 (alpha_pv_save_size): Update with above change.
1348 (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue,
1349 alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray
1352 * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New.
1353 (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK.
1354 (TARGET_AS_SLASH_BEFORE_SUFFIX): New.
1355 (EXTRA_CONSTRAINT): New constraint 'U'.
1356 (PREDICATE_CODES): Add symbolic_operand.
1358 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM,
1359 UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants.
1360 (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK.
1361 (integer division and modulus patterns): Split in default and
1363 (*divmodsi_internal, *divmoddi_internal): Disable for
1364 TARGET_ABI_UNICOSMK.
1365 (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in
1366 little-endian and big-endian versions.
1367 (ext, ins, msk): Likewise.
1368 (extv, extzv, insv): Support big-endian mode.
1369 (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK.
1370 (call_umk, call_value_umk, *call_umk, tablejump_umk,
1371 *tablejump_umk_internal, *call_value_umk): New.
1372 (*movdi_nofix): Add pattern for loading an address into a register on
1373 TARGET_ABI_UNICOSMK.
1374 (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New.
1375 (umk_mismatch_args, arg_home_umk): New.
1376 (various insns): Don't use mov, fmov, nop, fnop and unop.
1377 (realign): Support TARGET_ABI_UNICOSMK.
1379 * config/alpha/unicosmk.h: New file.
1380 * config/alpha/t-unicosmk: New file.
1382 * fixinc/inclhack.def (unicosmk_restrict): New.
1383 * fixinc/fixincl.x: Regenerate.
1385 * ginclude/stddef.h (size_t): Check for and define __SIZE_T__.
1386 (wchar_t): Check for and define __WCHAR_T__.
1388 2001-09-11 Richard Sandiford <rsandifo@redhat.com>
1390 * combine.c (simplify_shift_const): Treat shifts by the mode
1393 2001-09-11 Neil Booth <neil@daikokuya.demon.co.uk>
1395 * cpphash.h (struct tokenrun): New.
1396 (struct cpp_context): New member bol.
1397 (struct cpp_reader): New members.
1398 (_cpp_init_tokenrun): New.
1399 * cppinit.c (cpp_create_reader): Set up the token runs.
1400 * cpplex.c (lex_directive, lex_token, next_tokenrun): New.
1401 (lex_token): New internalised version of _cpp_lex_token. Don't
1402 handle directives or the multiple include opimisation here any
1403 more. Simply lex a token.
1404 * cpplib.c (run_directive): Clear bol.
1405 (_cpp_pop_buffer): Set bol.
1406 * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing
1409 2001-09-11 Michael Meissner <meissner@redhat.com>
1411 * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and
1412 give an error if the user uses -mfp32.
1413 (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the
1415 (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the
1416 floating point register size.
1417 (EXTRA_SPECS): Add CPP_FPR_SPEC.
1419 * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use
1420 HOST_WIDE_INT_PRINT_DEC to properly print the result of
1422 * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
1423 * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto.
1425 2001-09-11 Hans-Peter Nilsson <hp@axis.com>
1427 * dbxout.c (dbxout_parms): Fix typo in comment.
1428 * unroll.c (loop_find_equiv_value): Ditto.
1429 * toplev.c (rest_of_compilation): Ditto.
1430 * loop.c (scan_loop): Ditto.
1431 * dwarf2out.c (struct dw_fde_struct): Ditto.
1433 2001-09-10 Zack Weinberg <zackw@panix.com>
1435 * cpplex.c (parse_identifier): Fast-path optimize. Avoid
1436 copying identifier when we're just going to throw it away.
1437 (parse_identifier_slow): New routine to handle abnormal cases.
1438 (_cpp_lex_token): Update call site.
1440 * hashtable.c (ht_lookup): Don't assume that the string we've
1441 been given is NUL-terminated.
1442 * system.h: #define __builtin_expect(a, b) to (a) if not
1445 2001-09-10 Michael Meissner <meissner@redhat.com>
1447 * config.gcc (sparc64-*-solaris2): Add alias to be compatible with
1450 2001-09-10 David Edelsohn <edelsohn@gnu.org>
1452 * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o).
1454 Mon Sep 10 16:26:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1456 * builtins.c (c_getstr): Correct thinko in last change and further
1459 2001-09-10 Tim Freeman <tim@fungibole.com>
1461 * dwarf2out.c (incomplete_types, decl_scope_table): Make them
1462 into varray's and register them as roots with the garbage
1463 collector so they are not collected too soon.
1465 Mon Sep 10 14:21:26 CEST 2001 Jan Hubicka <jh@suse.cz>
1467 * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o):
1469 * basic-block.h (flow_obstack, label_value_list,
1470 tail_recursion_label_list): Declare
1471 (tidy_fallthru_edges): Declare.
1472 (expunge_block, last_loop_beg_note): Delete.
1473 (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare.
1475 (basic_block_for_insn, label_value_list): Move from flow.c; make global.
1476 (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks,
1477 init_flow, clear_edges, can_delete_note_p, can_delete_label_p,
1478 flow_delete_insn, flow_delete_insn_chain, create_basic_block,
1479 expunge_block, flow_delete_block, compute_bb_for_insn,
1480 update_bb_for_insn, set_block_for_insn, set_block_for_new_insns,
1481 make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup,
1482 redirect_edge_pred, split_block, marge_blocks_nomove, block_label,
1483 try_redirect_by_replacing_jump, last_loop_beg_note,
1484 redirect_edge_and_branch, redirect_edge_and_branch_force,
1485 tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p,
1486 split_edge, insert_insn_on_edge, commit_one_edge_insertion,
1487 commit_edge_insertions, dump_flow_info, debug_flow_info,
1488 dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb,
1489 verify_flow_info, purge_dead_edges, purge_all_dead_edges):
1490 Move here from flow.c
1491 * cfganal.c: New file.
1492 (forwarder_block_p, can_fallthru, mark_critical_edges,
1493 mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add,
1494 find_unreachable_blocks, create_edge_list, free_edge_list,
1495 print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print,
1496 flow_edge_list_print, remove_fake_successors, remove_fake_edges,
1497 add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit,
1498 flow_reverse_top_sort_order_compute, flow_depth_first_order_compute,
1499 flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb,
1500 flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish);
1501 Move here from flow.c
1502 * cfgbuild.c: New file
1503 (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge,
1504 make_edges, find_basic_blocks_1, find_basic_blocks,
1505 find_sub_basic_blocks): Move here from flow.c
1506 * cfgcleanup.c: New file.
1507 (try_simplify_condjump, try_forward_edges, tail_recursion_label_p,
1508 merge_blocks_move_predecessor_nojumps,
1509 merge_blocks_move_successor_nojumps, merge_blocks,
1510 flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
1511 try_crossjump_bb, try_optimize_cfg): Move here from flow.c
1512 (delete_unreachable_blocks, cleanup_cfg): Likewise; return true
1514 * cfgloop.c: New file
1515 (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump,
1516 flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find,
1517 flow_loop_exit_edges_find, flow_loop_nodes_find,
1518 flow_loop_pre_header_scan, flow_loop_pre_header_find,
1519 flow_loop_tree_node_add, flow_loops_tree_build,
1520 flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan,
1521 flow_loops_find, flow_loops_update, flow_loop_outside_edge_p):
1522 Move here from flow.c
1523 * flow.c: Remove everything moved elsewhere
1524 * output.h (cleanup_cfg): Return bool.
1526 * bb-reorder.c (reorder_block_def): Remove 'index'.
1527 (insert_intra_1): Add argument BB, set block for new note.
1528 (make_reorder_chain): Do not depdent on BB indexes.
1529 (make_reorder_chain_1): Do not use BB indexes.
1530 (label_for_bb): Likewise; set BB for new insn.
1531 (emit_jump_to_block_after): Likewise.
1532 (fixup_reoder_chain): Sanity check that all basic blocks
1533 are chained; verify newly created insn chain; remove
1534 undocnitional jump simplifying; Do not use BB indexes;
1535 properly initialize count and frequency information;
1536 dump reordered sequence.
1537 (insert_intra_bb_scope_notes): update call of insert_intra_1.
1538 (insert_inter_bb_scope_notes): Set block for new insn.
1539 (reorder_basic_blocks): Dump flow info before reoredering.
1541 Mon Sep 10 06:47:35 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1543 * alias.c (clear_reg_alias_info): Use K&R format definition.
1544 Avoid unsigned warning.
1545 * builtins.c: Use "unsigned int", not "unsigned".
1546 (target_char_cast): Use host_integerp and tree_low_cst.
1547 (expand_builtin_args_info, expand_builtin_frame_address): Likewise.
1548 (c_strlen): Likewise; OFFSET now HOST_WIDE_INT.
1549 (c_getstr): Likewise.
1550 (std_expand_builtin_va_arg): Use int_size_in_bytes.
1551 (builtin_memcpy_read_str): Avoid unsigned warning.
1552 (expand_builtin_memcpy): Alignments are unsigned.
1553 (expand_builtin_strncpy, expand_builtin_memset): Likewise.
1554 (expand_builtin_expect_jump): Use integer_zerop and integer_onep.
1555 * predict.c (expensive_function_p): LIMIT now unsigned.
1556 * resource.c (mark_target_live_regs): Make some vars unsigned.
1557 * sdbout.c: Use "unsigned int", not "unsigned".
1558 (MAKE_LINE_SAFE): Add cast to avoid unsigned warning.
1559 (sdbout_source_line): Likewise.
1560 (sdbout_record_type_name): Remove "const" for NAME declaration.
1561 * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes.
1563 2001-09-10 Richard Sandiford <rsandifo@redhat.com>
1565 * calls.c (store_one_arg): Expand comment.
1567 2001-09-10 Roman Lechtchinsky <rl@cs.tu-berlin.de>
1569 * calls.c (store_one_arg): Make sure that the entire argument is
1570 pushed if STACK_PARMS_IN_REG_PARM_AREA is defined.
1572 2001-09-09 Richard Henderson <rth@redhat.com>
1574 * emit-rtl.c (adjust_address): Fix mode for LO_SUM.
1576 Sun Sep 9 10:43:17 CEST 2001 Jan Hubicka <jh@suse.cz>
1578 * loop.c (combine_givs): Fix computing of benefit once giv is combined.
1580 2001-09-09 Richard Henderson <rth@redhat.com>
1582 * config/alpha/alpha.c (alpha_next_sequence_number): New.
1583 (alpha_this_literal_sequence_number): New.
1584 (alpha_this_gpdisp_sequence_number): New.
1585 (some_operand, input_operand): Add HIGH.
1586 (local_symbolic_operand): New.
1587 (alpha_encode_section_info): New.
1588 (alpha_legitimate_address_p): Allow LO_SUM.
1589 (alpha_legitimize_address): Generate HIGH+LO_SUM.
1590 (alpha_expand_mov): Likewise.
1591 (secondary_reload_class): Check memory_operand not general_operand
1593 (alpha_expand_unaligned_load): Force LO_SUM addresses into a register.
1594 (alpha_expand_unaligned_store): Likewise.
1595 (alpha_expand_unaligned_load_words): Likewise.
1596 (alpha_expand_unaligned_store_words): Likewise.
1597 (alpha_expand_block_clear): Likewise.
1598 (print_operand): Handle %#, %*, %H.
1599 (print_operand_address): Handle LO_SUM.
1601 (alpha_does_function_need_gp): Use it.
1602 (alpha_expand_block_move): Fix signed compare warnings.
1603 (alpha_sa_mask, alpha_align_insns): Likewise.
1604 * config/alpha/alpha-protos.h: Update.
1605 * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New.
1606 (MASK_EXPLICIT_RELOCS): New.
1607 (TARGET_SWITCHES): Add -mexplicit-relocs.
1608 (EXTRA_CONSTRAINT): Add 'T'.
1609 (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS.
1610 (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion.
1611 (ENCODE_SECTION_INFO): Out line.
1612 (REDO_SECTION_INFO_P): New.
1613 (STRIP_NAME_ENCODING): New.
1614 (ASM_OUTPUT_LABELREF): New.
1615 (PRINT_OPERAND_PUNCT_VALID_P): Add #, *.
1616 (PREDICATE_CODES): Update.
1617 * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er,
1618 call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix,
1619 movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er,
1620 builtin_setjmp_receiver_er, exception_receiver_1_er,
1621 call_value_osf_1_er): New patterns.
1622 (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative.
1623 (movqi, movhi, movsi): Add explicit $31 base register to lda.
1624 * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs.
1625 (FINAL_PRESCAN_INSN): New.
1627 Sat Sep 8 22:00:55 CEST 2001 Jan Hubicka <jh@suse.cz>
1629 * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code.
1631 2001-09-08 Andreas Jaeger <aj@suse.de>
1633 * i386.h (TARGET_SWITCHES): Fix description.
1635 2001-09-07 David Edelsohn <edelsohn@gnu.org>
1637 * rs6000.c (num_insns_constant): Compute number of instructions
1640 * doc/install.texi: Explain AIX exception handling work-around.
1641 Update URL for AIX fixes.
1643 2001-09-07 Jim Wilson <wilson@redhat.com>
1645 * alias.c (clear_reg_alias_info): New.
1646 * flow.c (attempt_auto_inc): Call clear_reg_alias_info.
1647 * rtl.h (clear_reg_alias_info): Declare.
1649 2001-09-07 Roman Lechtchinsky <rl@cs.tu-berlin.de>
1651 * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is
1653 (UEMUSHORT): New. Use instead of unsigned EMUSHORT.
1654 (m16m,edivm,emulm): Change declaration to match definition.
1656 2001-09-07 Roman Lechtchinsky <rl@cs.tu-berlin.de>
1658 * reload.c (push_reload): Check for subreg_lowpart_p instead of
1659 SUBREG_BYTE being 0 when determining if the inner part of a subreg
1662 2001-09-07 Roman Lechtchinsky <rl@cs.tu-berlin.de>
1664 * c-common.c (signed_or_unsigned_type): Handle machine mode types
1665 which have no corresponding C type.
1666 * fold_const.c (target_isinf,target_isnan,target_negative): Update
1667 the representation of 64-bit doubles to work with 64-bit ints.
1669 2001-09-07 Aldy Hernandez <aldyh@redhat.com>
1671 * config/mips/mips.c (override_options): Do not override ISA when ABI
1672 specified if MIPS_CPU_STRING_DEFAULT was specified.
1674 2001-09-07 Richard Henderson <rth@redhat.com>
1676 * loop.c (record_giv): Avoid simplifying MULT to ASHIFT.
1677 (express_from_1): Wrap lines.
1678 * rtlanal.c (commutative_operand_precedence): Rename from
1679 operand_preference; export.
1680 * rtl.h: Declare it.
1681 * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling.
1682 (simplify_binary_operation): Invoke simplify_plus_minus on
1683 (CONST (PLUS ...)) as well.
1684 (struct simplify_plus_minus_op_data): New.
1685 (simplify_plus_minus_op_data_cmp): New.
1686 (simplify_plus_minus): Use them. Avoid infinite recursion with
1687 simplify_binary_operation wrt CONST.
1689 Fri Sep 7 11:52:30 2001 Kazu Hirata <kazu@hxi.com>
1691 * h8300-protos.h (general_operand_dst_push): Remove.
1692 * h8300.c (general_operand_dst_push): Likewise.
1693 * h8300.h (OK_FOR_T): Likewise.
1694 (EXTRA_CONSTRAINTS): Do not use OK_FOR_T.
1695 * h8300.md (pushqi_h8300): New.
1696 (pushqi_h8300hs): Likewise.
1698 (pushhi_h8300): Likewise.
1699 (pushhi_h8300hs): Likewise.
1702 Fri Sep 7 12:56:26 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1704 * genattrtab.c (attr_printf): First arg is unsigned.
1705 Clean up formatting of callers.
1707 2001-09-06 Aldy Hernandez <aldyh@redhat.com>
1709 * config/mips/mips.c (override_options): Allow abi32 with 64 bit
1712 2001-09-07 Andreas Jaeger <aj@suse.de>
1714 * i386.h (TARGET_SWITCHES): Fix descriptions.
1716 2001-09-07 Matt Kraai <kraai@alumni.carnegiemellon.edu>
1718 * stor-layout.c (compute_record_mode): Check DECL_SIZE is set.
1720 2001-09-06 Ira Ruben <ira@apple.com>
1722 Remove OP_IDENTIFIER.
1723 * tree.def (OP_IDENTIFIER): Remove.
1724 * tree.c (tree_node_kind enum): Remove op_id_kind.
1725 (tree_node_kind_names): Remove "op_identifiers".
1726 (make_node): Remove OP_IDENTIFIER test.
1727 (build_op_identifier): Removed because it isn't being used.
1728 * print-tree.c (print_node): Remove OP_IDENTIFIER case.
1729 * cp/pt.c (tsubst): Remove OP_IDENTIFIER case.
1731 2001-09-06 Richard Henderson <rth@redhat.com>
1733 * simplify-rtx.c (simplify_binary_operation): Revert last change.
1735 2001-09-06 Richard Henderson <rth@redhat.com>
1737 * simplify-rtx.c (simplify_binary_operation): Simplify contents
1740 2001-09-06 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
1742 * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
1743 number used for CR register.
1745 Thu Sep 6 11:16:35 2001 Jeffrey A Law (law@cygnus.com)
1746 Joern Rennecke (amylaar@cygnus.com)
1748 * h8300-protos.h (h8300_return_addr_rtx): New prototype.
1749 * h8300.c (initial_offset): Handle offset between RP and FP.
1750 (h8300_return_addr_rtx): New function.
1751 * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a
1753 (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes.
1754 (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise.
1755 (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise.
1756 (CAN_ELIMINATE, REGISTER_NAMES):
1757 (RETURN_ADDR_RTX): Call h8300_return_addr_rtx.
1759 2001-09-06 Nathan Sidwell <nathan@codesourcery.com>
1761 Remove TYPE_NONCOPIED_PARTS.
1762 * tree.h (TYPE_NONCOPIED_PARTS): Remove.
1763 (struct tree_type): Remove noncopied_parts.
1764 * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO.
1765 * expr.c (save_noncopied_parts, init_noncopied_parts): Remove.
1766 (fixed_type_p): Remove.
1767 (expand_expr, INIT_EXPR): Don't deal with noncopied parts.
1768 (expand_expr, MODIFY_EXPR): Likewise.
1769 * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS.
1770 * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME.
1772 2001-09-06 Alan Modra <amodra@bigpond.net.au>
1774 * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid
1776 (mask64_operand): Likewise.
1777 (includes_rldic_lshift_p): Likewise.
1778 (includes_rldicr_lshift_p): Likewise.
1780 2001-09-05 Ziemowit Laski <zlaski@apple.com>
1782 * objc/objc-act.c (build_message_expr): If a class method cannot
1783 be found, do not issue a warning if a corresponding instance
1784 method exists in the root class.
1786 2001-09-05 Richard Henderson <rth@redhat.com>
1788 * config/alpha/alpha.c (alpha_expand_mov): Initialize temp.
1790 2001-09-05 Zack Weinberg <zack@codesourcery.com>
1792 * function.c (ggc_mark_struct_function): Mark f->outer.
1793 * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here...
1794 * integrate.c (output_inline_function): ... not here.
1796 Wed Sep 5 17:28:49 CEST 2001 Jan Hubicka <jh@suse.cz>
1798 * profile.c (branch_prob): Call add_noreturn_fake_exit_edges.
1800 * i386.c (size_cost): New static variable.
1801 (override_function): Use size_cost when -Os is specified.
1803 * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue
1804 properly; Use current_function_calls_eh_return.
1805 (ix86_expand_epilogue): Avoid dummy optimize_size tests;
1806 use leave to avoid depdendancy chain.
1808 * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream;
1809 get BB loop_depth instead of computing it from LOOP notes.
1811 * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves.
1813 2001-09-05 John David Anglin <dave@hiauly1.hia.nrc.ca>
1815 * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1816 * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
1817 UNALIGNED_DOUBLE_INT_ASM_OP): Define
1819 2001-09-05 Jeffrey A Law (law@cygnus.com)
1820 Jason Merrill (jason@redhat.com)
1822 * stor-layout.c (layout_type): Complain if an array's size can
1823 not be represented in a size_t.
1825 * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define.
1827 2001-09-05 David Billinghurst <David.Billinghurst@riotinto.com>
1829 * gcc.c: (process_command) Add parentheses around assignment
1830 used as truth value.
1832 2001-09-05 Richard Sandiford <rsandifo@redhat.com>
1834 * config/mips/mips.c (save_restore_insns): Don't mark any register
1835 save slots as unchanging if current_function_calls_eh_return.
1837 2001-09-05 Richard Henderson <rth@redhat.com>
1839 * config/alpha/alpha.c (alpha_legitimate_address_p): New.
1840 * config/alpha/alpha-protos.h: Declare it.
1841 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file.
1842 (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro.
1843 (NONSTRICT_REG_OK_FP_BASE_P): Likewise.
1844 (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro.
1845 (REG_OK_FOR_BASE_P): Select one of the above.
1847 2001-09-05 Richard Sandiford <rsandifo@redhat.com>
1849 * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead.
1850 (crti.o): Prefix name of object file with $(T).
1853 2001-09-05 David S. Miller <davem@redhat.com>
1855 * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC.
1856 * config/sparc/linux64.h: Likewise.
1858 2001-09-05 Andreas Jaeger <aj@suse.de>
1860 * doc/invoke.texi (i386 Options): -mwide-multiply is not
1861 available anymore, remove the documentation.
1862 (i386 Options): Fix typo, cleanup index entries.
1864 * prefix.c (concat): Remove, we can use the version from liberty.
1866 2001-09-05 Richard Henderson <rth@redhat.com>
1868 * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx):
1869 New functions split out of md file expanders.
1870 * config/alpha/alpha-protos.h: Declare them.
1871 * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them.
1873 2001-09-05 Neil Booth <neil@daikokuya.demon.co.uk>
1875 * cppmacro.c (funlike_invocation_p): No need to restore context.
1877 2001-09-04 Richard Henderson <rth@redhat.com>
1879 * reload.c (push_reload): Export.
1880 * reload.h (push_reload): Declare it.
1882 * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line.
1883 (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
1884 * config/alpha/alpha.c (alpha_legitimize_address): New.
1885 (alpha_legitimize_reload_address): Likewise.
1886 * config/alpha/alpha-protos.h: Declare them.
1888 2001-09-04 Stan Shebs <shebs@apple.com>
1890 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define.
1891 * config/darwin.c (machopic_stub_name): Account for internally
1892 generated lib calls such as memcpy.
1894 2001-09-04 Richard Henderson <rth@redhat.com>
1896 * unwind.h (_UA_END_OF_STACK): New flag.
1897 * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it.
1899 Tue Sep 4 11:16:35 2001 Jeffrey A Law (law@cygnus.com)
1901 * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8.
1903 2001-09-04 Richard Sandiford <rsandifo@redhat.com>
1905 * config/mips/mips.c (save_restore_insns): Change base_offset to
1906 fp_offset in second call to mips_emit_frame_related_store.
1908 2001-09-04 Hans-Peter Nilsson <hp@axis.com>
1910 * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can
1911 sometimes be represented as a NOTE of type
1912 NOTE_INSN_DELETED_LABEL.
1913 (Insns): Document NOTE_INSN_DELETED_LABEL.
1915 2001-09-04 Nathan Sidwell <nathan@codesourcery.com>
1917 * c-common.h (tree_dump_index): Add more comments.
1918 * c-dump.c (dump_files): Name flags `tree' rather than `ast'.
1919 (dump_option_value_info): New struct.
1920 (dump_options): New array.
1921 (dump_switch_p): Parse switch options symbolically.
1922 * doc/invoke.texi (-fdump-ast): Rename to ...
1923 (-fdump-tree): ... here. Document that options are symbolic, and
1924 not all are applicable.
1926 2001-09-04 David S. Miller <davem@redhat.com>
1928 * config/sparc/sparc.md (define_splits): Kill constraints.
1930 Cleanup redundant and unused insn attributes.
1931 * config/sparc/sparc.md (define_attr "insn"): Kill address, unary,
1932 binary, and move. Mark ialu as default.
1933 (commented out define_function_unit "alu"): Kill.
1934 (define_attr "use_clobbered"): Kill.
1935 (whole file): Kill address insn type references. Replace
1936 all unary/binary/move references with ialu.
1937 * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS
1938 references. Replace TYPE_{UNARY,BINARY,MOVE} references with
1941 Simplify length insn attribute and make more judicious use
1942 of insn attribute defaulting.
1943 * config/sparc/sparc.md (all insns with length > one): Mark as
1944 insn type multi if real instructions, else use default if
1945 it is a forced splitter.
1946 (all insns with length == one): Use default insn length.
1947 (all insns of type ialu): Use default insn type.
1949 Fix erroneous insn attribute settings.
1950 (addx): Set insn type to misc.
1951 (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64,
1952 const_umulsidi3_sp64): Set insn type to imul.
1954 Track SFmode vs DFmode insns according to UltraSPARC
1956 * config/sparc/sparc.md ("fptype"): New attribute, default
1958 (all DFmode single insns): Mark as fptype "double".
1960 2001-09-03 Jakub Jelinek <jakub@redhat.com>
1962 * loop.c (express_from_1): Fix CONSTANT_P(a) case.
1964 2001-09-03 Richard Henderson <rth@redhat.com>
1966 * function.h (struct function): Add arg_pointer_save_area_init.
1967 * function.c (expand_function_end): Init arg_pointer_save_area.
1968 (get_arg_pointer_save_area): Do not init arg_pointer_save_area
1969 when called from a nested function.
1971 2001-09-02 Angela Marie Thomas <angela@cygnus.com>
1973 * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode
1976 Sun Sep 2 18:37:54 CEST 2001 Jan Hubicka <jh@suse.cz>
1978 * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence.
1980 2001-09-01 Geoffrey Keating <geoffk@redhat.com>
1982 * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD.
1983 (emit_push_insn): Use specified padding direction when
1984 STACK_PUSH_CODE is POST_INC.
1986 * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0.
1988 2001-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1990 * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'.
1992 2001-09-01 Neil Booth <neil@daikokuya.demon.co.uk>
1994 * cppinit.c (cpp_start_read): Free the imacros list as we
1995 traverse it. Don't free the chains before returning.
1996 (_cpp_push_next_buffer): Only try pushing buffers if we've
1997 completed -imacros handling.
1999 2001-08-31 Eric Christopher <echristo@redhat.com>
2001 * gcc.c (handle_braces): Add explaination for abort.
2003 2001-08-30 Roman Zippel <zippel@linux-m68k.org>
2005 * expmed.c (store_bit_field): Update to patch from 2001-08-27:
2006 move adjustment of bitpos instead.
2008 2001-08-31 Zack Weinberg <zack@codesourcery.com>
2010 * function.c: Remove all_functions. Make outer_function_chain
2012 (init_function_start): Don't add new function structure to
2014 (find_function_data, push_function_context_to,
2015 pop_function_context_from, put_var_into_stack,
2016 trampoline_address): Update for changed structure element names.
2017 (push_function_context_to): Disentangle.
2018 (free_after_compilation): Also free F.
2019 (expand_dummy_function_end): Don't free cfun here.
2020 (put_var_into_stack): Comment why we can't use find_function_data here.
2021 (fix_lexical_addr, trampoline_address, ): Use find_function_data.
2022 (mark_function_chain): Split into maybe_mark_struct_function and
2023 ggc_mark_struct_function. Export the latter.
2024 (init_function_once): Mark from cfun and outer_function_chain;
2027 * function.h (struct function): Kill next_global. Rename next
2028 to outer. All users updated to match.
2029 (all_functions, outer_function_chain): Don't declare.
2031 * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS.
2032 * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS,
2033 don't touch f->inlinable, after calling rest_of_compilation.
2035 * tree.h: Forward-declare struct function. Prototype
2036 ggc_mark_struct_function.
2038 2001-08-31 Kazu Hirata <kazu@hxi.com>
2040 * config/h8300/h8300.md (*andorhi3): Fix typos.
2042 2001-08-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2044 * calls.c (emit_library_call_value): Don't use a fixed
2045 argument after VA_CLOSE, i.e. out of scope in traditional C.
2047 * emit-rtl.c (gen_rtvec): Likewise.
2049 2001-08-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2051 * Makefile.in (c-pragma.o): Depend on output.h.
2052 (reorg.o): Depend on except.h.
2054 * c-pragma.c: Include output.h.
2056 * reorg.c: Include except.h.
2058 * unwind-dw2.c: Call __builtin_alloca, not alloca.
2060 2001-08-31 Richard Henderson <rth@redhat.com>
2062 * sched-deps.c (add_dependence): Don't elide dependancy if the
2063 conditional used by insn is modified in elem.
2065 2001-08-31 Nick Clifton <nickc@cambridge.redhat.com>
2067 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define.
2069 2001-08-31 Diego Novillo <dnovillo@redhat.com>
2071 * c-decl.c (c_decode_option): Skip '-f' prefix before calling
2074 2001-08-31 Geoffrey Keating <geoffk@redhat.com>
2076 * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New
2078 (stormy16_asm_out_constructor): New function.
2079 (TARGET_ASM_CONSTRUCTOR): Define.
2080 (TARGET_ASM_DESTRUCTOR): Define.
2082 2001-08-31 Andreas Jaeger <aj@suse.de>
2084 * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
2085 * loop.c (add_label_notes): Likewise.
2086 * reload.c (find_reloads): Likewise.
2087 * config/sh/sh.c (machine_dependent_reorg): Likewise.
2089 2001-08-31 Jason Merrill <jason_merrill@redhat.com>
2091 * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading
2092 code here. Take _Unwind_{W,Sw}ord*.
2093 (read_encoded_value_with_base): Use them.
2094 * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg
2096 (extract_cie_info): Simplify read_?leb128 handling.
2097 (execute_stack_op, execute_cfa_program): Likewise.
2098 * unwind-dw2-fde.c (get_cie_encoding): Likewise.
2100 2001-08-31 Geoffrey Keating <geoffk@redhat.com>
2102 * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use
2103 the frame pointer to pop the stack if convenient.
2105 * config/stormy16/stormy16.c (stormy16_initialize_trampoline):
2106 Don't use post-increment before combine.
2107 * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use
2108 a call-saved register.
2110 2001-08-31 Andreas Jaeger <aj@suse.de>
2112 * jump.c (mark_jump_label): Revert patch from 2001-08-28, the
2115 2001-08-30 Geoffrey Keating <geoffk@redhat.com>
2117 * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD,
2118 not DIV/MOD, of course.
2120 2001-08-30 Vladimir Makarov <vmakarov@redhat.com>
2122 * rtl.def: Undo my patch commited 2001-08-27.
2124 * genattrtab.c: Ditto.
2128 * sched-int.h: Ditto.
2130 * target-def.h: Ditto.
2134 * haifa-sched.c: Ditto.
2136 * sched-rgn.c: Ditto.
2138 * sched-vis.c: Ditto.
2140 * Makefile.in: Ditto.
2142 * doc/md.texi: Ditto.
2144 * doc/tm.texi: Ditto.
2146 * doc/contrib.texi: Ditto.
2148 * doc/gcc.texi: Ditto.
2150 * genattrtab.h: Remove it.
2152 * genautomata.c: Remove it.
2154 * genattr.c: Undo my patch and Richard Henderson's patch commited
2157 Thu Aug 30 19:22:15 2001 J"orn Rennecke <amylaar@redhat.com>
2159 * config.gcc (h8300-*-elf*): New case.
2160 * h8300.h (CPP_SPEC): Add subtarget_cpp_spec.
2161 (SUBTARGET_CPP_SPEC): Define.
2162 (EXTRA_SPECS): Define.
2163 (SUBTARGET_EXTRA_SPECS): Define.
2164 * config/h8300/crti.asm, config/h8300/crtn.asm: New files.
2165 * config/h8300/elf.h, config/h8300/t-elf: Likewise.
2167 Thu Aug 30 18:50:37 2001 J"orn Rennecke <amylaar@redhat.com>
2169 * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm.
2170 (LIB2FUNCS_EXTRA): Define.
2171 config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm .
2172 config/h8300/fixunssfsi.c: New file.
2174 2001-08-30 Kazu Hirata <kazu@hxi.com>
2176 * config/h8300/h8300.md (zero_extendqihi2): Changes to
2177 define_expand to accomodate target-specific attributes.
2178 (anonymous zero_extendqihi2 patterns): New.
2180 Thu Aug 30 18:10:56 2001 J"orn Rennecke <amylaar@redhat.com>
2182 * h8300.md (*andorhi3): New pattern.
2184 Thu Aug 30 16:00:31 2001 J"orn Rennecke <amylaar@redhat.com>
2186 * h8300.c (dosize): Fix test for "sub".
2188 Thu Aug 30 10:21:43 2001 J"orn Rennecke <amylaar@redhat.com>
2190 * c-typeck.c (pointer_diff): Try to eliminate common term before
2193 2001-08-30 Nick Clifton <nickc@cambridge.redhat.com>
2195 * config/arm/arm.c (arm_compute_initial_elimination_offset):
2196 Account for the saves of the FP registers.
2198 * config/arm/unknown-elf.h (TEXT_SECTION): Delete.
2199 (TEXT_SECTION_ASM_OP): Define.
2200 (INIT_SECTION_ASM_OP): Define.
2201 (FINI_SECTION_ASM_OP): Define.
2202 (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma.
2203 (RDATA_SECTION_FUNCITON): Provide prototype.
2205 2001-08-29 Geoffrey Keating <geoffk@redhat.com>
2207 * reload1.c (move2add_note_store): Correct typo checking for
2210 2001-08-29 Andrew MacLeod <amacleod@redhat.com>
2212 * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL
2213 note should not be considered outside the libcall block.
2215 2001-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2217 * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE.
2219 2001-08-29 Kazu Hirata <kazu@hxi.com>
2221 * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe.
2223 2001-08-29 Kazu Hirata <kazu@hxi.com>
2225 * config/h8300/h8300-protos.h: Add a prototype for
2227 * config/h8300/h8300.c (emit_logical_op): New.
2228 * config/h8300/h8300.md (andhi3): Use emit_logical_op.
2235 2001-08-29 John David Anglin <dave@hiauly1.hia.nrc.ca>
2237 * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for
2238 comparison with rtx INTVAL.
2239 (pa_output_function_prologue): Don't mix signed and unsigned in `?'
2241 * pa.h (FUNCTION_ARG_SIZE): Likewise.
2243 2001-08-29 Kazu Hirata <kazu@hxi.com>
2245 * config/h8300/lib1funcs.asm: Update the copyright. Fix
2248 2001-08-29 Kazu Hirata <kazu@hxi.com>
2250 * config/h8300/h8300.md (anonymous movhi pattern): Don't move
2251 (reg n) to (mem (pre_dec (reg n))
2252 (anonymous movsi pattern): Likewise.
2254 2001-08-29 Kazu Hirata <kazu@hxi.com>
2256 * config/h8300/h8300.h (RETURN_ADDR_RTX): New.
2258 2001-08-29 Kazu Hirata <kazu@hxi.com>
2260 * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of
2261 several special constants.
2263 2001-08-29 Kazu Hirata <kazu@hxi.com>
2265 * config/h8300/lib1funcs.asm: Fix comment typos.
2267 2001-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2269 * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT):
2270 Fix format specifier warnings.
2272 * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof,
2273 inet_makeaddr, semctl): Prototype.
2275 * mips.c (compute_frame_size): Fix signed/unsigned warnings.
2276 (save_restore_insns): Use base_offset, not gp_offset.
2278 * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning.
2279 (ASM_OUTPUT_BYTE): Fix format specifier warning.
2281 2001-08-29 Richard Henderson <rth@redhat.com>
2283 * bb-reorder.c (function_tail_eff_head): New.
2284 (record_effective_endpoints): Set it.
2285 (fixup_reorder_chain): Use it.
2287 2001-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2289 * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change.
2291 2001-08-28 Dale Johannesen <dalej@apple.com>
2293 * config/darwin.c (machopic_function_base_name): Add const
2294 qualifier to a string.
2295 (darwin_encode_section_info): Ditto.
2297 2001-08-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2299 * tree.c (default_valid_attribute_p): Don't use PARAMS on a
2300 function definition.
2302 2001-08-28 Daniel Berlin <dan@cgsoftware.com>
2304 * df.h (struct df): Add rts_order variable.
2306 * df.c (df_visit_next_rts): New function.
2307 (df_visit_next): Renamed to df_visit_next_rc
2308 (df_analyse_1): Allocate/compute/free rts_order as well.
2309 (df_rd_global_compute): Use df_visit_next_rc instead of
2311 (df_ru_global_compute): Use df_visit_next_rts instead of
2314 * flow.c (flow_reverse_top_sort_order_compute): New function.
2316 * basic-block.h: Add prototype.
2318 2001-08-28 Daniel Berlin <dan@cgsoftware.com>
2320 * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable
2321 blocks, the BB_REACHABLE is now set, rather than aux being
2322 non-NULL. Update the test to reflect this.
2324 2001-08-28 Eric Christopher <echristo@redhat.com>
2326 * config/mips/crtn.asm: Add comment explaining 16 byte alignment.
2327 config/mips/crti.asm: Ditto.
2329 2001-08-28 Eric Christopher <echristo@redhat.com>
2330 Richard Henderson <rth@redhat.com>
2332 * c-pragma.h (add_weak): Move prototype from here...
2333 * output.h (add_weak): ... to here.
2334 * varasm.c (add_weak): Fix typo.
2335 * config/mips/crti.asm: New file.
2336 * config/mips/crtn.asm: Ditto.
2337 * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef.
2338 (CTOR_LISTS_DEFINED_EXTERNALLY): Remove.
2339 (INVOKE__main): Ditto.
2340 (INIT_SECTION_ASM_OP): New.
2341 (FINI_SECTION_ASM_OP): Ditto.
2342 (STARTFILE_SPEC): Add crti.
2343 (ENDFILE_SPEC): Add crtn.
2344 * config/mips/elf64.h: Same.
2345 * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN):
2347 * config/mips/vxworks.h: Ditto.
2348 * config/mips/t-elf: Support crti and crtn.
2350 2001-08-28 Alexandre Oliva <aoliva@redhat.com>
2352 * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not
2355 2001-08-28 Richard Henderson <rth@redhat.com>
2357 * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos.
2358 (one_cmplbi2 splitter): Remove redundant test.
2360 2001-08-28 Dale Johannesen <dalej@apple.com>
2362 * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define.
2364 2001-08-28 Danny Smith <dannysmith@users.sourceforge.net>
2366 * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64.
2368 2001-08-28 Stan Shebs <shebs@apple.com>
2370 * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names.
2371 (UNALIGNED_SHORT_ASM_OP): Define.
2372 (UNALIGNED_INT_ASM_OP): Define.
2374 2001-08-28 Will Cohen <wcohen@redhat.com>
2376 * config/rs6000/rs6000.md (store_multiple): Correct RTL
2377 generation for first set.
2379 2001-08-27 Roman Zippel <zippel@linux-m68k.org>
2381 * flow.c (redirect_edge_succ_nodup): Return new edge.
2382 (try_simplify_condjump): Use new edge.
2383 * basic-block.h (redirect_edge_succ_nodup): Update prototype.
2385 * cse.c (cse_basic_block): Skip note instructions.
2387 2001-08-27 Richard Henderson <rth@redhat.com>
2389 * combine.c (combine_simplify_rtx): Don't reverse condition
2390 if there is no reverse for the condition.
2391 (simplify_comparison): Don't simplify subregs from INT to FP.
2393 * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1,
2394 suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1,
2395 sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
2396 bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt,
2397 bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev,
2398 bunle_rev, bunlt_rev, bltgt_rev): New patterns.
2400 2001-08-27 Roman Zippel <zippel@linux-m68k.org>
2402 * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi,
2403 bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset.
2405 (adddi_dilshr32, adddi_dishl32): Only data register can be
2406 source for mem destination.
2408 * expmed.c (store_bit_field): Ignore adjustment to bitpos
2409 and use bitnum to decide about register move.
2411 2001-08-27 Richard Henderson <rth@redhat.com>
2413 * genattr.c (main): Emit state_t even when not doing scheduling.
2415 2001-08-27 Roman Zippel <zippel@linux-m68k.org>
2416 Richard Henderson <rth@redhat.com>
2418 * gcse.c (reg_first_set, reg_last_set): Replace with ...
2419 (reg_avail_info, current_bb): ... these.
2420 (oprs_unchanged_p, record_last_reg_set_info): Use them.
2421 (compute_hash_table): Likewise.
2423 2001-08-27 Roman Zippel <zippel@linux-m68k.org>
2425 * flow.c (verify_flow_info): Use checksums to verify edges.
2427 2001-08-27 Richard Henderson <rth@redhat.com>
2429 * genautomata.c (expand_automata): Always create a description.
2431 2001-08-27 Geoffrey Keating <geoffk@redhat.com>
2433 * optabs.c (expand_binop): Correctly handle the carry in multiword
2434 add/subtract operations.
2436 2001-08-27 Fred Fish <fnf@be.com>
2438 * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be
2441 2001-08-27 Geoffrey Keating <geoffk@redhat.com>
2443 * reload.c (find_reloads_toplev): Back out this change:
2445 Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson <hp@axis.com>
2447 * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
2448 mem if the address is a mode_dependent_address_p.
2450 2001-08-27 Vladimir Makarov <vmakarov@touchme.toronto.redhat.com>
2452 * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
2453 PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
2454 AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
2457 * genattr.c (main): New variable num_insn_reservations. Increase
2458 it if there is DEFINE_INSN_RESERVATION. Output automaton based
2459 pipeline hazard recognizer interface.
2461 * genattrtab.h: New file.
2463 * genattrtab.c: Include genattrtab.h.
2464 (attr_printf, check_attr_test, make_internal_attr,
2465 make_numeric_value): Move protypes into genattrtab.h. Define them
2467 (num_dfa_decls): New global variable.
2468 (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT,
2469 DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET,
2470 DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION,
2471 DEFINE_INSN_RESERVATION. Call expand_automata and write_automata.
2473 * genautomata.c: New file.
2475 * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
2477 * sched-int.h: (curr_state): Add the external definition for
2478 automaton pipeline interface.
2479 (haifa_insn_data): Add comments for members blockage and units.
2481 * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
2482 TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
2483 TARGET_SCHED_DFA_PRE_CYCLE_INSN,
2484 TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
2485 TARGET_SCHED_DFA_POST_CYCLE_INSN,
2486 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
2487 TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New
2489 (TARGET_SCHED): Use the new macros.
2491 * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn,
2492 dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn,
2493 first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
2494 dfa_bubble): New members in gcc_target.sched.
2496 * haifa-sched.c (insert_schedule_bubbles_p): New variable.
2497 (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
2498 (insn_queue): Redefine it as pointer to array.
2499 (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
2501 (max_insn_queue_index_macro_value): New variable.
2502 (curr_state, dfa_state_size, ready_try): New varaibles for
2503 automaton interface.
2504 (ready_element, ready_remove, max_issue): New function prototypes
2505 for automaton interface.
2506 (choose_ready): New function prototype.
2507 (insn_unit, blockage_range): Add comments.
2508 (unit_last_insn, unit_tick, unit_n_insns): Define them for case
2509 FUNCTION_UNITS_SIZE == 0.
2510 (insn_issue_delay, actual_hazard_this_instance, schedule_unit,
2511 actual_hazard, potential_hazard): Add comments.
2512 (insn_cost): Use cost -1 as undefined value. Remove
2513 LINK_COST_ZERO and LINK_COST_FREE. Add new code for automaton
2515 (ready_element, ready_remove): New functions for automaton
2517 (schedule_insn): Add new code for automaton pipeline interface.
2518 (queue_to_ready): Add new code for automaton pipeline interface.
2519 Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE.
2520 (debug_ready_list): Print newline when the queue is empty.
2521 (max_issue): New function for automaton pipeline interface.
2522 (choose_ready): New function.
2523 (schedule_block): Add new code for automaton pipeline interface.
2524 Print ready list before scheduling each insn.
2525 (sched_init): Add new code for automaton pipeline interface.
2526 Initiate insn cost by -1.
2527 (sched_finish): Free the current automaton state and finalize
2528 automaton pipeline interface.
2530 * sched-rgn.c: Include target.h.
2531 (init_ready_list, new_ready, debug_dependencies): Add new code for
2532 automaton pipeline interface.
2534 * sched-vis.c: Include target.h.
2535 (get_visual_tbl_length): Add code for automaton interface.
2536 (target_units, print_block_visualization): Add comments.
2538 * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
2539 USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
2540 (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
2541 (getruntime.o, genautomata.o): New entries.
2542 (genattrtab.o): Add new dependency file genattrtab.h.
2543 (genattrtab): Add new dependencies. Link it with `libm.a'.
2544 (getruntime.o, hashtab.o): New entries for canadian cross.
2546 * doc/md.texi: Description of automaton based model.
2548 * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST):
2550 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
2551 TARGET_SCHED_DFA_PRE_CYCLE_INSN,
2552 TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
2553 TARGET_SCHED_DFA_POST_CYCLE_INSN,
2554 TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN,
2555 TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
2556 TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new
2558 (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE,
2559 MAX_DFA_ISSUE_RATE): New macro descriptions.
2561 * doc/contrib.texi: Add dfa based scheduler contribution.
2563 * doc/gcc.texi: Add more information about genattrtab.
2565 2001-08-27 Diego Novillo <dnovillo@redhat.com>
2567 * flow.c (flow_loop_dump): Do not display insn UIDs if this is not
2570 2001-08-27 Richard Henderson <rth@redhat.com>
2572 * function.c (expand_function_end): Don't init arg_pointer_save_area.
2573 (get_arg_pointer_save_area): New. Create an init it here.
2574 (fix_lexical_addr): Use it.
2575 * function.h: Declare it.
2576 * builtins.c (expand_builtin_setjmp_receiver): Use it.
2577 * stmt.c (expand_nl_goto_receiver): Use it.
2579 2001-08-27 Richard Henderson <rth@redhat.com>
2581 * final.c (final_scan_insn): Don't enter APP_ON mode for
2584 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper
2585 alignment for assemble_integer for DW_EH_PE_aligned.
2586 * except.c (output_function_exception_table): Likewise.
2588 2001-08-26 Andreas Jaeger <aj@suse.de>
2590 * c-tree.h: Add prototyp for c_sizeof_nowarn.
2592 2001-08-25 Dan Nicolaescu <dann@ics.uci.edu>
2594 * ssa-ccp.c (ssa_const_prop): Free ssa_edges.
2596 2001-08-27 Alan Modra <amodra@bigpond.net.au>
2598 * config/rs6000/rs6000.c (mask_operand): Rewrite without
2600 (mask64_operand): Likewise.
2601 (rldic_operand): Delete.
2602 (includes_lshift64_p): Delete.
2603 (includes_rldic_lshift_p): New function.
2604 (includes_rldicr_lshift_p): New function.
2605 (print_operand): Don't call rldic_operand in case 'W'.
2606 * config/rs6000/rs6000-protos.h (rldic_operand): Remove.
2607 (includes_lshift64_p): Remove.
2608 (includes_rldic_lshift_p): Declare.
2609 (includes_rldicr_lshift_p): Declare.
2610 * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand.
2611 * config/rs6000/rs6000.md <ashldi3_internal 64 bit patterns>:
2612 Replace match_operand rldic_operand predicate with
2613 const_int_operand. Replace includes_lshift64_p condition with
2614 includes_rldic_lshift_p.
2615 <ashldi3_internal 64 bit rldicr patterns>: New.
2617 2001-08-27 Andreas Jaeger <aj@suse.de>
2619 * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
2620 * errors.c: Likewise.
2621 * final.c: Likewise.
2622 * dwarf2asm.c: Likewise.
2623 * doprint.c (checkit): Likewise.
2624 * diagnostic.c: Likewise.
2625 * collect2.c: Likewise.
2626 * calls.c: Likewise.
2627 * c-semantics.c (build_stmt): Likewise.
2628 * c-format.c (status_warning): Likewise.
2629 * c-errors.c (pedwarn_c99): Likewise.
2630 * builtins.c (validate_arglist): Likewise.
2631 * config/pj/pj.c (pj_printf): Likewise.
2632 * fix-header.c: Likewise.
2634 * gcov.c (fnotice): Likewise.
2635 * gensupport.c (message_with_line): Likewise.
2636 * mips-tfile.c: Likewise.
2637 * protoize.c (notice): Likewise.
2638 * read-rtl.c (fatal_with_file_and_line): Likewise.
2639 * rtl-error.c: Likewise.
2640 * tradcpp.c: Likewise.
2642 * cp/tree.c (build_min_nt): Likewise.
2643 (build_min): Likewise.
2644 * cp/lex.c: Likewise.
2645 * cp/errfn.c: Likewise.
2646 * cp/rtti.c (create_pseudo_type_info): Likewise.
2648 Sun Aug 26 20:25:44 2001 Denis Chertykov <denisc@overta.ru>
2650 * df.c (df_uses_record): Return after recording all uses
2653 2001-08-26 Daniel Berlin <dan@cgsoftware.com>
2655 * df.c (df_insn_modify): Realloc the INSN table here, if
2656 necessary, here, too.
2658 2001-08-26 Aldy Hernandez <aldyh@redhat.com>
2660 * config/mips/mips.c (mips_function_value): Handle complex return
2663 2001-08-25 Hans-Peter Nilsson <hp@bitrange.com>
2665 * reload1.c (reload): Make all entries in reg_equiv_memory_loc
2667 * reload.c (make_memloc): Copy result if it is still
2668 reg_equiv_memory_loc[regno] on return.
2669 (subst_reloads) [ENABLE_CHECKING]: Check that none of
2670 reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and
2671 reg_equiv_mem are modified by the substitutions.
2673 Sat Aug 25 23:07:35 CEST 2001 Jan Hubicka <jh@suse.cz>
2675 * predict.c (expensive_function_p): New.
2676 * rtl.h (expensive_function_p): Declare.
2677 * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant.
2678 (use_fast_prologue_epilogue): New static variable.
2679 (expand_prologue): Set it; emit short prologues if unset.
2680 (expand_epilogue): Likewise.
2682 2001-08-22 Geoffrey Keating <geoffk@redhat.com>
2684 * config.gcc: Add stormy16-*-elf case.
2685 * config/stormy16/stormy-abi: New file.
2686 * config/stormy16/stormy16-lib2.c: New file.
2687 * config/stormy16/stormy16-protos.h: New file.
2688 * config/stormy16/stormy16.c: New file.
2689 * config/stormy16/stormy16.h: New file.
2690 * config/stormy16/stormy16.md: New file.
2691 * config/stormy16/t-stormy16: New file.
2693 Sat Aug 25 15:46:51 CEST 2001 Jan Hubicka <jh@suse.cz>
2695 * i386.h (no-accumulate-outgoing-args): Use proper mask.
2697 2001-08-24 David Edelsohn <edelsohn@gnu.org>
2699 * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function
2700 descriptor members are pointer size, not constant 4.
2701 * config/rs6000/rs6000.md (define_splits): Remove more unused
2704 2001-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2706 * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning.
2708 2001-08-24 Andreas Jaeger <aj@suse.de>, rkl@connect.org.uk
2710 * cp/rtti.c (VPARAMS): Fix parameter.
2712 2001-08-24 Zack Weinberg <zackw@panix.com>
2714 * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv
2716 (mode_for_extraction): No need for #ifdefs. Add default-case abort
2718 (store_bit_field): Eliminate insv_bitsize variable. Put HAVE_insv
2719 in if controlling use of insv.
2720 (extract_bit_field): Likewise, for extv and extzv.
2722 Fri Aug 24 17:27:46 CEST 2001 Jan Hubicka <jh@suse.cz>
2724 * i386.md (movcc peep2): Fix load of 0.
2726 2001-08-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2728 * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR,
2729 *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR.
2731 2001-08-23 Jason Merrill <jason_merrill@redhat.com>
2733 * c-pragma.h: Move weak_syms and weak_decls...
2734 * varasm.c: ...here. Now static.
2735 (declare_weak, weak_finish, remove_from_pending_weak_list): Don't
2736 depend on HANDLE_PRAGMA_WEAK.
2738 * c-common.c (c_alignof, c_alignof_expr): Move here...
2739 * c-typeck.c: ...from here.
2740 * c-tree.h, c-common.h: Adjust.
2742 2001-08-23 Bernd Schmidt <bernds@redhat.com>
2744 * config/ia64/ia64.c (rws_update): If !pred, set write_count
2745 instead of incrementing it.
2747 * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one
2748 asm ready, don't try to move them all into the same array element.
2750 Thu Aug 23 17:21:43 CEST 2001 Jan Hubicka <jh@suse.cz>
2752 * function.c (thread_prologue_and_epilogue_insns): Avoid
2753 fallthru flag on edge to exit.
2755 * i386.md (trunc?fsi splitter): Conditionionize for non-sse.
2757 * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge
2760 2001-08-23 Lars Brinkhoff <lars@nocrew.org>
2762 * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove.
2763 * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise.
2764 * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx):
2767 2001-08-23 Lars Brinkhoff <lars@nocrew.org>
2769 * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h:
2770 replace "GNU CC" with "GCC".
2772 2001-08-23 Richard Henderson <rth@redhat.com>
2774 * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt.
2775 Reorganize. Handle ADDL like GR, add GR_AND_BR. Handle TFmode.
2776 (ia64_secondary_reload_class): Need GR between AR/BR and anything.
2777 Need GR between FR and not GR_AND_FR.
2778 * config/ia64/ia64-protos.h (ia64_register_move_cost): Update.
2779 * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move
2780 AR regs before GR regs.
2781 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
2782 (PREFERRED_RELOAD_CLASS): Tweak for reordered classes.
2783 (REGISTER_MOVE_COST): Update.
2784 (MEMORY_MOVE_COST): Add GR_AND_FR_REGS.
2786 2001-08-23 Richard Henderson <rth@redhat.com>
2788 * regclass.c (init_reg_sets_1): Don't assume cost 2 within
2791 2001-08-22 Geoffrey Keating <geoffk@redhat.com>
2793 * reload1.c (emit_reload_insns): Don't look for notes
2794 on a NULL store_insn.
2796 2001-08-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2798 * sparc.c (uns_small_int): Don't reference a constant >32-bit.
2799 (addrs_ok_for_ldd_peep): Fix signed/unsigned warning.
2800 (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix
2801 format specifier warnings.
2802 (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED.
2804 2001-08-22 David Billinghurst <David.Billinghurst@riotinto.com>
2806 * config/i386/i386-protos.h: Correct declaration of
2807 i386_pe_asm_named_section.
2809 2001-08-22 John David Anglin <dave@hiauly1.hia.nrc.ca>
2811 * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for
2813 * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
2815 2001-08-22 Neil Booth <neil@daikokuya.demon.co.uk>
2817 * cpperror.c (print_location): Don't show _Pragma.
2818 * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing
2819 and file change callback generation here.
2820 (stack_include_file): Update use of cpp_push_buffer.
2821 * cpphash.h (_cpp_pop_file_buffer): Update prototype.
2822 (struct cpp_buffer): Remove type, pfile members.
2823 * cppinit.c (cpp_handle_option): Use free_chain.
2824 * cpplex.c (_cpp_lex_token): Don't do -include file pushing here.
2825 (skip_escaped_newlines, get_effective_char, lex_percent): Take
2826 a cpp_reader rather than a cpp_buffer.
2827 (skip_escaped_newlines, get_effective_char, skip_block_comment,
2828 skip_line_comment, parse_string, lex_percent, lex_dot,
2829 _cpp_lex_token): Update accordingly.
2830 * cpplib.c (_cpp_pop_buffer): Don't do file change callback
2832 (cpp_push_buffer): Update prototype.
2833 (run_directive): Update use of cpp_push_buffer.
2834 (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef,
2835 handle_assertion): Update use of run_directive.
2836 * cpplib.h (enum cpp_buffer_type): Remove.
2837 (cpp_push_buffer): Update prototype.
2838 * fix-header.c (read_scan_file): Update.
2840 2001-08-22 Matt Kraai <kraai@alumni.carnegiemellon.edu>
2842 * gcc.c (struct prefix_list): Change prefix to const char *.
2844 2001-08-22 Matt Kraai <kraai@alumni.carnegiemellon.edu>
2846 * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn.
2848 2001-08-22 Jason Merrill <jason_merrill@redhat.com>
2850 * explow.c (set_mem_attributes): Avoid returning a bogus alias set
2853 * jump.c (squeeze_notes): Take parms by reference. Handle END being
2856 * ifcvt.c (dead_or_predicable): Adjust.
2857 * loop.c (find_and_verify_loops): Adjust.
2858 * stmt.c (expand_end_case): Adjust.
2859 * flow.c (merge_blocks_move_successor_nojumps): Adjust. Modify the
2860 head and end insn pointers in the basic block, not just local copies.
2861 (merge_blocks_move_predecessor_nojumps): Likewise.
2863 2001-08-22 Lars Brinkhoff <lars@nocrew.org>
2865 * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
2866 bitmap.h, builtin-types.def, builtins.c, builtins.def,
2867 c-aux-info.c, c-common.c, c-common.def, c-common.h,
2868 c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
2869 c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
2870 c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
2871 caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
2872 conditions.h, config.gcc, configure.frag, configure.in,
2873 conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
2874 cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
2875 dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
2876 doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
2877 dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
2878 emit-rtl.c, errors.c, errors.h, except.c, except.h,
2879 exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
2880 fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
2881 function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
2882 gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
2883 gencheck.c, gencodes.c, genconfig.c, genemit.c,
2884 genextract.c, genflags.c, gengenrtl.c, genmultilib,
2885 genopinit.c, genoutput.c, genpeep.c, genrecog.c,
2886 gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
2887 ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
2888 graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
2889 gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
2890 gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
2891 hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
2892 integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
2893 libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
2894 machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
2895 mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
2896 mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
2897 params.h, predict.c, predict.def, predict.h, prefix.c,
2898 prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
2899 read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
2900 regclass.c, regmove.c, regrename.c, regs.h, reload.c,
2901 reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
2902 rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
2903 sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
2904 sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
2905 ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
2906 stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
2907 tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
2908 tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
2909 unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
2910 unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
2911 xcoffout.h: replace "GNU CC" with "GCC".
2913 2001-08-21 Richard Henderson <rth@redhat.com>
2915 * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.
2916 (final_scan_insn): Consider jump tables data even if we have no
2917 independant text section if !JUMP_TABLES_IN_TEXT_SECTION. Use
2919 * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove.
2920 (ASM_OUTPUT_CASE_END): Remove.
2921 (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references.
2922 * config/ia64/ia64.md (tablejump): Decode pc-relative references.
2923 * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
2925 2001-08-21 Richard Henderson <rth@redhat.com>
2927 * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state
2928 at barrier insns. Emit stop bits before barriers.
2930 * flow.c (flow_find_cross_jump): Don't consider unconditional
2931 return insns for commoning.
2933 * final.c (compute_alignments): Fix typo.
2935 * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults.
2936 (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise.
2937 (store_bit_field): Use mode_for_extraction more places.
2938 (extract_bit_field): Likewise.
2940 2001-08-21 Zack Weinberg <zackw@panix.com>
2942 * caller-save.c: Don't include insn-codes.h.
2943 (reg_save_code, reg_restore_code): Make arrays of int.
2944 All uses updated to match.
2945 (insert_save, insert_restore): No need to initialize "code"
2946 variable upon declaration.
2947 * Makefile.in: update dependencies; fix typo in clean rule.
2949 2001-08-21 Richard Henderson <rth@redhat.com>
2951 * ifcvt.c (find_if_block): Allow join_bb as EXIT.
2952 (merge_if_block): Handle fallout from same.
2954 2001-08-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2956 * builtins.c (type_to_class): Fix typo in last change.
2958 2001-08-21 Richard Henderson <rth@redhat.com>
2960 * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if
2961 ia64_asm_output_label.
2963 * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved
2964 copy of gp while the real gp register contains garbage.
2966 2001-08-21 Zack Weinberg <zackw@panix.com>
2968 * expmed.c (mode_for_extraction): New function.
2969 (store_bit_field, extract_bit_field): Use it.
2970 * expr.h: Prototype it and provide an enum for its first argument.
2972 * combine.c, function.c, recog.c: Don't include insn-codes.h.
2973 Use mode_for_extraction rather than testing HAVE_insv/extv/extzv
2974 and digging through the insn_data tables.
2975 * Makefile.in: Update dependencies.
2977 2001-08-22 Neil Booth <neil@daikokuya.demon.co.uk>
2979 * cppfiles.c (stack_include_file): line-map.c now handles include
2981 (handle_missing_handler): Similarly.
2982 (_cpp_execute_include): Similarly.
2983 (_cpp_pop_file_buffer): Similarly.
2984 * cpphash.h (struct cpp_reader): Remove system_include_depth,
2985 buffer_stack_depth and include_depth.
2986 * cpplib.c (do_include_common): line-map.c now handles include depth.
2987 (cpp_push_buffer): Similarly.
2988 (_cpp_pop_buffer): Similarly.
2989 * cppmacro.c (builtin_macro): Update.
2990 * line-map.c (init_line_maps): Set depth.
2991 (add_line_map): Increment "used" earlier. Update and use the
2993 (trace_include): Use the include depth.
2994 * line-map.h (struct line_maps): New member depth.
2996 2001-08-21 Neil Booth <neil@daikokuya.demon.co.uk>
2998 * cppfiles.c (stack_include_file): Don't handle -H here.
2999 * cppinit.c (cpp_start_read): Set include tracing after
3000 cpp_post_options and after stacking the main file.
3001 * line-map.c (trace_include): New.
3002 (init_line_maps, add_line_map): Update.
3003 * line-map.h (struct line_maps): New member trace_includes.
3005 2001-08-21 Neil Booth <neil@daikokuya.demon.co.uk>
3007 * cppfiles.c (stack_include_file): Harmonize system headerness tests.
3008 * cppfiles.c (stack_include_file): Only stack a file if there
3009 is something to do. Return a boolean indicating whether a
3010 buffer was stacked or not.
3011 (_cpp_execute_include): Similarly.
3012 (_cpp_read_file): Similarly.
3013 * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes.
3015 2001-08-21 Sam Steingold <sds@gnu.org>
3017 * tradcpp.c (rescan): define obufp_before_macroname before RECACHE
3018 (RECACHE): keep obufp_before_macroname up to date
3020 2001-08-21 Zack Weinberg <zackw@panix.com>
3022 * stmt.c: Don't include insn-codes.h.
3023 (expand_end_case): Machine specific logic moved to expr.c.
3024 No need to worry about __builtin_classify_type.
3025 (check_for_full_enumeration_handling, emit_case_nodes):
3028 * builtins.o (expand_builtin_classify_type): Split up so code
3029 can be shared with fold_builtin_classify_type.
3030 (type_to_class, fold_builtin_classify_type): New functions.
3031 (fold_builtins): Handle __builtin_classify_type.
3033 * expr.c (do_tablejump): Now static.
3034 (case_values_threshold, try_casesi, try_tablejump): New;
3035 code mostly from stmt.c (expand_end_case).
3036 (expr.h): Update prototypes.
3038 * Makefile.in (stmt.o): Update dependencies.
3040 2001-08-21 Will Cohen <wcohen@redhat.com>
3042 * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local
3043 declaration of variable i.
3044 * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local
3045 declaration of variable i.
3047 2001-08-21 Richard Henderson <rth@redhat.com>
3049 * crtstuff.c: Fix thinko last change. Move list tails to start
3050 of CRT_END section. Tidy ifdefs.
3051 (__EH_FRAME_BEGIN__): Always static for ELF.
3052 (__do_global_ctors_1): Rename from __frame_dummy.
3053 * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1
3054 name change; don't hide __EH_FRAME_BEGIN__.
3056 2001-08-21 Richard Henderson <rth@redhat.com>
3058 * gdbinit.in: Move break on exit after break on fancy_abort.
3060 * config/ia64/ia64.c (ia64_return_in_memory): True for variable
3063 2001-08-21 Neil Booth <neil@daikokuya.demon.co.uk>
3065 * cpphash.h (_cpp_push_next_buffer): New.
3066 * cppinit.c (do_includes): Remove.
3067 (push_include, free_chain, _cpp_push_next_buffer): New.
3068 (cpp_start_read): Use them to rework command line option handling.
3069 (cpp_handle_option): Combine handling of -include and -imacros.
3070 * cpplex.c (_cpp_lex_token): Push a new -include buffer if
3071 appropriate. Always insert missing \n at EOF.
3072 * cpplib.c (start_directive): Get the directive position right.
3073 * cppmain.c (cb_file_change): Always print the first line, unless
3076 2001-08-20 Andreas Jaeger <aj@suse.de>
3078 * profile.c (compute_branch_probabilities): Remove extra new-line
3080 * flow.c (verify_flow_info): Likewise.
3082 2001-08-20 Diego Novillo <dnovillo@redhat.com>
3084 * basic-block.h (basic_block): Add new field 'flags'.
3085 (BB_REACHABLE): Define.
3086 (expunge_block): Declare.
3087 * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'.
3088 (EXIT_BLOCK_PTR): Ditto.
3089 (expunge_block): Remove static declaration.
3090 (cleanup_cfg): Clear bb->aux on every basic block.
3091 (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when
3092 computing reachability.
3093 (delete_unreachable_blocks): Delete block b if b->flags has
3096 2001-08-20 Diego Novillo <dnovillo@redhat.com>
3098 * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast.
3100 2001-08-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3102 * sparc.c (sparc_variable_issue): Fix typo in last change.
3104 2001-08-20 Richard Henderson <rth@redhat.com>
3106 * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage.
3108 2001-08-20 John David Anglin <dave@hiauly1.hia.nrc.ca>
3110 * pa.h (RETURN_IN_MEMORY): Improve comment.
3112 2001-08-20 Janis Johnson <janis187@us.ibm.com>
3114 * doc/invoke.texi (Profiling options): Clarify the interactions
3115 between -fprofile-arcs and -ftest-coverage, -fprofile-arcs.
3117 2001-08-20 Jeffrey Oldham <oldham@codesourcery.com>
3119 * crtstuff.c (__do_global_ctors): Fix typo in preprocessing
3122 2001-08-20 Matt Kraai <kraai@alumni.carnegiemellon.edu>
3124 * gcc.c (make_relative_prefix): Allocate a sufficiently large
3127 2001-08-20 Richard Henderson <rth@redhat.com>
3129 * final.c (end_final): Fix typo last change.
3131 2001-08-20 Neil Booth <neil@daikokuya.demon.co.uk>
3133 * cppinit.c (init_standard_includes): The returned buffer
3134 is already malloc-ed.
3135 * gcc.c (add_prefix): Similarly.
3136 * prefix.c (translate_name): Update to support clear buffer
3138 (update_path): Similarly. Be sure to free any newly allocated
3139 key. UPDATE_PATH_HOST_CANONICALIZE takes only one argument.
3141 * prefix.h (update_path): Update prototype and document.
3142 * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean
3143 up and update to new buffer ownership rules.
3144 * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update.
3146 Mon Aug 20 01:44:50 CEST 2001 Jan Hubicka <jh@suse.cz>
3148 * final.c (compute_alignments): New function.
3149 (init_insn_lengths): Do not care label_align.
3150 (LABEL_ALIGN_AFTER_BARRIER): Default to 1.
3151 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0.
3152 (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New.
3153 (shorted_branches): Realloc label_align array; do
3154 not call init_insn_lengths; Do not care about loop alignments.
3155 * output.h (compute_alignments): Declare.
3156 * toplev.c (rest_of_compilation): Call compute_alignments.
3157 * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document.
3159 * predict.c (block_info_def): Add npredecesors, remove nvisited;
3160 change visited to tovisit.
3161 (propagate_freq): Use faster traversing algorithm.
3162 (estimate_loops_at_level, estimate_bb_frequencies): Change visited
3163 to tovisit; reverse meaning.
3165 * predict.c (struct block_info_def): Remove nvisited.
3166 (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
3167 (estimate_bb_frequencies): Call mark_dfs_back_edges.
3169 2001-08-19 Geoffrey Keating <geoffk@redhat.com>
3171 * doc/invoke.texi (MIPS Options): Document -mfused-madd.
3172 * config/mips/mips.h (MASK_NO_FUSED_MADD): New.
3173 (TARGET_FUSED_MADD): New.
3174 (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd.
3175 * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to
3176 the multiply-add instructions.
3178 2001-08-19 Richard Henderson <rth@redhat.com>
3180 * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref
3181 is aligned to pointer size.
3183 2001-08-19 Richard Henderson <rth@redhat.com>
3185 * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle
3186 display markers during final schedule.
3188 2001-08-19 Richard Henderson <rth@redhat.com>
3190 * function.c (gen_mem_addressof): Don't call get_alias_set if no decl.
3192 2001-08-19 Richard Henderson <rth@redhat.com>
3194 * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and *
3196 (ASM_NAME_TO_STRING): Remove.
3197 * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and *
3198 in the same string. Remove support for expressions.
3200 2001-08-19 Richard Henderson <rth@redhat.com>
3202 * config/i386/i386.md (tablejump): Make an expander; handle
3203 pic relative addressing here.
3204 (tablejump_1): Rename from tablejump_pic.
3207 2001-08-19 Richard Henderson <rth@redhat.com>
3209 * regclass.c (fix_register): Fix typo.
3211 2001-08-18 Richard Henderson <rth@redhat.com>
3213 * config/ia64/unwind-ia64.c (UNW_REG_B0): New.
3214 (struct _Unwind_Context): Expand br_loc to hold it.
3215 (uw_frame_state_for): Handle leaf functions better.
3216 (uw_update_reg_address): Update for br_loc change.
3218 2001-08-18 Richard Henderson <rth@redhat.com>
3220 * crtstuff.c: Move list heads before code that uses them.
3221 (__JCR_LIST__): Remove initial null.
3222 (frame_dummy, __frame_dummy): Do java registration here ...
3223 (__do_global_ctors_aux): ... not here.
3225 * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative.
3226 (__do_global_dtors_aux): Update to match.
3227 (__JCR_LIST__, __do_jv_register_classes): New.
3229 * config/ia64/crtend.asm (__JCR_END__): New.
3230 (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__
3231 instead of an indirect LTOFF22 reloc.
3233 2001-08-18 Richard Henderson <rth@redhat.com>
3235 * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.
3236 * regclass.c (init_reg_sets_1): Fix typo.
3237 * config/ia64/ia64.c (ar_pfs_reg_operand): New.
3238 (ia64_expand_call): Pass ar.pfs to sibcall expanders.
3239 (ia64_compute_frame_size): Make ar.unat live when in use.
3240 (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf
3241 for ar.pfs; remove ar.unat handling.
3242 * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is
3244 (PREDICATE_CODES): Add ar_pfs_reg_operand.
3245 * config/ia64/ia64-protos.h: Update decls.
3246 * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs.
3247 (sibcall_pic): Likewise.
3249 2001-08-18 Richard Henderson <rth@redhat.com>
3251 * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past
3252 pred_rel_mutex when searching for insn_group_barrier.
3253 * config/ia64/ia64.md (cycle_display): Combine the expander
3256 * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop
3257 bit before asm as needed.
3259 2001-08-18 Richard Henderson <rth@redhat.com>
3261 * timevar.def (TV_MACH_DEP): New.
3262 * toplev.c (rest_of_compilation): Use it.
3263 * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2.
3265 2001-08-18 Zack Weinberg <zackw@panix.com>
3267 * unwind-dw2.c (execute_stack_op): Add default aborts to
3268 the inner switches to prevent warnings.
3270 2001-08-18 Richard Henderson <rth@redhat.com>
3272 * timevar.h (struct timevar_time_def): Change element type to float.
3273 (ticks_to_msec, clocks_to_msec): Likewise.
3274 (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float.
3275 (get_time): Likewise.
3276 (timevar_print): Adjust zero check and printing to match.
3278 2001-08-18 Zack Weinberg <zackw@panix.com>
3280 * doc/extend.texi, doc/gcc.texi, doc/install-old.texi,
3281 doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi:
3282 Eliminate overfull or underfull hboxes.
3284 2001-08-18 Zack Weinberg <zackw@panix.com>
3286 * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout.
3288 2001-08-18 Zack Weinberg <zackw@panix.com>
3290 * haifa-sched.c: Convert to target hooks. Macros replaced
3291 are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT,
3292 MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE,
3293 MD_SCHED_FINISH, and HAVE_cycle_display.
3294 * target-def.h (TARGET_SCHED_ADJUST_COST,
3295 TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE,
3296 TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT,
3297 TARGET_SCHED_FINISH, TARGET_SCHED_REORDER,
3298 TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY):
3299 New hook #defines to be overridden.
3300 (TARGET_SCHED): Bring them all together.
3301 (TARGET_INITIALIZER): Update.
3302 * target.h: Don't forward declare struct rtx_def. Use 'rtx'
3303 instead of 'struct rtx_def *' throughout.
3304 (struct sched): New set of hooks for the scheduler.
3305 * Makefile.in (haifa-sched.o): Depend on target.h.
3306 * doc/tm.texi: Document the new scheduler hooks, together in
3307 their own section, instead of scattered around.
3308 Fix a bunch of underfull/overfull hboxes.
3310 * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h,
3311 ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h,
3312 sparc.h: Don't define any of the old scheduler macros.
3314 * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c,
3315 ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c,
3316 sparc.c: Create hook functions from code extracted from
3317 corresponding target header, or make existing hooks static, as
3318 appropriate. Set the appropriate entries in targetm.
3320 * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h,
3321 i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h,
3322 rs6000-protos.h, s390-protos.h, sparc-protos.h:
3323 Remove prototypes for functions which are now static.
3325 * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and
3326 related gunk; the Haifa scheduler is now the only choice.
3328 2001-08-18 Zack Weinberg <zackw@panix.com>
3330 * optabs.h (OTI_flodiv, flodiv_optab): Kill.
3331 * genopinit.c: Put floating point divide insns in sdiv_optab.
3332 * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab.
3333 * config/gofast.h, config/c4x/c4x.h,
3334 config/ia64/hpux_longdouble.h, config/mips/mips.h,
3335 config/pa/long_double.h, config/rs6000/sysv4.h,
3336 config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab.
3337 * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv.
3338 (init_optabs): Use init_optabv for overflow-trapping optabs.
3339 Don't init flodiv_optab. Give mov_optab, movstrict_optab, and
3340 cmp_optab RTX codes so have_insn_for can find them.
3342 * optabs.c (expand_simple_binop, expand_simple_unop,
3343 have_insn_for, gen_sub3_insn): New interfaces.
3344 * expr.h: Prototype new functions.
3345 (enum optab_methods): Move here from optabs.h.
3347 * builtins.c, combine.c, doloop.c, function.c, ifcvt.c,
3348 loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c:
3349 Use new functions instead of working directly with optabs.
3350 * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c,
3351 unroll.c: Don't include optabs.h.
3352 * caller-save.c, combine.c, function.c, stmt.c: Just include
3353 insn-codes.h, not optabs.h.
3354 * Makefile.in: Update dependencies.
3356 * combine.c (make_compound_operation, simplify_comparison):
3357 Fix typos testing for this or that instruction.
3359 2001-08-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3361 * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when
3362 generating libgcc.a.
3364 2001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3366 * except.c (TYPE_HASH): Delete.
3368 * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not
3371 * tree.c (TYPE_HASH): Delete.
3373 * tree.h (TYPE_HASH): Define.
3375 2001-08-18 Graham Stott <grahams@redhat.com>
3377 * config/mips/mips.md (adddi3_internal_2+1): Remove contraints from
3379 (adddi3_internal_2+2): Likewise.
3380 (eh_set_lr_di+1): Likewise.
3382 2001-08-17 Richard Henderson <rth@redhat.com>
3384 * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
3385 UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ...
3386 * dwarf2asm.c: ... here.
3387 * dwarfout.c: Remove them.
3389 * varasm.c (assemble_integer): Add align parameter.
3390 (assemble_real, output_constant, output_constructor): Likewise.
3391 * output.h: Update decls.
3392 * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c,
3393 config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c,
3394 config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h,
3395 config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c,
3396 config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md:
3399 * final.c (end_final): Abort profile block generation if we
3400 havn't layed it out properly.
3401 * output.h (assemble_eh_integer): Remove stale decl.
3402 * varasm.c (assemble_zeros): Tidy; use assemble_integer.
3404 (assemble_integer): Handle unaligned data.
3405 (assemble_real): Abort on unaligned data.
3406 (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does
3408 (default_dtor_section_asm_out_destructor): Use assemble_align.
3409 (default_named_section_asm_out_constructor): Likewise.
3410 (default_ctor_section_asm_out_constructor): Likewise.
3411 * config/darwin.c (machopic_asm_out_constructor): Likewise.
3412 (machopic_asm_out_destructor): Likewise.
3413 * config/nextstep.c (nextstep_asm_out_constructor): Likewise.
3414 (nextstep_asm_out_destructor): Likewise.
3415 * config/alpha/alpha.c (vms_asm_out_constructor): Likewise.
3416 (vms_asm_out_destructor): Likewise.
3418 2001-08-17 Richard Henderson <rth@redhat.com>
3420 * config/mips/iris6.h (TARGET_IRIX6): New.
3421 (current_section_name, current_section_flags): New.
3422 (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New.
3423 (MAX_OFILE_ALIGNMENT): New.
3424 (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section.
3425 * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove.
3426 (copy_file_data): Split out from
3427 (mips_asm_file_end): ... here.
3428 (mips_asm_file_start): Remove extra .section directive. Use
3429 tmpfile instead of mips_make_temp_file.
3430 (mips_unique_section): Use const char * as needed for warnings.
3431 (iris6_asm_named_section_1): Renamed from iris6_asm_named_section;
3432 re-add align parameter.
3433 (iris6_asm_named_section): New.
3434 (iris_section_align_entry_eq, iris_section_align_entry_hash): New.
3435 (iris6_asm_output_align, iris6_section_align_1): New.
3436 (iris6_asm_file_start, iris6_asm_file_end): New.
3437 * config/mips/mips-protos.h: Update decls.
3439 2001-08-17 Janis Johnson <janis187@us.ibm.com>
3441 * doc/install.texi (Install GCC): Add links to build status pages.
3443 (Final install): Ditto; request updates for specific info
3445 2001-08-17 Neil Booth <neil@daikokuya.demon.co.uk>
3447 * cpperror.c (print_location): Don't take a file name; use the
3449 (_cpp_begin_message): Similarly.
3450 (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
3451 cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update.
3452 (cpp_pedwarn_with_file_and_line): Remove.
3453 * cppfiles.c (stack_include_file): Update; set filename to stdin
3454 here when appropriate.
3455 * cpphash.h (struct cpp_buffer): Remove nominal_fname.
3456 (_cpp_begin_message): Don't take a file name.
3457 * cppinit.c: Add comment.
3458 * cpplex.c: Fix end-of-directive indicator.
3459 * cpplib.c: Don't include intl.h.
3460 (run_directive, do_diagnostic): Update.
3461 (do_line): Update to not use nominal_fname.
3462 (cpp_push_buffer): Don't take a filename.
3463 * cpplib.h (struct ht): Remove.
3464 (cpp_push_buffer): Don't take a filename.
3465 (cpp_pedwarn_with_file_and_line): Remove.
3466 * cppmacro.c (struct cpp_macro): Remove file.
3467 (builtin_macro): Update.
3468 (_cpp_create_definition): Update.
3469 * cppmain.c: Correct comment.
3470 * fix-header.c (read_scan_file): Update.
3472 2001-08-17 Kazu Hirata <kazu@hxi.com>
3474 * sbitmap.c: Fix comment formatting.
3475 * sched-deps.c: Likewise.
3476 * sibcall.c: Likewise.
3477 * simplify-rtx.c: Likewise.
3479 * ssa-ccp.c: Likewise.
3480 * stor-layout.c: Likewise.
3481 * timevar.c: Likewise.
3482 * toplev.c: Likewise.
3483 * unwind-dw2.c: Likewise.
3484 * unwind-dw2-fde.c: Likewise.
3485 * varasm.c: Likewise.
3487 2001-08-17 John David Anglin <dave@hiauly1.hia.nrc.ca>
3489 * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
3490 or larger than an integer in memory.
3492 2001-08-17 Zack Weinberg <zackw@panix.com>
3494 * system.h: Forward-declare struct rtx_def, struct rtvec_def,
3495 and union tree_node. Typedef rtx, rtvec, and tree. Fix comment.
3496 * rtl.h: Don't forward-declare union tree_node here. Don't
3497 typedef rtx or rtvec here. Change all uses of struct rtx_def *,
3498 struct rtvec_def *, or union tree_node * to use rtx, rtvec,
3499 and tree respectively.
3500 * tree.h: Don't forward-declare struct rtx_def here. Don't
3501 typedef tree here. Change all uses of struct rtx_def *,
3502 struct rtvec_def *, or union tree_node * to use rtx, rtvec,
3503 and tree respectively.
3505 2001-08-17 Richard Henderson <rth@redhat.com>
3507 * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h,
3508 config/mips/openbsd.h: Fix typos last change.
3510 2001-08-17 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3512 * doc/invoke.texi (Optimize Options): The default for
3513 -finline-limit is 600.
3515 2001-08-17 Richard Henderson <rth@redhat.com>
3517 * varasm.c (text_section): Allow TEXT_SECTION to override the
3518 printing of TEXT_SECTION_ASM_OP.
3519 * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION.
3520 (DATA_SECTION, BSS_SECTION): Remove.
3521 * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME,
3522 RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME):
3523 Rename from s/_NAME//.
3524 * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16.
3525 (ASM_DECLARE_FUNCTION_NAME): Move file switching ...
3526 (TEXT_SECTION): ... here. New.
3527 * config/mips/elf.h (TEXT_SECTION): New; no file switching.
3528 * config/mips/elf64.h, config/mips/netbsd.h: Likewise.
3529 * config/mips/openbsd.h: Likewise.
3530 * config/mips/mips.c (mips_asm_file_start): Tidy file switching test.
3531 (mips_asm_file_end): Likewise test.
3532 (mips_output_function_epilogue): Likewise. Switch back to data
3533 section after emitting the function.
3535 * doc/tm.texi (Sections): Document TEXT_SECTION.
3537 2001-08-17 Richard Henderson <rth@redhat.com>
3539 * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here.
3540 (dwarf2out_finish): Do it here. Emit .debug_loc before .debug_info.
3542 2001-08-17 Richard Henderson <rth@redhat.com>
3544 * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN.
3545 * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__,
3546 __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__):
3547 Add aligned attribute.
3549 2001-08-17 Andrew Haley <aph@cambridge.redhat.com>
3551 * config/sh/sh.md: Add modes to unspecs in first insn to match
3552 those in the second.
3554 * Makefile.in: Fix collect2 copy for Cygwin.
3556 Fri Aug 17 15:48:57 CEST 2001 Jan Hubicka <jh@suse.cz>
3558 Install the proper patch.
3559 * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
3560 (assign_params): Avoid setting DECL_RTL to unfinished RTX.
3561 (expand_function_start): Likewise.
3562 * stmt.c (expand_decl): Likewise.
3563 * varasm.c (make_decl_rtx): Likewise.
3565 Fri Aug 17 15:41:35 CEST 2001 Jan Hubicka <jh@suse.cz>
3567 * final.c: Undo my previous accidental checkin.
3568 * output.h: Likewise.
3569 * tm.texi: Likewise.
3571 2001-08-16 Richard Henderson <rth@redhat.com>
3573 * varasm.c (named_section_flags): Remove align parameter.
3574 * varasm.c, dwarf2out.c: Update all callers.
3575 * output.h: Update prototypes.
3577 * target.h (target.asm_out.named_section): Remove align parameter.
3578 * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c,
3579 config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c,
3580 config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c,
3581 config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c,
3582 config/sh/sh.c, config/sparc/sparc.c: Update implementations to match.
3584 * varasm.c (in_named_entry_eq, in_named_entry_hash): New.
3585 (get_named_section_flags, set_named_section_flags): New.
3586 (named_section_flags): Use them.
3587 (named_section): Do decl vs section flags check here...
3588 (default_section_type_flags): ... not here.
3589 (init_varasm_once): Create in_named_htab.
3590 (resolve_unique_section): Mark reloc unused.
3592 2001-08-16 Richard Henderson <rth@redhat.com>
3594 * varasm.c (force_const_mem): Keep pool alignment in bits.
3595 (output_constant_pool): Use assemble_align.
3597 2001-08-16 Zack Weinberg <zackw@panix.com>
3599 * doc/tm.texi: Remove extra @table command.
3601 2001-08-16 Zack Weinberg <zackw@panix.com>
3603 * final.c (shorten_branches): Clear the end of the label_align
3604 array only if we made it larger. Break up messy expressions
3607 * diagnostic.c (internal_error): Check for error recursion
3608 before doing ICE suppression.
3610 * timevar.c: Timing variables now count in milliseconds.
3611 (init_timevar): Set up ticks_to_msec and clocks_to_msec here.
3612 (get_time): Not here.
3613 (timevar_print): Don't print any timer whose user, cpu, and
3614 wall times are all zero as displayed.
3615 * timevar.h: Update comment aboout units. Make timevar
3618 Thu Aug 16 17:39:45 CEST 2001 Jan Hubicka <jh@suse.cz>
3620 * function.c (put_var_into_stack): Temporarily clear DECL_RTL.
3621 (assign_params): Avoid setting DECL_RTL to unfinished RTX.
3622 (expand_function_start): Likewise.
3623 * stmt.c (expand_decl): Likewise.
3624 * varasm.c (make_decl_rtx): Likewise.
3626 2001-08-16 Jason Merrill <jason_merrill@redhat.com>
3628 * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN.
3629 (finalize_record_size): Don't set TYPE_USER_ALIGN.
3631 2001-08-16 Matt Kraai <kraai@alumni.carnegiemellon.edu>
3633 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused
3636 2001-08-16 Andreas Jaeger <aj@suse.de>
3638 * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame
3641 Wed Aug 15 15:22:52 EDT 2001 John Wehle (john@feith.com)
3643 * rtl.h (only_sets_cc0_p): New prototype.
3644 * jump.c (sets_cc0_p): Handle INSN.
3645 (only_sets_cc0_p): New function.
3646 * flow.c (merge_blocks_nomove): Use only_sets_cc0_p.
3647 (tidy_fallthru_edge): Likewise.
3648 * integrate.c (copy_insn_list): Likewise.
3649 * unroll.c (unroll_loop): Likewise.
3650 (copy_loop_body): Likewise.
3652 2001-08-15 Jason Eckhardt <jle@redhat.com>
3654 * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t".
3656 Wed Aug 15 14:24:22 CEST 2001 Jan Hubicka <jh@suse.cz>
3658 * predict.c (struct block_info_def): Remove nvisited.
3659 (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions.
3660 (estimate_bb_frequencies): Call mark_dfs_back_edges.
3662 * i386.c (ix86_agi_depdendant): Lea causes AGI only on the Pentium
3663 (ix86_adjust_cost): Teach scheduler that latency to load operand can
3666 Wed Aug 15 12:41:32 CEST 2001 Jan Hubicka <jh@suse.cz>
3668 * predict.def: Update hitrates.
3670 2001-08-15 Richard Henderson <rth@redhat.com>
3672 * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT.
3674 Tue Aug 14 17:30:59 2001 Jeffrey A Law (law@cygnus.com)
3676 * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG
3677 note from its associated jump.
3679 2001-08-14 Ulrich Weigand <uweigand@de.ibm.com>
3681 * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__
3682 also on 64-bit s390x targets.
3684 2001-08-14 Nick Clifton <nickc@cambridge.redhat.com>
3686 * config/arm/arm.c (arm_compute_initial_elimination_offset): New
3688 (arm_expand_prologue): Handled nested functions which take a
3689 variable argument list.
3690 * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace
3691 macro with an invocation of
3692 arm_compute_initial_elimination_offset.
3693 * config/arm/arm-protos.h: Prototype
3694 arm_compute_initial_elimination_offset.
3696 2001-08-14 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
3698 * doc/install.texi (Specific, avr): Fix markup.
3699 (Specific, c4x): Ditto.
3701 2001-08-14 Matt Kraai <kraai@alumni.carnegiemellon.edu>
3703 * predict.c (dump_prediction): Change `bool' parameter to `int'.
3705 2001-08-14 Gabriel Dos Reis <gdr@codesourcery.com>
3707 * Makefile.in (OBJS): Add rtl-error.o
3708 (rtl-error.o): New rule.
3709 (diagnostic.o): Adjust dependency.
3710 diagnostic.c (file_and_line_for_asm, diagnostic_for_asm,
3711 error_for_asm, _fatal_insn, _fatal_insn_not_found,
3712 warning_for_asm): Move to...
3713 rtl-error.c: ...here. New file.
3715 2001-08-14 Richard Henderson <rth@redhat.com>
3717 * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame
3718 if USING_SJLJ_EXCEPTIONS.
3720 2001-08-14 Steve Ellcey <sje@cup.hp.com>
3722 * tlink.c (scan_linker_output): Check string for unsatisfied in
3723 addition to undefined and unresolved.
3725 2001-08-14 Graham Stott <grahams@redhat.com>
3727 * libgcc2.c (*): Replace EH_FRAME_SECTION with
3728 EH_FRAME_SECTION_NAME.
3730 Tue Aug 14 14:57:07 CEST 2001 Jan Hubicka <jh@suse.cz>
3732 * genattrtab.c (simplify_test_exp_in_temp): New function.
3733 (simplify_test_exp): Avoid explicit use of temporary obstack.
3734 (simplify_cond, insert_right_side, evaluate_eq_attr,
3735 simplify_and_tree, simplify_or_tree, eliminate_known_true):
3736 Use simplify_test_exp_in_temp.
3737 (optimize_attrs): Iterate until expression stabilizes.
3739 2001-08-13 Ulrich Weigand <uweigand@de.ibm.com>:
3741 * glimits.h: Remove the __LONG_MAX__ special case for s390x.
3742 * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES.
3744 2001-08-13 Richard Henderson <rth@redhat.com>
3746 * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove.
3747 (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove.
3748 * config/arm/conix-elf.h: Likewise.
3750 2001-08-13 Geoffrey Keating <geoffk@redhat.com>
3752 * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done
3754 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
3756 * gcse.c (hash_scan_set): Expressions that are set as part of
3757 jump instructions are not available.
3759 2001-08-13 Ulrich Weigand <uweigand@de.ibm.com>
3761 * config/s390/s390.c (print_operand, s390_function_prologue,
3762 s390_va_start): Fixed HOST_WIDE_INT type mismatch.
3764 2001-08-13 Richard Henderson <rth@redhat.com>
3766 * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New.
3767 * defaults.h (EH_FRAME_SECTION_NAME): Respect it.
3768 * doc/tm.texi (Exception Region Output): Document it.
3770 2001-08-13 Geoffrey Keating <geoffk@redhat.com>
3772 * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use
3773 DWARF2 instead of stabs by default.
3775 2001-08-13 David Edelsohn <edelsohn@gnu.org>
3777 * config/rs6000/rs6000.c: Include optabs.h.
3779 2001-08-13 David Edelsohn <edelsohn@gnu.org>
3781 * config/rs6000/eabi.asm: Define 64-bit versions of FPR
3782 save/restore routines.
3783 * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros.
3785 2001-08-13 Andreas Jaeger <aj@suse.de>
3787 * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo,
3788 the english is correct.
3790 2001-08-13 Zack Weinberg <zackw@panix.com>
3792 * expr.h: Split out optab- and libfunc-related code to...
3793 * optabs.h, libfuncs.h: ... these new headers.
3795 * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h.
3797 (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to
3799 * mkconfig.sh: Don't include insn-codes.h from config.h.
3801 * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether
3802 enum insn_code is available. Move reload_in_optab and
3803 reload_out_optab array declarations to optabs.h.
3804 * regmove.c (gen_add3_insn): Move to optabs.c, export from
3805 there, prototype in expr.h.
3806 * gencodes.c: Cleanup: zap global variables, don't use
3807 printf where puts will do, don't bother defining MAX_INSN_CODE
3808 which nothing uses, let CODE_FOR_nothing get its value implicitly.
3810 * genemit.c, genopinit.c: Include optabs.h in generated file.
3811 * genoutput.c: Include insn-codes.h in generated file.
3812 * builtins.c, caller-save.c, combine.c, doloop.c, explow.c,
3813 expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c,
3814 reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c,
3815 config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c,
3816 config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c,
3817 config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c:
3819 * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c,
3820 optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c,
3821 config/m88k/m88k.c, config/sparc/sparc.c:
3823 * reload.c: Include expr.h and optabs.h before reload.h.
3824 * config/alpha/alpha.c: Include tree.h before reload.h.
3825 * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h,
3826 and reload.h in that order.
3827 * config/sparc/sparc.c: Include debug.h.
3828 * recog.c: Include insn-codes.h.
3830 2001-08-13 Andreas Jaeger <aj@suse.de>
3832 * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on
3835 2000-08-13 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
3837 * dwarf2out.c (output_cfa_loc): Fix typo in comment.
3838 * gcc.c (init_spec): Fix typo in comment.
3839 * varasm.c (data_section): Fix typo in comment.
3841 Mon Aug 13 02:27:39 CEST 2001 Jan Hubicka <jh@suse.cz>
3843 * predict.c (dump_prediction): New argument "USED".
3844 (combine_predictions_for_insn): Determine the used heuristics,
3845 output the case no heuristic applied.
3846 * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New.
3848 2001-08-13 Andreas Jaeger <aj@suse.de>
3850 * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize
3853 2001-08-13 Kazu Hirata <kazu@hxi.com>
3855 * jump.c: Fix formatting.
3857 2001-08-13 Kazu Hirata <kazu@hxi.com>
3859 * config/h8300/h8300.md (zero_extendqihi2): Correct the insn
3862 2001-08-12 Geoffrey Keating <geoffk@redhat.com>
3864 * loop.c (check_dbra_loop): Use condjump_label to compute
3867 * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around
3868 to better document the files they're in.
3870 2001-08-12 Zack Weinberg <zackw@panix.com>
3872 * recog.h (struct insn_operand_data): Shrink 'mode' field
3875 2001-08-12 Kazu Hirata <kazu@hxi.com>
3877 * gcc.c: Fix comment formatting.
3878 * gccspec.c: Likewise.
3881 * genemit.c: Likewise.
3882 * gengenrtl.c: Likewise.
3883 * genrecog.c: Likewise.
3884 * gensupport.c: Likewise.
3885 * ggc-page.c: Likewise.
3886 * global.c: Likewise.
3887 * graph.c: Likewise.
3888 * ifcvt.c: Likewise.
3889 * integrate.c: Likewise.
3891 * libgcc2.c: Likewise.
3893 * mbchar.c: Likewise.
3894 * optabs.c: Likewise.
3895 * predict.c: Likewise.
3896 * prefix.c: Likewise.
3897 * profile.c: Likewise.
3898 * protoize.c: Likewise.
3900 * recog.c: Likewise.
3901 * regclass.c: Likewise.
3902 * regmove.c: Likewise.
3903 * reg-stack.c: Likewise.
3904 * reload1.c: Likewise.
3905 * resource.c: Likewise.
3906 * rtlanal.c: Likewise.
3909 2001-08-12 Kazu Hirata <kazu@hxi.com>
3911 * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how
3912 a tree representing a constant is passed to the macro.
3914 2001-08-12 Richard Henderson <rth@redhat.com>
3916 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New.
3917 (rs6000_elf_asm_out_destructor): New.
3918 * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove.
3919 (DTORS_SECTION_ASM_OP): Remove.
3920 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New.
3921 (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors.
3923 2001-08-12 David Edelsohn <edelsohn@gnu.org>
3926 2001-08-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3927 * gcc.c (set_collect_gcc_options): New function, split out from
3929 Ignore elided switches.
3930 (do_spec_1): Invoke before executing command.
3931 (set_input): Export.
3932 Move declaration ...
3933 * gcc.h (set_input): ... here.
3934 * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input
3937 2001-08-12 Richard Henderson <rth@redhat.com>
3939 * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix
3940 thinko wrt TARGET_RELOCATABLE.
3942 2001-08-12 Neil Booth <neil@daikokuya.demon.co.uk>
3944 * fix-header.c (cb_file_change): Update prototype.
3946 2001-08-11 Zack Weinberg <zackw@panix.com>
3948 * toplev.c (set_float_handler): Make static.
3949 * toplev.h: Don't prototype set_float_handler.
3951 * simplify-rtx.c: Don't include setjmp.h.
3952 (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1):
3954 (simplify_unary_operation, simplify_binary_operation): Use them,
3955 via do_float_handler.
3957 * fold-const.c: Don't include setjmp.h.
3958 (exact_real_inverse_1): New function.
3959 (exact_real_inverse): Use it, via do_float_handler.
3961 * varasm.c: Don't include setjmp.h.
3962 (assemble_real_1): New function.
3963 (assemble_real): Use it, via do_float_handler.
3964 Call internal_error if we get a trap here.
3966 * c-parse.in, cse.c, cselib.c, config/i386/i386.c,
3967 config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h.
3969 2001-08-11 Zack Weinberg <zackw@panix.com>
3971 * defaults.h: Define PREFERRED_STACK_BOUNDARY to
3972 STACK_BOUNDARY if not already defined.
3974 * calls.c, function.c, reload1.c, explow.c: Don't default
3975 PREFERRED_STACK_BOUNDARY. Remove all #if/#ifdef on
3976 PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY.
3978 * explow.c (allocate_dynamic_stack_space): Change unsafe #if
3981 * doc/tm.texi: Document that STACK_BOUNDARY is required;
3982 clarify difference between it and PREFERRED_STACK_BOUNDARY.
3984 2001-08-11 Neil Booth <neil@daikokuya.demon.co.uk>
3986 * cppmacro.c (enter_macro_context): Push macro expansions even
3989 2001-08-11 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3991 * config/rs6000/rs6000.c: Include integrate.h to silence warning.
3992 (rs6000_elf_section_type_flags): Actually return a value.
3994 2001-08-11 Ulrich Weigand <uweigand@de.ibm.com>
3996 * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux:
3997 Clean up code: add missing comments and prototypes, fix warnings,
3998 remove obsolete code, fix spacing to conform to coding style.
4000 2001-08-11 Ulrich Weigand <uweigand@de.ibm.com>
4002 * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN
4003 and TARGET_ASM_CLOSE_PAREN.
4004 (regclass_map): CC register belongs to class NO_REGS.
4005 (legitimize_pic_address): Don't generate unnecessary moves
4006 (to avoid confusing loop optimization).
4007 (check_and_change_labels): Replace jump_long by indirect_jump.
4008 (s390_final_chunkify): Don't start a new literal pool on section
4009 switch in 64-bit code.
4010 (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit.
4012 * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug.
4013 (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit).
4014 (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer
4016 (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS.
4017 (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit.
4018 (CONST_COSTS): Fixed incorrect costs.
4020 * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3):
4021 Use emit_jump instead of emit_jump_insn (gen_jump).
4022 (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting
4023 (to avoid confusing flow analysis).
4024 (tablejump, tablejump1, tablejump2): Removed. Replaced by casesi.
4025 (casesi, casesi_jump): New.
4026 (jump_long): Removed. Functionality merged into indirect_jump.
4027 (indirect_jump): Accept address_operand, not just register_operand.
4028 (cjump_long, icjump_long): Use same logic as indirect_jump.
4029 (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp):
4030 Fixed broken setjmp/longjmp handling.
4031 (do_builtin_setjmp_setup): Removed.