aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/ia64
AgeCommit message (Collapse)AuthorFilesLines
2001-12-06final.c (count_basic_block, [...]): Kill.Jan Hubicka2-103/+1
* final.c (count_basic_block, add_bb, add_bb_string): Kill. (end_final, final_start_function, final, final_scan_insn, leaf_function_p): Kill BB profiler related code. * flags.h (profile_block_flag): Kill. * libgcc2.c (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE, BB_BUCKETS, BBINBUFSIZE, bb_edge, bb_func_mode, bb_func, __bb, bb_src, bb_dst, bb_tracefile, bb_hashbuckets, bb_func_head, bb_callcount, bb_mode, bb_stack, bb_stacksize reported, GOPENDECOMPRESS, GOPENCOMPRESS, gopen, gclose, __bb_exit_trace_func, __bb_init_prg, __bb_trace_func, __bb_trace_func_ret, __bb_init_file, __bb_trace_ret, __bb_init_trace_func): Kill. * toplev.c (profile_block_flag): Kill. (indepdendent_decode_option, process_options): Kill -a related code. * alpha.c (direct_call_operand): Likewise. * arm.c (arm_expand_prologue, thumb_expand_prologue, thumb_expand_epilogue): Likewise. * c4x.c (c4x_expand_prologue, c4x_null_epilogue_p): Likewise. * c4x.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * d30v.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * fr30.c (fr30_expand_prologue): Kill BB profiler related code. * i386.c (ix86_can_use_return_insn_p, ix86_expand_prologue, ix86_expand_epilogue, ix86_expand_epilogue): Kill BB profiler related code. (ix86_output_function_block_profiler, ix86_output_block_profiler): Kill. * i386.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * fr30.c (fr30_expand_prologue): Kill BB profiler related code. * i960.c (i960_output_function_prologue): Kill BB profiler related code. * ia64.c (ia64_compute_frame_size): Likewise. * ia64.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * m32r.c (m32r_expand_prolofue): Kill BB profiler related code. * m68hc11.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * m68k.c (m68k_output_function_epilogue): Kill BB profiler related code. * m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * m88k.c (output_options, m88k_layout_frame, m88k_expand_prologue): Kill BB profiler related code. * m88k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * mips.c (mips_expand_prologue): Kill BB profiler related code. * mmix.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * rs6000.c (rs6000_override_options): Kill BB profiler related code. * s960.c (s390_function_prologue): Kill BB profiler related code. * s960.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * linux-aout.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * linux.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * linux64.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * sol2.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * sparc.c (sparc_override_options, eligible_for_sibcall_delay, sparc_nonflat_function_epilogue): Kill BB profiler related code. (sparc_function_block_profiler, sparc_block_profiler, sparc_function_block_profiler_exit): Kill. * sparc.h (OVERRIDE_OPTIONS): Kill BB profiler related code. (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * sun4o3.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * sunos4.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * stormy16.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. * doc/invoke.texi: Kill documentation of -a and -ax. * tm.texi (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. From-SVN: r47712
2001-12-04ia64.h (SIMULTANEOUS PREFETCHES): Define.Janis Johnson1-1/+29
* config/ia64/ia64.h (SIMULTANEOUS PREFETCHES): Define. (PREFETCH_BLOCK): Define. * config/ia64/ia64.md (itanium_class): Add lfetch. (prefetch, prefetch_internal): New. From-SVN: r47579
2001-12-04ia64.h (SIMULTANEOUS PREFETCHES): Define.Janis Johnson1-0/+13
* config/ia64/ia64.h (SIMULTANEOUS PREFETCHES): Define. (PREFETCH_BLOCK): Define. * config/ia64/ia64.md (itanium_class): Add lfetch. (prefetch, prefetch_internal): New. prefetch_sse. From-SVN: r47578
2001-12-03c-decl.c (grokdeclarator): Use ISO word.Neil Booth1-1/+1
* c-decl.c (grokdeclarator): Use ISO word. * cppinit.c: Remove leading capital from diagnostic messages, as per GNU coding standards. * diagnostic.c: Similarly. * emit-rtl.c: Similarly. * final.c: Similarly. * gcc.c: Similarly. * tradcpp.c: Similarly. * config/arm/arm.c: Similarly. * config/arm/arm.h: Similarly. * config/avr/avr.c: Similarly. * config/avr/avr.h: Similarly. * config/c4x/c4x.c: Similarly. * config/cris/cris.c: Similarly. * config/cris/cris.h: Similarly. * config/d30v/d30v.c: Similarly. * config/dsp16xx/dsp16xx.c: Similarly. * config/dsp16xx/dsp16xx.h: Similarly. * config/h8300/h8300.c: Similarly. * config/i386/i386.c: Similarly. * config/i386/xm-djgpp.h: Similarly. * config/i960/i960.h: Similarly. * config/m32r/m32r.c: Similarly. * config/m68hc11/m68hc11.c: Similarly. * config/m88k/m88k.c: Similarly. * config/m88k/m88k.h: Similarly. * config/mcore/mcore.c: Similarly. * config/mcore/mcore.h: Similarly. * config/mips/mips.c: Similarly. * config/mmix/mmix.c: Similarly. * config/pa/pa.c: Similarly. * config/rs6000/rs6000.c: Similarly. * config/rs6000/sysv4.h: Similarly. * config/s390/s390.c: Similarly. * config/sparc/sparc.c: Similarly. * config/v850/v850-c.c: Similarly. * config/v850/v850.c: Similarly. ch: * actions.c: Remove leading capital from diagnostic messages, as per GNU coding standards. * decl.c: Similarly. * expr.c: Similarly. * inout.c: Similarly. * lang.c: Similarly. * loop.c: Similarly. * nloop.c: Similarly. * parse.c: Similarly. * satisfy.c: Similarly. * tasking.c: Similarly. * tree.c: Similarly. * typeck.c: Similarly. cp: * typeck2.c: Remove leading capital from diagnostic messages, as per GNU coding standards. f: * com.c: Remove leading capital from diagnostic messages, as per GNU coding standards. * g77spec.c: Similarly. * lex.c: Similarly. java: * expr.c: Remove leading capital from diagnostic messages, as per GNU coding standards. * jcf-io.c: Similarly. * jcf-parse.c: Similarly. * jv-scan.c: Similarly. * jvspec.c: Similarly. * mangle.c: Similarly. From-SVN: r47558
2001-11-27aix.h (REG_SIZE): Don't #undef.Kaveh R. Ghazi1-5/+0
* ia64/aix.h (REG_SIZE): Don't #undef. * sparc.h (REG_SIZE): Delete. * flow.c (mark_used_regs): Don't use REG_SIZE. * regs.h (REG_SIZE): Delete. From-SVN: r47378
2001-11-26sysv4.h (DBX_DEBUGGING_INFO): Undef.Richard Henderson2-3/+3
* config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Undef. * config/ia64/aix.h (PREFERRED_DEBUGGING_TYPE): Remove commented out override. From-SVN: r47364
2001-11-15alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P.Richard Kenner1-2/+2
* alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P. * emit-rtl.c (change_address): Fix typo in default alignment. (adjust_address_1): Use mode of NEW, not MODE, when setting size. * expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case. * rtl.h (REGNO_PTR_FRAME_P): New macro. * expr.c (store_field): Pass tree instead of max size; callers changed. Change handling of alignment. Only copy to_rtx if is TARGET. (expand_expr_unaligned): Delete; callers now use expand_expr. (emit_cmp_insn): No longer take ALIGN parm; all callers changed. (expand_assignment): Change handling of alignment. Only copy to_rtx if was original. (get_inner_reference): No longer return alginment; callers changed. (expand_expr, case COMPONENT_REF): Change handling of alignment. (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned. (compare_from_rtx): Delete ALIGN parm; all callers changed. (do_compare_rtx_and_jump): Likewise. * expr.h: Reflect above changes. * tree.h: Likewise. * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter to get_inner_reference. * except.c: Remove ALIGN parameter in call to emit_cmp_and_jump_insns. * explow.c: Likewise. * loop.c: Likewise. * optabs.c: Likewise. (prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed. (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed. * fold-const.c: Remove PALIGN in calls to get_inner_reference. * function.c (assign_stack_temp_for_type): No longer static. * optabs.h (emit_cmp_insn): Remove ALIGN parm. (prepare_cmp_insn): Delete declaration. * rtl.h (assign_stack_temp_for_type): Add declaration. * config/d30v/d30v.c: Reflect above changes. * config/i860/i860.c, config/ia64/ia64.c: Likewise. * config/rs6000/rs6000.c, config/sh/sh.c: Likewise. * ada/trans.c, ada/utils2.c: Remove PALIGN parameter to get_inner_reference. From-SVN: r47075
2001-11-15ia64.c (ia64_adjust_cost): Handle SUBREGs.Jakub Jelinek1-11/+21
* config/ia64/ia64.c (ia64_adjust_cost): Handle SUBREGs. * gcc.c-torture/compile/20011114-2.c: New test. From-SVN: r47049
2001-11-12freebsd.h: Fix misspelling.David O'Brien1-1/+1
2001-11-12 David O'Brien <obrien@FreeBSD.org> * config/ia64/freebsd.h: Fix misspelling. From-SVN: r46953
2001-11-10config.gcc: Add FreeBSD/IA-64 target.David O'Brien6-78/+139
2001-11-07 David O'Brien <obrien@FreeBSD.org> * config.gcc: Add FreeBSD/IA-64 target. Expand config/i64/elf.h headers. * config/i64/ia64.h (TARGET_VERSION,ASM_SPEC,LINK_SPEC): Remove, they are OS specific. Use CPP_CPU_SPEC rather than CPP_PREDEFINES, so OS specific files and use CPP_PREDEFINES for their needs. * config/i64/elf.h (TARGET_VERSION): Add. Also, move inclusion of target headers to tm_file. * config/ia64/aix.h (TARGET_VERSION): Likewise. * config/ia64/hpux.h (TARGET_VERSION): Likewise. * config/ia64/linux.h (TARGET_VERSION): Likewise. (FUNCTION_PROFILER): Remove. * config/ia64/ia64.h (FUNCTION_PROFILER): Update defintion using the version in config/ia64/linux.h. * config/ia64/freebsd.h: New file. * config/freebsd.h: Tidy up. (_USING_CONFIG_FREEBSD): Define. (FBSD_CPP_PREDEFINES): Add __KPRINTF_ATTRIBUTE__. (FBSD_CPP_SPEC): Define generic FreeBSD spec. (FBSD_STARTFILE_SPEC): Likewise. (FBSD_ENDFILE_SPEC): Likewise. (FBSD_LIB_SPEC): Likewise. (WCHAR_UNSIGNED): Undefine, FreeBSD's wchars are signed. (USER_LABEL_PREFIX): Define to ELF compatible value as some CPU headers set an ELF-improper one. Approved by: Richard Henderson <rth@redhat.com> Message-ID: <20011109100352.A6186@redhat.com> From-SVN: r46909
2001-11-04ChangeLog.2, [...]: Fix spelling errors.Joseph Myers1-1/+1
* ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c, caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c, cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c, sched-int.h, toplev.c, config/alpha/alpha.c, config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h, config/cris/cris.md, config/i370/i370.md, config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h, config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md, config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h, config/ns32k/ns32k.md, config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors. From-SVN: r46760
2001-11-04convex.c (convex_output_function_prologue): Fix format specifier warning.Kaveh R. Ghazi1-3/+15
* convex.c (convex_output_function_prologue): Fix format specifier warning. (asm_declare_function_name): Fix signed/unsigned warning. (print_operand): Fix format specifier warning. * convex.h (S_REGNO_P, A_REGNO_P): Fix signed/unsigned warning. * dsp16xx-protos.h (uns_comparison_operator, num_1600_core_shifts): Prototype. * dsp16xx.c: Include tm_p.h, not dsp16xx-protos.h. (frame_size, frame_pointer_offset): Delete. (dsp16xx_output_function_prologue, dsp16xx_output_function_epilogue): Make static. Fix format specifier warnings. * dsp16xx.h (IS_ACCUM_REG): Fix unsigned>=0 warning. (EXTRA_SECTION_FUNCTIONS): Prototype const_section. * dsp16xx.md: Add default case in switches. * fr30.h (IN_RANGE): Delete. * ia64.h (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings. * mcore-protos.h (mcore_output_cmov): Const-ify. * mcore.c (mcore_output_cmov): Likewise. * mcore.h (switch_to_section): Make static and prototype. * mn10200.h (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Fix unsigned>=0 warnings. * mn10300.h (REGNO_IN_RANGE_P): Likewise. * rs6000-protos.h (read_only_data_section, read_only_private_data_section): Prototype. * rs6000.h (ASM_OUTPUT_BYTE): Fix format specifier warning. * sh.c (sh_adjust_cost): Mark parameter with ATTRIBUTE_UNUSED. * sh.h (GENERAL_REGISTER_P): Fix unsigned>=0 warning. From-SVN: r46758
2001-10-31builtins.def: Fix comment typos.Kazu Hirata1-1/+1
2001-10-31 Kazu Hirata <kazu@hxi.com> * builtins.def: Fix comment typos. * config/alpha.c: Likewise. * config/arm/arm.c: Likewise. * config/avr/avr.h: Likewise. * config/d30v/d30v.c: Likewise. * config/d30v/d30v.h: Likewise. * config/d30v/d30v.md: Likewise. * config/dsp16xx/dsp16xx.c: Likewise. * config/fr30/fr30.c: Likewise. * config/fr30/fr30.md: Likewise. * config/i386/i386.c: Likewise. * config/i860/i860.c: Likewise. * config/i960/i960.c: Likewise. * config/ia64/ia64.c: Likewise. * config/mips/mips.c: Likewise. * config/pa/pa.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/s390/s390.c: Likewise. * config/sparc/sparc.c: Likewise. From-SVN: r46676
2001-10-30arm.c: Fix comment a typo.Kazu Hirata1-1/+1
* config/arm/arm.c: Fix comment a typo. * config/arm/arm.h: Likewise. * config/ia64/ia64.c: Likewise. From-SVN: r46638
2001-10-19config.gcc (i[34567]86-*-gnu*, [...]): Delete superflous ${cpu_type} setting.Franz Sirl2-3/+1
2001-10-19 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*, fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*, parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*, i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware, i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*, i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*, i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1, i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*, i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*, i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*, ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf, mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*, powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*, powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*, powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*, powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*, powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*, rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*, sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf, v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf, cris-*-none, cris-*-linux*: Update ${tmfile} list. (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*, mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*, powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*, v850-*-*): Delete superflous ${cpu_type} setting. * config/linux.h: Delete svr4.h include. (SET_ASM_OP): Delete. * config/netware.h (INT_ASM_OP): Undef before define. * config/ptx4.h: Delete elfos.h include. (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping. * config/svr4.h: Delete elfos.h include. Update commentary. * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h, config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h, config/mn10200/mn10300.h, config/stormy16/stormy16.h, config/v850/v850.h: Delete svr4.h include. * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h, config/m68k/m68kv4.h, config/m88k/sysv4.h, config/sparc/sysv4.h: Update includes. * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h, config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h, config/m88k/dguxbcs.h: Delete includes. * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include. (PREFERRED_DEBUGGING_TYPE): Undef before defining it. * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining it. * config/m88k/dgux.h: Delete include. (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): Undef before defining it. * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it. * config/sh/elf.h: Update include. (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes. From-SVN: r46366
2001-09-21tree.def (FDESC_EXPR): New.Richard Henderson1-0/+18
gcc/ * tree.def (FDESC_EXPR): New. * expr.c (expand_expr): Handle it. * varasm.c (initializer_constant_valid_p): Likewise. (output_constant): Likewise. * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New. * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New. (ASM_OUTPUT_FDESC): New. * doc/tm.texi: Document the new macros. gcc/cp/ * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. (build_vtbl_initializer): Likewise. (build_vfn_ref): New. * cp-tree.h: Declare it. * call.c (build_over_call): Use it. * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. gcc/java/ * class.c (get_dispatch_table): Handle function descriptors. (build_dtable_decl): Likewise. * expr.c (build_invokevirtual): Likewise. gcc/testsuite/ * g++.old-deja/g++.abi/ptrmem.C: Update for ia64 c++ abi. * g++.old-deja/g++.abi/vtable2.C: Likewise. From-SVN: r45733
2001-09-21Table-driven attributes.Joseph Myers1-25/+9
* c-decl.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c, config/arm/pe.c, config/avr/avr.c, config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h, config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c, config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c, config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi, doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c, tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. * tree.h (struct tree_decl): Change machine_attributes to attributes. * doc/c-tree.texi: Document that all attributes are now attached to decls and types. * c-common.c (add_attribute, attrtab, attrtab_idx, default_valid_lang_attribute, valid_lang_attribute): Remove. (attribute_tables, attributes_initialized, c_common_attribute_table, default_lang_attribute_table): New variables. (handle_packed_attribute, handle_nocommon_attribute, handle_common_attribute, handle_noreturn_attribute, handle_unused_attribute, handle_const_attribute, handle_transparent_union_attribute, handle_constructor_attribute, handle_destructor_attribute, handle_mode_attribute, handle_section_attribute, handle_aligned_attribute, handle_weak_attribute, handle_alias_attribute, handle_no_instrument_function_attribute, handle_no_check_memory_usage_attribute, handle_malloc_attribute, handle_no_limit_stack_attribute, handle_pure_attribute): New functions. (init_attributes, decl_attributes): Rewrite to implement table-driven attributes. * c-common.h (enum attribute_flags): Move to tree.h. * c-format.c (decl_handle_format_attribute, decl_handle_format_arg_attribute): Rename to handle_format_attribute and handle_format_arg_attribute. Update for table-driven attributes. * c-common.h (decl_handle_format_attribute, decl_handle_format_arg_attribute): Remove prototypes. (handle_format_attribute, handle_format_arg_attribute): Add prototypes. * c-decl.c (grokdeclarator): Handle attributes nested inside declarators. * c-parse.in (setattrs, maybe_setattrs): Remove. (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs. Update to handle nested attributes properly. (maybe_resetattrs, after_type_declarator, parm_declarator_nostarttypename, notype_declarator, absdcl1_noea, absdcl1_ea, direct_absdcl1): Update to handle nested attributes properly. (make_pointer_declarator): Update to handle nested attributes properly. * doc/extend.texi: Update documentation of limits of attributes syntax. Warn about problems with attribute semantics in C++. * target.h (struct target): Remove valid_decl_attribute and valid_type_attribute. Add attribute_table and function_attribute_inlinable_p. * target-def.h (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Remove. (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Add. (TARGET_INITIALIZER): Update. * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default definition. (function_attribute_inlinable_p): New function. Check for the presence of any machine attributes before using targetm.function_attribute_inlinable_p. (function_cannot_inline_p): Update. * Makefile.in (integrate.o): Update dependencies. * doc/tm.texi: Update documentation of target attributes and example definition of TARGET_VALID_TYPE_ATTRIBUTE. * tree.c (default_valid_attribute_p, valid_machine_attribute): Remove. (default_target_attribute_table, default_function_attribute_inlinable_p): New. (lookup_attribute): Update comment to clarify handling of multiple attributes with the same name. (merge_attributes, attribute_list_contained): Allow multiple attributes with the same name but different arguments to appear in the same attribute list. * tree.h (default_valid_attribute_p): Remove prototype. (struct attribute_spec): New. (default_target_attribute_table): Declare. (enum attribute_flags): Move from c-common.h. Add ATTR_FLAG_TYPE_IN_PLACE. (default_function_attribute_inlinable_p): Declare. * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (vms_attribute_table): New. * config/arc/arc.c (arc_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (arc_attribute_table, arc_handle_interrupt_attribute): New. * config/arm/arm.c (arm_valid_type_attribute_p, arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (arm_attribute_table, arm_handle_fndecl_attribute, arm_handle_isr_attribute): New. * config/avr/avr.c (avr_valid_type_attribute, avr_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (avr_attribute_table, avr_handle_progmem_attribute, avr_handle_fndecl_attribute): New. * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (c4x_attribute_table, c4x_handle_fntype_attribute): New. * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (h8300_attribute_table, h8300_handle_fndecl_attribute, h8300_handle_eightbit_data_attribute, h8300_handle_tiny_data_attribute): New. * config/i386/i386-protos.h (ix86_valid_type_attribute_p, i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p): Remove prototypes. (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New declarations. * config/i386/i386.c (ix86_valid_type_attribute_p: Remove. (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (ix86_attribute_table, ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute): New. * config/i386/winnt.c (i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p): Remove. (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New. * config/ia64/ia64.c (ia64_valid_type_attribute): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (ia64_attribute_table): New. * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1, interrupt_ident2, model_ident1, model_ident2): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (init_idents): Update. (m32r_attribute_table, m32r_handle_model_attribute): New. * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New. * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (mcore_attribute_table, mcore_handle_naked_attribute): New. * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (ns32k_attribute_table, ns32k_handle_fntype_attribute): New. * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (rs6000_attribute_table, rs6000_handle_longcall_attribute): New. * config/sh/sh.c (sh_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (sh_attribute_table, sh_handle_interrupt_handler_attribute, sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): New. * config/stormy16/stormy16.c (stormy16_valid_type_attribute): Remove. (TARGET_VALID_TYPE_ATTRIBUTE): Don't define (TARGET_ATTRIBUTE_TABLE): Define. (stormy16_attribute_table, stormy16_handle_interrupt_attribute): New. * config/v850/v850.c (v850_valid_decl_attribute): Remove. (TARGET_VALID_DECL_ATTRIBUTE): Don't define. (TARGET_ATTRIBUTE_TABLE): Define. (v850_attribute_table, v850_handle_interrupt_attribute, v850_handle_data_area_attribute): New. * config/v850/v850-c.c (mark_current_function_as_interrupt): Return void. Call decl_attributes instead of valid_machine_attribute. cp: Table-driven attributes. * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. * decl2.c (cplus_decl_attributes): Only take one attributes parameter. * cp-tree.c (cplus_decl_attributes): Update prototype. * class.c (finish_struct), decl.c (start_decl, start_function), decl2.c (grokfield), friend.c (do_friend), parse.y (parse_bitfield): Update calls to cplus_decl_attributes. * decl.c (grokdeclarator): Take a pointer to a single ordinary attribute list. * decl.h (grokdeclarator): Update prototype. * decl2.c (grokfield): Take a single ordinary attribute list. * friend.c (do_friend): Likewise. * decl.c (shadow_tag, groktypename, start_decl, start_handler_parms, grokdeclarator, grokparms, start_function, start_method), decl2.c (grokfield, grokbitfield, grokoptypename), parse.y (parse_field, parse_bitfield, component_decl_1), pt.c (process_template_parm, do_decl_instantiation): Pass single ordinary attribute lists around. * decl.c (grokdeclarator): Correct handling of nested attributes. Revert the patch 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> * decl.c (grokdeclarator): Embedded attrs bind to the right, not the left. . * cp-tree.h (cp_valid_lang_attribute): Remove declaration (cp_attribute_table): Declare. * decl.c (valid_lang_attribute): Don't define. (lang_attribute_table): Define. (init_decl_processing): Initialize lang_attribute_table instead of valid_lang_attribute. * tree.c (cp_valid_lang_attribute): Remove. (handle_java_interface_attribute, handle_com_interface_attribute, handle_init_priority_attribute): New functions. (cp_attribute_table): New array. * decl2.c (import_export_class): Don't use targetm.valid_type_attribute. testsuite: Table-driven attributes. * g++.dg/ext/attrib1.C: New test. From-SVN: r45718
2001-09-20re PR c/3917 (IA-64 assembler output shows erroneous cycle counting)Jim Wilson1-2/+17
Fix for PR 3917. * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle. (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking for issue port conflicts. (cycle_end_fill_slots): TYPE_L instructions take two slots. From-SVN: r45713
2001-09-12c-common.c (c_tree_code_name): Const-ification.Kaveh R. Ghazi2-2/+2
* c-common.c (c_tree_code_name): Const-ification. * c-decl.c (c_decode_option): Likewise. * c-typeck.c (warn_for_assignment): Likewise. * collect2.c (libexts, is_ctor_dtor, main, ignore_library): Likewise. * cppinit.c (output_deps): Likewise. * dependence.c (dependence_string, direction_string): Likewise. * dwarf2out.c (output_ranges): Likewise. * fixinc/fixfixes.c (emit_gnu_type): Likewise. * fixinc/gnu-regex.c (re_error_msgid): Likewise. * gcc.c (standard_exec_prefix, standard_exec_prefix_1, standard_startfile_prefix, standard_startfile_prefix_1, standard_startfile_prefix_2, tooldir_base_prefix, standard_bindir_prefix, find_a_file): Likewise. * genattrtab.c (make_length_attrs): Likewise. * gencheck.c (tree_codes): Likewise. * genemit.c (gen_split): Likewise. * genrecog.c (special_mode_pred_table): Likewise. * graph.c (graph_ext): Likewise. * protoize (default_include): Likewise. * reload.c (reload_when_needed_name): Likewise. * sched-vis.c (visualize_stall_cycles): Likewise. * tlink.c (recompile_files): Likewise. * toplev.c (decode_g_option): Likewise. * tradcpp.c (output_deps): Likewise. * varasm.c (decode_reg_name): Likewise. * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code): Const-ification. * arm.md: Likewise. * avr.c (avr_regnames, encode_section_info): Likewise. * c4x.c (float_reg_names): Likewise. * darwin.h (ASM_GLOBALIZE_LABEL): Likewise. * elfos.h (const_section): Likewise. * i386.c (ix86_comp_type_attributes): Likewise. * i386/win32.h (STRIP_NAME_ENCODING): Likewise. * ia64/aix.h (UNIQUE_SECTION): Likewise. * ia64.c (type_names): Likewise. * m68hc11.c (reg_class_names): Likewise. * m88k.c (m_options): Likewise. * mips.c (mips_output_conditional_branch, mips_unique_section): Likewise. * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise. * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue, ultra_code_names): Likewise. * sparc.h (OVERRIDE_OPTIONS): Likewise. From-SVN: r45567
2001-09-11configure.in: Check whether assembler supports section merging.Jakub Jelinek2-9/+16
* configure.in: Check whether assembler supports section merging. * config.in: Rebuilt. * configure: Rebuilt. * varasm.c (variable_section, output_constant_pool): Pass alignment to SELECT_SECTION and SELECT_RTX_SECTION. (mergeable_string_section): New. (mergeable_constant_section): New. (default_elf_asm_named_section): Output SECTION_MERGE and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size. * output.h (mergeable_string_section): New. (mergeable_constant_section): New. (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define. * toplev.c (flag_merge_constants): New. (f_options): Add -fmerge-constants and -fmerge-all-constants options. (toplev_main): Default to -fno-merge-constants if not optimizing. * flags.h (flag_merge_constants): Add extern. * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document. * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third argument. * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler has working .subsection -1 support. (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument. Put constant into special SHF_MERGE sections if the linker should attempt to merge duplicates. * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument. Put constant into special SHF_MERGE sections if the linker should attempt to merge duplicates. * config/alpha/elf.h: Likewise. (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler has working .subsection -1 support. * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and SELECT_SECTION. * config/svr3.h: Likewise. * config/darwin.h: Likewise. * config/arm/aof.h: Likewise. * config/arm/linux-elf.h: Likewise. * config/avr/avr.h: Likewise. * config/c4x/c4x.h: Likewise. * config/d30v/d30v.h: Likewise. * config/i386/dgux.h: Likewise. * config/i386/osfrose.h: Likewise. * config/i386/sco5.h: Likewise. * config/i386/svr3gas.h: Likewise. * config/ia64/aix.h: Likewise. * config/m32r/m32r.h: Likewise. * config/m68k/m68k.h: Likewise. * config/m88k/dgux.h: Likewise. * config/m88k/m88k.h: Likewise. * config/mcore/mcore-pe.h: Likewise. * config/mips/mips.h: Likewise. * config/pa/pa.h: Likewise. * config/pa/pa-linux.h: Likewise. * config/romp/romp.h: Likewise. * config/rs6000/sysv4.h: Likewise. * config/rs6000/xcoff.h: Likewise. * config/s390/linux.h: Likewise. * config/sparc/sparc.h: Likewise. * config/sparc/sysv4.h: Likewise. * config/stormy16/stormy16.h: Likewise. * config/v850/v850.h: Likewise. * config/vax/vms.h: Likewise. * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size. * config/sparc/sparc.c (sparc_elf_asm_named_section): Use default_elf_asm_named_section for SHF_MERGE sections. * com.c (ffe_init_options): Default to -fmerge-all-constants if optimizing. From-SVN: r45548
2001-08-28ia64.md (andcmbi3, iorcmbi3): Fix typos.Richard Henderson1-5/+4
* config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos. (one_cmplbi2 splitter): Remove redundant test. From-SVN: r45238
2001-08-23When moving asms out of the way, don't move all of them to the same placeBernd Schmidt1-2/+2
From-SVN: r45138
2001-08-23Fix abort where write_count got to 3Bernd Schmidt1-1/+4
From-SVN: r45137
2001-08-23ia64.c (ia64_register_move_cost): Add mode arguemnt.Richard Henderson3-63/+107
* config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt. Reorganize. Handle ADDL like GR, add GR_AND_BR. Handle TFmode. (ia64_secondary_reload_class): Need GR between AR/BR and anything. Need GR between FR and not GR_AND_FR. * config/ia64/ia64-protos.h (ia64_register_move_cost): Update. * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move AR regs before GR regs. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. (PREFERRED_RELOAD_CLASS): Tweak for reordered classes. (REGISTER_MOVE_COST): Update. (MEMORY_MOVE_COST): Add GR_AND_FR_REGS. From-SVN: r45125
2001-08-22final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment.Richard Henderson3-43/+41
* final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment. (final_scan_insn): Consider jump tables data even if we have no independant text section if !JUMP_TABLES_IN_TEXT_SECTION. Use ADDR_VEC_ALIGN. * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove. (ASM_OUTPUT_CASE_END): Remove. (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references. * config/ia64/ia64.md (tablejump): Decode pc-relative references. * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove. From-SVN: r45103
2001-08-22ia64.c (emit_all_insn_group_barriers): Flush state at barrier insns.Richard Henderson1-5/+17
* config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state at barrier insns. Emit stop bits before barriers. From-SVN: r45102
2001-08-21crtbegin.asm (__do_global_dtors_aux): Use saved copy of gp while the real gp ↵Richard Henderson1-1/+1
register contains garbage. * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved copy of gp while the real gp register contains garbage. From-SVN: r45091
2001-08-21sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if ia64_asm_output_label.Richard Henderson1-1/+2
* config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if ia64_asm_output_label. From-SVN: r45090
2001-08-21ia64.c (ia64_return_in_memory): True for variable sized types.Richard Henderson1-4/+8
* config/ia64/ia64.c (ia64_return_in_memory): True for variable sized types. From-SVN: r45073
2001-08-19ia64.c (ia64_cycle_display): Only emit cycle display markers during final ↵Richard Henderson1-1/+4
schedule. * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle display markers during final schedule. From-SVN: r45031
2001-08-19ia64.h (STRIP_NAME_ENCODING): Handle @ and * in the same string.Richard Henderson2-44/+20
* config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and * in the same string. (ASM_NAME_TO_STRING): Remove. * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and * in the same string. Remove support for expressions. From-SVN: r45029
2001-08-18unwind-ia64.c (UNW_REG_B0): New.Richard Henderson1-5/+23
* config/ia64/unwind-ia64.c (UNW_REG_B0): New. (struct _Unwind_Context): Expand br_loc to hold it. (uw_frame_state_for): Handle leaf functions better. (uw_update_reg_address): Update for br_loc change. From-SVN: r45024
2001-08-18crtbegin.asm (dtor_ptr): Make gp-relative.Richard Henderson2-11/+92
* config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative. (__do_global_dtors_aux): Update to match. (__JCR_LIST__, __do_jv_register_classes): New. (.init): Call it. * config/ia64/crtend.asm (__JCR_END__): New. (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__ instead of an indirect LTOFF22 reloc. From-SVN: r45023
2001-08-18flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call.Richard Henderson4-44/+59
* flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call. * regclass.c (init_reg_sets_1): Fix typo. * config/ia64/ia64.c (ar_pfs_reg_operand): New. (ia64_expand_call): Pass ar.pfs to sibcall expanders. (ia64_compute_frame_size): Make ar.unat live when in use. (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf for ar.pfs; remove ar.unat handling. * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is call-saved. (PREDICATE_CODES): Add ar_pfs_reg_operand. * config/ia64/ia64-protos.h: Update decls. * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs. (sibcall_pic): Likewise. From-SVN: r45021
2001-08-18ia64.md (cycle_display): Combine the expander and insn patterns.Richard Henderson1-6/+1
* config/ia64/ia64.md (cycle_display): Combine the expander and insn patterns. From-SVN: r45020
2001-08-18ia64.c (ia64_sched_reorder2): Also skip past pred_rel_mutex when searching ↵Richard Henderson1-17/+30
for insn_group_barrier. * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past pred_rel_mutex when searching for insn_group_barrier. From-SVN: r45019
2001-08-18ia64.c (ia64_internal_sched_reorder): Emit stop bit before asm as needed.Richard Henderson1-0/+6
* config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop bit before asm as needed. From-SVN: r45018
2001-08-18timevar.def (TV_MACH_DEP): New.Richard Henderson1-0/+3
* timevar.def (TV_MACH_DEP): New. * toplev.c (rest_of_compilation): Use it. * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2. From-SVN: r45017
2001-08-18haifa-sched.c: Convert to target hooks.Zack Weinberg3-51/+60
* haifa-sched.c: Convert to target hooks. Macros replaced are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE, MD_SCHED_FINISH, and HAVE_cycle_display. * target-def.h (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT, TARGET_SCHED_FINISH, TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY): New hook #defines to be overridden. (TARGET_SCHED): Bring them all together. (TARGET_INITIALIZER): Update. * target.h: Don't forward declare struct rtx_def. Use 'rtx' instead of 'struct rtx_def *' throughout. (struct sched): New set of hooks for the scheduler. * Makefile.in (haifa-sched.o): Depend on target.h. * doc/tm.texi: Document the new scheduler hooks, together in their own section, instead of scattered around. Fix a bunch of underfull/overfull hboxes. * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h, ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h, sparc.h: Don't define any of the old scheduler macros. * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c, ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c, sparc.c: Create hook functions from code extracted from corresponding target header, or make existing hooks static, as appropriate. Set the appropriate entries in targetm. * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h, i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h, rs6000-protos.h, s390-protos.h, sparc-protos.h: Remove prototypes for functions which are now static. * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and related gunk; the Haifa scheduler is now the only choice. From-SVN: r45009
2001-08-18optabs.h (OTI_flodiv, [...]): Kill.Zack Weinberg1-1/+1
* optabs.h (OTI_flodiv, flodiv_optab): Kill. * genopinit.c: Put floating point divide insns in sdiv_optab. * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab. * config/gofast.h, config/c4x/c4x.h, config/ia64/hpux_longdouble.h, config/mips/mips.h, config/pa/long_double.h, config/rs6000/sysv4.h, config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab. * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv. (init_optabs): Use init_optabv for overflow-trapping optabs. Don't init flodiv_optab. Give mov_optab, movstrict_optab, and cmp_optab RTX codes so have_insn_for can find them. * optabs.c (expand_simple_binop, expand_simple_unop, have_insn_for, gen_sub3_insn): New interfaces. * expr.h: Prototype new functions. (enum optab_methods): Move here from optabs.h. * builtins.c, combine.c, doloop.c, function.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c: Use new functions instead of working directly with optabs. * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c, unroll.c: Don't include optabs.h. * caller-save.c, combine.c, function.c, stmt.c: Just include insn-codes.h, not optabs.h. * Makefile.in: Update dependencies. * combine.c (make_compound_operation, simplify_comparison): Fix typos testing for this or that instruction. From-SVN: r45008
2001-08-13expr.h: Split out optab- and libfunc-related code to...Zack Weinberg1-0/+1
* expr.h: Split out optab- and libfunc-related code to... * optabs.h, libfuncs.h: ... these new headers. * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h. (OPTABS_H): New. (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to dependencies. * mkconfig.sh: Don't include insn-codes.h from config.h. * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether enum insn_code is available. Move reload_in_optab and reload_out_optab array declarations to optabs.h. * regmove.c (gen_add3_insn): Move to optabs.c, export from there, prototype in expr.h. * gencodes.c: Cleanup: zap global variables, don't use printf where puts will do, don't bother defining MAX_INSN_CODE which nothing uses, let CODE_FOR_nothing get its value implicitly. * genemit.c, genopinit.c: Include optabs.h in generated file. * genoutput.c: Include insn-codes.h in generated file. * builtins.c, caller-save.c, combine.c, doloop.c, explow.c, expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c, reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c, config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c, config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c: Include optabs.h. * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c, optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c, config/m88k/m88k.c, config/sparc/sparc.c: Include libfuncs.h. * reload.c: Include expr.h and optabs.h before reload.h. * config/alpha/alpha.c: Include tree.h before reload.h. * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h, and reload.h in that order. * config/sparc/sparc.c: Include debug.h. * recog.c: Include insn-codes.h. cp: * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. * except.c: Include libfuncs.h. java: * Make-lang.in (java/decl.o): Update dependencies. * decl.c: Include libfuncs.h, don't include toplev.h. From-SVN: r44858
2001-08-09Move constructor/destructor handling into target hooks.Richard Henderson1-43/+1
From-SVN: r44747
2001-08-09fde-glibc.c: Require glibc 2.2.4+ headers.Jakub Jelinek2-98/+51
* config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers. (find_fde_for_dso): Remove. (_Unwind_IteratePhdrCallback): New. (_Unwind_FindTableEntry): Use dl_iterate_phdr. * config/ia64/crtbegin.asm (__ia64_app_header): Remove. From-SVN: r44742
2001-08-08Turn patterns/splits into define_insn_and_splitBernd Schmidt1-30/+9
From-SVN: r44714
2001-08-05New pattern for the combinerBernd Schmidt3-0/+90
From-SVN: r44648
2001-08-05Fix gen_nop_type abortBernd Schmidt1-14/+32
From-SVN: r44647
2001-08-05Add missing REG_INC notes.Bernd Schmidt2-10/+34
From-SVN: r44646
2001-08-03target.h (gcc_target): Add asm_out.named_section, section_type_flags, ↵Richard Henderson2-27/+0
have_named_sections. * target.h (gcc_target): Add asm_out.named_section, section_type_flags, have_named_sections. * target-def.h (TARGET_ASM_NAMED_SECTION): New. (TARGET_HAVE_NAMED_SECTIONS): New. (TARGET_SECTION_TYPE_FLAGS): New. * Makefile.in (toplev.o): Depend on TARGET_H. (varasm.o, dbxout.o): Likewise. * c-common.c (decl_attributes): Check targetm.have_named_sections instead of ifdef ASM_OUTPUT_SECTION_NAME. * dbxout.c (dbxout_function_decl): Likewise. (dbxout_function_end): Likewise. * toplev.c (compile_file): Likewise. * varasm.c (exception_section): Likewise. * cp/decl2.c (finish_objects): Likewise. * defaults.h (EH_FRAME_SECTION): Remove. (EH_FRAME_SECTION_ASM_OP): Remove. (EH_FRAME_SECTION_NAME): New. (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME. (UNIQUE_SECTION_P): Remove. * dwarf2out.c (SECTION_FORMAT): Remove. (ASM_OUTPUT_SECTION): Remove. (output_call_frame_info): Use named_section_flags. (output_comp_unit, dwarf2out_start_source_file): Likewise. (dwarf2out_end_source_file, dwarf2out_define): Likewise. (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise. * varasm.c (in_eh_frame, eh_frame_section): Remove. (named_section_flags): New. (named_section): Use it and targetm.section_type_flags. (resolve_unique_section): New. (assemble_start_function): Use it. (asm_emit_uninitialised, assemble_variable): Likewise. (default_section_type_flags): New. (default_no_named_section, default_elf_asm_named_section): New. (default_coff_asm_named_section, default_pe_asm_named_section): New. * output.h: Update varasm.c decls. (SECTION_*): New flags. * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP. (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section. * config/elfos.h (UNIQUE_SECTION_P): Remove. * config/alpha/elf.h, config/arm/linux-elf.h: Likewise. * config/arm/pe.h, config/arm/unknown-elf.h: Likewise. * config/i386/cygwin.h, config/i386/djgpp.h: Likewise. * config/i386/i386-interix.h, config/i386/win32.h: Likewise. * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise. * config/mips/elf.h, config/mips/elf64.h: Likewise. * config/mips/iris6gld.h, config/mips/mips.h: Likewise. * config/pa/pa64-hpux.h, * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove. (TARGET_ASM_NAMED_SECTION): New. * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise. * config/alpha/vms.h, config/arm/coff.h: Likewise. * config/arm/conix-elf.h, config/arm/elf.h: Likewise. * config/arm/linux-elf.h, config/arm/pe.h: Likewise. * config/arm/unknown-elf.h, config/avr/avr.h: Likewise. * config/c4x/c4x.h, config/h8300/h8300.h: Likewise. * config/i386/cygwin.h, config/i386/djgpp.h: Likewise. * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise. * config/i386/sco5.h, config/i386/win32.h: Likewise. * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise. * config/mcore/mcore.h, config/mips/elf.h: Likewise. * config/mips/elf64.h, config/mips/iris6.h: Likewise. * config/mips/netbsd.h, config/mips/openbsd.h: Likewise. * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise. * config/rs6000/xcoff.h, config/sh/sh.h: Likewise. * config/sparc/sysv4.h: Likewise. * config/nextstep.h: Error until named sections implemented. * config/a29k/a29k.c (a29k_asm_named_section): New. * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New. (vms_section_type_flags, vms_asm_named_section): New. * config/arm/arm.c (arm_elf_asm_named_section): New. * config/avr/avr.c (asm_output_section_name): Remove. * config/avr/avr-protos.h: Update. * config/c4x/c4x.c (c4x_asm_named_section): New. * config/h8300/h8300.c (h8300_asm_named_section): New. * config/i386/i386.c (sco_asm_named_section): New. * config/i386/winnt.c (SECTION_PE_SHARED): New. (i386_pe_section_type_flags): New. (i386_pe_asm_named_section): New. * config/i386/i386-protos.h: Update. * config/m68k/m68k.c (m68k_coff_asm_named_section): New. * config/mcore/mcore.c (mcore_asm_named_section): New. * config/mips/mips.c (iris6_asm_named_section): New. * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY instead of UNIQUE_SECTION_P. * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New. (xcoff_asm_named_section): New. * config/sh/sh.c (sh_asm_named_section): New. * config/sparc/sparc.c (sparc_elf_asm_named_section): New. * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove. * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove. (EH_FRAME_SECTION_NAME): New. (EXCEPTION_SECTION): New. * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove. (DEBUG_*_SECTION): Remove. * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove. * config/mips/iris6.h (DEBUG_*_SECTION): Remove. (EH_FRAME_SECTION_ASM_OP): Remove. * doc/tm.texi (UNIQUE_SECTION_P): Remove. (ASM_OUTPUT_SECTION_NAME): Remove. (TARGET_ASM_NAMED_SECTION): New. (TARGET_HAVE_NAMED_SECTIONS): New. (TARGET_SECTION_TYPE_FLAGS): New. (EH_FRAME_SECTION_ASM_OP): Remove. (EH_FRAME_SECTION_NAME): New. From-SVN: r44623
2001-08-03sysv4.h (ASM_OUTPUT_LABELREF): Don't write to constant data.Richard Henderson1-10/+8
* config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to constant data. From-SVN: r44596
2001-08-01regclass.c (call_really_used_regs): New array for registers which are ↵Andrew MacLeod1-0/+39
actually used by a call. 2001-08-01 Andrew MacLeod <amacleod@redhat.com> * regclass.c (call_really_used_regs): New array for registers which are actually used by a call. (init_reg_sets_1): Initialize regs_invalidated_by_call with the new array. (fix_register): Set call_really_used too. * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize. * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document. From-SVN: r44558