1. 09 May, 2013 12 commits
    • N3639 C++1y VLA support · 0138d6b2
      gcc/
      	* gimplify.c (gimplify_vla_decl): Don't touch an existing
      	DECL_VALUE_EXPR.
      gcc/cp/
      	* decl.c (compute_array_index_type): Allow VLAs in C++1y mode.
      	(check_array_initializer): Allow VLA init.
      	(reshape_init_array_1): Adjust.
      	(cp_finish_decl): Check for invalid VLA length.
      	* typeck2.c (process_init_constructor_array): Adjust.
      	(store_init_value): Use build_vec_init for VLAs.
      	* semantics.c (add_capture): Capture VLA as ptr+len.
      	(vla_capture_type): New.
      	(build_capture_proxy): Rebuild the VLA.
      	* typeck.c (build_simple_component_ref): Split out from...
      	(build_ptrmemfunc_access_expr): ...here.
      	* tree.c (array_of_runtime_bound_p): New.
      	* init.c (throw_bad_array_length): New.
      	(build_vec_init): Use it.
      	* parser.c (cp_convert_range_for): When iterating over a VLA,
      	use it directly rather than bind a reference.
      	* cp-tree.h: Declare new functions.
      libstdc++-v3/
      	* libsupc++/new: Add std::bad_array_length.
      	* libsupc++/bad_array_length.cc: New.
      	* libsupc++/eh_aux_runtime.cc: Add __cxa_bad_array_length.
      	* libsupc++/Makefile.in: Build them.
      	* config/abi/pre/gnu.ver: Add new symbols.
      	* config/abi/pre/gnu-versioned-namespace.ver: Add new symbols.
      
      From-SVN: r198745
      Jason Merrill committed
    • tree.c (build_constructor_va): New. · a3409c02
      	* tree.c (build_constructor_va): New.
      	* tree.h: Declare it.
      
      From-SVN: r198744
      Jason Merrill committed
    • re PR lto/57084 (483. xalancbmk run fails with -O2 -flto for i686) · 66e6b990
      2013-05-09  Martin Jambor  <mjambor@suse.cz>
      
      	PR lto/57084
      	* gimple-fold.c (canonicalize_constructor_val): Call
      	cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
      
      From-SVN: r198743
      Martin Jambor committed
    • Jan Hubicka <jh@suse.cz> · 64cfa6c0
      	Richard Biener  <rguenther@suse.de>
      
      	PR lto/54095
      	* symtab.c (symtab_make_decl_local): Do not add private names.
      
      	* lto.c (lto_register_var_decl_in_symtab): Don't do renaming.
      	(lto_register_var_decl_in_symtab): Likewise.
      	(lto_main): Promote statics.
      	* lto-partition.c (privatize_symbol_name): New function.
      	(promote_symbol): Use it.
      	(may_need_named_section_p): New predicate.
      	(rename_statics): New functions.
      	(lto_promote_cross_file_statics): Simplify; do renaming.
      	(lto_promote_statics_nonwpa): New function.
      	* lto-partition.h (lto_promote_statics_nonwpa): New function.
      
      Co-Authored-By: Richard Biener <rguenther@suse.de>
      
      From-SVN: r198741
      Jan Hubicka committed
    • re PR lto/54095 (Unnecessary static variable renaming) · c3167b00
      
      	PR lto/54095
      	* symtab.c (insert_to_assembler_name_hash): Handle clones.
      	(unlink_from_assembler_name_hash): Likewise.
      	(symtab_prevail_in_asm_name_hash, symtab_register_node,
      	symtab_unregister_node, symtab_initialize_asm_name_hash,
      	change_decl_assembler_name): Update.
      
      From-SVN: r198736
      Jan Hubicka committed
    • aarch64.md: New movtf split. · 12dc6974
      	* config/aarch64/aarch64.md: New movtf split.
      	(*movtf_aarch64): Update.
      	(aarch64_movdi_tilow): Handle TF modes and rename to
      	aarch64_movdi_<mode>low.
      	(aarch64_movdi_tihigh): Handle TF modes and rename to
      	aarch64_movdi_<mode>high
      	(aarch64_movtihigh_di): Handle TF modes and rename to
      	aarch64_mov<mode>high_di
      	(aarch64_movtilow_di): Handle TF modes and rename to
      	aarch64_mov<mode>low_di
      	(aarch64_movtilow_tilow): Remove spurious whitespace.
      	* config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
      	splits.
      	(aarch64_print_operand): Update.
      
      From-SVN: r198735
      Sofiane Naci committed
    • configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and powerpc64le. · 227eb343
      	* configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
      	powerpc64le.
      	* configure: Regenerate.
      
      From-SVN: r198734
      Alan Modra committed
    • Mark all member functions with memory models always inline v2 · a062bb4b
      When a non constant memory model is passed to __atomic_*
      gcc falls back to seq_cst. This drops any HLE acquire or release bits.
      
      This can happen when <atomic> is used with -O0
      as the member functions are not always inlined then and the memory
      argument passed in ends up being non-constant.
      
      v2: Use _GLIBCXX_ALWAYS_INLINE
      
      libstdc++-v3/:
      
      2013-05-08  Andi Kleen  <ak@linux.intel.com>
      
      	PR target/55947
      	* libstdc++-v3/include/bits/atomic_base.h
      	(_GLIBCXX_ALWAYS_INLINE): Add new macro.
      	(atomic_thread_fence, atomic_signal_fence, test_and_set,
      	clear, store, load, exchange, compare_exchange_weak)
      	compare_exchange_strong, fetch_add, fetch_sub, fetch_and,
      	fetch_or, fetch_xor): Mark _GLIBCXX_ALWAYS_INLINE.
      
      From-SVN: r198733
      Andi Kleen committed
    • except.c (is_admissible_throw_operand_or_catch_parameter): Check variably_modified_type_p. · 785b887e
      	* except.c (is_admissible_throw_operand_or_catch_parameter): Check
      	variably_modified_type_p.
      	(expand_start_catch_block): Mark the typeinfo used here.
      	* semantics.c (finish_handler_parms): Not here.
      
      	* error.c (dump_type_suffix): Try harder on VLA length.
      
      From-SVN: r198732
      Jason Merrill committed
    • Core 624/N2932: Throw bad_array_new_length on overflow · 7d5e76c8
      	in array new size calculation.
      
      libstdc++-v3/
      	* libsupc++/new: Add std::bad_array_new_length.
      	* libsupc++/bad_array_new.cc: New.
      	* libsupc++/eh_aux_runtime.cc: Add __cxa_throw_bad_array_new_length.
      	* libsupc++/Makefile.in: Build them.
      	* config/abi/pre/gnu.ver: Add new symbols.
      	* config/abi/pre/gnu-versioned-namespace.ver: Add new symbols.
      gcc/cp/
      	* init.c (throw_bad_array_new_length): New.
      	(build_new_1): Use it.  Don't warn about braced-init-list.
      	(build_vec_init): Use it.
      	* call.c (build_operator_new_call): Use it.
      
      From-SVN: r198731
      Jason Merrill committed
    • re PR c++/57068 (gcc prints warning "ref-qualifiers only available with… · b0f36e5e
      re PR c++/57068 (gcc prints warning "ref-qualifiers only available with -std=c++0x or -std=gnu++0x" for operator&)
      
      	PR c++/57068
      	* decl.c (grokdeclarator): Warn about ref-qualifiers here.
      	* parser.c (cp_parser_ref_qualifier_seq_opt): Not here.
      	* error.c (maybe_warn_cpp0x): s/0x/11/.
      
      From-SVN: r198730
      Jason Merrill committed
    • Daily bump. · 65424645
      From-SVN: r198729
      GCC Administrator committed
  2. 08 May, 2013 14 commits
  3. 07 May, 2013 14 commits
    • 2013-05-07 Han Shen <shenhan@google.com> · 12584362
          Added 2 missing files that should be included in the previous
          submitted patch trunk@r198699.
      
      From-SVN: r198700
      Han Shen committed
    • cfgexpand.c (record_or_union_type_has_array_p): New function. · f6bc1c4a
      2013-05-07  Han Shen  <shenhan@google.com>
      
          gcc/
          * cfgexpand.c (record_or_union_type_has_array_p): New function.
          (expand_used_vars): Add logic handling '-fstack-protector-strong'.
          * common.opt (fstack-protector-strong): New option.
          * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
          * doc/invoke.texi (Optimization Options): Document
          "-fstack-protector-strong".
          * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
      
          gcc/testsuite/
          * gcc.dg/fstack-protector-strong.c: New.
          * g++.dg/fstack-protector-strong.C: New.
      
          gcc/c-family/
          * c-cppbuiltin.c (c_cpp_builtins): Added "__SSP_STRONG__=3".
      
      From-SVN: r198699
      Han Shen committed
    • unordered_base.h: New. · 703f140f
      2013-05-07  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/profile/unordered_base.h: New.
      	* include/Makefile.am: Add new profile header.
      	* include/Makefile.in: Regenerate.
      	* include/profile/impl/profiler.h
      	(__profcxx_inefficient_hash_is_on): New macro.
      	* include/profile/unordered_map (std::profile::unordered_map<>):
      	Use new _Unordered_profile base class. Use default implementations
      	for special functions.
      	(std::profile::unordered_multimap<>): Likewise.
      	* include/profile/unordered_set (std::profile::unordered_set<>):
      	Likewise.
      	(std::profile::unordered_multiset<>): Likewise.
      	* testsuite/23_containers/unordered_multiset/55043.cc: Fix
      	MoveOnly equality operator signature.
      
      From-SVN: r198698
      François Dumont committed
    • * config/mips/mips.c (mips_machine_reorg2): Return 0. · 4ffecb1f
      From-SVN: r198696
      Steven Bosscher committed
    • ira.c (update_equiv_regs): Add insn having equiv memory even if it is not lhs of the insn. · 5a107a0f
      2013-05-07  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* ira.c (update_equiv_regs): Add insn having equiv memory even if
      	it is not lhs of the insn.
      	(setup_reg_equiv): Remove insn having equiv memory which it is not
      	lhs of the insn.
      	* lra-constraints.c (process_address): Try to improve generation
      	code for address base + disp.
      	(lra_constraints): Make correct the code for checking insn setting
      	up backward equivalence.  Remove insn only if it is in the init
      	insn list.
      	* lra-eliminations.c (update_reg_eliminate): Change return value.
      	(lra_eliminate): Use the result.
      
      From-SVN: r198695
      Vladimir Makarov committed
    • sse.md (ssescalarnummask): New mode attribute. · 3f5783ea
      	* config/i386/sse.md (ssescalarnummask): New mode attribute.
      	(PEXTR_MODE, PEXTR_MODEx): New mode iterators.
      	(*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
      	*sse4_1_pextrw_memory. Handle register target operands.
      	(*vec_extractv8hi_sse2): New pattern.
      	(*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
      	(*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
      	(*vec_extract<mode>_mem): New insn and split pattern.
      
      From-SVN: r198691
      Uros Bizjak committed
    • AArch64 testcases for ANDS instruction · 924af4dc
      From-SVN: r198684
      Ian Bolton committed
    • arm.c (arm_asan_shadow_offset): New function. · 8a5800b8
      2013-05-06  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	gcc/
      	* config/arm/arm.c (arm_asan_shadow_offset): New function.
      	(TARGET_ASAN_SHADOW_OFFSET): Define.
      	* config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
      	(LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
      
      	libsanitizer/
      	* configure.tgt: Add ARM pattern.
      
      	testsuite/
      	* lib/target-supports.exp (check_effective_target_hw): New
      	function.
      	* c-c++-common/asan/clone-test-1.c: Call
      	check_effective_target_hw.
      	* c-c++-common/asan/rlimit-mmap-test-1.c: Likewise.
      	* c-c++-common/asan/heap-overflow-1.c: Update regexps to accept
      	possible decorations.
      	* c-c++-common/asan/null-deref-1.c: Likewise.
      	* c-c++-common/asan/stack-overflow-1.c: Likewise.
      	* c-c++-common/asan/strncpy-overflow-1.c: Likewise.
      	* c-c++-common/asan/use-after-free-1.c: Likewise.
      	* g++.dg/asan/deep-thread-stack-1.C: Likewise.
      	* g++.dg/asan/large-func-test-1.C: Likewise.
      
      From-SVN: r198683
      Christophe Lyon committed
    • gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant. · 7bf55a70
      2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
      	(incr_vec_index): Return -1 if increment not found.
      	(create_add_on_incoming_edge): Assert if increment not found.
      	(record_increment): Limit number of increments recorded.
      	(all_phi_incrs_profitable): Return false if an increment not found.
      	(replace_profitable_candidates): Don't process increments that were
      	not recorded.
      	(analyze_candidates_and_replace): Limit size of incr_vec.
      
      From-SVN: r198682
      Bill Schmidt committed
    • calls.c (special_function_p): setjmp-like functions are leaf. · 3f8825c0
      2013-05-07  Richard Biener  <rguenther@suse.de>
      
      	* calls.c (special_function_p): setjmp-like functions are leaf.
      	* builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
      	* tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
      
      From-SVN: r198681
      Richard Biener committed
    • aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter. · fd4842cd
      	gcc/
      	* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
      	(aarch64_simd_mov<mode>): New expander.
      	(aarch64_simd_mov_to_<mode>low): New instruction pattern.
      	(aarch64_simd_mov_to_<mode>high): Likewise.
      	(aarch64_simd_mov_from_<mode>low): Likewise.
      	(aarch64_simd_mov_from_<mode>high): Likewise.
      	(aarch64_dup_lane<mode>): Update.
      	(aarch64_dup_lanedi): New instruction pattern.
      	* config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
      	* config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
      
      	testsuites/
      	* gcc.target/aarch64/scalar_intrinsics.c: Update.
      
      From-SVN: r198680
      Sofiane Naci committed
    • gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove. · a7a7d10e
      2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
      	(replace_mult_candidate): Remove unnecessary argument; remove
      	unnecessary parameter from call to introduce_cast_before_cand.
      	(replace_unconditional_candidate): Remove unnecessary parameter
      	from call to replace_mult_candidate.
      	(replace_conditional_candidate): Likewise.
      	(insert_initializers): Use make_temp_ssa_name.
      	(introduce_cast_before_cand): Remove unnecessary argument; use
      	make_temp_ssa_name.
      	(replace_one_candidate): Remove unnecessary argument; remove
      	unnecessary parameter from calls to introduce_cast_before_cand.
      	(replace_profitable_candidates): Remove unnecessary parameters
      	from calls to replace_one_candidate.
      
      From-SVN: r198679
      Bill Schmidt committed
    • gimple-ssa-strength-reduction.c (find_phi_def): Don't record a phi def as… · 29105868
      gimple-ssa-strength-reduction.c (find_phi_def): Don't record a phi def as possibly hiding a basis for a CAND_ADD whose operands...
      
      2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
      	phi def as possibly hiding a basis for a CAND_ADD whose operands
      	have been commuted in the analysis.
      	(alloc_cand_and_find_basis): Add parms to call to find_phi_def.
      
      From-SVN: r198678
      Bill Schmidt committed
    • AArch64: Restrict the shift value in compare extended shift operation · 4095f9fa
      2013-05-07  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
      
      	* config/aarch64/aarch64.md
      	(cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
      	shift value between 0-4.
      
      From-SVN: r198677
      Naveen H.S committed