- Nov 13, 2014
-
-
Richard Biener authored
2014-12-13 Richard Biener <rguenther@suse.de> PR middle-end/61559 * match.pd: Implement bswap patterns for transforms checked by gcc.dg/builtin-bswap-8.c. From-SVN: r217464
-
Nick Clifton authored
* config/rl78/divmodhi.S: Add support for the G10 architecture. Use START_FUNC and END_FUNC macros to enable linker garbage collection. * config/rl78/divmodqi.S: Likewise. * config/rl78/divmodsi.S: Likewise. * config/rl78/mulsi3.S: Likewise. * config/rl78/lib2div.c: Remove G10 functions. * config/rl78/lib2muls.c: Likewise. * config/rl78/t-rl8 (HOST_LIBGCC2_CFLAGS): Define. * config/rl78/vregs.h (START_FUNC): New macro. (END_FUNC): New macro. From-SVN: r217463
-
Tim Shen authored
PR libstdc++/63775 * include/bits/regex_compiler.h (_Compiler<>::_M_expression_term, _BracketMatcher<>::_M_make_range): Throw regex_erorr on invalid range like [z-a]. Change _M_expression_term interface. * include/bits/regex_compiler.tcc ( _Compiler<>::_M_insert_bracket_matcher, _Compiler<>::_M_expression_term): Rewrite bracket expression parsing. * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc: Add testcases and move file out of extended. From-SVN: r217461
-
Vladimir Makarov authored
2014-11-13 Vladimir Makarov <vmakarov@redhat.com> * lra.c (lra): Switch off rematerialization pass. From-SVN: r217459
-
Vladimir Makarov authored
2014-11-12 Vladimir Makarov <vmakarov@redhat.com> * common.opt (flra-remat): New. * opts.c (default_options_table): Add entry for flra_remat. * timevar_def (TV_LRA_REMAT): New. * doc/invoke.texi (-flra-remat): Add description of the new option. * doc/passes.texi (-flra-remat): Remove lra-equivs.c and lra-saves.c. Add lra-remat.c. * Makefile.in (OBJS): Add lra-remat.o. * lra-remat.c: New file. * lra.c: Add info about the rematerialization pass in the top comment. (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Process unallocatable regs too. (lra_constraint_new_insn_uid_start): Remove. (lra): Add code for calling rematerialization sub-pass. * lra-int.h (lra_constraint_new_insn_uid_start): Remove. (lra_constrain_insn, lra_remat): New prototypes. (lra_eliminate_regs_1): Add parameter. * lra-lives.c (make_hard_regno_born, make_hard_regno_dead): Process unallocatable hard regs too. (process_bb_lives): Ditto. * lra-spills.c (remove_pseudos): Add argument to lra_eliminate_regs_1 call. * lra-eliminations.c (lra_eliminate_regs_1): Add parameter. Use it for sp offset calculation. (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call. (eliminate_regs_in_insn): Add parameter. Use it for sp offset calculation. (process_insn_for_elimination): Add argument for eliminate_regs_in_insn call. * lra-constraints.c (get_equiv_with_elimination): Add argument for lra_eliminate_regs_1 call. (process_addr_reg): Add parameter. Use it. (process_address_1): Ditto. Add argument for process_addr_reg call. (process_address): Ditto. (curr_insn_transform): Add parameter. Use it. Add argument for process_address calls. (lra_constrain_insn): New function. (lra_constraints): Add argument for curr_insn_transform call. From-SVN: r217458
-
Manuel López-Ibáñez authored
2014-11-13 Manuel López-Ibáñez <manu@gcc.gnu.org> * opts-global.c (postpone_unknown_option_warning): Fix spelling. (print_ignored_options): Fix quoting. * opts.c (common_handle_option): Likewise. (set_debug_level): Likewise. * toplev.c (process_options): Likewise. From-SVN: r217457
-
GCC Administrator authored
From-SVN: r217456
-
Ian Lance Taylor authored
When using dot imports, it is possible to have an imported symbol name that matches the name of a struct field in a composite literal. Do not consider the imported package to be used in this situation. Fixes issue 6427. From-SVN: r217453
-
- Nov 12, 2014
-
-
Jonathan Wakely authored
PR libstdc++/57250 * config/abi/pre/gnu.ver: Export new symbols. * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/bits/shared_ptr_atomic.h: Define atomic access functions. * include/std/memory: Include new header. * src/c++11/shared_ptr.cc (_Sp_locker): Define and use mutex pool. * testsuite/20_util/shared_ptr/atomic/1.cc: New. * testsuite/20_util/shared_ptr/atomic/2.cc: New. * testsuite/20_util/shared_ptr/atomic/3.cc: New. From-SVN: r217452
-
Jakub Jelinek authored
PR ipa/63838 * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls chain instead of node->indirect_calls. Put !can_throw into conditions of all the loops. * g++.dg/ipa/pr63838.C: New test. From-SVN: r217449
-
H.J. Lu authored
* config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to set pic_offset_table_rtx. From-SVN: r217448
-
Matthew Fortune authored
2014-11-12 Matthew Fortune <matthew.fortune@imgtec.com> gcc/ * common/config/mips/mips-common.c (mips_handle_option): Ensure that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64. * config.gcc (--with-fp-32): New option. (--with-odd-spreg-32): Likewise. * config.in (HAVE_AS_DOT_MODULE): New config define. * config/mips/mips-protos.h (mips_secondary_memory_needed): New prototype. (mips_hard_regno_caller_save_mode): Likewise. * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype. (mips_get_arg_info): Assert that V2SFmode is only handled specially with TARGET_PAIRED_SINGLE_FLOAT. (mips_return_mode_in_fpr_p): Likewise. (mips16_call_stub_mode_suffix): Likewise. (mips_get_reg_raw_mode): New static function. (mips_return_fpr_pair): O32 return values span two registers. (mips16_build_call_stub): Likewise. (mips_function_value_regno_p): Support both FP return registers. (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1. Add specific cases for TARGET_FPXX to move via memory. (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger than UNITS_PER_FPREG 'span' one register. (mips_dwarf_frame_reg_mode): New static function. (mips_file_start): Switch to using .module instead of .gnu_attribute. No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6. Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg). (mips_save_reg, mips_restore_reg): Always represent DFmode frame slots with two CFI directives even for O32 FP64. (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when saving/restoring callee-saved registers. (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension. (mips_secondary_memory_needed): New function. (mips_option_override): ABI check for TARGET_FLOATXX. Disable odd-numbered single-precision registers when using TARGET_FLOATXX. Implement -modd-spreg and defaults. (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32 callee-saved behaviour. (mips_hard_regno_caller_save_mode): Implement. (TARGET_GET_RAW_RESULT_MODE): Define target hook. (TARGET_GET_RAW_ARG_MODE): Define target hook. (TARGET_DWARF_FRAME_REG_MODE): Define target hook. * config/mips/mips.h (TARGET_FLOAT32): New macro. (TARGET_O32_FP64A_ABI): Likewise. (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add _MIPS_SPFPSET builtin define. (MIPS_FPXX_OPTION_SPEC): New macro. (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and --with-odd-spreg-32=* to -m[no-]odd-spreg. (ISA_HAS_ODD_SPREG): New macro. (ISA_HAS_MXHC1): True for anything other than -mfp32. (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg. (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG. (HARD_REGNO_CALLER_SAVE_MODE): Define. Implement O32 FPXX extension (HARD_REGNO_CALL_PART_CLOBBERED): Likewise. (SECONDARY_MEMORY_NEEDED): Likewise. (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions. * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and FP64A ABI extensions. (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of TARGET_FLOAT64. * config/mips/mips.opt (mfpxx): New target option. (modd-spreg): Likewise. * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch. * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove fp64 sysroot. * config/mips/t-mti-elf: Remove fp64 multilib. * config/mips/t-mti-linux: Likewise. * configure.ac: Detect .module support. * configure: Regenerate. * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option. * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new options. gcc/testsuite/ * gcc.target/mips/args-1.c: Handle __mips_fpr == 0. * gcc.target/mips/call-clobbered-1.c: New. * gcc.target/mips/call-clobbered-2.c: New. * gcc.target/mips/call-clobbered-3.c: New. * gcc.target/mips/call-clobbered-4.c: New. * gcc.target/mips/call-clobbered-5.c: New. * gcc.target/mips/call-saved-4.c: New. * gcc.target/mips/call-saved-5.c: New. * gcc.target/mips/call-saved-6.c: New. * gcc.target/mips/mips.exp: Support -mfpxx, -ffixed-f*, and -m[no-]odd-spreg. Use _MIPS_SPFPSET to determine default odd-spreg option. Account for -modd-spreg in minimum arch code. * gcc.target/mips/movdf-1.c: New. * gcc.target/mips/movdf-2.c: New. * gcc.target/mips/movdf-3.c: New. * gcc.target/mips/oddspreg-1.c: New. * gcc.target/mips/oddspreg-2.c: New. * gcc.target/mips/oddspreg-3.c: New. * gcc.target/mips/oddspreg-4.c: New. * gcc.target/mips/oddspreg-5.c: New. * gcc.target/mips/oddspreg-6.c: New. libgcc/ * config/mips/mips16.S: Set .module when supported. Update O32 FP64 calling convention and use for FPXX when possible. Add FPXX calling convention fallback case. From-SVN: r217446
-
H.J. Lu authored
gcc/ PR target/63815 * config/i386/i386.c (ix86_init_large_pic_reg): New. Extracted from ... (ix86_init_pic_reg): Here. Use ix86_init_large_pic_reg. (x86_output_mi_thunk): Set PIC register to %r11. Call ix86_init_large_pic_reg to initialize PIC register. gcc/testsuite/ PR target/63815 * g++.dg/other/pr63815.C: New test. From-SVN: r217445
-
Paolo Carlini authored
/cp 2014-11-12 Paolo Carlini <paolo.carlini@oracle.com> DR 1510 PR c++/60420 * cp-tree.h (struct cp_decl_specifier_seq): Add decltype_p bool field. * decl.c (grokdeclarator): Use it. * parser.c (cp_parser_simple_type_specifier): Likewise. * pt.c (tsubst, case DECLTYPE_TYPE): Use tf_ignore_bad_quals. /testsuite 2014-11-12 Paolo Carlini <paolo.carlini@oracle.com> DR 1510 PR c++/60420 * g++.dg/cpp0x/decltype61.C: New. From-SVN: r217444
-
Kai Tietz authored
2014-11-12 Kai Tietz <ktietz@redhat.com> * sdbout.c (sdbout_symbol): Eliminate register only if decl isn't a global variable. From-SVN: r217443
-
Jonathan Wakely authored
* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Define _Convertible alias template to simplify constraints. (shared_ptr(unique_ptr<TD>&&)): Constrain (LWG 2399). * include/bits/shared_ptr_base.h: Likewise. (_Sp_counted_deleter::_M_get_deleter()): Use addressof (LWG 2400). * include/std/functional (function::operator=(nullptr_t)): Add noexcept (LWG 2401). * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error. * testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error. From-SVN: r217442
-
H.J. Lu authored
PR tree-optimization/63835 * gcc.dg/pr63835.c: New test. From-SVN: r217441
-
Alan Lawrence authored
gcc/: * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices. * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_index. (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to... (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these. (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New. (aarch64_types_getlane_qualifiers): Rename to... (aarch64_types_binop_imm_qualifiers): ...this. (TYPES_SHIFTIMM): Follow renaming. (TYPES_GETLANE): Rename to... (TYPE_GETREG): ...this. (aarch64_types_setlane_qualifiers): Rename to... (aarch64_type_ternop_imm_qualifiers): ...this. (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming. (TYPES_SETLANE): Follow renaming above, and rename self to... (TYPE_SETREG): ...this. (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX. (aarch64_simd_expand_args): Add range check and endianness-flip. (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index. * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to... (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check. (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete. (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to... (aarch64_sq<r>dmulh_lane<mode>): ...this. (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to... (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this. (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to... (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this. (aarch64_sqdmull_lane<mode>_internal *2): Rename to... (aarch64_sqdmull_lane<mode>): ...this. (aarch64_sqdmull_laneq<mode>_internal *2): Rename to... (aarch64_sqdmull_laneq<mode>): ...this. (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>, (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>, aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>, aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete. (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove bounds check and lane flip. * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane, get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi, set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG. (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow renaming of TERNOP_LANE to QUADOP_LANE. (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq, sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set qualifiers to TERNOP_LANE. gcc/testsuite/: * gcc.target/aarch64/simd/vqdmlal_high_lane_s16_indices_1.c: New test. * gcc.target/aarch64/simd/vqdmlal_high_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_high_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_high_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlalh_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlals_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_high_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_high_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_high_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_high_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlslh_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmlsls_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulh_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulh_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulh_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulh_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulhh_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulhq_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulhq_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulhq_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulhq_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulhs_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmull_high_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmull_high_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmull_high_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmull_high_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmull_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmull_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmull_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmull_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmullh_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqdmulls_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulh_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulh_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulh_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulh_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhh_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhq_lane_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhq_lane_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhq_laneq_s16_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhq_laneq_s32_indices_1.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhs_lane_s32_indices_1.c: Likewise. From-SVN: r217440
-
Tobias Burnus authored
* Makefile.def: Make all-gcc depend on all-isl. From-SVN: r217439
-
Tobias Burnus authored
2014-11-11 Tobias Burnus <burnus@net-b.de> * Makefile.def: Remove CLooG. * Makefile.in: Regenerate. From-SVN: r217438
-
Uros Bizjak authored
* gcc.target/i386/387-1.c (dg-skip-if): Use *-*-* target selector. * gcc.target/i386/387-2.c (dg-skip-if): Ditto. * gcc.target/i386/387-5.c (dg-skip-if): Ditto. * gcc.target/i386/387-6.c (dg-skip-if): Ditto. * gcc.target/i386/cmov7.c (dg-skip-if): Ditto. * gcc.target/i386/funcspec-2.c (dg-skip-if): Ditto. * gcc.target/i386/funcspec-3.c (dg-skip-if): Ditto. * gcc.target/i386/funcspec-8.c (dg-skip-if): Ditto. * gcc.target/i386/funcspec-9.c (dg-skip-if): Ditto. * gcc.target/i386/gcc-have-sync-compare-and-swap-1.c (dg-skip-if): Ditto. * gcc.target/i386/gcc-have-sync-compare-and-swap-2.c (dg-skip-if): Ditto. * gcc.target/i386/isa-1.c (dg-skip-if): Ditto. * gcc.target/i386/isa-6.c (dg-skip-if): Ditto. * gcc.target/i386/isa-9.c (dg-skip-if): Ditto. * gcc.target/i386/lea.c (dg-skip-if): Ditto. * gcc.target/i386/memcpy-strategy-1.c (dg-skip-if): Ditto. * gcc.target/i386/memcpy-strategy-2.c (dg-skip-if): Ditto. * gcc.target/i386/memcpy-vector_loop-1.c (dg-skip-if): Ditto. * gcc.target/i386/memcpy-vector_loop-2.c (dg-skip-if): Ditto. * gcc.target/i386/memset-vector_loop-1.c (dg-skip-if): Ditto. * gcc.target/i386/memset-vector_loop-2.c (dg-skip-if): Ditto. * gcc.target/i386/pad-10.c (dg-skip-if): Ditto. * gcc.target/i386/pad-2.c (dg-skip-if): Ditto. * gcc.target/i386/pad-3.c (dg-skip-if): Ditto. * gcc.target/i386/pad-4.c (dg-skip-if): Ditto. * gcc.target/i386/pad-5a.c (dg-skip-if): Ditto. * gcc.target/i386/pad-5b.c (dg-skip-if): Ditto. * gcc.target/i386/pad-6a.c (dg-skip-if): Ditto. * gcc.target/i386/pad-6b.c (dg-skip-if): Ditto. * gcc.target/i386/pad-7.c (dg-skip-if): Ditto. * gcc.target/i386/pad-8.c (dg-skip-if): Ditto. * gcc.target/i386/pad-9.c (dg-skip-if): Ditto. * gcc.target/i386/pentium4-not-mull.c (dg-skip-if): Ditto. * gcc.target/i386/pr42589.c (dg-skip-if): Ditto. * gcc.target/i386/sse-19.c (dg-skip-if): Ditto. * gcc.target/i386/sse2-init-v2di-2.c (dg-skip-if): Ditto. * gcc.target/i386/ssefn-1.c (dg-skip-if): Ditto. * gcc.target/i386/ssetype-1.c (dg-skip-if): Ditto. * gcc.target/i386/ssetype-2.c (dg-skip-if): Ditto. * gcc.target/i386/ssetype-5.c (dg-skip-if): Ditto. * gcc.target/i386/vect-double-1.c (dg-skip-if): Ditto. From-SVN: r217437
-
Tobias Burnus authored
2014-11-12 Tobias Burnus <burnus@net-b.de> * Makefile.in (CLOOGLIBS, CLOOGINC): Remove. * configure.ac: Ditto. * graphite-interchange.c: Remove HAVE_CLOOG block. * config.in: Regenerate. * configure: Regenerate. From-SVN: r217436
-
Uros Bizjak authored
* gcc.target/i386/pr45852.c: Simplify target selector. * gcc.target/i386/pr63495.c: Ditto. * gcc.target/i386/pr39496.c: Ditto. * gcc.target/i386/pr36613.c: Ditto. From-SVN: r217432
-
Jiong Wang authored
gcc/ * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as caller-save. (EPILOGUE_USES): Guard the check by epilogue_completed. * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for LR. (aarch64_can_eliminate): Check LR_REGNUM liveness. gcc/testsuite/ * gcc.target/aarch64/lr_free_1.c: New testcase for -fomit-frame-pointer. * gcc.target/aarch64/lr_free_2.c: New testcase for leaf -fno-omit-frame-pointer. From-SVN: r217431
-
Ramana Radhakrishnan authored
From-SVN: r217430
-
Kirill Yukhin authored
* testsuite/test-strtol.c (run_tests): Cast strtol return to unsigned long. From-SVN: r217429
-
Marek Polacek authored
* lib/gcc-dg.exp (${tool}_load): Call prune_file_path instead of prune_gcc_output. * lib/prune.exp (prune_file_path): New procedure. From-SVN: r217428
-
Marek Polacek authored
* fold-const.c (fold_binary_loc): Don't fold if the result is undefined. * match.pd (A + (-B) -> A - B, A - (-B) -> A + B, -(-A) -> A): Likewise. * c-c++-common/ubsan/overflow-sub-4.c: New test. * c-c++-common/ubsan/overflow-sub-2.c: Adjust dg-output. * c-c++-common/ubsan/overflow-int128.c: Likewise. From-SVN: r217427
-
Evgeny Stupachenko authored
gcc/testsuite * gcc.target/i386/pr52252-atom-1.c: Extend assembler scan on AVX2 case. From-SVN: r217423
-
Richard Biener authored
2014-11-12 Richard Biener <rguenther@suse.de> Merge from match-and-simplify branch 2014-11-04 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> * genmatch.c (user_id): Add new member is_oper_list. (user_id::user_id): Add new default argument. (parser::parse_operator_list): New function. (parser::parse_for): Allow operator-list. (parser::parse_pattern): Call parser::parse_operator_list. (parser::parse_operation): Reject operator-list. * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs. 2014-10-31 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used. 2014-10-30 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> * genmatch.c (parser::parse_op): Check if predicate is used in result operand. 2014-10-29 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> * genmatch.c (parser::parse_for): Make sure to have a valid token to report errors at. 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> * genmatch.c (parser): Add new member parsing_match_operand. (parser::parse_operation): Check for conditional convert in result operand. (parser::parse_expr): Check for commutative operator in result operand. Check for :type in match operand. (parser::parse_simplify): Set/unset parsing_match_operand. (parser::parser): Initialize parsing_match_operand. 2014-10-28 Richard Biener <rguenther@suse.de> * genmatch.c (parser::parse_for): Properly check for already defined operators. 2014-10-28 Prathamesh Kulkarni <bilbotheelffriend@gmail.com> * genmatch.c (error_cb): Adjust for printing warnings. (warning_at): New function. (user_id): Add new member used. (get_operator): Mark user_id as used. (parse_for): Warn for unused operators. From-SVN: r217422
-
Richard Biener authored
2014-11-12 Richard Biener <rguenther@suse.de> * match.pd: Implement simple complex operations cancelling. * fold-const.c (fold_unary_loc): Remove them here. * gcc.dg/tree-ssa/ssa-fre-32.c: Disable forwprop. From-SVN: r217421
-
Joseph Myers authored
This patch adds a predefined macro __NO_MATH_ERRNO__ for when -fno-math-errno is passed or implied. This allows math.h to provide a more accurate definition of the C99 math_errhandling macro that takes this option into account, and allows for choice of libm functions to be optimized at compile time based on this option. (There may be a case for such interfaces for -fno-rounding-math (default) and -fno-trapping-math as well, but as C99 standard pragmas would allow those to vary on a per-block basis, predefined macros would be problematic as the interface; you can't select a -fno-trapping-math or -fno-rounding-math version of a function in a standard header if a conforming program could then use "#pragma STDC FENV_ACCESS ON" to require a -ftrapping-math -frounding-math version in a particular block. So built-in functions might be a better way of providing access to information about those options.) Bootstrapped with no regressions on x86_64-unknown-linux-gnu. OK to commit? * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Define __NO_MATH_ERRNO__ if -fno-math-errno. * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro. c-family: * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define and undefine __NO_MATH_ERRNO__ based on changes to -fmath-errno state. testsuite: * gcc.dg/no-math-errno-1.c, gcc.dg/no-math-errno-2.c, gcc.dg/no-math-errno-3.c, gcc.dg/no-math-errno-4.c: New tests. From-SVN: r217420
-
H.J. Lu authored
PR testsuite/63830 * c-c++-common/asan/strlen-overflow-1.c (main): Avoid tail call. From-SVN: r217417
-
Richard Biener authored
2014-11-12 Richard Biener <rguenther@suse.de> * genmatch.c (::gen_transform): Add capture_info and expand_compares arguments. (struct expr): Add is_generic flag. (lower_cond): New functions lowering [VEC_]COND_EXPR conditions to a GENERIC and a GIMPLE variant. (lower): Call lower_cond. (cmp_operand): Also compare the is_generic flag. (capture_info::cinfo): Add cond_expr_cond_p flag. (capture_info::capture_info): Pass down whether the expression argument is a COND_EXPR condition. (capture_info::walk_match): Likewise, mark captures capturing COND_EXPR conditions with cond_expr_cond_p. (expr::gen_transform): Pass down whether we need to expand compares from COND_EXPR conditions. (capture::gen_transform): Expand compares substituted from COND_EXPR conditions into non-COND_EXPR conditions. (dt_operand::gen_gimple_expr): Handle explicitely marked GENERIC expressions as generic. (dt_simplify::gen): Pass whether we need to expand conditions to gen_transform. Handle capture results which are from COND_EXPR conditions. (main): Pass gimple flag down to lower. From-SVN: r217416
-
Jakub Jelinek authored
PR c/59708 * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute. * builtins.c (fold_builtin_arith_overflow): New function. (fold_builtin_3): Use it. * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW, BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW, BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW, BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW, BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW, BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): New built-in functions. * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG, BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR, BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR, BT_FN_BOOL_ULONG_ULONG_ULONGPTR, BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New. * expr.c (write_complex_part): Remove prototype, no longer static. * expr.h (write_complex_part): New prototype. * function.c (aggregate_value_p): For internal functions return 0. * gimple-fold.c (arith_overflowed_p): New functions. (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls. * gimple-fold.h (arith_overflowed_p): New prototype. * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h. (find_non_realpart_uses, maybe_optimize_arith_overflow): New functions. (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is never used. * gimplify.c (gimplify_call_expr): Handle gimplification of internal calls with lhs. * internal-fn.c (get_range_pos_neg, get_min_precision, expand_arith_overflow_result_store): New functions. (ubsan_expand_si_overflow_addsub_check): Renamed to ... (expand_addsub_overflow): ... this. Add LOC, LHS, ARG0, ARG1, UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument. Handle ADD_OVERFLOW and SUB_OVERFLOW expansion. (ubsan_expand_si_overflow_neg_check): Renamed to ... (expand_neg_overflow): ... this. Add LOC, LHS, ARG1, IS_UBSAN arguments, remove STMT argument. Handle SUB_OVERFLOW with 0 as first argument expansion. (ubsan_expand_si_overflow_mul_check): Renamed to ... (expand_mul_overflow): ... this. Add LOC, LHS, ARG0, ARG1, UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument. Handle MUL_OVERFLOW expansion. (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare arguments for it. (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or expand_neg_overflow, prepare arguments for it. (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments for it. (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW, expand_MUL_OVERFLOW): New functions. * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New internal functions. * tree-vrp.c (check_for_binary_op_overflow): New function. (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions. (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW internal functions. * optabs.def (umulv4_optab): New optab. * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands. (*umulv<mode>4, *<u>mulvqi4): New define_insns. * doc/extend.texi (Integer Overflow Builtins): Document __builtin_*_overflow. c-family/ * c-common.c (check_builtin_function_arguments): Handle BUILT_IN_{ADD,SUB,MUL}_OVERFLOW. testsuite/ * c-c++-common/builtin-arith-overflow-1.c: New test. * c-c++-common/torture/builtin-arith-overflow-10.c: New test. * c-c++-common/torture/builtin-arith-overflow-11.c: New test. * c-c++-common/torture/builtin-arith-overflow-12.c: New test. * c-c++-common/torture/builtin-arith-overflow-12.h: New file. * c-c++-common/torture/builtin-arith-overflow-13.c: New test. * c-c++-common/torture/builtin-arith-overflow-14.c: New test. * c-c++-common/torture/builtin-arith-overflow-15.c: New test. * c-c++-common/torture/builtin-arith-overflow-16.c: New test. * c-c++-common/torture/builtin-arith-overflow-17.c: New test. * c-c++-common/torture/builtin-arith-overflow-18.c: New test. * c-c++-common/torture/builtin-arith-overflow-1.c: New test. * c-c++-common/torture/builtin-arith-overflow-1.h: New file. * c-c++-common/torture/builtin-arith-overflow-2.c: New test. * c-c++-common/torture/builtin-arith-overflow-3.c: New test. * c-c++-common/torture/builtin-arith-overflow-4.c: New test. * c-c++-common/torture/builtin-arith-overflow-5.c: New test. * c-c++-common/torture/builtin-arith-overflow-6.c: New test. * c-c++-common/torture/builtin-arith-overflow-7.c: New test. * c-c++-common/torture/builtin-arith-overflow-8.c: New test. * c-c++-common/torture/builtin-arith-overflow-9.c: New test. * c-c++-common/torture/builtin-arith-overflow.h: New file. * gcc.dg/builtin-arith-overflow-1.c: New test. * gcc.dg/builtin-arith-overflow-2.c: New test. From-SVN: r217415
-
Richard Biener authored
2014-11-12 Richard Biener <rguenther@suse.de> * genmatch.c (capture_info::capture_info): Add missing COND_EXPR handling. (capture_info::walk_match): Fix COND_EXPR handling. (capture_info::walk_result): Likewise. From-SVN: r217414
-
Jonathan Wakely authored
* include/bits/shared_ptr.h (weak_ptr): Add move constructor and assignment. * include/bits/shared_ptr_base.h (__weak_count, __weak_ptr): Likewise. Use nullptr and injected class name. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error. * testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error. From-SVN: r217413
-
Jonathan Wakely authored
PR c++/33911 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Use -Wno-deprecated. * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise. * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise. * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise. * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise. * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise. * testsuite/ext/array_allocator/variadic_construct.cc: Likewise. From-SVN: r217412
-
Richard Biener authored
2014-11-12 Richard Biener <rguenther@suse.de> PR middle-end/63821 * match.pd: Add missing conversion to the -(T)-X pattern. * gfortran.dg/pr63821.f90: New testcase. From-SVN: r217411
-
Richard Biener authored
re PR middle-end/63819 (Cannot build compiler with --enable-gather-detailed-mem-stats (error: default argument given for parameter 5 of ‘void* ggc_internal_cleared_alloc)) 2014-11-12 Richard Biener <rguenther@suse.de> PR bootstrap/63819 * hash-table.h: Include ggc.h also for generator programs. * genmatch.c (ggc_internal_cleared_alloc): Properly define using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO. From-SVN: r217410
-