aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
AgeCommit message (Collapse)AuthorFilesLines
2007-09-30invoke.texi (Wall): List the options enabled by Wall.Manuel López-Ibáñez1-9/+40
2007-09-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * doc/invoke.texi (Wall): List the options enabled by Wall. (Wstrict-aliasing): Add missing @option. From-SVN: r128895
2007-09-28libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section.Chao-ying Fu1-48/+48
* libgcc-std.ver: Add fixed-point routines to GCC_4.3.0 section. * doc/libgcc.texi (Fixed-point fractional library routines): Fix typos for neg and cmp functions. From-SVN: r128873
2007-09-23tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to word_mode as well ↵Richard Sandiford1-8/+9
as Pmode. gcc/ * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to word_mode as well as Pmode. From-SVN: r128698
2007-09-23params.def (INLINE_CALL_COST): Set to 12.Jan Hubicka1-1/+1
* params.def (INLINE_CALL_COST): Set to 12. * invoke.texi (inline-call-cost): Update default value. From-SVN: r128692
2007-09-23expr.c (expand_expr_real_1): Use get_callee_fndecl instead of checking ↵Jakub Jelinek1-1/+26
CALL_EXPR_FN directly to test for... * expr.c (expand_expr_real_1) <case CALL_EXPR>: Use get_callee_fndecl instead of checking CALL_EXPR_FN directly to test for builtins. If error or warning attributes are present, print error resp. warning. * c-common.c (handle_error_attribute): New function. (c_common_attribute_table): Add error and warning attributes. * doc/extend.texi: Document error and warning attributes. * gcc.dg/va-arg-pack-len-1.c: Use error and warning attributes. * gcc.dg/va-arg-pack-len-2.c: New test. * g++.dg/ext/va-arg-pack-len-1.C: Use error and warning attributes. * g++.dg/ext/va-arg-pack-len-2.C: New test. From-SVN: r128687
2007-09-23tree.h (block_nonartificial_location): New prototype.Jakub Jelinek1-2/+10
* tree.h (block_nonartificial_location): New prototype. * tree.c (block_nonartificial_location): New function. * dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial if artificial attribute is present on abstract inline decl. * c-common.c (handle_artificial_attribute): New function. (c_common_attribute_table): Add artificial attribute. * final.c (override_filename, override_linenum): New variables. (final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename and override_linenum if inside of a block inlined from __attribute__((__artificial__)) function. (notice_source_line): Honor override_filename and override_linenum. * doc/extend.texi: Document __attribute__((__artificial__)). * config/i386/emmintrin.h: Add __artificial__ attribute to all __always_inline__ functions. * config/i386/mmintrin.h: Likewise. * config/i386/tmmintrin.h: Likewise. * config/i386/mm3dnow.h: Likewise. * config/i386/pmmintrin.h: Likewise. * config/i386/ammintrin.h: Likewise. * config/i386/xmmintrin.h: Likewise. * config/i386/smmintrin.h: Likewise. * config/i386/bmmintrin.h: Likewise. * config/i386/mmintrin-common.h: Likewise. From-SVN: r128686
2007-09-22sourcebuild.texi: Document dg-add-options mips16_attribute.Richard Sandiford1-0/+4
gcc/ * doc/sourcebuild.texi: Document dg-add-options mips16_attribute. gcc/testsuite/ * lib/target-supports.exp (add_options_for_mips16_attribute) (check_effective_target_mips16_attribute): New functions. * gcc.target/mips/mips.exp: Define MIPS16 and NOMIPS16 on the command line. (dg-mips-options) Remove -mno-mips16 handling. Add options to extra_test_flags. * gcc.target/mips/asm-1.c (NOMIPS16): Delete. * gcc.target/mips/atomic-memory-1.c (NOMIPS16): Likewise. * gcc.target/mips/atomic-memory-2.c (NOMIPS16): Likewise. * gcc.target/mips/branch-1.c (NOMIPS16): Likewise. * gcc.target/mips/dspr2-MULT.c (NOMIPS16): Likewise. * gcc.target/mips/dspr2-MULTU.c (NOMIPS16): Likewise. * gcc.target/mips/fpcmp-1.c (NOMIPS16): Likewise. * gcc.target/mips/fpcmp-2.c (NOMIPS16): Likewise. * gcc.target/mips/ins-1.c (NOMIPS16): Likewise. * gcc.target/mips/madd-3.c (NOMIPS16): Likewise. * gcc.target/mips/maddu-3.c (NOMIPS16): Likewise. * gcc.target/mips/mips32-dsp-run.c (NOMIPS16): Likewise. * gcc.target/mips/mips32-dspr2-type.c (NOMIPS16): Likewise. * gcc.target/mips/msub-3.c (NOMIPS16): Likewise. * gcc.target/mips/msubu-3.c (NOMIPS16): Likewise. * gcc.target/mips/near-far-3.c (NOMIPS16): Likewise. * gcc.target/mips/near-far-4.c (NOMIPS16): Likewise. * gcc.target/mips/neg-abs-1.c (NOMIPS16): Likewise. * gcc.target/mips/smartmips-lwxs.c (NOMIPS16): Likewise. * gcc.target/mips/smartmips-ror-1.c (NOMIPS16): Likewise. * gcc.target/mips/smartmips-ror-2.c (NOMIPS16): Likewise. * gcc.target/mips/smartmips-ror-3.c (NOMIPS16): Likewise. * gcc.target/mips/smartmips-ror-4.c (NOMIPS16): Likewise. * gcc.target/mips/pr26765.c: Use dg-mips-options instead of dg-options. (NOMIPS16): Delete. * gcc.target/mips/20020620-1.c: Use dg-mips-options instead of dg-options. * gcc.target/mips/call-saved-1.c: Remove -mips16 and -mno-abicalls options. Require { target mips16_attribute } and use dg-add-options to add the associated options. (foo): Use MIPS16. * gcc.target/mips/call-saved-2.c: As for call-saved-1.c. * gcc.target/mips/call-saved-3.c: Likewise. * gcc.target/mips/code-readable-1.c: Require { target mips16_attribute } and use dg-add-options to add the associated options. Remove trailing whitespace. (NOMIPS16): Delete. * gcc.target/mips/code-readable-2.c: Likewise. * gcc.target/mips/code-readable-3.c: Likewise. * gcc.target/mips/mips16-attributes-2.c: Likewise. * gcc.target/mips/mips16e-extends.c: Remove -mips16 option. Require { target mips16_attribute } and use dg-add-options to add the associated options. (cksum16, cksum8): Use MIPS16. * gcc.target/mips/save-restore-1.c: Remove -mips16 option. Require { target mips16_attribute } and use dg-add-options to add the associated options. (foo): Use MIPS16. * gcc.target/mips/save-restore-2.c: Likewise. * gcc.target/mips/save-restore-3.c: Likewise. * gcc.target/mips/save-restore-4.c: Likewise. * gcc.target/mips/save-restore-5.c: Likewise. Also remove -mno-abicalls. * gcc.target/mips/mips-sched-madd.c: Remove -mno-mips16. (foo): Use NOMIPS16. From-SVN: r128674
2007-09-22sourcebuild.texi (dg-add-c99-runtime-options): Document.Richard Sandiford1-0/+12
gcc/ * doc/sourcebuild.texi (dg-add-c99-runtime-options): Document. gcc/testsuite/ * lib/target-supports.exp (add_options_for_c99_runtime): New procedure. * lib/target-supports-dg.exp (dg-add-options): Likewise. * gcc.dg/builtins-18.c: Use { dg-add-options c99_runtime } instead of target-specific dg-options. * gcc.dg/builtins-20.c: Likewise. * gcc.dg/builtins-53.c: Likewise. * gcc.dg/builtins-55.c: Likewise. * gcc.dg/single-precision-constant.c: Likewise. * gcc.dg/torture/builtin-convert-1.c: Likewise. * gcc.dg/torture/builtin-convert-2.c: Likewise. * gcc.dg/torture/builtin-convert-3.c: Likewise. * gcc.dg/torture/builtin-convert-4.c: Likewise. * gcc.dg/torture/builtin-power-1.c: Likewise. From-SVN: r128663
2007-09-20configure.ac (mipsisa*-*-elfoabi*): New stanza.Richard Sandiford1-0/+13
* configure.ac (mipsisa*-*-elfoabi*): New stanza. * configure: Regenerate. config/ * mt-mips-elfoabi: New file. gcc/ * doc/invoke.texi (-minterlink-mips16): Document. * config/mips/mips.opt (minterlink-mips16): New option. * config/mips/mips.c (mips_function_ok_for_sibcall): Handle -minterlink-mips16 From-SVN: r128625
2007-09-20extend.texi (Attribute Syntax): Remove old speculative future direction.Joseph Myers1-18/+4
* doc/extend.texi (Attribute Syntax): Remove old speculative future direction. From-SVN: r128622
2007-09-19tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument.Bernd Schmidt1-2/+4
* doc/tm.texi (IS_ASM_LOGICAL_LINE_SEPARATOR): Document new argument. * final.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Provide two-argument default definition. (asm_insn_count): Pass template as second argument to it. * config/avr/avr.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. * config/pa/pa.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. * config/stormy16/stormy16.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. * config/cris/cris.h (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. * config/sh/sh.c (IS_ASM_LOGICAL_LINE_SEPARATOR): Likewise. (sh_insn_length_adjustment): Pass template as second argument to it. * config/bfin/bfin.h (IS_ASM_LOGICAL_LINE_SEPARATOR): New macro. From-SVN: r128599
2007-09-19config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h to tm_file.Jie Zhang1-17/+34
* config.gcc (bfin*-linux-uclibc*): Add ./linux-sysroot-suffix.h to tm_file. * config/bfin/print-sysroot-suffix.sh: New. * config/bfin/t-bfin-elf (EXTRA_PARTS): Remove. (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Redefine with new multilibs. * config/bfin/t-bfin-uclinux (EXTRA_PARTS): Remove. (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Redefine with new multilibs. * config/bfin/t-bfin-linux (EXTRA_PARTS): Remove. (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Redefine with new multilibs. (linux-sysroot-suffix.h): New target. * config/bfin/bfin.opt (mcsync-anomaly): Use Var instead of Mask. (mspecld-anomaly): Likewise. * config/bfin/bfin-protos.h (enum bfin_cpu_type): Renamed from (enum bfin_cpu): ... this. Add BFIN_CPU_BF522, BFIN_CPU_BF525, BFIN_CPU_BF527, BFIN_CPU_BF538, BFIN_CPU_BF539, BFIN_CPU_BF542, BFIN_CPU_BF544, BFIN_CPU_BF548, and BFIN_CPU_BF549. (bfin_si_revision): Declare. (bfin_workarounds): Declare. (WA_SPECULATIVE_LOADS): Define. (ENABLE_WA_SPECULATIVE_LOADS): Define. (WA_SPECULATIVE_SYNCS): Define. (ENABLE_WA_SPECULATIVE_SYNCS): Define. * config/bfin/elf.h (STARTFILE_SPEC): Rename crt532.o to basiccrt.o. (LIB_SPEC): Add %s to the linker scripts. Use proper linker script for bf522, bf525, bf527, bf538, bf539, bf542, bf544, bf548, and bf549. * config/bfin/bfin.c (bfin_si_revision): Define. (bfin_workarounds): Define. (struct bfin_cpu): New. (bfin_cpus): New. (bfin_handle_option): Handle silicon revision part of -mcpu option. (override_options): Set bfin_workarounds. (length_for_loop): Replace TARGET_CSYNC_ANOMALY with ENABLE_WA_SPECULATIVE_SYNCS, TARGET_SPECLD_ANOMALY with ENABLE_WA_SPECULATIVE_LOADS. (bfin_reorg): Likewise. * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define macros for bf522, bf525, bf527, bf538, bf539, bf542, bf544, bf548, and bf549. Define __SILICON_REVISION__ and __WORKAROUND_* macros if needed. Don't define __ID_SHARED_LIB__ when -msep-data. (TARGET_DEFAULT): Define as 0. (DRIVER_SELF_SPECS): Add -mcpu=bf532 if no -mcpu option. * doc/invoke.texi (Blackfin Options): Document silicon revision part of -mcpu option and it now accepts bf522, bf525, bf527, bf538, bf539, bf542, bf544, bf548, and bf549. Neither -mspecld-anomaly nor -mcsync-anomaly is enabled anymore. testsuite/ * gcc.target/bfin/bfin.exp: New. * gcc.target/bfin/{workarounds-any.c, workarounds-none.c, workarounds-1.c, workarounds-2.c, workarounds-3.c, workarounds-4.c, mcpu-bf522.c, mcpu-bf525.c, mcpu-bf527.c, mcpu-bf531.c, mcpu-bf532.c, mcpu-bf533.c, mcpu-bf534.c, mcpu-bf536.c, mcpu-bf537.c, mcpu-bf538.c, mcpu-bf539.c, mcpu-bf542.c, mcpu-bf544.c, mcpu-bf548.c, mcpu-bf549.c, mcpu-bf561.c, mcpu-default.c}: New tests. From-SVN: r128597
2007-09-18m68k-devices.def (51qe): New device.Maxim Kuvyrkov1-1/+2
* config/m68k/m68k-devices.def (51qe): New device. * config/m68k/m68k.c (FL_FOR_isa_c): Remove division unit. Add it to all uses of FL_FOR_isa_c for compatibility. (all_microarchs): Add cfv1 microarchitecture. (m68k_handle_option): Handle m51qe option. * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Handle 51QE. (TUNE_CFV1): New macro. (enum uarch_type): Add ucfv1. * doc/invoke.texi: Document 51qe device and cfv1 microarchitecture. From-SVN: r128574
2007-09-17fixed-bit.h: New file.Chao-ying Fu1-2/+1425
* config/fixed-bit.h: New file. * config/fixed-bit.c: New file. * doc/libgcc.texi (Fixed-point fractional library routines): New node. Co-Authored-By: Nigel Stephens <nigel@mips.com> From-SVN: r128556
2007-09-15tree-parloops.c: New file.Zdenek Dvorak2-1/+12
* tree-parloops.c: New file. * tree-ssa-operands.h (free_stmt_operands): Declare. * tree-ssa-loop-manip.c (split_loop_exit_edge): Return the new basic block. * tree-pass.h (pass_parallelize_loops): Declare. * omp-low.c (expand_omp_parallel, expand_omp_for): Update SSA form for virtual operands. (build_omp_regions_1): Allow analysing just a single OMP region and its subregions. ( build_omp_regions_root, omp_expand_local): New functions. (build_omp_regions): Add argument to build_omp_regions_1 call. * builtins.def (DEF_GOMP_BUILTIN): Initialize OMP builtins when autoparallelization is run. * timevar.def (TV_TREE_PARALLELIZE_LOOPS): New. * tree-ssa-loop.c (gate_tree_parallelize_loops, tree_parallelize_loops, pass_parallelize_loops): New. * common.opt (ftree-parallelize-loops): New. * tree-flow.h (omp_expand_local, tree_duplicate_sese_tail, parallelize_loops): Declare. (add_phi_args_after_copy, split_loop_exit_edge): Declaration changed. * Makefile.in (tree-parloops.o): Added. * tree-cfg.c (add_phi_args_after_copy_edge, tree_duplicate_sese_tail): New functions. (add_phi_args_after_copy_bb): Use add_phi_args_after_copy_edge. (add_phi_args_after_copy): Call add_phi_args_after_copy_edge for one extra edge as well. (tree_duplicate_sese_region): Add argument to add_phi_args_after_copy. Use VEC_free to free doms vector. (move_block_to_fn): Update loop info. Remove phi nodes for virtual operands. Recompute operand caches in the new function. (move_sese_region_to_fn): Update loop info. * passes.c (init_optimization_passes): Add pass_parallelize_loops. * tree-ssa-operands.c (free_stmt_operands): New function. * doc/passes.texi: Document autoparallelization. * doc/invoke.texi (-ftree-parallelize-loops): New option. * gcc.dg/tree-ssa/parallelization-1.c: New test. From-SVN: r128517
2007-09-14tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document.Sandra Loosemore1-0/+7
2007-09-14 Sandra Loosemore <sandra@codesourcery.com> Nigel Stephens <nigel@mips.com> gcc/ * doc/tm.texi (LIBGCC2_UNWIND_ATTRIBUTE): Document. * unwind-generic.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to declaration. (_Unwind_ForcedUnwind): Likewise. (_Unwind_Resume): Likewise. (_Unwind_Resume_or_Rethrow): Likewise. (_Unwind_Backtrace): Likewise. (_Unwind_SjLj_RaiseException): Likewise. (_Unwind_SjLj_ForcedUnwind): Likewise. (_Unwind_SjLj_Resume): Likewise. (_Unwind_SjLj_Resume_or_Rethrow): Likewise. * unwind.inc (_Unwind_RaiseException): Add LIBGCC2_UNWIND_ATTRIBUTE to definition. (_Unwind_ForcedUnwind): Likewise. (_Unwind_Resume): Likewise. (_Unwind_Resume_or_Rethrow): Likewise. (_Unwind_Backtrace): Likewise. * unwind-compat.c (_Unwind_Backtrace): Likewise. (_Unwind_ForcedUnwind): Likewise. (_Unwind_RaiseException): Likewise. (_Unwind_Resume): Likewise. (_Unwind_Resume_or_Rethrow): Likewise. * config/mips/mips.h (LIBGCC2_UNWIND_ATTRIBUTE): Define to force nomips16 mode when IN_LIBGCC2 with hard float. Co-Authored-By: Nigel Stephens <nigel@mips.com> From-SVN: r128501
2007-09-13Add AMD SSE5 support; Add iterator over function arguments; Add stdarg_p, ↵Michael Meissner2-3/+231
prototype_p, function_args_count functions From-SVN: r128455
2007-09-11bfin.h (enum reg_class, [...]): Add P0REGS.Bernd Schmidt1-0/+4
* config/bfin/bfin.h (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add P0REGS. (REGNO_REG_CLASS): Return it where appropriate. (REG_CLASS_FROM_CONSTRAINT): Add 'qA'. (CLASS_LIKELY_SPILLED_P): P0REGS is likely_spilled. * doc/md.texi (Blackfin family): Document 'q' constraints. From-SVN: r128397
2007-09-11invoke.texi: Document new MIPS -mllsc and -mno-llsc options.David Daney2-1/+44
* doc/invoke.texi: Document new MIPS -mllsc and -mno-llsc options. * doc/install.texi: Document new --with-llsc and --without-llsc options. * config.gcc: Handle --with-llsc and --without-llsc configure options. * config/mips/mips.md (sync, memory_barrier): Wrap sync instrunction in %| and %- operand codes. Depend on GENERATE_SYNC instead of ISA_HAS_SYNC. (sync_compare_and_swap<mode>, sync_add<mode>, sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, sync_new_nand<mode>, sync_lock_test_and_set<mode>): Depend on GENERATE_LL_SC instead of ISA_HAS_LL_SC. * config/mips/mips.opt (mllsc): New option. * config/mips/mips.c (mips_llsc): Define variable. (mips_handle_option): Handle mllsc option. (override_options): Set mips_print_operand_punct for '|' and '-'. (print_operand): Add new %| and %- operand codes. * config/mips/mips.h (mips_llsc_setting): New enum type. (mips_llsc): Declare. (OPTION_DEFAULT_SPECS): Add llsc handling. (GENERATE_SYNC): New macro. (GENERATE_LL_SC): New macro. (MIPS_COMPARE_AND_SWAP, MIPS_SYNC_OP, MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE): Wrap instructions in %| and %- operand codes. From-SVN: r128392
2007-09-11predicates.md (movsi_const0_operand, [...]): New predicates.Maxim Kuvyrkov1-1/+59
* config/m68k/predicates.md (movsi_const0_operand, non_symbolic_call_operand): New predicates. * config/m68k/constraints.md: (Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap, Ac): New constraints. * doc/md.texi (Constraints for Particular Machines: Motorola 680x0): Document constraints N, O, P, R, S, T, Q, U, W, Cs, Ci, C0, Cj, CQ, CW, CZ, CS, Ap and Ac. * config/m68k/m68k.md (UNSPEC_IB): New constant. (constraints.md): New include. (cpu, type, type1, opx, opy, opx_type, opy_type, size, opx_access, opx_mem, opy_mem, op_mem, guess, split): New attributes. (movdf_internal): Name pattern. Fix to use alternatives. Add split. Specify attributes. (pushdi): Add split. (tstsi_internal): Name pattern. Fix to use alternatives. Specify attributes. Split tstsi_internal_68020_cf from it. (tstsi_internal_68020_cf): New pattern. (tsthi_internal, tstqi_internal): Name pattern. Specify attributes. (tst<mode>_cf): Specify attributea. (cmpsi_cf): Name pattern. Specify attributes. (cmp<mode>_68881, cmp<mode>_cf): Specify type attribute. (pushexthisi_const): Fix to use alternatives. Specify attributes. (movsi_const0): Split movsi_const0_68000_10 and movsi_const0_68040_60 from it. Fix to use alternatives. Specify attributes. (movsi_const0_68040_10, movsi_const0_68040_60): New patterns. (movsi_cf, movstrictqi_cf): Fix to use alternatives. Specify attributes. (movsf_cf_soft): Specify attributes. (movdf_cf_soft): Add split. (pushasi, zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2, 68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2, truncdfsf2_cf): Specify attributes. (truncdfsf2_68881): Name pattern. Specify attributes. (floatsi<mode>2_cf, floathi<mode>2_68881, floathi<mode>2_cf, floatqi<mode>2_68881, floatqi<mode>2_cf, ftrunc<mode>2_cf, fix<mode>qi2_cf, fix<mode>hi2_cf, fix<mode>si2_cf, adddi_dishl32): Specify attributes. (addsi3_5200): Fix to use alternatives. Specify attributes. Add splits. (add<mode>3_cf, subdi_dishl32): Specify attributes. (subsi3): Add alternative for subq.l. Specify attributes. (sub<mode>3_cf, mulhi3, mulhisi3): Specify attributes. (mulhisisi3_s, mulsi3_68020, mulsi3_cf): Name pattern. Specify attributes. (umulhisi3): Specify attributes. (mulhisisi3_z): Name pattern. Specify attributes. (fmul<mode>3_cf, div<mode>3_cf, negsi2_internal, negsi2_5200, sqrt<mode>2_68881, clzsi2, one_cmplsi2_5200, subreghi1ashrdi_const32, subregsi1ashrdi_const32, ashrsi3, subreg1lshrdi_const32, lshrsi3, bsetmemqi): Specify attributes. (bsetmemqi_ext): Name pattern. Specify attributes. (bclrmemqi): Specify attributes. (bclrmemqi_ext, scc, sls): Name pattern. Specify attributes. (beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, ble, bleu): Specify attributes. (beq2, bne2, bgt2, bgtu2, blt2, bltu2, bge2, bgeu2, ble2, bleu2): Name pattern. Specify attributes. (jump): Specify attributes. (tablejump_internal): Name pattern. Specify attributes. (call_value): Split into non_symbolic_call_value, symbolic_call_value_jsr, symbolic_call_value_bsr. Fix to use alternatives. Specify attributes. (non_symbolic_call_value, symbolic_call_value_jsr, symbolic_call_value_bsr): New patterns. (nop, return, unlink, indirect_jump): Specify attributes. (trap): Fix condition. Specify attributes. (ib): New pattern. * config/m68k/m68k.c (m68k_symbolic_call_var): New variable. (override_options): Initialize it. Initialize m68k_sched_cpu. (CONST_METHOD): Rename to M68K_CONST_METHOD, move to m68k.h. (const_method): Make global, rename to m68k_const_method. (const_int_cost, output_move_const_into_data_reg): Update. (output_move_double): Parametrize to emit rtl code, rename to handle_move_double. (output_reg_adjust, emit_reg_adjust, output_compadr, output_movsi, emit_movsi): New static functions. (output_move_double): New function with semantics of old output_move_double. (m68k_emit_move_double): New function. (m68k_sched_cpu): New variable. (attr_op_type): New enum. (sched_guess_p): New variable. (sched_address_type, sched_operand_type, sched_attr_op_type): New static functions. (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem): New functions. (sched_branch_type): New static variable. (m68k_sched_branch_type): New function. * config/m68k/m68k.h (M68K_SYMBOLIC_CALL): New enum. (m68k_symbolic_call_var): Declare. (M68K_CONST_METHOD): Rename from CONST_METHOD. Move here from m68k.c. (m68k_const_method, m68k_emit_move_double, m68k_sched_cpu, m68k_sched_attr_opx_type, m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem, m68k_sched_branch_type): Declare. From-SVN: r128377
2007-09-11builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin.Jakub Jelinek1-0/+35
* builtins.def (BUILT_IN_VA_ARG_PACK_LEN): New builtin. * builtins.c (expand_builtin) <case BUILT_IN_VA_ARG_PACK_LEN>: Issue error if __builtin_va_arg_pack_len () wasn't optimized out during inlining. * tree-inline.c (copy_bb): Replace __builtin_va_arg_pack_len () with the number of inline's anonymous arguments. * doc/extend.texi: Document __builtin_va_arg_pack_len (). * gcc.dg/va-arg-pack-len-1.c: New test. * g++.dg/va-arg-pack-len-1.C: New test. From-SVN: r128376
2007-09-11re PR c/30013 (Multiple flaws in decimal floating-point arithmetic ↵Janis Johnson1-0/+12
conversions fixed) gcc/ PR c/30013 * config/dfp-bit.c: Don't skip TFmode conversions; move strto* declarations to top. (DFP_TO_BFP): Use for either XFmode or TFmode. (BFP_TO_DFP): Use for either XFmode or TFmode; always use cast of BFP_VIA_TYPE. * config/dfp-bit.h: Include float.h. (LONG_DOUBLE_HAS_XF_MODE, LONG_DOUBLE_HAS_TF_MODE): Define if long double is one of these modes, rather than using LIBGCC_HAS_*F_MODE which doesn't mean the same thing. (BFP_KIND): Use 4 to mean TFmode. (BFP_FMT): Specify the number of decimal digits based on the number of mantissa digits. (BFP_VIA_TYPE): Binary float type to use as cast for sprintf. (BFP_TO_DFP, DFP_TO_BFP): Define names for TFmode variants. (STR_TO_BFP): Use strtold for XFmode or TFmode. (TFtype): Define if TFmode is supported. * doc/libgcc.texi (Decimal float library routines): Document TF conversion functions. gcc/testsuite/ * gcc.dg/dfp/convert-bfp.c: Replace SKIP_LONG_DOUBLE with runtime checks for size of long double. * gcc.dg/dfp/convert.h: New file. * gcc.dg/dfp/convert-bfp-2.c: New test. * gcc.dg/dfp/convert-bfp-3.c: Ditto. * gcc.dg/dfp/convert-bfp-4.c: Ditto. * gcc.dg/dfp/convert-bfp-5.c: Ditto. * gcc.dg/dfp/convert-bfp-6.c: Ditto. * gcc.dg/dfp/convert-bfp-7.c: Ditto. * gcc.dg/dfp/convert-bfp-8.c: Ditto. * gcc.dg/dfp/convert-bfp-9.c: Ditto. * gcc.dg/dfp/convert-bfp-10.c: Ditto. * gcc.dg/dfp/convert-bfp-11.c: Ditto. From-SVN: r128361
2007-09-10New target hook to calculate MIITrevor Smigiel1-0/+9
Co-Authored-By: Revital Eres <eres@il.ibm.com> From-SVN: r128343
2007-09-09invoke.texi (Overall Options): Add .sx file extension as a synonym for .S.Sandra Loosemore1-0/+1
2007-09-09 Sandra Loosemore <sandra@codesourcery.com> Nigel Stephens <nigel@mips.com> gcc/ * doc/invoke.texi (Overall Options): Add .sx file extension as a synonym for .S. * cppspec.c (known_suffixes): Likewise. * gcc.c (default_compilers): Likewise. Co-Authored-By: Nigel Stephens <nigel@mips.com> From-SVN: r128308
2007-09-09re PR target/30315 (optimize unsigned-add overflow test on x86 to use cpu ↵Rask Ingemann Lambertsen1-1/+6
flags from addl) PR target/30315 * config/i386/i386.h (CANONICALIZE_COMPARISON): Delete. * simplify-rtx.c (simplify_relational_operation_1): Add the canonicalization from i386.h. * doc/md.texi (Canonicalization of Instructions): Document it. From-SVN: r128305
2007-09-09Add myself to doc/contrib.texiRevital Eres1-0/+3
From-SVN: r128299
2007-09-09Divide REG_LABEL notes into REG_LABEL_OPERAND and REG_LABEL_TARGET.Hans-Peter Nilsson1-13/+27
* doc/rtl.texi (Insns): Specify when a label_ref makes a jump_insn. Similar for what label_refs can go in the JUMP_TARGET field. Split REG_LABEL documentation into REG_LABEL_TARGET and REG_LABEL_OPERAND. * reload.c (find_reloads): Generate REG_LABEL_OPERAND, not REG_LABEL when replacing an operand with a LABEL_REF for a non-jump insn. (subst_reloads): When replacing a LABEL_REG with a register, instead of generating a REG_LABEL note, assert that there already is one or that the label is a known target for the insn. * rtlanal.c (computed_jump_p): Instead of looking for a REG_LABEL note, check the JUMP_LABEL field. Remove "else" after return. * reorg.c (emit_delay_sequence): Replace case for REG_LABEL with cases for REG_LABEL_OPERAND and REG_LABEL_TARGET. (fill_slots_from_thread): Handle both REG_LABEL_OPERAND and REG_LABEL_TARGET notes, including the JUMP_TARGET field on JUMP_P insns. Iterate over all notes; don't assume there's only one. * cse.c (recorded_label_ref): Adjust comment to refer to REG_LABEL_OPERAND. (cse_extended_basic_block): Do LABEL_REF check for all INSN_P insns, not just NONJUMP_INSN_P. (check_for_label_ref): For JUMP_P insns, check that the LABEL_REF isn't a jump target. * jump.c (rebuild_jump_labels): Adjust head comment. (init_label_info): Ditto. Remove REG_LABEL_OPERAND notes only; don't reset REG_LABEL_TARGET notes, including the JUMP_LABEL field. (mark_all_labels): For JUMP_P insns without a target, check if the the target is noted on the previous nonjump insn. (mark_jump_label_1): New function, guts from mark_jump_label. <case IF_THEN_ELSE>: Handle first operand as a non-target when marking jump target labels. <case LABEL_REF>: Adjust for whether to generate a REG_LABEL_TARGET or a REG_LABEL_OPERAND note. For 'E' format rtl, iterate in descending element order. (delete_related_insns): Handle both REG_LABEL_TARGET and REG_LABEL_OPERAND notes. For JUMP_P insns with labels with zero reference count, delete and fallthrough. Move finding-next- non-deleted insn last in the function. Look at all INSN_P insns for REG_LABEL_OPERAND notes. (redirect_jump_2): Assert that OLABEL equals the old JUMP_LABEL of JUMP. * print-rtl.c (print_rtx): For JUMP_P insns and a non-NULL JUMP_LABEL, output the INSN_UID of it. * gcse.c: Adjust comments as appropriate to say REG_LABEL_OPERAND and/or REG_LABEL_TARGET. (add_label_notes): Only add REG_LABEL_OPERAND notes. Put in line with jump.c copy by only adding notes for labels actually referenced in the insn. * emit-rtl.c (try_split): Don't assume only NONJUMP_INSN_P need usage count increment; handle all INSN_P trial insns. (emit_copy_of_insn_after): Change to not copy REG_LABEL_OPERAND notes. * rtl.h (struct rtx_def) <volatil>: Adjust to mention REG_LABEL_TARGET and REG_LABEL_OPERAND. (LABEL_REF_NONLOCAL_P): Allow REG_LABEL_TARGET and REG_LABEL_OPERAND. * combine.c (distribute_notes): Adjust for REG_LABEL_TARGET on JUMP_P insns and REG_LABEL_OPERAND everywhere. * sched-rgn.c (is_cfg_nonregular): Check for REG_LABEL_OPERANDS on all INSN_P insns. * reg-notes.def (LABEL_TARGET, LABEL_OPERAND): Split from LABEL. * cfgrtl.c (delete_insn): Adjust to handle REG_LABEL_TARGET and REG_LABEL_OPERAND notes. * reload1.c (calculate_needs_all_insns): Adjust comments. (set_label_offsets): Adjust to look for REG_LABEL_OPERAND notes. * config/alpha/alpha.md (split for load of an address into a four-insn sequence on Unicos/Mk): Adjust to use REG_LABEL_OPERAND. * config/sh/sh.md (sh_reorg, final_prescan_insn): Ditto. From-SVN: r128287
2007-09-07re PR middle-end/33321 (gcc manpage contains "@option<-Wstrict-overflow=1>")Tobias Burnus1-1/+1
2007-09-07 Tobias Burnus <burnus@net-b.de> PR middle-end/33321 * doc/invoke.texi: Fix -Wstrict-overflow= table. From-SVN: r128238
2007-09-07mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt.Richard Sandiford1-9/+66
config/ * mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt. (CXXFLAGS_FOR_TARGET): Likewise. gcc/ * doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata and -mgpopt options. Adjust the -G documentation to match. * config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New. * config/mips/mips.c (mips_rtx_constant_in_small_data_p): New function, split out from mips_classify_symbol. Return false for !TARGET_LOCAL_SDATA. (mips_classify_symbol): Call mips_rtx_constant_in_small_data_p. Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT. (override_options): Check whether the -mgpopt setting is consistent with the other flags. (symbolic_expression_p): Delete. (mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p and default_elf_select_rtx_section. (mips_in_small_data_p): Honor section attributes for MIPS16 too. Return false for local data unless TARGET_LOCAL_SDATA. Likewise external data and TARGET_EXTERN_SDATA. gcc/testsuite/ * gcc.dg/attr-alias-3.c: Use real asm for MIPS. * gcc.target/mips/mips.exp (setup_mips_tests): Set mips_forced_gp and mips_forced_no_er. (dg-mips-options): Add -mno-abicalls when a small-data option is specified. Skip tests with small-data options if mips_forced_gp. Skip tests with -mexplicit-relocs if mips_forced_no_er. * gcc.target/mips/sdata-1.c: New test. * gcc.target/mips/sdata-2.c: Likewise. * gcc.target/mips/sdata-3.c: Likewise. * gcc.target/mips/sdata-4.c: Likewise. From-SVN: r128230
2007-09-07re PR fortran/33303 (Document __GFORTRAN__)Tobias Burnus1-3/+6
2007-09-07 Tobias Burnus <burnus@net-b.de> PR fortran/33303 * doc/cpp.texi (Common Predefined Macros): Add __GFORTRAN__. From-SVN: r128229
2007-09-07stdfix.h: New file.Chao-ying Fu2-6/+203
* ginclude/stdfix.h: New file. * Makefile.in (USER_H): Add $(srcdir)/ginclude/stdfix.h. (convert.o): Add dependence on fixed-value.h. * c-convert.c (convert): Support FIXED_POINT_TYPE. * c-cppbuiltin.c (builtin_define_fixed_point_constants): New function to define fixed-point constants. (c_cpp_builtins): Define fixed-point constants. * convert.c (fixed-value.h): New include. (convert_to_real): Update comment to include fixed-point. Support FIXED_POINT_TYPE. (convert_to_integer): Update comment to include fixed-point. Support FIXED_POINT_TYPE. (convert_to_complex): Support FIXED_POINT_TYPE. (convert_to_fixed): New function. * convert.h (convert_to_fixed): Declare. * genopinit.c: Add comment about $Q for only fixed-point modes. (optabs): Add fract_optab, fractuns_optab, satfract_optab, satfractuns_optab, add_optab, ssadd_optab, usadd_optab, sub_optab, sssub_optab, ussub_optab, smul_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab, usmadd_widen_optab, ssdiv_optab, udiv_optab, usdiv_optab, ssashl_optab, usashl_optab, neg_optab, ssneg_optab, usneg_optab for fixed-point modes. (gen_insn): Add force_fixed to track the $Q format for all fixed-point modes. * optabs.c (optab_for_tree_code): For *DIV_EXPR, LSHIFT_EXPR, PLUS_EXPR, MINUS_EXPR, MULT_EXPR, NEGATE_EXPR, return signed or unsigned saturation optabs, when type is saturating. (shift_optab_p): Return true for SS_ASHIFT or US_ASHIFT. (expand_fixed_convert): New function. (gen_fixed_libfunc, gen_signed_fixed_libfunc, gen_unsigned_fixed_libfunc, gen_int_fp_fixed_libfunc, gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc, gen_int_signed_fixed_libfunc, gen_int_unsigned_fixed_libfunc, gen_fract_conv_libfunc, gen_fractuns_conv_libfunc, gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): New functions. (init_optabs): Initialize ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab, usmul_optab, ssmadd_widen_optab, usmadd_widen_optab, ssmsub_widen_optab, usmsub_widen_optab, ssdiv_optab, usdiv_optab, ssashl_optab, usashl_optab, ssneg_optab, usneg_optab, fract_optab, fractuns_optab, satfract_optab, satfractuns_optab. Initialize fixed-point libraries, including add, ssadd, usadd, sub, sssub, ussub, mul, ssmul, usmul, div, ssdiv, udiv, usdiv, ashl, ssashl, usashl, ashr, lshr, neg, ssneg, usneg, cmp, fract, satfract, fractuns, satfractuns. * optabs.h (enum optab_index): Add OTI_ssadd, OTI_usadd, OTI_sssub, OTI_ussub, OTI_ssmul, OTI_usmul, OTI_ssdiv, OTI_usdiv, OTI_ssneg, OTI_usneg, OTI_ssashl, OTI_usashl, OTI_ssmadd_widen, OTI_usmadd_widen, OTI_ssmsub_widen, OTI_usmsub_widen. (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab, usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab, ssashl_optab, usashl_optab, ssmadd_widen_optab, usmadd_widen_optab, umsub_widen_optab, usmsub_widen_optab): Define. (enum convert_optab_index): Add COI_fract, COI_fractuns, COI_satfract, COI_satfractuns. (fract_optab, fractuns_optab, satfract_optab, satfractuns_optab): Define. (expand_fixed_convert): Declare. * expr.c (convert_move): Support the move of fixed-point modes. (emit_move_insn_1): Handle fixed-point mode to move via integer. (categorize_ctor_elements_1): Handle FIXED_CST. (count_type_elements): Handle FIXED_POINT_TYPE. (expand_expr_real_1): For VECTOR_CST, check MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. Support FIXED_CST. For PLUS_EXPR and MINUS_EXPR, support saturating and non-saturating multiply and add/subtract for fixed-point types. For MULT_EXPR, *DIV_EXPR, *SHIFT_EXPR, if the mode if a fixed-point mode, we jump to binop directly. Support FIXED_CONVERT_EXPR. (do_store_flag): Check FIXED_CST to put a constant second. (vector_mode_valid_p): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. (const_vector_from_tree): Support FIXED_CST. * doc/extend.texi (Fixed-Point): New node. * doc/md.texi (ssadd, usadd, sssub, ussub, ssmul, usmul, ssdiv, usdiv, ssmadd, usmadd, ssmsub, usmsub, ssashl, usashl, ssneg, usneg, fract, satfract, fractuns, satfractuns): Document them. From-SVN: r128218
2007-09-05builtins.def (BUILT_IN_VA_ARG_PACK): New built-in.Jakub Jelinek1-0/+26
* builtins.def (BUILT_IN_VA_ARG_PACK): New built-in. * tree.h (CALL_EXPR_VA_ARG_PACK): Define. * tree-inline.h (copy_body_data): Add call_expr field. * tree-inline.c (expand_call_inline): Initialize call_expr. (copy_bb): Append anonymous inline fn arguments to arguments when inlining a CALL_EXPR_VA_ARG_PACK call. * builtins.c (expand_builtin): Issue an error if BUILT_IN_VA_ARG_PACK is seen during expand. (fold_call_expr, fold_builtin_call_array): Don't fold CALL_EXPR_VA_ARG_PACK CALL_EXPRs or calls with __builtin_va_arg_pack () call as last argument. * gimplify.c (gimplify_call_expr): If last argument to a vararg function is __builtin_va_arg_pack (), decrease number of call arguments and instead set CALL_EXPR_VA_ARG_PACK on the CALL_EXPR. * expr.c (expand_expr_real_1): Issue an error if CALL_EXPR_VA_ARG_PACK CALL_EXPR is seen during expand. * tree-pretty-print.c (dump_generic_node): Handle printing CALL_EXPR_VA_ARG_PACK bit on CALL_EXPRs. * doc/extend.texi (__builtin_va_arg_pack): Document. * gcc.c-torture/execute/va-arg-pack-1.c: New test. * gcc.dg/va-arg-pack-1.c: New test. From-SVN: r128150
2007-09-05re PR web/32965 (missing documentation for -ftree-dse)Rask Ingemann Lambertsen1-0/+7
PR web/32965 PR tree-optimization/13756 * doc/invoke.texi (Options That Control Optimization): Document -ftree-dse. From-SVN: r128146
2007-09-05Add mips16/nomips16 function attributes and -mflip-mips16 option for testing ↵Sandra Loosemore2-1/+30
mixed-mode compilation. 2007-09-05 Sandra Loosemore <sandra@codesourcery.com> David Ung <davidu@mips.com> Nigel Stephens <nigel@mips.com> Add mips16/nomips16 function attributes and -mflip-mips16 option for testing mixed-mode compilation. gcc/ * config/mips/mips.opt (mflip-mips16): New. * config/mips/mips.h (SYMBOL_FLAG_MIPS16_FUNC): Define. (SYMBOL_FLAG_MIPS16_FUNC_P): Define. * config/mips/mips.c (mips_base_target_flags): New. (mips_base_mips16): New. (mips_base_schedule_insns): New. (mips_base_reorder_blocks_and_partition): New. (mips_base_align_loops): New. (mips_base_align_jumps): New. (mips_base_align_functions): New. (mips16_flipper): New. (mips_attribute_table): Add "mips16" and "nomips16" entries. (TARGET_SET_CURRENT_FUNCTION): Define. (mips_mips16_type_p, mips_nomips16_type_p): New. (mips_comp_type_attributes): Check mips16/nomips16 attributes. (mips_function_ok_for_sibcall): Make it deal with functions with mips16 attributes. (mips_init_split_addresses): New, split out from override_options. (mips_init_relocs): New, split out from override_options. (was_mips16_p): New. (mips_set_mips16_mode): New, split out from override_options. (mips_set_current_function): New. (override_options): Add sorry for unsupported mips16/pic combination. Remove error for mips16/dsp combination. Save base option settings. (mips_file_start): Move mips16 mode setting output from here.... (mips_output_function_prologue): ....to here. (mips_output_mi_thunk): Check for mips16 function. (build_mips16_function_stub): Don't set .mips16 here. (build_mips16_call_stub): Likewise. (mips_expand_builtin): Error in mips16 mode. (mips_use_mips16_mode_p): New. (mips_encode_section_info): Check for mips16 function, and set SYMBOL_REF_FLAGS accordingly. * doc/extend.texi (Function Attributes): Document new mips16/nomips16 attributes. * doc/invoke.texi (Option Summary): Add -mflip-mips16. (MIPS Options): Document -mflip-mips16. gcc/testsuite/ * gcc.target/mips/mips16-attributes.c: New. Co-Authored-By: David Ung <davidu@mips.com> Co-Authored-By: Nigel Stephens <nigel@mips.com> From-SVN: r128134
2007-09-05Add target hook invoked when cfun changes.Sandra Loosemore1-0/+17
2007-09-05 Sandra Loosemore <sandra@codesourcery.com> gcc/ Add target hook invoked when cfun changes. * doc/tm.texi (TARGET_SET_CURRENT_FUNCTION): Document. * target.h (struct gcc_target): Add set_current_function. * target-def.h (TARGET_SET_CURRENT_FUNCTION): Define. (TARGET_INITIALIZER): Add initializer for set_current_function. * tree.h (push_struct_function): New. * tree-inline.h (push_cfun, pop_cfun): Move declarations to... * function.h: Here. (set_cfun): Declare. * tree-inline.c (cfun_stack, push_cfun, pop_cfun): Moved to... * function.c: Here. (push_function_context_to): Use allocate_struct_function to create null context, not init_dummy_function_start. Use set_cfun. (pop_function_context_from): Use set_cfun. (in_dummy_function): New. (invoke_set_current_function_hook): New. (set_cfun): New. (push_cfun, pop_cfun): Use set_cfun. (push_struct_function): New. (allocate_struct_function): Call invoke_set_current_function_hook before returning. (prepare_function_start): Don't set cfun here. Remove unused argument; fix all callers. (init_dummy_function_start): Fiddle with in_dummy_function. Call push_struct_function. (init_function_start): Set cfun here. (expand_dummy_function_end): Fiddle with in_dummy_function. Pop cfun. * omp-low.c (create_omp_child_function): Use push_struct_function and pop_cfun to save/restore state. (expand_omp_parallel): Remove unused saved_cfun variable. * cgraphunit.c (ipa_passes): Use set_cfun. * gimple-low.c (record_vars_into): Use push_cfun/pop_cfun here. * dwarf2out.c (dwarf2out_abstract_function): Likewise. * matrix-reorg.c (transform_allocation_sites): Likewise. (matrix_reorg): Use set_cfun. * gimplify.c (gimplify_function_tree): Use push_cfun/pop_cfun here. * tree-optimize.c (tree_rest_of_compilation): Remove one redundant assignment to cfun; use set_cfun for the other. * tree-cfg.c (move_sese_region_to_fn): Use set_cfun. (dump_function_to_file): Use push_cfun/pop_cfun here. * c-decl.c (finish_function): Use set_cfun. gcc/ada/ * trans.c (Compilation_unit_to_gnu): Use set_cfun. * utils.c (end_subprog_body): Likewise. gcc/cp/ * decl.c (finish_function): Use set_cfun. * method.c (use_thunk): Likewise. gcc/fortran/ * trans-decl.c (build_entry_thunks): Use set_cfun. (gfc_generate_function_code): Likewise. gcc/java/ * decl.c (finish_method): Use set_cfun. gcc/treelang/ * treetree.c (tree_code_create_function_wrapup): Use set_cfun. From-SVN: r128132
2007-09-04re PR middle-end/29478 (optimization generates warning for casts)Jan Hubicka1-1/+11
* gcc.dg/tree-ssa/loadpre8.c: Disable inlining. * gcc.dg/tree-ssa/pr27236.c: Likewise. * gcc.dg/tree-ssa/predcom-1.c: Likewise. * gcc.dg/tree-ssa/predcom-2.c: Likewise. * gcc.dg/tree-ssa/flatten-2.c: Avoid overactive tail call ellim. * gcc.dg/tree-ssa/loadpre5.c: Likewise. * gcc.dg/vect/costmodel/i386/costmodel-fast-math-vect-pr29925.c: Likewise. * invoke.texi (-finline-small-functions): Document. * ipa-inline.c (cgraph_default_inline_p): Do not use DECL_INLINE when deciding what is inlinable. (cgraph_decide_recursive_inlining): Handle flag_inline_functions. (cgraph_decide_inlining_of_small_function): Handle new flags. (cgraph_decide_inlining_incrementally): Likewise. * opts.c (decode_options): Enable flag_inline_small_functions at -O2 * common.opt (finline-small-functions): New. * Makefile.in (build/gengtype.o-warn): Work around PR29478 From-SVN: r128092
2007-09-04Add new fp flags: -fassociative-math and -freciprocal-mathRevital Eres1-0/+28
Co-Authored-By: R. Clint Whaley <whaley@cs.utsa.edu> Co-Authored-By: Richard Guenther <rguenther@suse.de> From-SVN: r128075
2007-09-04re PR c++/18608 (Configuration documentation mentions wrong flag)Paolo Carlini1-1/+1
2007-09-04 Paolo Carlini <pcarlini@suse.de> PR c++/18608 * doc/install.texi (--enable-__cxa_atexit): Fix typo. From-SVN: r128074
2007-09-04* doc/extend.texi: Document progmem attribute for AVR.Eric Weddington1-0/+10
From-SVN: r128061
2007-09-03Update -fmodulo-sched-allow-regmoves documentationRevital Eres1-1/+2
From-SVN: r128041
2007-08-31Support for PowerPC 750CL paired-single instructions David Edelsohn1-0/+8
Co-Authored-By: Revital Eres <eres@il.ibm.com> From-SVN: r127954
2007-08-30invoke.texi (-mveclibabi): Document new target option.Richard Guenther1-1/+14
2007-08-30 Richard Guenther <rguenther@suse.de> * doc/invoke.texi (-mveclibabi): Document new target option. * config/i386/i386.opt (-mveclibabi): New target option. * config/i386/i386.c (ix86_veclib_handler): Handler for vectorization library support. (override_options): Handle the -mveclibabi option, initialize the vectorization library handler. (ix86_builtin_vectorized_function): As fallback call the vectorization library handler, if set. (ix86_veclibabi_acml): New static function for ACML ABI style vectorization support. * gcc.target/i386/vectorize5.c: New testcase. From-SVN: r127926
2007-08-29bfin.c (bfin_expand_call): Inline PLT with l1_text attribute when appropriate.Jie Zhang1-0/+25
* config/bfin/bfin.c (bfin_expand_call): Inline PLT with l1_text attribute when appropriate. (bfin_handle_l1_text_attribute): New. (bfin_handle_l1_data_attribute): New. (bfin_attribute_table): Add attributes: l1_text, l1_data, l1_data_A and l1_data_B. * doc/extend.texi (node Function Attributes): Document l1_text function attribute. (Variable Attributes): Add Blackfin subsection. Document l1_data, l1_data_A and l1_data_B variable attributes. From-SVN: r127887
2007-08-29bfin.opt (minline-plt): Add.Jie Zhang1-1/+6
* config/bfin/bfin.opt (minline-plt): Add. * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit call to global functions. * doc/invoke.texi (Option Summary): Mention -minline-plt. (Blackfin Options): Document -minline-plt. From-SVN: r127886
2007-08-27extend.texi (gnu_inline funtion attribute): Document C++ behavior.Alexandre Oliva1-2/+6
gcc/ChangeLog: * doc/extend.texi (gnu_inline funtion attribute): Document C++ behavior. gcc/cp/ChangeLog: * decl.c (GNU_INLINE_P): New. (duplicate_decls): Handle gnu_inline. Merge attributes and some flags in overriding definitions. (redeclaration_error_message): Handle gnu_inline. (start_preparsed_function): Likewise. gcc/testsuite/ChangeLog: * g++.dg/ext/gnu-inline-common.h: New. * g++.dg/ext/gnu-inline-global-reject.C: New. * g++.dg/ext/gnu-inline-global.C: New. * g++.dg/ext/gnu-inline-namespace.C: New. * g++.dg/ext/gnu-inline-anon-namespace.C: New. * g++.dg/ext/gnu-inline-class.C: New. * g++.dg/ext/gnu-inline-class-static.C: New. * g++.dg/ext/gnu-inline-template-class.C: New. * g++.dg/ext/gnu-inline-template-func.C: New. From-SVN: r127839
2007-08-24re PR target/11787 (always call memcpy for block move in mips16)Sandra Loosemore1-4/+22
2007-08-24 Sandra Loosemore <sandra@codesourcery.com> Nigel Stephens <nigel@mips.com> PR target/11787 gcc/ * doc/tm.texi (SET_RATIO, SET_BY_PIECES_P): Document new macros. (STORE_BY_PIECES_P): No longer applies to __builtin_memset. * expr.c (SET_BY_PIECES_P): Define. (can_store_by_pieces, store_by_pieces): Add MEMSETP argument; use it to decide whether to use SET_BY_PIECES_P or STORE_BY_PIECES_P. (store_expr): Pass MEMSETP argument to can_store_by_pieces and store_by_pieces. * expr.h (SET_RATIO): Define. (can_store_by_pieces, store_by_pieces): Update prototypes. * builtins.c (expand_builtin_memcpy): Pass MEMSETP argument to can_store_by_pieces/store_by_pieces. (expand_builtin_memcpy_args): Likewise. (expand_builtin_strncpy): Likewise. (expand_builtin_memset_args): Likewise. Also remove special case for optimize_size so that can_store_by_pieces/SET_BY_PIECES_P can decide what to do instead. * value-prof.c (tree_stringops_transform): Pass MEMSETP argument to can_store_by_pieces. * config/sh/sh.h (SET_BY_PIECES_P): Clone from STORE_BY_PIECES_P. * config/s390/s390.h (SET_BY_PIECES_P): Likewise. * config/mips/mips.opt (mmemcpy): Change from Var to Mask. * config/mips/mips.c (override_options): Make -Os default to -mmemcpy. * config/mips/mips.h (MIPS_CALL_RATIO): Define. (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Define. (STORE_BY_PIECES_P): Define. Co-Authored-By: Nigel Stephens <nigel@mips.com> From-SVN: r127790
2007-08-24bfin.opt (mfast-fp): Add.Jie Zhang1-1/+7
* config/bfin/bfin.opt (mfast-fp): Add. * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Let libbffastfp override libgcc if -mfast-fp. * config/bfin/bfin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. * doc/invoke.texi (Option Summary): Mention -mfast-fp. (Blackfin Options): Document -mfast-fp. From-SVN: r127757
2007-08-23rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes in ↵Chao-ying Fu1-6/+70
DEF_RTL_EXPR. * rtl.c (rtx_code_size): Check CONST_FIXED to calcualte correct sizes in DEF_RTL_EXPR. (copy_rtx): Handle CONST_FIXED. (rtx_equal_p): Likewise. * rtl.h (fixed_value.h): New include. (rtx_def): Add a new field of fixed_value to u. (XCNMPFV): Define for accessing fixed_value. (CONST_FIXED_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW): Define. * rtl.def (CONST_FIXED): New constant. (SS_MULT, US_MULT, SS_DIV, US_DIV, FRACT_CONVERT, UNSIGNED_FRACT_CONVERT, SAT_FRACT, UNSIGNED_SAT_FRACT, US_NEG, US_ASHIFT): New codes. * doc/rtl.texi (Expressions): Document const_fixed, us_neg, ss_mult, us_mult, ss_div, us_div, us_ashift, fract_convert, sat_fract, unsigned_fract_convert, unsigned_sat_fract): Document them. * varasm.c (assemble_integer): Extend to support fixed-point constants by using different machine classes. (decode_addr_const): Handle FIXED_CST. (const_hash_1): Likewise. (compare_constant): Likewise. (copy_constant): Likewise. (const_rtx_hash_1): Handle CONST_FIXED. (output_constant_pool_2): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM. (initializer_constant_valid_p): Handle FIXED_CST. (output_constant): Support FIXED_POINT_TYPE. * gengenrtl.c (excluded_rtx): Check CONST_FIXED to exclude. * cse.c (hash_rtx): Support CONST_FIXED. (exp_equiv_p): Likewise. (cannon_reg): Likewise. (fold_rtx): Likewise. (equiv_constant): Likewise. (cse_process_notes_1): Likewise. (count_reg_usage): Likewise. * cselib.c (entry_and_rtx_equal_p): Check CONST_FIXED. (rtx_equal_for_cselib_p): Handle CONST_FIXED. (wrap_constant): Check CONST_FIXED. (cselib_hash_rtx): Support CONST_FIXED. (cselib_subst_to_values): Likewise. * df-scan.c (df_uses_record): Likewise. * gcse.c (want_to_gcse_p): Likewise. (oprs_unchanged_p): Likewise. (oprs_not_set_p): Likewise. (compute_transp): Likewise. (extract_mentioned_regs_helper): Likewise. * genemit.c (gen_exp): Likewise. * local-alloc.c (equiv_init_varies_p): Likewise. (contains_replace_regs): Likewise. (memref_referenced_p): Likewise. * loop-invariant.c (check_maybe_invariant): Likewise. (hash_invariant_expr_1): Likewise. (invariant_expr_equal_p): Likewise. * postreload-gcse.c (oprs_unchanged_p): Likewise. * regclass.c (reg_scan_mark_refs): Likewise. * regrename.c (scan_rtx): Likewise. * resource.c (mark_referenced_resources): Likewise. (mark_set_resources): Likewise. * rtlanal.c (rtx_unstable_p): Likewise. (rtx_varies_p): Likewise. (count_occurrences): Likewise. (reg_mentioned_p): Likewise. (modified_between_p): Likewise. (modified_in_p): Likewise. (volatile_insn_p): Likewise. (volatile_refs_p): Likewise. (side_effects_p): Likewise. (may_trap_p_1): Likewise. (inequality_comparisons_p): Likewise. (computed_jump_p_1): Likewise. (commutative_operand_precedence): Likewise. * sched-deps.c (sched_analyze_2): Likewise. * sched-vis.c (print_value): Likewise. * reload.c (operands_match_p): Likewise. (subst_reg_equivs): Likewise. * reload1.c (eliminate_regs_1): Likewise. (elimination_effects): Likewise. (scan_paradoxical_subregs): Likewise. * alias.c (rtx_equal_for_memref_p): Likewise. * Makefile.in (RTL_BASE_H): Add fixed-value.h. * emit-rtl.c (const_fixed_htab): New hash table. (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed): Declare. (const_fixed_htab_hash, const_fixed_htab_eq, lookup_const_fixed, const_fixed_from_fixed_value): New functions. (verify_rtx_sharing): Handle CONST_FIXED. (copy_rtx_if_shared_1): Likewise. (reset_used_flags): Likewise. (set_used_flags): Likewise. (copy_insn_1): Likewise. (init_emit_once): Create const_fixed_htab. Store fixed-point scalar and vector zero and one to const_tiny_rtx. From-SVN: r127725
2007-08-22md.texi (Iterators): Renamed from Macros.Hans-Peter Nilsson1-45/+45
* doc/md.texi (Iterators): Renamed from Macros. All contents changed to reflect rename of respectively define_code_macro and define_mode_macro to define_code_iterator and define_mode_iterator. (Mode Iterators, Code Iterators): Similar. * read-rtl.c (struct iterator_group, struct iterator_traverse_data) (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p) (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse) (initialize_iterators, find_iterator, check_code_iterator) (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping) (read_mapping, read_rtx_1): Similar. * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md, config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md, config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md, config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md, config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md, config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md, config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md, config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md, config/rs6000/sync.md, config/rs6000/rs6000.md, config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md, config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md, config/vax/vax.md, config/bfin/bfin.md: Similar. From-SVN: r127715
2007-08-22* doc/install.texi (Testing): Mention testing on a simulator.David Daney1-0/+3
From-SVN: r127713