aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/extend.texi
AgeCommit message (Collapse)AuthorFilesLines
2011-05-25Update pause intrinsic.H.J. Lu1-1/+2
2011-05-25 H.J. Lu <hongjiu.lu@intel.com> * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic. From-SVN: r174217
2011-05-25Implement x86 pause intrinsic.H.J. Lu1-0/+7
gcc/ 2011-05-25 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE. (bdesc_special_args): Add pause intrinsic. * config/i386/i386.md (UNSPEC_PAUSE): New. (pause): Likewise. (*pause): Likewise. * config/i386/ia32intrin.h (__pause): Likewise. * doc/extend.texi (X86 Built-in Functions): Add documentation for pause intrinsic. gcc/testsuite/ 2011-05-25 H.J. Lu <hongjiu.lu@intel.com> * gcc.target/i386/pause-1.c: New. From-SVN: r174197
2011-05-04Remove extra spacing at the end of the line.Mike Stump1-41/+41
From-SVN: r173401
2011-04-25c-common.c (struct c_common_resword): Add __underlying_type.Paolo Carlini1-0/+4
/gcc 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com> * c-family/c-common.c (struct c_common_resword): Add __underlying_type. * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE. * doc/extend.texi: Document __underlying_type. /cp 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com> * cp-tree.def: Add a new UNDERLYING_TYPE tree code. * cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy. (UNDERLYING_TYPE_TYPE): Add. * cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE as TS_COMMON. * parser.c (cp_lexer_next_token_is_decl_specifier_keyword, cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE. (cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy. * semantics.c (finish_underlying_type): New. * typeck.c (structural_comptypes): Handle UNDERLYING_TYPE. * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise. * cxx-pretty-print.c (p_cxx_type_id): Likewise. * tree.c (cp_walk_subtrees): Likewise. * pt.c (for_each_template_parm_r, tsubst, unify, dependent_type_p_r): Likewise. * mangle.c (write_type): Sorry for __underlying_type. /testsuite 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/ext/underlying_type1.C: New. * g++.dg/ext/underlying_type2.C: Likewise. * g++.dg/ext/underlying_type3.C: Likewise. * g++.dg/ext/underlying_type4.C: Likewise. * g++.dg/ext/underlying_type5.C: Likewise. * g++.dg/ext/underlying_type6.C: Likewise. * g++.dg/ext/underlying_type7.C: Likewise. * g++.dg/ext/underlying_type8.C: Likewise. * g++.dg/ext/underlying_type9.C: Likewise. * g++.dg/ext/underlying_type10.C: Likewise. From-SVN: r172945
2011-04-24re PR other/48748 (Undocumented type traits used in libstdc++-4.6)Paolo Carlini1-21/+36
2011-04-24 Paolo Carlini <paolo.carlini@oracle.com> PR other/48748 * doc/extend.texi (Type Traits): Document __is_standard_layout, __is_literal_type, and __is_trivial; update throughout about possibly cv-qualified void types. From-SVN: r172911
2011-04-14avr.c: ("insn-codes.h"...Anatoly Sokolov1-0/+39
* config/avr/avr.c: ("insn-codes.h", "optabs.h", "langhooks.h"): New Includes (avr_init_builtins, avr_expand_builtin, avr_expand_delay_cycles, avr_expand_unop_builtin, avr_expand_binop_builtin ): New functions. (avr_builtin_id): New enum (struct avr_builtin_description): New struct (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins. (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU, UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR, UNSPECV_DELAY_CYCLES): new enumeration values (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS ("*rotlqi3_4"): rename insn to "rotlqi3_4" ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3", "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls", "fmulsu"): New insns * config/avr/avr-c.c: fix line endings (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP, __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR, __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP, __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL, __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU. * doc/extend.texi (AVR Built-in Functions): New node (Target Builtins): Add documentation of AVR built-in functions. Co-Authored-By: Eric Weddington <eric.weddington@atmel.com> Co-Authored-By: Georg-Johann Lay <avr@gjlay.de> From-SVN: r172416
2011-03-23re PR other/48179 (Reference mismatch in documentation chapter 6)Jonathan Wakely1-36/+36
2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com> PR other/48179 PR other/48221 PR other/48234 * doc/extend.texi (Alignment): Move section to match order in TOC. * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise. (Warning Options): Adjust -Wno-cpp summary and remove stray backslash. From-SVN: r171359
2011-03-22MAINTAINERS (crx port, [...]): Remove.Joseph Myers1-1/+1
* MAINTAINERS (crx port, m68hc11 port): Remove. Move maintainers to Write After Approval. * config-ml.in: Don't handle arc-*-elf*. * configure.ac (arc-*-*, crx-*-*, i[[3456789]]86-*-pe, m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*, mcore-*-pe*): Don't handle GCC libraries. * configure: Regenerate. contrib: * compare-all-tests (all_targets): Remove crx and m68hc11. fixincludes: * mkfixinc.sh: Don't handle i?86-moss-msdos* or i?86-*-pe. gcc: * config/alpha/gnu.h: Remove. * config/arc: Remove directory. * config/arm/netbsd.h: Remove. * config/arm/t-pe: Remove. * config/crx: Remove directory. * config/i386/netbsd.h: Remove. * config/m68hc11: Remove directory. * config/m68k/uclinux-oldabi.h: Remove. * config/mcore/mcore-pe.h: Remove. * config/mcore/t-mcore-pe: Remove. * config/netbsd-aout.h: Remove. * config/rs6000/gnu.h: Remove. * config/sh/sh-symbian.h: Remove. * config/sh/symbian-base.c: Remove. * config/sh/symbian-c.c: Remove. * config/sh/symbian-cxx.c: Remove. * config/sh/symbian-post.h: Remove. * config/sh/symbian-pre.h: Remove. * config/sh/t-symbian: Remove. * config/svr3.h: Remove. * config/vax/netbsd.h: Remove. * config.build: Don't handle i[34567]86-*-pe. * config.gcc: Remove handling of deprecations for most deprecated targets. (m68k-*-uclinuxoldabi*): Add to second deprecated list. (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf, i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*, sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*): Remove cases. * config.host: Don't handle i[34567]86-*-pe. * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove. (ASM_SPEC32): Don't handle -mcall-gnu. * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle -mcall-gnu. (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu. (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC, LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove. (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs. * config/sh/sh-protos.h, config/sh/sh.c: Remove all code conditional on SYMBIAN. * configure.ac: Don't handle powerpc*-*-gnu*. * configure: Regenerate. * doc/extend.texi (interrupt attribute): Don't mention CRX. * doc/install-old.texi (m6811, m6812): Don't mention. * doc/install.texi (arc-*-elf*): Don't document multilib option. (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove. (m68k-uclinuxoldabi): Don't mention. * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options): Remove. (-mcall-gnu): Remove. * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12 families): Remove constraint documentation. gcc/testsuite: * gcc.c-torture/execute/920501-8.x: Remove. * gcc.c-torture/execute/930513-1.x: Remove. * gcc.c-torture/execute/960312-1.x: Remove. * gcc.c-torture/compile/20000804-1.c, gcc.c-torture/compile/20001205-1.c, gcc.c-torture/compile/20001226-1.c, gcc.c-torture/compile/20010518-2.c, gcc.c-torture/compile/20020312-1.c, gcc.c-torture/compile/20020604-1.c, gcc.c-torture/compile/920501-12.c, gcc.c-torture/compile/920501-4.c, gcc.c-torture/compile/920520-1.c, gcc.c-torture/compile/980506-1.c, gcc.c-torture/execute/980709-1.x, gcc.c-torture/execute/990826-0.x: Don't XFAIL or use special options for m68hc11. * gcc.dg/cpp/assert4.c: Don't handle ARC. * gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c: Don't XFAIL for arc or m68hc11. libgcc: * config.host (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf, i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*, mcore-*-pe*, powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*, sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*): Remove cases. libstdc++-v3: * configure.ac: Don't handle powerpc*-*-gnu*. * configure: Regenerate. From-SVN: r171302
2011-03-18c-decl.c (grokfield): Don't allow typedefs for structures or unions with no ↵Joseph Myers1-3/+2
tag by default. * c-decl.c (grokfield): Don't allow typedefs for structures or unions with no tag by default. * doc/extend.texi (Unnamed Fields): Update. testsuite: * gcc.dg/c1x-anon-struct-1.c: Don't test use of typedefs. * gcc.dg/c1x-anon-struct-3.c: New test. * gcc.dg/anon-struct-11.c: Update. From-SVN: r171170
2011-02-28docs: fix Function Attributes table nesting.Ralf Wildenhues1-5/+1
gcc/: * doc/extend.texi (Function Attributes): Avoid deeply (and wrongly) nested tables. From-SVN: r170555
2011-02-03Fix PR target/47272Michael Meissner1-1/+67
From-SVN: r169780
2011-01-30extend.texi: Follow spelling conventions.Kazu Hirata1-3/+3
* doc/extend.texi: Follow spelling conventions. * doc/invoke.texi: Fix a typo. From-SVN: r169420
2011-01-30extend.texi (Thread-Local): Adjust reference to Ulrich Drepper's paper.Gerald Pfeifer1-1/+1
* doc/extend.texi (Thread-Local): Adjust reference to Ulrich Drepper's paper. From-SVN: r169404
2011-01-26c.opt (-fkeep-inline-dllexport): New switch.Dave Korn1-4/+9
gcc/c-family/ChangeLog: * c.opt (-fkeep-inline-dllexport): New switch. gcc/ChangeLog: * tree.c (handle_dll_attribute): Handle it. * doc/extend.texi (@item dllexport): Mention it. * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it. gcc/cp/ChangeLog: * semantics.c (expand_or_defer_fn_1): Handle it. * decl2.c (decl_needed_p): Likewise. gcc/testsuite/ChangeLog: * gcc.dg/dll-9a.c: New test file. * gcc.dg/dll-11.c: Likewise. * gcc.dg/dll-12.c: Likewise. * gcc.dg/dll-12a.c: Likewise. * gcc.dg/dll-11a.c: Likewise. * gcc.dg/dll-9.c: Likewise. * gcc.dg/dll-10.c: Likewise. * gcc.dg/dll-10a.c: Likewise. * g++.dg/ext/dllexport4a.cc: Likewise. * g++.dg/ext/dllexport4.C: Likewise. * g++.dg/ext/dllexport5.C: Likewise. * g++.dg/ext/dllexport5a.cc: Likewise. From-SVN: r169268
2011-01-24re PR c/21659 ([unit-at-a-time] "weak declaration must precede definition" ↵Jan Hubicka1-2/+1
error missing at >= O1) PR c/21659 * doc/extend.texi (weak pragma): Drop claim that it must appear before definition. * varasm.c (merge_weak, declare_weak): Only sanity check that DECL is not output at a time it is declared weak. From-SVN: r169184
2011-01-18extend.texi: Mention __float128 support on hppa HP-UX.John David Anglin1-0/+1
* doc/extend.texi: Mention __float128 support on hppa HP-UX. * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1. * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h". (pa_c_mode_for_suffix): New. (TARGET_EXPAND_BUILTIN): Define. (TARGET_C_MODE_FOR_SUFFIX): Define. (pa_builtins): Define. (pa_init_builtins): Register __float128 type and init new support builtins. * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined. * config/pa/quadlib.c (_U_Qfcopysign): New. From-SVN: r168969
2010-12-28Replace _rdrand_uXX with _rdrandXX_step.H.J. Lu1-3/+3
gcc/ 2010-12-28 H.J. Lu <hongjiu.lu@intel.com> Uros Bizjak <ubizjak@gmail.com> * config/i386/i386-builtin-types.def (PUSHORT): New. (INT_FTYPE_PUSHORT): Likewise. (INT_FTYPE_PUNSIGNED): Likewise. (INT_FTYPE_PULONGLONG): Likewise. Remove "DEF_FUNCTION_TYPE (UINT16)". * config/i386/i386.c (ix86_builtins): Remove IX86_BUILTIN_RDRAND16, IX86_BUILTIN_RDRAND32 and IX86_BUILTIN_RDRAND64. Add IX86_BUILTIN_RDRAND16_STEP, IX86_BUILTIN_RDRAND32_STEP and IX86_BUILTIN_RDRAND64_STEP. (bdesc_special_args): Remove IX86_BUILTIN_RDRAND16, IX86_BUILTIN_RDRAND32 and IX86_BUILTIN_RDRAND64. (ix86_init_mmx_sse_builtins): Handle IX86_BUILTIN_RDRAND16_STEP, IX86_BUILTIN_RDRAND32_STEP and IX86_BUILTIN_RDRAND64_STEP. (ix86_expand_builtin): Likewise. (ix86_expand_special_args_builtin): Remove UINT16_FTYPE_VOID. * config/i386/i386.md (UNSPEC_RDRAND): New. (UNSPECV_RDRAND): Removed. (rdrand<mode>): Likewise. (rdrand<mode>_1): Also set FLAGS_REG. Replace UNSPECV_RDRAND with UNSPEC_RDRAND. * config/i386/immintrin.h (_rdrand_u16): Removed. (_rdrand_u32): Likewise. (_rdrand_u64): Likewise. (_rdrand16_step): New. (_rdrand32_step): Likewise. (_rdrand64_step): Likewise. * doc/extend.texi (__builtin_ia32_rdrand16): Removed. (__builtin_ia32_rdrand32): Likewise. (__builtin_ia32_rdrand64): Likewise. (__builtin_ia32_rdrand16_step): New. (__builtin_ia32_rdrand32_step): Likewise. (__builtin_ia32_rdrand64_step): Likewise. gcc/testsuite/ 2010-12-28 H.J. Lu <hongjiu.lu@intel.com> * gcc.target/i386/rdrand-1.c: Updated. * gcc.target/i386/rdrand-2.c: Likewise. * gcc.target/i386/rdrand-3.c: Likewise. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r168298
2010-12-23Fix typos in the manual.Ralf Wildenhues1-17/+17
gcc/: * doc/extend.texi (Function Attributes, Volatiles): Fix typos. * doc/install.texi (Prerequisites, Specific): Likewise. * doc/invoke.texi (C Dialect Options, Debugging Options) (Optimize Options, MicroBlaze Options) (RS/6000 and PowerPC Options, RX Options, Code Gen Options): Likewise. * doc/objc.texi (Method signatures) (Fast enumeration protocol): Likewise. * doc/tm.texi.in (Run-time Target, Register Arguments) (Scheduling, Macros for Initialization, Misc): Likewise. * doc/tm.texi: Renerate. From-SVN: r168202
2010-12-20doc: @var fixes.Ralf Wildenhues1-1/+1
gcc/: * doc/cppopts.texi: Use @var when appropriate. * doc/extend.texi (Structure-Packing Pragmas): Likewise. * doc/gimple.texi (Logical Operators) (Adding a new GIMPLE statement code): Likewise. * doc/invoke.texi (Target Options, Precompiled Headers): Likewise. * doc/plugins.texi (Plugins): Likewise. From-SVN: r168081
2010-12-18re PR target/36834 (structure return ABI for windows targets differs from ↵Kai Tietz1-0/+13
native MSVC) 2010-12-18 Kai Tietz <kai.tietz@onevision.com> PR target/36834 * config/i386/i386.c (ix86_keep_aggregate_return_pointer): New local function. (ix86_return_pops_args): Use ix86_keep_aggregate_return_pointer function instead of KEEP_AGGREGATE_RETURN_POINTER. (ix86_handle_callee_pop_aggregate_return): New handler. (ix86_attribute_table): Add new attribute callee_pop_aggregate_return. * doc/extend.texi (callee_pop_aggregate_return): Add attribute documentation. 2010-12-18 Kai Tietz <kai.tietz@onevision.com> PR target/36834 * gcc.target/i386/aggregate-ret1.c: New. * gcc.target/i386/aggregate-ret2.c: New. From-SVN: r168019
2010-12-09extend.texi (Attribute Syntax): Correct description of attributes in pointer ↵Joseph Myers1-1/+1
declarators. * doc/extend.texi (Attribute Syntax): Correct description of attributes in pointer declarators. From-SVN: r167664
2010-11-19Add PowerPC target attribute/pragma supportMichael Meissner1-11/+189
From-SVN: r166947
2010-11-10Add support for TBM.Quentin Neill1-0/+8
2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com> gcc/ * config.gcc (i[34567]86-*-*): Include tbmintrin.h. (x86_64-*-*): Likewise. * config/i386/cpuid.h: Define TBM bit. * config/i386/driver-i386.c (host_detect_local_cpu): Define and set has_tbm. * config/i386/i386-c.c (ix86_target_macros_internal): Check isa_flag for TBM. * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New. (OPTION_MASK_ISA_TBM_UNSET): New. (ix86_handle_option): Handle -mtbm. (isa_opts): Add -mtbm. (enum pta_flags): Add PTA_TBM. (ix86_option_override_internal): Add TBM support. (ix86_valid_target_attribute_inner_p): Handle -mtbm. (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic. (IX86_BUILTIN_BEXTRI64): Likewise. (bdesc_args): Add TBM intrinsics. (ix86_expand_builtin): Add TBM specific case. * config/i386/i386.h (TARGET_TBM): New for TBM. * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM. (tbm_bextri_<mode>): Likewise. (*tbm_blcfill_<mode>): Likewise. (*tbm_blci_<mode>): Likewise. (*tbm_blcic_<mode>): Likewise. (*tbm_blcmsk_<mode>): Likewise. (*tbm_blcs_<mode>): Likewise. (*tbm_blsfill_<mode>): Likewise. (*tbm_blsic_<mode>): Likewise. (*tbm_t1mskc_<mode>): Likewise. (*tbm_tzmsk_<mode>): Likewise. * config/i386/i386.opt: Add -mtbm. * config/i386/tbmintrin.h (__bextri_u32): New. (__blcfill_u32): Likewise. (__blci_u32): Likewise. (__blcic_u32): Likewise. (__blcmsk_u32): Likewise. (__blcs_u32): Likewise. (__blsfill_u32): Likewise. (__blsic_u32): Likewise. (__t1mskc_u32): Likewise. (__tzmsk_u32): Likewise. (__bextri_u64): Likewise. (__blcfill_u64): Likewise. (__blci_u64): Likewise. (__blcic_u64): Likewise. (__blcmsk_u64): Likewise. (__blcs_u64): Likewise. (__blsfill_u64): Likewise. (__blsic_u64): Likewise. (__t1mskc_u64): Likewise. (__tzmsk_u64): Likewise. * config/i386/x86intrin.h: Add TBM check and tbmintrin.h. * doc/invoke.texi: Document -mtbm. * doc/extend.texi: Document TBM built-in functions. gcc/testsuite/ * g++.dg/other/i386-2.C: Add -mtbm. * g++.dg/other/i386-3.C: Likewise. * gcc.target/i386/funcspec-5.c: Add tbm and no-tbm targets. * gcc.target/i386/funcspec-6.c: Likewise. * gcc.target/i386/sse-12.c: Add -mtbm. * gcc.target/i386/sse-13.c: Add -mtbm and test immediate operand intrinsics. * gcc.target/i386/sse-14.c: Likewise. * gcc.target/i386/sse-22.c: Likewise. * gcc.target/i386/sse-23.c: Likewise. * gcc.target/i386/tbm-1.c: New file. * gcc.target/i386/tbm-2.c: Likewise. From-SVN: r166562
2010-11-10Add support for BMI.Quentin Neill1-0/+10
2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com> gcc/ * config.gcc (i[34567]86-*-*): Include bmiintrin.h. (x86_64-*-*): Likewise. * config/i386/cpuid.h: Define BMI bit. * config/i386/driver-i386.c (host_detect_local_cpu): Define and set has_bmi. * config/i386/i386-c.c (ix86_target_macros_internal): Check isa_flag for BMI. * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New. (OPTION_MASK_ISA_BMI_UNSET): New. (ix86_handle_option): Handle -mbmi. (isa_opts): Add -mbmi. (enum pta_flags): Add PTA_BMI. (ix86_option_override_internal): Add BMI support. (ix86_valid_target_attribute_inner_p): Handle -mbmi. (IX86_BUILTIN_BEXTR32): New for BMI intrinsic. (IX86_BUILTIN_BEXTR64): Likewise. (IX86_BUILTIN_CTZS): Likewise. (bdesc_args): Add BMI intrinsics. (ix86_expand_args_builtin): Add BMI specific cases. * config/i386/i386.h (TARGET_BMI): New for BMI. (CTZ_DEFINED_VALUE_AT_ZERO): Likewise. (CLZ_DEFINED_VALUE_AT_ZERO): Likewise. * config/i386/i386.md (UNSPEC_BEXTR): New for BMI. (UNSPEC_TZCNT): Likewise. (ctz<mode>2): Add tzcnt, and handle 16 bit operands. (bmi_andn_<mode>): New for BMI. (bmi_bextr_<mode>): Likewise. (bmi_blsi_<mode>): Likewise. (bmi_blsmsk_<mode>): Likewise. (bmi_blsr_<mode>): Likewise. * config/i386/i386.opt: Add -mbmi. * config/i386/x86intrin.h: Add BMI check and bmiintrin.h. * config/i386/bmiintrin.h (__lzcnt_u16): New. (__tzcnt_u16): Likewise. (__andn_u32): Likewise. (__bextr_u32): Likewise. (__blsi_u32): Likewise. (__blsmsk_u32): Likewise. (__blsr_u32): Likewise. (__lzcnt_u32): Likewise. (__tzcnt_u32): Likewise. (__andn_u64): Likewise. (__bextr_u64): Likewise. (__blsi_u64): Likewise. (__blsmsk_u64): Likewise. (__blsr_u64): Likewise. (__lzcnt_u64): Likewise. (__tzcnt_u64): Likewise. * doc/invoke.texi: Document -mbmi and -mno-bmi. * doc/extend.texi: Document BMI built-in functions. gcc/testsuite/ * g++.dg/other/i386-2.C: Add -mbmi. * g++.dg/other/i386-3.C: Likewise. * gcc.target/i386/funcspec-5.c: Add bmi and no-bmi targets. * gcc.target/i386/funcspec-6.c: Likewise. * gcc.target/i386/sse-12.c: Add -mbmi. * gcc.target/i386/bmi-1.c: New file. * gcc.target/i386/bmi-2.c: Likewise. * gcc.target/i386/bmi-3.c: Likewise. * gcc.target/i386/bmi-4.c: Likewise. * gcc.target/i386/bmi-5.c: Likewise. * gcc.target/i386/bmi-6.c: Likewise. From-SVN: r166561
2010-11-06NS/CF String format syntax parsing.Iain Sandoe1-1/+30
gcc: PR target/44981 * doc/extend.tex (format): Document NSString extension. (format_arg): Likewise. (Darwin Format Checks): New section. * doc/tm.texi: Document string object hooks (generated). * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename. (TARGET_STRING_OBJECT_REF_TYPE_P): New. (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New. * target.def (objc_construct_string_object): Rename, amend documentation. (string_object_ref_type_p): New hook. (check_string_object_format_arg): New hook. * c-parser.c (c_parser_attributes): Allow objective-c class names as attribute identifiers. * config/darwin-c.c (darwin_cfstring_ref_p): New. (darwin_check_cfstring_format_arg): New. (darwin_additional_format_types): New. * config/darwin-protos.h (darwin_cfstring_ref_p) New. (darwin_check_cfstring_format_arg): New. * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed. (TARGET_STRING_OBJECT_REF_TYPE_P): New. (TARGET_N_FORMAT_TYPES): New. (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New. gcc/c-family: PR target/44981 * c-format.c (format_type): New type gcc_objc_string_format_type. (valid_stringptr_type_p): New. (handle_format_arg_attribute): Use valid_stringptr_type_p (). (check_format_string): Pass expected type, use valid_stringptr_type_p (), check that the format string types are consistent with the format specification. (decode_format_attr): Warn if NSString is used outside objective-c. (format_types_orig): Add NSString. (format_name): New. (format_flags): New. (check_format_arg): Handle format strings requiring an external parser. first_target_format_type: New variable. (handle_format_attribute): Set up first_target_format_type, pass the expected format arg string type to check_format_string(). * c-common.h (FMT_FLAG_PARSE_ARG_CONVERT_EXTERNAL): New flag. * stub-objc.c (objc_string_ref_type_p): New. (objc_check_format_arg): New. gcc/objc: PR target/44981 * objc-act.c (objc_build_string_object): Amend for renamed hook. (objc_string_ref_type_p): New. (objc_check_format_arg): New. gcc/testsuite: PR target/44981 * gcc.dg/darwin-cfstring-format-1.c: New. * gcc.dg/warn-nsstring.c: New. * objc.dg/fsf-nsstring-format-1.m: New. * obj-c++.dg/fsf-nsstring-format-1.mm: New. * obj-c++.dg/torture/strings/const-cfstring-1.mm: Update for darwin10 linker warning. From-SVN: r166398
2010-11-05configure.ac: Test assembler support for DSP Rev1 mult.Chao-ying Fu1-6/+6
2010-11-04 Chao-ying Fu <fu@mips.com> * configure.ac: Test assembler support for DSP Rev1 mult. * configure: Regenerate. * config.in: Regenerate. * config/mips/mips.h (ISA_HAS_DSP_MULT): New define. * config/mips/mips.c (CODE_FOR_mips_mult): New define. (CODE_FOR_mips_multu): New define. (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from dspr2_32 to dsp_32. (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP). Delete returns when ISA_HAS_DSPR2, because the old patterns are deleted. * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>): New define_expand patterns. * config/mips/constraints.md (ka): Update the constraint to test ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2. * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult, mips_multu): Delete. * config/mips/mips.md (<u>mulsidi3_32bit): Add comments. Change target constraint to "ka". Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2). Emit the accumulator destination when ISA_HAS_DSP_MULT. (<u>msubsidi4): Add comments. Test ISA_HAS_DSP. Emit the accumulator destination when ISA_HAS_DSP_MULT. (<u>maddsidi4): Likewise. * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu, msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1. From-SVN: r166344
2010-10-29tree.h (build_vector_from_val): Declare.Artjoms Sinkarovs1-0/+18
2010-10-29 Artjoms Sinkarovs <artyom.shinakroff@gmail.com> Andrew Pinski <pinskia@gmail.com> * tree.h (build_vector_from_val): Declare. * tree.c (build_vector_from_val): New function. * c-typeck.c (build_binary_op): Handle vector shifting. * doc/extend.texi: Description of the vector shifting operation. testsuite/ * gcc.c-torture/execute/vector-shift.c: New testcase. * gcc.c-torture/execute/vector-shift1.c: Likewise. * gcc.c-torture/execute/vector-shift2.c: Likewise. * gcc.dg/vector-shift.c: Likewise. * gcc.dg/vector-shift1.c: Likewise. * gcc.dg/torture/vector-shift2.c: Likewise. * gcc.dg/vector-shift3.c: Likewise. * gcc.dg/simd-1b.c: Adjust. Co-Authored-By: Andrew Pinski <pinskia@gmail.com> From-SVN: r166061
2010-10-22extend.texi (Named Address Spaces): Document the M32C named address space.DJ Delorie1-1/+6
* doc/extend.texi (Named Address Spaces): Document the M32C named address space. From-SVN: r165873
2010-10-22c-typeck.c (build_array_ref): Handle subscripting of vectors.Artjoms Sinkarovs1-0/+6
2010-10-22 Artjoms Sinkarovs <artyom.shinakroff@gmail.com> Andrew Pinski <pinskia@gmail.com> * c-typeck.c (build_array_ref): Handle subscripting of vectors. * doc/extend.texi: New paragraph c-family/ * c-common.h (c_common_mark_addressable_vec): Declare. * c-common.c (c_common_mark_addressable_vec): New function. testsuite/ * gcc.c-torture/execute/vector-subscript-1.c: Likewise. * gcc.c-torture/execute/vector-subscript-2.c: Likewise. * gcc.c-torture/execute/vector-subscript-3.c: New testcase. * gcc.dg/vector-subscript-1.c: Likewise. * gcc.dg/vector-subscript-2.c: Likewise. * gcc.dg/vector-subscript-3.c: New testcase. * gcc.dg/array-8.c: Adjust. Co-Authored-By: Andrew Pinski <pinskia@gmail.com> From-SVN: r165861
2010-10-15extend.texi (Variable Length): Don't refer to VLAs not conforming to C99.Joseph Myers1-3/+1
* doc/extend.texi (Variable Length): Don't refer to VLAs not conforming to C99. From-SVN: r165509
2010-10-04c-typeck.c (lookup_field): If -fplan9-extensions, permit referring to a ↵Ian Lance Taylor1-0/+28
field using a typedef name. gcc/: * c-typeck.c (lookup_field): If -fplan9-extensions, permit referring to a field using a typedef name. (find_anonymous_field_with_type): New static function. (convert_to_anonymous_field): New static function. (convert_for_assignment): If -fplan9-extensions, permit converting pointer to struct to pointer to anonymous field. * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields. (is_duplicate_field): New static function. (detect_field_duplicates_hash): If -fplan9-extensions, check for typedef names duplicating field names. (detect_field_duplicates): Likewise. * doc/invoke.texi (Option Summary): Mention -fplan9-extensions. (C Dialect Options): Document -fplan9-extensions. * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions. gcc/c-family/: * c.opt (-fplan9-extensions): New option. gcc/testsuite/: * gcc.dg/anon-struct-11.c: New test. * gcc.dg/anon-struct-12.c: New test. * gcc.dg/anon-struct-13.c: New test. * gcc.dg/anon-struct-14.c: New test. From-SVN: r164926
2010-09-30Check in support for Xilinx MicroBlaze processor.Michael Eager1-2/+10
From-SVN: r164756
2010-09-27common.opt (fsplit-stack): New option.Ian Lance Taylor1-1/+10
gcc/: * common.opt (fsplit-stack): New option. * opts.c (decode_options): Set flag_split_stack to final value. * target.def (supports_split_stack): New hook. * gcc.c (STACK_SPLIT_SPEC): Define. (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC. * doc/invoke.texi (Option Summary): Mention -fsplit-stack. (Code Gen Options): Document -fsplit-stack. * doc/extend.texi (Function Attributes): Mention no_split_stack. (Function Attributes): Document no_split_stack. * doc/tm.texi.in (Stack Smashing Protection): Add @hook TARGET_SUPPORTS_SPLIT_STACK. * doc/tm.texi: Rebuild. * function.c (thread_prologue_and_epilogue_insns): If flag_split_stack, add split stack prologue. * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack. * varasm.c (saw_no_split_stack): New static variable. (assemble_start_function): Set saw_no_split_stack if the function has the no_split_stack attribute. (file_end_indicate_split_stack): New function. * output.h (file_end_indicate_split_stack): Declare. * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables and function. * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack routines. * config/i386/i386.c (ix86_option_override_internal): Don't set expand_builtin_va_start to NULL if -fsplit-stack. (ix86_function_regparm): Reduce local regparm by 1 for 32-bit -fsplit-stack. (ix86_va_start): If -fsplit-stack, get overflow pointer from scratch register set by prologue. (ix86_code_end): If -fsplit-stack, call file_end_indicate_split_stack. (ix86_supports_split_stack): New static function. (SPLIT_STACK_AVAILABLE): Define. (split_stack_prologue_scratch_regno): New static function. (split_stack_fn): New static variable. (ix86_expand_split_stack_prologue): New function. (ix86_live_on_entry): New static function. (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK. (output_pic_addr_const): Likewise. (i386_asm_output_addr_const_extra): Likewise. (ix86_expand_call): Change return type to rtx. Return the new call instruction. (TARGET_SUPPORTS_SPLIT_STACK): Define. (TARGET_EXTRA_LIVE_ON_ENTRY): Define. * config/i386/i386.md (UNSPEC_STACK_CHECK): Define. (split_stack_prologue, split_stack_return): New insns. (split_stack_space_check): New insn. * config/i386/i386.h (struct machine_function): Add split_stack_varargs_pointer field. * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define. (TARGET_THREAD_SPLIT_STACK_OFFSET): Define. * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define. (TARGET_THREAD_SPLIT_STACK_OFFSET): Define. * config/i386/i386-protos.h (ix86_expand_split_stack_prologue): Declare. (ix86_expand_call): Update declaration. gcc/c-family/: * c-common.c (c_common_attribute_table): Add no_split_stack. (handle_no_split_stack_attribute): New static function. gcc/testsuite/: * lib/target-supports.exp (check_effective_target_split_stack): New procedure. * gcc.dg/split-1.c: New test. * gcc.dg/split-2.c: New test. * gcc.dg/split-3.c: New test. * gcc.dg/split-4.c: New test. libgcc/: * generic-morestack.h: New file. * generic-morestack.c: New file. * generic-morestack-thread.c: New file. * config/i386/morestack.S: New file. * config/t-stack: New file. * config/i386/t-stack-i386: New file. * config.host (i[34567]86-*-linux* and friends): Add t-stack and i386/t-stack-i386 to tmake_file. From-SVN: r164661
2010-09-24extend.texi: (attribute leaf): Document.Jan Hubicka1-0/+25
* doc/extend.texi: (attribute leaf): Document. * tree.c (local_define_builtin): Handle ECF_LEAF. (build_common_builtin_nodes): Set ECF_LEAF where needed. * tree.h (ECF_LEAF): New. * ipa-reference.c (propagate_bits): For leaf calls propagate ever overwrittable and unavailable functions. (ipa_init): Put all_module_statics into optimization_summary_obstack. (copy_global_bitmap): Do not copy all_module_statics. (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF. (propagate): Handle overwritable and unavailable leaf functions; initialize global info for overwritable and unavailable leaf functions; do not free all module statics. (ipa_reference_get_not_read_global, ipa_reference_get_not_written_global): leaf calls don't clobber local statics. * calls.c (flags_from_decl_or_type): Handle leaf. * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do abnormal gotos. * c-common.c (handle_leaf_attribute): New function. (struct attribute_spec c_common_att): Add leaf. * gcc.dg/tree-ssa/leaf.c: New testcase. From-SVN: r164606
2010-09-22Improve formatting of manuals.Ralf Wildenhues1-15/+15
contrib/: * texi2pod.pl: Replace @@ before @{ and @}, for @samp{@@}. Also escape characters with grave accents, to be fixed ... (unmunge): ... here. (postprocess): Also handle @/ and @acronym{...}. gcc/: * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output. * doc/cppopts.texi: Fix markup of index entry. * doc/extend.texi (Constructing Calls): Fix markup of __builtin_va_arg_pack and __builtin_va_arg_pack_len definition. (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local) (Vague Linkage, C++ Attributes): Fix markup of index entries and keywords. * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to avoid long lines. (C Dialect Options, C++ Dialect Options, Warning Options) (Debugging Options, Spec Files, Darwin Options) (i386 and x86-64 Options, MIPS Options) (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of index entries, avoid abbreviations, allow URLs to wrap, avoid long lines, avoid overlong pages from long @itemx lists. * doc/objc.texi (Garbage Collection): Allow URLs to wrap. * doc/standards.texi (Standards): Likewise. * doc/trouble.texi (Incompatibilities): Fix markup of index entry. gcc/fortran/: * gfortran.texi (Argument list functions): Allow URL to wrap. * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX) (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE) (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of code markups in the text. * invoke.texi (Fortran Dialect Options) (Error and Warning Options, Directory Options, Code Gen Options): Likewise. Remove @code inside @smallexample. From-SVN: r164533
2010-09-09configure.ac (gnu_indirect_function): New test.Nathan Sidwell1-7/+53
* configure.ac (gnu_indirect_function): New test. * configure: Rebuilt. * config.in (HAVE_GAS_INDIRECT_FUNCTION): New. * defaults.h (IFUNC_ASM_TYPE): Provide default. * doc/extend.texi (Function Attributes): Document ifunc. * varasm.c (do_assemble_alias): Deal with ifuncs too. c-family/ * c-common.c (handle_alias_ifunc_attribute): New, broken out of ... (handle_alias_attribute): ... here. (handle_ifunc_attribute): New. testsuite/ * lib/target-supports-dg.exp (dg-require-ifunc): New. * lib/target-supports.exp (check_ifunc_available): New. * gcc.dg/attr-ifunc-1.c: New. * gcc.dg/attr-ifunc-2.c: New. * gcc.dg/attr-ifunc-3.c: New. * gcc.dg/attr-ifunc-4.c: New. * gcc.dg/attr-ifunc-5.c: New. * testsuite/g++.dg/ext/attr-ifunc-1.C * testsuite/g++.dg/ext/attr-ifunc-2.C * testsuite/g++.dg/ext/attr-ifunc-3.C * testsuite/g++.dg/ext/attr-ifunc-4.C From-SVN: r164110
2010-08-31extend.texi: Fix documentation of the return value of __builtin_choose_expr.Francois-Xavier Coudert1-1/+1
* doc/extend.texi: Fix documentation of the return value of __builtin_choose_expr. From-SVN: r163675
2010-08-20gimplify.c (gimplify_modify_expr): When assigning to volatiles, copy the src ↵Nathan Sidwell1-33/+118
value and return a copy. gcc/ * gimplify.c (gimplify_modify_expr): When assigning to volatiles, copy the src value and return a copy. * doc/extend.texi (Volatiles): Move from C++ to C and expand. (C++ Volatiles): Adjust to describe C++ semantics only. gcc/testsuite/ * gcc.target/i386/volatile-2.c: New. From-SVN: r163400
2010-07-23extend.texi: Remove IP2K from the description of naked attribute.Jie Zhang1-1/+1
* doc/extend.texi: Remove IP2K from the description of naked attribute. Add MCORE instead. From-SVN: r162449
2010-07-08i386-protos.h (ix86_asm_output_function_label): New prototype.Kai Tietz1-4/+4
2010-07-08 Kai Tietz <kai.tietz@onevision.com> * config/i386/i386-protos.h (ix86_asm_output_function_label): New prototype. * config/i386/i386.c (ix86_function_ms_hook_prologue): Check for NULL fntype argument and allow 64-bit targets. (ix86_asm_output_function_label): New function. (ix86_expand_prologue): Handle 64-bit ms hook prologue. (ix86_handle_fndecl_attribute): Likewise. * doc/extend.texi (ms_hook_prologue): Adjust documentation. * doc/doc/tm.texi: Regenerated. * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New. (ASM_DECLARE_FUNCTION_NAME): Adjust documentation. * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro. * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL. * config/elfos.h: Likewise. * config/i386/cygming.h: Likewise. * config/netbsd-aout.h: Likewise. * config/openbsd.h: Likewise. * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override by ix86_asm_output_function_label function call. * varasm.c (assemble_start_function): Use ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL. From-SVN: r161971
2010-07-07Revert revision 161876.H.J. Lu1-4/+4
2010-07-07 H.J. Lu <hongjiu.lu@intel.com> PR target/44850 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert revision 161876. (ix86_expand_prologue): Likewise. (ix86_handle_fndecl_attribute): Likewise. (ix86_asm_declare_function_name): Likewise. * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise. * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise. (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise. * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise. * doc/extend.texi: Likewise. From-SVN: r161911
2010-07-06i386.c (ix86_function_ms_hook_prologue): Enable x64 support.Kai Tietz1-4/+4
2010-07-06 Kai Tietz <kai.tietz@onevision.com> * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64 support. (ix86_expand_prologue): Likewise. (ix86_handle_fndecl_attribute): Likewise. (ix86_asm_declare_function_name): New function for ASM_DECLARE_FUNCTION_NAME. * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro. * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed. (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro. * config/i386/i386-protos.h (ix86_asm_declare_function_name): New. * doc/extend.texi: Adjust documentation about ms_hook_prologue attribute. From-SVN: r161876
2010-07-05Support AVX Programming Reference (June, 2010).H.J. Lu1-0/+25
gcc/ 2010-07-05 H.J. Lu <hongjiu.lu@intel.com> AVX Programming Reference (June, 2010) * config/i386/cpuid.h (bit_F16C): New. (bit_RDRND): Likewise. (bit_FSGSBASE): Likewise. * config/i386/i386-builtin-types.def: Add "DEF_FUNCTION_TYPE (UINT16)", function types for float16 <-> float conversions and "DEF_FUNCTION_TYPE (VOID, UINT64)". * config/i386/i386-c.c (ix86_target_macros_internal): Support OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and OPTION_MASK_ISA_F16C. * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New. (OPTION_MASK_ISA_RDRND_SET): Likewise. (OPTION_MASK_ISA_F16C_SET): Likewise. (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise. (OPTION_MASK_ISA_RDRND_UNSET): Likewise. (OPTION_MASK_ISA_F16C_UNSET): Likewise. (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET. (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c. (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c. (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C. (override_options): Handle them. (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c. (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32, IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32, IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32, IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32, IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16, IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64, IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256, IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256. (bdesc_args): Likewise. (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI, V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT. (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64, VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID. Handle non-memory store. * config/i386/i386.h (TARGET_FSGSBASE): New. (TARGET_RDRND): Likewise. (TARGET_F12C): Likewise. * config/i386/i386.md (UNSPEC_VCVTPH2PS): New. (UNSPEC_VCVTPS2PH): Likewise. (UNSPECV_RDFSBASE): Likewise. (UNSPECV_RDGSBASE): Likewise. (UNSPECV_WRFSBASE): Likewise. (UNSPECV_WRGSBASE): Likewise. (UNSPECV_RDRAND): Likewise. (rdfsbase<mode>): Likewise. (rdgsbase<mode>): Likewise. (wrfsbase<mode>): Likewise. (wrgsbase<mode>): Likewise. (rdrand<mode>): Likewise. * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c. * config/i386/immintrin.h (_rdrand_u16): New. (_rdrand_u32): Likewise. (_readfsbase_u32): Likewise. (_readfsbase_u64): Likewise. (_readgsbase_u32): Likewise. (_readgsbase_u64): Likewise. (_writefsbase_u32): Likewise. (_writefsbase_u64): Likewise. (_writegsbase_u32): Likewise. (_writegsbase_u64): Likewise. (_rdrand_u64): Likewise. (_cvtsh_ss): Likewise. (_mm_cvtph_ps): Likewise. (_mm256_cvtph_ps): Likewise. (_cvtss_sh): Likewise. (_mm_cvtps_ph): Likewise. (_mm256_cvtps_ph): Likewise. * config/i386/sse.md (vcvtph2ps): New. (*vcvtph2ps_load): Likewise. (vcvtph2ps256): Likewise. (vcvtps2ph): Likewise. (*vcvtps2ph): Likewise. (*vcvtps2ph_store): Likewise. (vcvtps2ph256): Likewise. * doc/extend.texi: Document FSGSBASE and RDRND built-in functions. * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c. gcc/testsuite/ 2010-07-05 H.J. Lu <hongjiu.lu@intel.com> AVX Programming Reference (June, 2010) * g++.dg/other/i386-2.C: Add -mfsgsbase -mrdrnd -mf16c. * g++.dg/other/i386-3.C: Likewise. * gcc.target/i386/sse-12.c: Likewise. * gcc.target/i386/f16c-check.h: New. * gcc.target/i386/rdfsbase-1.c: Likewise. * gcc.target/i386/rdfsbase-2.c: Likewise. * gcc.target/i386/rdgsbase-1.c: Likewise. * gcc.target/i386/rdgsbase-2.c: Likewise. * gcc.target/i386/rdrand-1.c: Likewise. * gcc.target/i386/rdrand-2.c: Likewise. * gcc.target/i386/rdrand-3.c: Likewise. * gcc.target/i386/vcvtph2ps-1.c: Likewise. * gcc.target/i386/vcvtph2ps-2.c: Likewise. * gcc.target/i386/vcvtph2ps-3.c: Likewise. * gcc.target/i386/vcvtps2ph-1.c: Likewise. * gcc.target/i386/vcvtps2ph-2.c: Likewise. * gcc.target/i386/vcvtps2ph-3.c: Likewise. * gcc.target/i386/wrfsbase-1.c: Likewise. * gcc.target/i386/wrfsbase-2.c: Likewise. * gcc.target/i386/wrgsbase-1.c: Likewise. * gcc.target/i386/wrgsbase-2.c: Likewise. * gcc.target/i386/sse-13.c: Add -mfsgsbase -mrdrnd -mf16c. (__builtin_ia32_vcvtps2ph): New. (__builtin_ia32_vcvtps2ph256): Likewise. * gcc.target/i386/sse-14.c: Add -mfsgsbase -mrdrnd -mf16c. Test _cvtss_sh, _mm_cvtps_ph and _mm256_cvtps_ph. * gcc.target/i386/sse-22.c: Add fsgsbase,rdrnd,f16c. Test _cvtss_sh, _mm_cvtps_ph and _mm256_cvtps_ph. * gcc.target/i386/sse-23.c (__builtin_ia32_vcvtps2ph): New. (__builtin_ia32_vcvtps2ph256): Likewise. Add fsgsbase,rdrnd,f16c. * lib/target-supports.exp (check_effective_target_f16c): New. From-SVN: r161855
2010-06-28cgraph.h (struct varpool_node): new used_from_object_file flag.Bingfeng Mei1-1/+1
2010-06-28 Bingfeng Mei <bmei@broadcom.com> * cgraph.h (struct varpool_node): new used_from_object_file flag. (struct cgraph_local_info): new used_from_object_file flag. * cgraph.c (dump_cgraph_node): dump used_from_object_file flag. (cgraph_clone_node): initialize used_from_object_file. (cgraph_create_virtual_clone): initialize used_from_object_file. * lto-symbtab.c (lto_symtab_merge_decls_1): Set used_from_object_file flags for symbols of LDPR_PREVAILING_DEF when compiling with -fwhole-program. (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for internal resolver. * ipa.c (function_and_variable_visibility): Set externally_visible flag of varpool_node if used_from_object_file flag is set. (cgraph_externally_visible_p): check used_from_object_file flag. * doc/invoke.texi (-fwhole-program option): Change description of externally_visible attribute accordingly. * doc/extend.texi (externally_visible): Ditto. From-SVN: r161483
2010-06-25m32c-protos.h (m32c_note_pragma_address): Declare.DJ Delorie1-1/+16
* config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare. (m32c_output_aligned_common): Likewise. * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New. (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. * config/m32c/m32c-pragma.c (m32c_pragma_address): New. (m32c_register_pragmas): Register it. * config/m32c/m32c.c (m32c_get_pragma_address): New. (m32c_insert_attributes): Set #pragma address decls volatile. (pragma_entry_eq): New. (pragma_entry_hash): New. (m32c_note_pragma_address): New. (m32c_get_pragma_address): New. (m32c_output_aligned_common): New. * doc/extend.texi: Document the new pragma. * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs also. * config/m32c/predicates.md (m32c_any_operand): Check the code instead of memory_operand so as to allow matching volatile MEMs. (m32c_nonimmediate_operand): Likewise. (mra_operand): Allow volatiles. From-SVN: r161425
2010-06-21diagnostic.h (diagnostic_classification_change_t): New.DJ Delorie1-9/+24
* diagnostic.h (diagnostic_classification_change_t): New. (diagnostic_context): Add history and push/pop list. (diagnostic_push_diagnostics): Declare. (diagnostic_pop_diagnostics): Declare. * diagnostic.c (diagnostic_classify_diagnostic): Store changes from pragmas in a history chain instead of the global table. (diagnostic_push_diagnostics): New. (diagnostic_pop_diagnostics): New. (diagnostic_report_diagnostic): Scan history chain to find state of diagnostics as of the diagnostic location. * opts.c (set_option): Pass UNKNOWN_LOCATION to diagnostic_classify_diagnostic. (enable_warning_as_error): Likewise. * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for use in the history chain. * c-family/c-pragma.c (handle_pragma_diagnostic): Add push/pop, allow these pragmas anywhere. * doc/extend.texi: Document pragma GCC diagnostic changes. * gcc.dg/pragma-diag-1.c: New. From-SVN: r161115
2010-06-03PR target/44218, improve -mrecip on powerpcMichael Meissner1-1/+17
From-SVN: r160199
2010-05-26demangle-expected: Add tests for __int128 and unsigned __int128 types.Kai Tietz1-0/+12
libiberty/ 2010-05-26 Kai Tietz <kai.tietz@onevision.com> * testsuite/demangle-expected: Add tests for __int128 and unsigned __int128 types. gcc/testsuite 2010-05-26 Kai Tietz <kai.tietz@onevision.com> * lib/target-supports.exp (check_effective_target_int128): New function to check if __int128 types are available for target. * testsuite/c-c++-common/int128-types-1.c: New. * testsuite/c-c++-common/int128-1.c: New. * testsuite/c-c++-common/int128-2.c: New. * g++.dg/abi/mangle43.C: New. * g++.dg/init/enum1.C: Handle __int128 case and add -Wno-overflow. * g++.dg/cpp0x/nullptr04.C: Use __SIZE_TYPE__ for getting pointer-wide scalar. * g++.dg/other/pr25632.C: Likewise. * g++.dg/other/large-size-array.C (DIM): Use ULLONG_MAX for win64 case. * g++.dg/warn/pr13358-2.C: Add llp64 for check of special overflow warnings. * g++.dg/warn/pr13358-4.C: Likewise. * g++.dg/warn/Wconversion-null-2.C: Add 'long long' case. * g++.dg/warn/Wconversion-null.C: Likewise. gcc/ 2010-05-26 Kai Tietz <kai.tietz@onevision.com> * builtin-types.def (BT_INT128): New primitive type. (BT_UINT128): Likewise. * c-common.c (c_common_r): Add __int128 keyword. (c_common_type_for_size): Handle __int128. (c_common_type_for_mode): Likewise. (c_common_signed_or_unsigned_type): Likewise. (c_common_nodes_and_builtins): Add builtin type if target supports 128-bit integer scalar. * c-common.h (enum rid): Add RID_INT128. * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__ if target supports 128-bit integer scalar. * c-decl.c (declspecs_add_type): Handle new keyword __int128. (finish_declspecs): Likewise. * c-parser.c (c_token_starts_typename): Handle RID_INT128. (c_token_starts_declspecs): Likewise. (c_parser_declspecs): Likewise. (c_parser_attributes): Likewise. (c_parser_objc_selector): Likewise. * c-pretty-print.c (pp_c_integer_constant): Handle __int128. * c-tree.h (enum c_typespec_keyword): Add cts_int128. * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types. * tree.c (make_or_reuse_type): Likewise. (make_unsigned_type): Likewise. (build_common_tree_nodes_2): Likewise. * tree.h (enum integer_type_kind): Add itk_int128 and itk_unsigned_int128. (int128_integer_type_node): New define.. (int128_unsigned_type_node): New define. * cp/cp-tree.h (cp_decl_specifier_seq): Add new bifield explicit_int128_p. * cp/decl.c (grokdeclarator): Handle __int128. * cp/parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise. (cp_parser_simple_type_specifier): Likewise. * cp/rtti.c (emit_support_tinfos): Add int128 nodes for rtti. * cp/typeck.c (cp_common_type): Handle __int128. * cp/mangle.c (integer_type_codes): Add itk_int128 and itk_unsigned_int128. * doc/extend.texi: Add documentation about __int128 type. From-SVN: r159879
2010-05-15c-decl.c (grokfield): Allow typedefs for anonymous structs and unions by ↵Joseph Myers1-3/+5
default if... * c-decl.c (grokfield): Allow typedefs for anonymous structs and unions by default if those structs and unions have no tags. Do not condition anonymous struct and unions handling on flag_iso. Allow anonymous structs and unions for C1X. (finish_struct): Do not diagnose lack of named fields when anonymous structs and unions present for C1X. Accept flexible array members in structure with anonymous structs or unions but no directly named fields. * doc/extend.texi (Unnamed Fields): Update. testsuite: * gcc.dg/c1x-anon-struct-1.c, gcc.dg/c1x-anon-struct-2.c, gcc.dg/c90-anon-struct-1.c, gcc.dg/c99-anon-struct-1.c: New tests. * gcc.dg/20080820.c, gcc.dg/anon-struct-1.c: Update expected diagnostics and type sizes. From-SVN: r159439
2010-05-09re PR c/4784 (Anonymous structs issues)Joseph Myers1-2/+1
PR c/4784 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous structures and unions recursively. (detect_field_duplicates): Move duplicate detection with a hash to detect_field_duplicates_hash. Always use a hash if anonymous structures or unions are present. * doc/extend.texi (Unnamed Fields): Document that duplicate fields give errors. testsuite: * gcc.dg/anon-struct-9.c: New test. From-SVN: r159204