summaryrefslogtreecommitdiff
path: root/gcc/doc
Commit message (Collapse)AuthorAgeFilesLines
* * doc/invoke.texi: Minor formatting fixes in option lists.brooks2006-11-091-4/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118617 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>dorit2006-11-083-0/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take enum argument instead of bool. (vect_analyze_operations): Call vectorizable_type_promotion. * tree-vectorizer.h (type_promotion_vec_info_type): New enum stmt_vec_info_type value. (supportable_widening_operation, vectorizable_type_promotion): New function declarations. * tree-vect-transform.c (vect_gen_widened_results_half): New function. (vectorizable_type_promotion): New function. (vect_transform_stmt): Call vectorizable_type_promotion. * tree-vect-analyze.c (supportable_widening_operation): New function. * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Add implementation. * tree-vect-generic.c (expand_vector_operations_1): Consider correct mode. * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR): (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes. * tree-inline.c (estimate_num_insns_1): Add cases for above new tree-codes. * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. * expr.c (expand_expr_real_1): Likewise. * optabs.c (optab_for_tree_code): Likewise. (init_optabs): Initialize new optabs. * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab, vec_widen_smult_hi_optab, vec_widen_smult_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab, vec_unpacku_lo_optab): Initialize new optabs. * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo): (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi, OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New optab indices. (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab): (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab): (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab): (vec_unpacku_lo_optab): New optabs. * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi): (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo): (vec_widen_smult_hi, vec_widen_smult_lo): New. * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR): (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New. * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB): (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH): (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New. (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New. (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to implement the unsigned unpacking patterns. (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi): (vec_unpacks_lo_v8hi): New signed unpacking patterns. (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi): (vec_unpacku_lo_v8hi): New unsigned unpacking patterns. (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi): (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi): (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi): (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening multiplication patterns. * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New. * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New. * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New. (rs6000_builtin_mul_widen_odd): New. (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined. (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined. * tree-vectorizer.h (enum vect_relevant): New enum type. (_stmt_vec_info): Field relevant chaned from bool to enum vect_relevant. (STMT_VINFO_RELEVANT_P): Updated. (STMT_VINFO_RELEVANT): New. * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT instead of STMT_VINFO_RELEVANT_P. * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT, and boolean variable with enum vect_relevant. (vect_mark_stmts_to_be_vectorized): Likewise + update documentation. * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New. (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New. 2006-11-08 Richard Henderson <rth@redhat.com> * config/i386/sse.md (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi): New. (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si, vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New. * config/i386/i386.c (ix86_expand_sse_unpack): New. * config/i386/i386-protos.h (ix86_expand_sse_unpack): New. * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi, vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi, vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si, vec_unpacks_lo_v4si): New. 2006-11-08 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vectorizable_type_demotion): New function. (vect_transform_stmt): Add case for type_demotion_vec_info_type. (vect_analyze_operations): Call vectorizable_type_demotion. * tree-vectorizer.h (type_demotion_vec_info_type): New enum stmt_vec_info_type value. (vectorizable_type_demotion): New function declaration. * tree-vect-generic.c (expand_vector_operations_1): Consider correct mode. * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes. * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and VEC_PACK_SAT_EXPR. * tree-iniline.c (estimate_num_insns_1): Likewise. * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. * optabs.c (optab_for_tree_code): Likewise. * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode compared against the predicate of the result is not 'mode' (the input to the function) but a mode with half the size of 'mode'. (init_optab): Initialize new optabs. * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat): New optab indices. (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New optabs. * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab): (vec_pack_usat_optab): Initialize new optabs. * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New. * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New. 2006-11-08 Richard Henderson <rth@redehat.com> * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi): (vec_interleave_highv8hi, vec_interleave_lowv8hi): (vec_interleave_highv4si, vec_interleave_lowv4si): (vec_interleave_highv2di, vec_interleave_lowv2di): New. 2006-11-08 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vectorizable_reduction): Support multiple datatypes. (vect_transform_stmt): Removed redundant code. 2006-11-08 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vectorizable_operation): Support multiple datatypes. 2006-11-08 Dorit Nuzman <dorit@il.ibm.com> * tree-vect-transform.c (vect_align_data_ref): Removed. (vect_create_data_ref_ptr): Added additional argument - ptr_incr. Updated function documentation. Return the increment stmt in ptr_incr. (bump_vector_ptr): New function. (vect_get_vec_def_for_stmt_copy): New function. (vect_finish_stmt_generation): Create a stmt_info to newly created vector stmts. (vect_setup_realignment): Call vect_create_data_ref_ptr with additional argument. (vectorizable_reduction, vectorizable_assignment): Not supported yet if VF is greater than the number of elements that can fit in one vector word. (vectorizable_operation, vectorizable_condition): Likewise. (vectorizable_store, vectorizable_load): Support the case that the VF is greater than the number of elements that can fit in one vector word. (vect_transform_loop): Don't fail in case of multiple data-types. * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail in case of multiple data-types; the smallest type determines the VF. (vect_analyze_data_ref_dependence): Don't record datarefs as same_align if they are of different sizes. (vect_update_misalignment_for_peel): Compare misalignments in terms of number of elements rather than number of bytes. (vect_enhance_data_refs_alignment): Fix/Add dump printouts. (vect_can_advance_ivs_p): Fix a dump printout git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118577 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (c_common_attributes): Add gnu_inline attribyte.jakub2006-11-071-3/+9
| | | | | | | | | | | | (handle_gnu_inline_attribute): New function. * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute. (merge_decls, start_decl, start_function): Likewise. * doc/extend.texi: Document gnu_inline attribute. * gcc.dg/inline-17.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118567 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-07 Josh Conner <jconner@apple.com>jconner2006-11-072-6/+6
| | | | | | | | | * doc/invoke.texi (fstrict-aliasing): Move implementation details... * doc/tree-ssa.texi (Alias analysis): ...here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118559 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/janis2006-11-071-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | 2006-11-06 Janis Johnson <janis187@us.ibm.com> * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists and output-exists-not. gcc/testsuite/ 2006-11-06 Janis Johnson <janis187@us.ibm.com Bernhard Fischer <aldot@gcc.gnu.org> * lib/gcc-dg.exp (output-exists): New proc. (output-exists-not): New proc. * gcc.test-framework/test-framework.awk: Support new directives. * gcc.test-framework/dg-outexistsnot-exp-F.c: New test. * gcc.test-framework/dg-outexistsnot-exp-P.c: New test. * gcc.test-framework/dg-outexists-exp-F.c: New test. * gcc.test-framework/dg-outexists-exp-XP.c: New test. * gcc.test-framework/dg-outexistsnot-exp-XF.c: New test. * gcc.test-framework/dg-outexists-exp-P.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118531 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-03 Paolo Bonzini <bonzini@gnu.org>bonzini2006-11-042-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Steven Bosscher <stevenb.gcc@gmail.com> * fwprop.c: New file. * Makefile.in: Add fwprop.o. * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New. * passes.c (init_optimization_passes): Schedule forward propagation. * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second parameter. * timevar.def (TV_FWPROP): New. * common.opt (-fforward-propagate): New. * opts.c (decode_options): Enable forward propagation at -O2. * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps. * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr, canon_for_address, table_size): Remove. (new_basic_block, insert, remove_from_table): Remove references to table_size. (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make simplification loop more straightforward by not calling fold_rtx recursively. (equiv_constant): Move here a small part of fold_rtx_subreg, do not call fold_rtx. Call avoid_constant_pool_reference to process MEMs. * recog.c (canonicalize_change_group): New. * recog.h (canonicalize_change_group): New. * doc/invoke.texi (Optimization Options): Document fwprop. * doc/passes.texi (RTL passes): Document fwprop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118475 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, adddavidu2006-11-031-1/+4
| | | | | | | | | | | | | PROCESSOR_24KC and PROCESSOR_24KF. * config/mips/mips.c (mips_cpu_info_table): Add processor names and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx. (mips_rtx_cost_data): Add costs for the 24kc. * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf. * config/mips/24k.md: Remove references to 24k and replace with uses of 24kc/24kf in the appropriate reservations. * doc/invoke.texi (MIPS Options): Updated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118459 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-02 Andrew Pinski <andrew_pinski@playstation.sony.com>pinskia2006-11-031-0/+19
| | | | | | | | | | | * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W constraints. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118448 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/invoke.texi: Fix mfp-trap-mode typo.brooks2006-11-031-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118447 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR buildebotcazou2006-11-021-7/+19
| | | | | | | | | instructions. (sparc64-sun-solaris2*): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118426 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/invoke.texi: Add cpu_type power6xbergner2006-11-011-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (RS/6000 and PowerPC Options): Add -mmfpgpr. * config.gcc: Add cpu_type power6x. * configure.ac: Add test for mf{t,f}gpr instructions. (HAVE_AS_MFPGPR): New. * config.in: Regenerate. * configure: Regenerate. * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x. * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword, shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr and mftgpr attributes. (define_attr "cpu"): Add power6. Change instruction sequences to use new attributes. (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR. (fix_truncdfsi2_mfpgpr): New. (floatsidf_ppc64_mfpgpr): New. (floatsidf_ppc64): Added !TARGET_MFPGPR condition. (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New. (movdf_hardfloat64): Added !TARGET_MFPGPR condition. (movdi_internal64): Added !TARGET_MFPGPR and related conditions. (fix_truncdfsi2): Use gpc_reg_operand constraint. * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md, 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}: Add descriptions for insert_dword, shift,trap,var_shift_rotate, cntlz,exts and var_delayed_compare. * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define _ARCH_PWR6X, if features enabled. * config/rs6000/rs6000.opt (mmfpgpr): New. * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable. (cached_can_issue_more): New variable. (processor_costs): Add power6_cost. (rs6000_sched_init): New function. (is_dispatch_slot_restricted): Deleted. (set_to_load_agen): New function. (is_load_insn,is_store_insn): New functions. (adjacent_mem_locations): New function. (insn_must_be_first_in_group): New function. (insn_must_be_last_in_group): New function. (rs6000_sched_reorder): New function. (rs6000_sched_reorder2): New function. (TARGET_SCHED_INIT,TARGET_SCHED_REORDER, TARGET_SCHED_REORDER2): Define. (processor_target_table): Use PROCESSOR_POWER6 for power6. Add power6x. Add MASK_MFPGPR for power6x. (POWERPC_MASKS): Add MASK_MFPGPR. (rs6000_override_options): Set rs6000_always_hint to false for power6. Set rs6000_align_branch_targets. Replace rs6000_sched_groups check with rs6000_align_branch_targets. Use PROCESSOR_POWER6. (last_scheduled_insn): New variable. (load_store_pendulum): New variable. (rs6000_variable_issue): Set last_scheduled_insn and cached_can_issue_more. (rs6000_adjust_cost): Add power6 cost adjustments. (rs6000_adjust_priority): Replace is_dispatch_slot_restricted with insn_must_be_first_in_group. Add power6 priority adjustments. (rs6000_issue_rate): Add CPU_POWER6. (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group. * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6. (TARGET_MFPGPR): New. (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR. (ASM_CPU_SPEC): Add power6x. (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode conditions. * config/rs6000/power6.md: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118396 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-11-01 Douglas Gregor <doug.gregor@gmail.com>dgregor2006-11-012-0/+19
| | | | | | | | | | | | | | | | | * c-common.c (flag_cpp0x): New. * c-common.h (flag_cpp0x): New. * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are supported, define __GXX_EXPERIMENTAL_CPP0X__. * c-opts.c (set_std_cxx0x): New. (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x. * c.opt (std=c++0x): Document. (std=gnu++0x): Ditto. * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__. * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118386 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-31 Andrew Pinski <pinskia@gmail.com>pinskia2006-11-011-1/+1
| | | | | | | | | | * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C" to "GNU C89". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118372 138bc75d-0d04-0410-961f-82ee72b054a4
* * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New targetdannysmith2006-11-011-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | hook. * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define default. * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Override default. * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document. * configure.ac (use_cxa_atexit): As a special case, don't test for libc definition of __cxa_atexit on mingw32 * configure: Regenerate. * config.gcc (i[34567]86-pc-mingw32): Default to enable__cxa_atexit=yes. cp * decl.c (get_atexit_node): Reference atexit, not __cxa_exit. if targetm.cxx.use_atexit_for cxa_atexit. (start_cleanup_fn): Likewise. (register_dtor_fn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118371 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-07 Eric Christopher <echristo@apple.com>geoffk2006-11-013-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Falk Hueffner <falk@debian.org> * doc/extend.texi (__builtin_bswap32): Document. (__builtin_bswap64): Ditto. * doc/libgcc.texi (bswapsi2): Document. (bswapdi2): Ditto. * doc/rtl.texi (bswap): Document. * optabs.c (expand_unop): Don't widen a bswap. (init_optabs): Init bswap. Set libfuncs explicitly for bswapsi2 and bswapdi2. * optabs.h (OTI_bswap): New. (bswap_optab): Ditto. * genopinit.c (optabs): Handle bswap_optab. * tree.h (tree_index): Add TI_UINT32_TYPE and TI_UINT64_TYPE. (uint32_type_node): New. (uint64_type_node): Ditto. * tree.c (build_common_tree_nodes_2): Initialize uint32_type_node and uint64_type_node. * builtins.c (expand_builtin_bswap): New. (expand_builtin): Call. (fold_builtin_bswap): New. (fold_builtin_1): Call. * fold-const.c (tree_expr_nonnegative_p): Return true for bswap. * builtin-types.def (BT_UINT32): New. (BT_UINT64): Ditto. (BT_FN_UINT32_UINT32): Ditto. (BT_FN_UINT64_UINT64): Ditto. * builtins.def (BUILT_IN_BSWAP32): New. (BUILT_IN_BSWAP64): Ditto. * rtl.def (BSWAP): New. * genattrtab.c (check_attr_value): New. * libgcc2.c (__bswapSI2): New. (__bswapDI2): Ditto. * libgcc2.h (__bswapSI2): Declare. (__bswapDI2): Ditto. * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2. * simplify-rtx.c (simplify_const_unary_operation): Return 0 for BSWAP. * libgcc-std.ver (__bwapsi2): Add. (__bswapdi2): Ditto. * reload1.c (eliminate_regs_1): Add bswap. (elimination_effects): Ditto. * config/i386/i386.h (x86_bswap): New. (TARGET_BSWAP): Use. * config/i386/i386.c (x86_bswap): Set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118361 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL ongeoffk2006-11-011-51/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | inline static functions in c99 mode. PR 16622 * doc/extend.texi (Inline): Update. * c-tree.h (struct language_function): Remove field 'extern_inline'. * c-decl.c (current_extern_inline): Delete. (pop_scope): Adjust test for an undefined nested function. Add warning about undeclared inline function. (diagnose_mismatched_decls): Update comments. Disallow overriding of inline functions in a translation unit in C99. Allow inline declarations in C99 at any time. (merge_decls): Boolize variables. Handle C99 'extern inline' semantics. (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle C99 inline semantics. (start_function): Don't clear current_extern_inline. Don't set DECL_EXTERNAL. (c_push_function_context): Don't push current_extern_inline. (c_pop_function_context): Don't restore current_extern_inline. PR 11377 * c-typeck.c (build_external_ref): Warn about static variables used in extern inline functions. * c-decl.c (start_decl): Warn about static variables declared in extern inline functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118357 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc:jsm282006-10-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all. Handle tuning for bi-arch i[34567]86-*-linux* like that for i[34567]86-*-solaris2.1[0-9]*. * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS): Define conditionally depending on TARGET_64BIT_DEFAULT. (SPEC_32, SPEC_64): Define. (LINK_SPEC): Use them. * doc/install.texi (--enable-targets=all): Document for x86-linux. libcpp: * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux* depending on --enable-targets=all. * configure: Regenerate. fixincludes: * inclhack.def (AAB_fd_zero_asm_posix_types_h): Bypass on x86_64. * fixincl.x: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118147 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-29 Richard Guenther <rguenther@suse.de>rguenth2006-10-291-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * genopinit.c (optabs): Change lfloor_optab and lceil_optab to conversion optabs. * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab as conversion optab. * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil. (enum convert_optab_index): Add COI_lfloor and COI_lceil. (lfloor_optab, lceil_optab): Adjust defines. * builtins.c (expand_builtin_int_roundingfn): Adjust for lfloor and lceil optabs now being conversion optabs. * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare. * config/i386/i386.c (ix86_expand_sse_compare_and_jump): New static helper function. (ix86_expand_lfloorceil): New function to expand lfloor and lceil inline. * config/i386/i386.md (lfloor<mode>2): Split into ... (lfloorxf<mode>2): ... x87 variant (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants using ix86_expand_lfloorceil. (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2): Likewise. * doc/md.texi (lfloorMN, lceilMN): Document. * gcc.target/i386/math-torture/lfloor.c: New testcase. * gcc.target/i386/math-torture/lceil.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118143 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>pinskia2006-10-291-4/+4
| | | | | | | | | | | | PR tree-opt/29271 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number. (-fdump-rtl-sched): Rename to .. (-fdump-rtl-sched1): here. Also fix file extension number. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118128 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-28 Richard Guenther <rguenther@suse.de>rguenth2006-10-281-0/+6
| | | | | | | | | | | | | | | | | | | | | | | PR target/28806 * builtins.c (expand_builtin_int_roundingfn_2): Expand BUILT_IN_LROUND and BUILT_IN_LLROUND from here. (expand_builtin): Adjust likewise. * genopinit.c (optabs[]): Add lround optab. * optabs.c (init_optabs): Initialize lround_optab. * optabs.h (enum convert_optab_index): Add COI_lround. (lround_optab): Define. * config/i386/i386-protos.h (ix86_expand_lround): Declare. * config/i386/i386.c (ix86_sse_copysign_to_positive): New static function. (ix86_expand_lround): New function. * config/i386/i386.md (lround<mode>di2, lround<mode>si2): New expanders. * doc/md.texi (lroundMN2): Document. * gcc.target/i386/math-torture/lround.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118105 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>vmakarov2006-10-271-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/i386/i386.h (TARGET_GEODE): (TARGET_CPU_CPP_BUILTINS): Add code for geode. (TARGET_CPU_DEFAULT_geode): New macro. (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2, TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon, TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8, TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott, TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase the macro values. (TARGET_CPU_DEFAULT_NAMES): Add geode. (processor_type): Add PROCESSOR_GEODE. * config/i386/i386.md: Include geode.md. (cpu): Add geode. * config/i386/i386.c (geode_cost): New initialized global variable. (m_GEODE, m_K6_GEODE): New macros. (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf, x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4, x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants, x86_schedule): Use m_K6_GEODE instead of m_K6. (x86_movx, x86_cmove): Set up m_GEODE. (x86_integer_DFmode_moves): Clear m_GEODE. (processor_target_table): Add entry for geode. (processor_alias_table): Ditto. * config/i386/geode.md: New file. * doc/invoke.texi: Add entry about geode processor. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118090 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-25 Richard Guenther <rguenther@suse.de>rguenth2006-10-251-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | * optabs.h (enum optab_index): Remove OTI_lrint. (enum convert_optab_index): Add COI_lrint. (lrint_optab): Adjust. (expand_sfix_optab): Declare. * optabs.c (expand_sfix_optab): New function. (init_optabs): Init lrint_optab as conversion optab. * genopinit.c (lrint_optab): Change to a conversion optab. * builtins.c (expand_builtin_int_roundingfn_2): Adjust to expansion via conversion optab. * config/i386/i386.md (*fistdi2_1): Remove flag_unsafe_math_optimizations guard. (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2, fist<mode>2_with_temp): Likewise. (lrint<mode>2): Split into... (lrintxf<mode>2): ... x87 part (lrint<mode>di2, lrint<mode>si2): ... and SSE parts. * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2, sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for UNSPEC_FIX_NOTRUNC matching non-vector float modes. * doc/md.texi (lrintMN2): Document. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118029 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.uros2006-10-251-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (remainder_optab): Define corresponding macro. (drem_optab): Remove. * optabs.c (init_optabs): Initialize remainder_optab. Remove drem_optab initialization. * genopinit.c (optabs): Implement remainder_optab using remainder?f3 patterns. Remove drem_optab. * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_REMAINDER{,F,L} using remainder_optab. (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using expand_builtin_mathfn_2. (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not depend on flag_unsafe_math_optimizations. * config/i386/i386.md ("remaindersf3", "remainderdf3") ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders. Do not depend on flag_unsafe_math_optimizations. Use truncxf?f expander instead of truncxf?f_i387_noop. ("fpremxf4", "fprem1xf4"): Do not depend on flag_unsafe_math_optimizations. ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on flag_unsafe_math_optimizations. Use truncxf?f expander instead of truncxf?f_i387_noop. * doc/md.texi (fmod, remainder): Document standard named pattern. testsuite/ChangeLog: * gcc.dg/builtins-40.c: Also check remainder(), remainderf() and remainderl() built-in functions. Remove -ffast-math from dg-options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118024 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/extend.texi (Variable Attributes): Typo fix.bje2006-10-241-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118015 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>hjl2006-10-222-4/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers. (x86_64-*-*): Likewise. * config/i386/i386.c (pta_flags): Add PTA_SSSE3. (override_options): Check SSSE3. (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD, IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD, IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW, IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB, IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND, IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW, IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128, IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128, IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128, IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128, IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128, IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128, IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128, IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and IX86_BUILTIN_PABSD128. (bdesc_2arg): Add SSSE3. (bdesc_1arg): Likewise. (ix86_init_mmx_sse_builtins): Support SSSE3. (ix86_expand_builtin): Likewise. * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise. * config/i386/i386.md (UNSPEC_PSHUFB): New. (UNSPEC_PSIGN): Likewise. (UNSPEC_PALIGNR): Likewise. Include mmx.md before sse.md. * config/i386/i386.opt: Add -mssse3. * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3. (ssse3_phaddwv4hi3): Likewise. (ssse3_phadddv4si3): Likewise. (ssse3_phadddv2si3): Likewise. (ssse3_phaddswv8hi3): Likewise. (ssse3_phaddswv4hi3): Likewise. (ssse3_phsubwv8hi3): Likewise. (ssse3_phsubwv4hi3): Likewise. (ssse3_phsubdv4si3): Likewise. (ssse3_phsubdv2si3): Likewise. (ssse3_phsubswv8hi3): Likewise. (ssse3_phsubswv4hi3): Likewise. (ssse3_pmaddubswv8hi3): Likewise. (ssse3_pmaddubswv4hi3): Likewise. (ssse3_pmulhrswv8hi3): Likewise. (ssse3_pmulhrswv4hi3): Likewise. (ssse3_pshufbv16qi3): Likewise. (ssse3_pshufbv8qi3): Likewise. (ssse3_psign<mode>3): Likewise. (ssse3_psign<mode>3): Likewise. (ssse3_palignrti): Likewise. (ssse3_palignrdi): Likewise. (abs<mode>2): Likewise. (abs<mode>2): Likewise. * config/i386/tmmintrin.h: New file. * doc/extend.texi: Document SSSE3 built-in functions. * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117958 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.in: Require GMP-4.1+ and MPFR-2.2+. Don't checkghazi2006-10-212-13/+11
| | | | | | | | | | | | | | | | | | | | need_gmp anymore. * configure: Regenerate. gcc: * Makefile.in (LIBS): Add $(GMPLIBS). * doc/install.texi: Update GMP and MPFR requirements. * doc/sourcebuild.texi (need_gmp): Delete. gcc/fortran: * Make-lang.in (F95_LIBS): Delete. * f951$(exeext): Use $(LIBS) instead of $(F95_LIBS). * config-lang.in (need_gmp): Delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117933 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/install.texi (Downloading GCC): Clarify mention ofbrooks2006-10-191-5/+5
| | | | | | | | Fortran in the "full distribution" description. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117892 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/invoke.texi (Score Options): New section.liqin2006-10-192-0/+115
| | | | | | | | | | | | | | * doc/md.texi (Score family): New section to document constraints. * config/score/t-score-elf: Fix spelling typo. * config/score/score.c: Add TARGET_DEFAULT_TARGET_FLAGS macro. * config/score/score.h: Fix spelling typo. * config/score/score-mdaux.c: Remove TARGET_NOPINDEX condition. * config/score/score.opt: Remove -mnpi -mnuls -mSCORE5/5U -mSCORE7 options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117882 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/install.texi (Prerequisites): Mention automake 1.9.6.tromey2006-10-191-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117878 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix typomrs2006-10-171-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117808 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/invoke.texi (Darwin Options): Document -mkernel.mrs2006-10-161-1/+11
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117798 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/contrib.texi, doc/install.texi, doc/standards.texi:brooks2006-10-163-21/+21
| | | | | | | | | Standardize on "GNU Fortran" as the official name of the Fortran compiler. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117794 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:brooks2006-10-163-10/+28
| | | | | | | | | Added mention of "make pdf" target, and Texinfo requirements for same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117792 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-16 Richard Guenther <rguenther@suse.de>rguenth2006-10-161-3/+162
| | | | | | | | | PR target/25519 * doc/extend.texi (X86 Built-in Functions): Fix typos in SSE builtin documentation. Document SSE2 builtins. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117774 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMPdje2006-10-131-0/+5
| | | | | | | and MPFR for gfortran. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117700 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to thebje2006-10-101-1/+1
| | | | | | | -mdlmzb option. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117596 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/loop.texi: Add data references analysis description.irar2006-10-051-0/+57
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117453 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-04 Brooks Moses <bmoses@stanford.edu>brooks2006-10-041-1/+1
| | | | | | | | * doc/gcov.texi: Add formatting to "Invoking gcov" section head. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117441 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-02 Ryan Mansfield <rmansfield@qnx.com>rsandifo2006-10-041-3/+3
| | | | | | | | PR c++/28448 * doc/invoke.texi (fdiagnostics-show-option): Fix typos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117429 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/install.texi: Fix typos.kazu2006-10-031-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117404 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.ebotcazou2006-10-031-0/+8
| | | | | | | | | * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX. * config/sparc/sparc.h (FRAME_ADDR_RTX): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117403 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-01 Sandra Loosemore <sandra@codesourcery.com>sandra2006-10-011-6/+14
| | | | | | | | | | | | | | * gcc/tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix comments to reflect actual behavior and relationship between DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN. * gcc/doc/c-tree.texi (Working with declarations): Fix documentation of FIELD_DECL likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117352 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-10-01 Ryan Mansfield <rmansfield@qnx.com>sayle2006-10-011-0/+4
| | | | | | | | | PR c/20533 * doc/extend.texi: Add used variable attribute description. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117349 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c/24010jsm282006-09-301-0/+18
| | | | | | | | | | | | | | | | | * c.opt (Woverride-init): New. * c-opts.c (c_common_post_options): Default warn_override_init to extra_warnings. * c-typeck.c (add_pending_init, output_init_element): Warn for overriding initializers without side effects. * doc/invoke.texi (-Woverride-init): Document. (-Wextra): Update. testsuite: * gcc.dg/Woverride-init-1.c, gcc.dg/Woverride-init-2.c, gcc.dg/Woverride-init-3.c: New tests. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117334 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c (expand_builtin_setjmp): Delete.ebotcazou2006-09-292-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable. <BUILT_IN_SETJMP_SETUP>: New case. <BUILT_IN_SETJMP_DISPATCHER>: Likewise. <BUILT_IN_SETJMP_RECEIVER>: Likewise. * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub. (BUILT_IN_SETJMP_DISPATCHER): Likewise. (BUILT_IN_SETJMP_RECEIVER): Likewise. * gimple-low.c (struct lower_data): New field calls_builtin_setjmp. (lower_function_body): Initialize it to false. If it is set to true at the end of the processing, emit the setjmp dispatcher. (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee is __builtin_setjmp and set calls_builtin_setjmp to true as well. <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR on the rhs of the assignment. (lower_builtin_setjmp): New function. * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP, BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes. * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate to detect calls that can go to non-local labels. Use specific helper to create the abnormal edges associated with them. <MODIFY_EXPR>: Likewise. (make_abnormal_goto_edges): New function extracted from... (make_goto_expr_edges): ...here. Call it for computed gotos. (simple_goto_p): Minor tweak. (tree_can_make_abnormal_goto): New predicate. (tree_redirect_edge_and_branch): Return zero on all abnormal edges. (tree_purge_dead_abnormal_call_edges): New function. * tree-flow.h (tree_can_make_abnormal_goto): Declare. (tree_purge_dead_abnormal_call_edges): Likewise. (make_abnormal_goto_edges): Likewise. * tree-inline.c (expand_call_inline): Simplify statement frobbing. Purge all dead abnormal edges if the call was in the last statement. * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate. (execute_fixup_cfg): If there are non-local labels in the function, scan the basic blocks and split them at calls that can go to non-local labels or add missing abnormal call edges. Write down the CFG in the dump file. (pass_fixup_cfg): Remove TODO_dump_func flag. * unwind-sjlj.c: Poison setjmp. * doc/install.texi (enable-sjlj-exceptions): Use more general wording. * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise. (TARGET_UNWIND_TABLES_DEFAULT): Fix typo. (DONT_USE_BUILTIN_SETJMP): Document it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117298 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/loop.texi: New file.rakdver2006-09-282-0/+549
| | | | | | | | | * doc/gccint.texi: Reference loop.texi. * Makefile.in (loop.texi): Add. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117277 138bc75d-0d04-0410-961f-82ee72b054a4
* * configure.in: Check for GMP 4.1 or newer. Check for MPFR 2.2.0 kargl2006-09-271-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | or newer. * configure: Regenerated. * doc/install.texi: Document required versions of GMP and MPFR. * fortran/arith.c: Conditionally include arctangent2(). (gfc_check_real_range): Use mpfr_subnormalize in preference to local hack. * fortran/trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Append l for long double functions. * fortran/simplify.c: Wrap Copyright to new line. (gfc_simplify_atan2): Use mpfr_atan2 in preference to arctangent2(). (gfc_simplify_log): Ditto. PR fortran/28276 * fortran/simplify.c (gfc_simplify_exponent): Use mpfr_get_exp in preference to broken local hack. PR fortran/27021 * fortran/simplify.c (gfc_simplify_nearest): Use mpfr_nexttoward and mpfr_subnormalize to handle numbers near zero in preference to broken local hack. PR fortran/28276 * testsuite/gfortran.dg/exponent_1.f90: New test. PR fortran/27021 * testsuite/gfortran.dg/nearest_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117257 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-25 Matthias Klose <doko@debian.org>doko2006-09-251-1/+1
| | | | | | | * doc/invoke.texi: Add missing full stop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117211 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/extend.texi (Decimal Float): Update for latest draft TR,janis2006-09-201-15/+31
| | | | | | | clean up terminology. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117085 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-09-19 Eric Christopher <echristo@apple.com>echristo2006-09-191-18/+23
| | | | | | | | | | | | | | | | * doc/tm.texi (OBJC_JBLEN): Describe. * config/i386/darwin.h (OBJC_JBLEN): Define. * config/rs6000/darwin.h: Ditto. 2006-09-19 Eric Christopher <echristo@apple.com> * objc-act.c (JBLEN): Rename to OBJC_JBLEN, default to something innocuous. (build_next_objc_exception_stuff): Rename JBLEN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117066 138bc75d-0d04-0410-961f-82ee72b054a4