1. 28 Nov, 2013 19 commits
    • re PR c++/59297 (ICE: openmp atomic with indirect LHS) · e3f505d8
      	PR c++/59297
      	* semantics.c (finish_omp_atomic): Call finish_expr_stmt
      	rather than add_stmt.
      
      	* g++.dg/gomp/pr59297.C: New test.
      
      From-SVN: r205500
      Jakub Jelinek committed
    • re PR middle-end/59327 (warning in expand_used_vars) · 3dc87cc0
      	PR middle-end/59327
      	* cfgexpand.c (expand_used_vars): Avoid warning on 32-bit
      	HWI hosts.
      
      From-SVN: r205499
      Jakub Jelinek committed
    • re PR target/57293 (not needed frame pointers on IA-32 (performance regression?)) · 8d49e7ef
      2013-11-28  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/57293
      	* ira.h (ira_setup_eliminable_regset): Remove parameter.
      	* ira.c (ira_setup_eliminable_regset): Ditto.  Add
      	SUPPORTS_STACK_ALIGNMENT for crtl->stack_realign_needed.
      	Don't call lra_init_elimination.
      	(ira): Call ira_setup_eliminable_regset without arguments.
      	* loop-invariant.c (calculate_loop_reg_pressure): Remove argument
      	from ira_setup_eliminable_regset call.
      	* gcse.c (calculate_bb_reg_pressure): Ditto.
      	* haifa-sched.c (sched_init): Ditto.
      	* lra.h (lra_init_elimination): Remove the prototype.
      	* lra-int.h (lra_insn_recog_data): New member sp_offset.  Move
      	used_insn_alternative upper.
      	(lra_eliminate_regs_1): Add one more parameter.
      	(lra-eliminate): Ditto.
      	* lra.c (lra_invalidate_insn_data): Set sp_offset.
      	(setup_sp_offset): New.
      	(lra_process_new_insns): Call setup_sp_offset.
      	(lra): Add argument to lra_eliminate calls.
      	* lra-constraints.c (get_equiv_substitution): Rename to get_equiv.
      	(get_equiv_with_elimination): New.
      	(process_addr_reg): Call get_equiv_with_elimination instead of
      	get_equiv_substitution.
      	(equiv_address_substitution): Ditto.
      	(loc_equivalence_change_p): Ditto.
      	(loc_equivalence_callback, lra_constraints): Ditto.
      	(curr_insn_transform): Ditto.  Print the sp offset
      	(process_alt_operands): Prevent stack pointer reloads.
      	(lra_constraints): Remove one argument from lra_eliminate call.
      	Move it up.  Mark used hard regs bfore it.  Use
      	get_equiv_with_elimination instead of get_equiv_substitution.
      	* lra-eliminations.c (lra_eliminate_regs_1): Add parameter and
      	assert for param values combination.  Use sp offset.  Add argument
      	to lra_eliminate_regs_1 calls.
      	(lra_eliminate_regs): Add argument to lra_eliminate_regs_1 call.
      	(curr_sp_change): New static var.
      	(mark_not_eliminable): Add parameter.  Update curr_sp_change.
      	Don't prevent elimination to sp if we can calculate its change.
      	Pass the argument to mark_not_eliminable calls.
      	(eliminate_regs_in_insn): Add a parameter.  Use sp offset.  Add
      	argument to lra_eliminate_regs_1 call.
      	(update_reg_eliminate): Move calculation of hard regs for spill
      	lower.  Switch off lra_in_progress temporarily to generate regs
      	involved into elimination.
      	(lra_init_elimination): Rename to init_elimination.  Make it
      	static.  Set up insn sp offset, check the offsets at the end of
      	BBs.
      	(process_insn_for_elimination): Add parameter.  Pass its value to
      	eliminate_regs_in_insn.
      	(lra_eliminate): : Add parameter.  Pass its value to
      	process_insn_for_elimination.  Add assert for param values
      	combination.  Call init_elimination.  Don't update offsets in
      	equivalence substitutions.
      	* lra-spills.c (assign_mem_slot): Don't call lra_eliminate_regs_1
      	for created stack slot.
      	(remove_pseudos): Call lra_eliminate_regs_1 before changing memory
      	onto stack slot.
      
      2013-11-28  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/57293
      	* gcc.target/i386/pr57293.c: New.
      
      From-SVN: r205498
      Vladimir Makarov committed
    • iterators.md (vrint_conds): New int attribute. · fca0efeb
      [gcc/]
      2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      	* config/arm/iterators.md (vrint_conds): New int attribute.
      	* config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
      	(smax<mode>3): Likewise.
      	(smin<mode>3): Likewise.
      
      [gcc/testsuite/]
      2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      	* gcc.target/arm/vrinta-ce.c: New testcase.
      
      From-SVN: r205492
      Kyrylo Tkachov committed
    • dwarf.c (find_address_ranges): New static function, broken out of build_address_map. · b8ddd61b
      	* dwarf.c (find_address_ranges): New static function, broken out
      	of build_address_map.
      	(build_address_map): Call it.
      	* btest.c (check): Check for missing filename or function, rather
      	than crashing.
      	(f3): Check that enough frames were returned.
      
      From-SVN: r205490
      Ian Lance Taylor committed
    • tree-core.h (tree_base): Document use of static_flag for SSA_NAME. · f5c8b24c
      gcc/
      	* tree-core.h (tree_base): Document use of static_flag for SSA_NAME.
      	* tree.h (SSA_NAME_ANTI_RANGE_P, SSA_NAME_RANGE_TYPE): New macros.
      	* tree-ssanames.h (set_range_info): Add range_type argument.
      	(duplicate_ssa_name_range_info): Likewise.
      	* tree-ssanames.c (set_range_info): Take the range type as argument
      	and store it in SSA_NAME_ANTI_RANGE_P.
      	(duplicate_ssa_name_range_info): Likewise.
      	(get_range_info): Use SSA_NAME_ANTI_RANGE_P.
      	(set_nonzero_bits): Update call to set_range_info.
      	(duplicate_ssa_name_fn): Update call to duplicate_ssa_name_range_info.
      	* tree-ssa-copy.c (fini_copy_prop): Likewise.
      	* tree-vrp.c (remove_range_assertions): Update call to set_range_info.
      	(vrp_finalize): Likewise, passing anti-ranges directly.
      
      From-SVN: r205489
      Richard Sandiford committed
    • sfp-machine.h (__FP_FRAC_ADDI_4): New macro. · 3c716922
      	* config/i386/32/sfp-machine.h (__FP_FRAC_ADDI_4): New macro.
      
      From-SVN: r205488
      Uros Bizjak committed
    • re PR debug/59323 (Int. comp. error: in add_AT_specification, at dwarf2out.c:4026) · 4d858799
      2013-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR lto/59323
      	* gcc.dg/lto/pr59323-2_0.c: New testcase.
      
      From-SVN: r205487
      Richard Biener committed
    • re PR middle-end/59330 (Crash in is_gimple_reg_type) · c54e2022
      2013-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/59330
      	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
      	and fix delayed marking of free calls not necessary.
      
      	* gcc.dg/torture/pr59330.c: New testcase.
      
      From-SVN: r205486
      Richard Biener committed
    • tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to is_gimple_reg_type. · 0c6b087c
      
      2013-11-28  Andrew MacLeod  <amacleod@redhat.com>
      
      	* tree-ssa-propagate.c (valid_gimple_call_p): Pass TREE_TYPE to
      	is_gimple_reg_type.
      	* ipa-prop.c (determine_known_aggregate_parts): Likewise.
      
      From-SVN: r205485
      Andrew MacLeod committed
    • arm.c (v7m_extra_costs): New table. · 2f3be698
      2013-11-28  Terry Guo  <terry.guo@arm.com>
      
      	* config/arm/arm.c (v7m_extra_costs): New table.
      	(arm_v7m_tune): Use it.
      
      From-SVN: r205484
      Terry Guo committed
    • Add -lrt on Solaris · ff082cab
      	gcc/cp:
      	* g++spec.c (TIMELIB): Define.
      	(WITHLIBC, SKIPOPT): Adjust values.
      	(lang_specific_driver): Add TIME_LIBRARY if not passed explicitly.
      
      	gcc:
      	* config/sol2.h (TIME_LIBRARY): Define.
      
      From-SVN: r205483
      Rainer Orth committed
    • re PR sanitizer/59106 (Failure to link against static libasan) · 049558ed
      2013-11-28  Jakub Jelinek  <jakub@redhat.com>
      	    Yury Gribov  <y.gribov@samsung.com>
      
      	PR sanitizer/59106
      	* ubsan/Makefile.am (AM_CXXFLAGS): Disable -frtti for files that
      	don't need it.
      	* ubsan/Makefile.in: Regenerated.
      
      Co-Authored-By: Yury Gribov <y.gribov@samsung.com>
      
      From-SVN: r205482
      Jakub Jelinek committed
    • re PR debug/59323 (Int. comp. error: in add_AT_specification, at dwarf2out.c:4026) · 53a5717e
      2013-11-28  Richard Biener  <rguenther@suse.de>
      
      	PR lto/59323
      	* lto-streamer-out.c (tree_is_indexable): TYPE_DECLs and
      	CONST_DECLs in function context are not indexable.
      
      	* gcc.dg/lto/pr59323_0.c: New testcase.
      
      From-SVN: r205481
      Richard Biener committed
    • linux-unwind.h (aarch64_fallback_frame_state): Check for correct opcodes on BE. · cceeb9a9
      2013-11-26  Matthew Leach  <matthew.leach@arm.com>
      
      	* config/aarch64/linux-unwind.h (aarch64_fallback_frame_state):	Check
      	for correct opcodes on BE.
      
      From-SVN: r205479
      Matthew Leach committed
    • nds32.c (nds32_rtx_costs): Adjust MULT cost if it is not optimized for size. · 506cb361
      	* config/nds32/nds32.c (nds32_rtx_costs): Adjust MULT cost if it is
      	not optimized for size.
      
      From-SVN: r205478
      Chung-Ju Wu committed
    • cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb fields. · e361382f
      	* cfgexpand.c (struct stack_vars_data): Add asan_base and asan_alignb
      	fields.
      	(expand_stack_vars): For -fsanitize=address, use (and set initially)
      	data->asan_base as base for vars and update asan_alignb.
      	(expand_used_vars): Initialize data.asan_base and data.asan_alignb.
      	Pass them to asan_emit_stack_protection.
      	* asan.c (asan_detect_stack_use_after_return): New variable.
      	(asan_emit_stack_protection): Add pbase and alignb arguments.
      	Implement use after return sanitization.
      	* asan.h (asan_emit_stack_protection): Adjust prototype.
      	(ASAN_STACK_MAGIC_USE_AFTER_RET, ASAN_STACK_RETIRED_MAGIC): Define.
      
      From-SVN: r205476
      Jakub Jelinek committed
    • common.opt: Introduced a new option -fsimd-cost-model. · 8b5e1202
      gcc/
      	* common.opt: Introduced a new option -fsimd-cost-model.
      	* doc/invoke.texi: Introduced a new openmp-simd warning and
      	a new -fsimd-cost-model option.
      	* tree-vectorizer.h (unlimited_cost_model): Interface updated
      	to rely on the particular loop info.
      	* tree-vect-data-refs.c (vect_peeling_hash_insert): Ditto.
      	(vect_peeling_hash_choose_best_peeling): Ditto.
      	(vect_enhance_data_refs_alignment): Ditto.
      	* tree-vect-slp.c (vect_slp_analyze_bb_1): Ditto.
      	* tree-vect-loop.c (vect_estimate_min_profitable_iters): Ditto
      	plus added openmp-simd warining.
      
      gcc/c-family/
      	* c.opt (Wopenmp-simd): New.
      
      gcc/fortran/
      	* lang.opt (Wopenmp-simd): New.
      
      From-SVN: r205475
      Sergey Ostanevich committed
    • Daily bump. · d0da87f3
      From-SVN: r205471
      GCC Administrator committed
  2. 27 Nov, 2013 21 commits
    • Also handle REG_XXX notes in spill_pseudos · 362805fc
      	PR rtl-optimization/59311
      	* dwarf2cfi.c (dwf_regno): Assert reg isn't pseudo register.
      	* lra-spills.c (spill_pseudos): Handle REG_XXX notes.
      
      From-SVN: r205468
      H.J. Lu committed
    • re PR c/59310 (FAIL: gcc.dg/gomp/openmp-simd-1.c (test for excess errors)) · e7bd1de1
      	PR c/59310
      	* c-parser.c (c_parser_omp_target): Copy "#pragma omp target"
      	to p_name before calling c_parser_omp_teams instead of after.
      	(c_parser_cilk_simd): Remove wrong ATTRIBUTE_UNUSED from parser
      	argument.  Remove unused p_name variable.
      
      	* parser.c (cp_parser_omp_target): Call keep_next_level only
      	if flag_openmp.
      
      From-SVN: r205467
      Jakub Jelinek committed
    • re PR middle-end/57393 (error: definition in block 4 follows the use / internal… · e1b60626
      re PR middle-end/57393 (error: definition in block 4 follows the use / internal compiler error: verify_ssa failed)
      
      	PR middle-end/57393
      	PR tree-optimization/58018
      	PR tree-optimization/58131
      	* gcc.dg/torture/pr57393-1.c: New test.
      	* gcc.dg/torture/pr57393-2.c: New test.
      	* gcc.dg/torture/pr57393-3.c: New test.
      	* gcc.dg/torture/pr58018.c: New test.
      	* gcc.dg/torture/pr58131.c: New test.
      	* gfortran.dg/pr57393-1.f90: New test.
      	* gfortran.dg/pr57393-2.f90: New test.
      
      From-SVN: r205466
      Jakub Jelinek committed
    • nan_7.f90: Disable for little endian PowerPC. · 64ae6dd6
      2013-11-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gfortran.dg/nan_7.f90: Disable for little endian PowerPC.
      
      From-SVN: r205464
      Bill Schmidt committed
    • op-4.h: Update from glibc. · a3458d22
      	* soft-fp/op-4.h: Update from glibc.
      
      From-SVN: r205462
      Uros Bizjak committed
    • var-tracking.c (track_expr_p): Do not track declarations for parts of tracked parameters. · 35af99b4
      	* var-tracking.c (track_expr_p): Do not track declarations for parts
      	of tracked parameters.
      	(add_stores): Do not track values for tracked parameters passed in
      	multiple locations.
      	(vt_get_decl_and_offset): Handle PARALLEL.
      	(vt_add_function_parameter): Handle parameters with incoming PARALLEL.
      
      From-SVN: r205461
      Eric Botcazou committed
    • tree-ssa-threadupdate.c (thread_through_all_blocks): Do not clobber the loop… · fa788bb4
      tree-ssa-threadupdate.c (thread_through_all_blocks): Do not clobber the loop structure thread_block was unsuccessful.
      
      	* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
      	clobber the loop structure thread_block was unsuccessful.  If
      	thread_block was unsuccessful, cleanup appropriately.
      
      From-SVN: r205459
      Jeff Law committed
    • re PR target/56788 (_mm_frcz_sd and _mm_frcz_ss ignore their second argument) · df7a98a6
      	PR target/56788
      	* gcc.target/i386/xop-frczX.c: New test.
      
      
      Co-Authored-By: Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
      
      From-SVN: r205458
      Uros Bizjak committed
    • re PR tree-optimization/59014 (wrong code at -Os and above on x86_64-linux-gnu) · 30f5fc6a
      	PR tree-optimization/59014
      	* gcc.c-torture/execute/pr59014-2.c: New test.
      
      From-SVN: r205454
      Jakub Jelinek committed
    • * config/score/score.h (REG_CLASS_FROM_LETTER): Delete. · e18a9b09
      From-SVN: r205453
      Chen Liqin committed
    • 2013-11-27 Bernd Edlinger <bernd.edlinger@hotmail.de> · b3ecff82
      	reverted r205398 on request: Remove parameter keep_aligning from
      	get_inner_reference.
      
      From-SVN: r205452
      Bernd Edlinger committed
    • re PR rtl-optimization/57410 (ICE: in emit_spill_move, at lra-constraints.c:863… · 36db5f30
      re PR rtl-optimization/57410 (ICE: in emit_spill_move, at lra-constraints.c:863 with -fpeel-loops and uninitialised variable)
      
      2013-11-27  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/57410
      	* gcc.target/i386/pr57410.c: New.
      
      From-SVN: r205451
      Vladimir Makarov committed
    • Fix ext/random/hypergeometric_distribution/operators/values.cc on Solaris 9 · 0fe530b6
      	* testsuite/ext/random/hypergeometric_distribution/operators/values.cc:
      	Use dg-require-cmath instead.
      
      From-SVN: r205450
      Rainer Orth committed
    • re PR c++/58647 (ICE with function pointer) · 6f831b6d
      /cp
      2013-11-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58647
      	* semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
      	Handle function COMPONENT_REFs.
      
      /testsuite
      2013-11-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/58647
      	* g++.dg/parse/crash66.C: New.
      
      From-SVN: r205449
      Paolo Carlini committed
    • c90-const-expr-8.c: Look for overflow on INT_MIN % -1. · 2e252084
      2013-11-27  Kenneth Zadeck  <zadeck@naturalbridge.com>
      
      	* gcc.dg/c90-const-expr-8.c: Look for overflow on INT_MIN % -1.
      	* gcc.dg/c99-const-expr-8.c: Look for overflow on INT_MIN % -1.
      
      2013-11-27  Kenneth Zadeck  <zadeck@naturalbridge.com>
      
      	* fold-const.c
      	(int_const_binop_1): Make INT_MIN % -1 return 0 with the overflow
      	bit set.
      
      From-SVN: r205448
      Kenneth Zadeck committed
    • re PR middle-end/58723 (ICE in lto_output_edge, at lto-cgraph.c:300 for OpenMP's simd reduction) · e9287a41
      2013-11-27  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/58723
      	* cgraphbuild.c (build_cgraph_edges): Do not build edges
      	for internal calls.
      	(rebuild_cgraph_edges): Likewise.
      	* ipa-inline-analysis.c (estimate_function_body_sizes):
      	Skip internal calls.
      	* tree-inline.c (estimate_num_insns): Estimate size of internal
      	calls as 0.
      	(gimple_expand_calls_inline): Do not try inline-expanding
      	internal calls.
      	* lto-streamer-in.c (input_cfg): Stream loop safelen,
      	force_vect and simduid.
      	(input_struct_function_base): Stream has_force_vect_loops
      	and has_simduid_loops.
      	(input_function): Adjust.
      	* lto-streamer-out.c (output_cfg): Stream loop safelen,
      	force_vect and simduid.
      	(output_struct_function_base): Stream has_force_vect_loops
      	and has_simduid_loops.
      
      From-SVN: r205447
      Richard Biener committed
    • Fix ext/random/hypergeometric_distribution/operators/values.cc on Solaris 9 · 3745a526
      	* testsuite/ext/random/hypergeometric_distribution/operators/values.cc
      	(test01): Wrap in _GLIBCXX_USE_C99_MATH_TR1.
      
      From-SVN: r205446
      Rainer Orth committed
    • winnt.c (i386_pe_section_type_flags): Use const pointer cast. · 9fc023b7
      	* config/i386/winnt.c (i386_pe_section_type_flags): Use const
      	pointer cast.
      
      From-SVN: r205445
      Kai Tietz committed
    • tm.texi.in (TARGET_HAS_NO_HW_DIVIDE): Define. · 30b8f78b
      2013-11-27  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	gcc/
      	* doc/tm.texi.in (TARGET_HAS_NO_HW_DIVIDE): Define.
      	* doc/tm.texi (TARGET_HAS_NO_HW_DIVIDE): Regenerate.
      
      	libgcc/
      	* libgcc2.c (__udivmoddi4): Define new implementation when
      	TARGET_HAS_NO_HW_DIVIDE is defined, for processors without any
      	divide instructions.
      
      From-SVN: r205444
      Kugan Vivekanandarajah committed
    • re PR sanitizer/59306 (ICE with -fsanitize=null: gimple check: expected… · 536da97c
      re PR sanitizer/59306 (ICE with -fsanitize=null: gimple check: expected gimple_call(error_mark), have gimple_assign(addr_expr) in gimple_call_arg)
      
      	PR sanitizer/59306
      	* ubsan.c (instrument_null): Use gimple_store_p/gimple_assign_load_p
      	instead of walk_gimple_op.
      	(ubsan_pass): Adjust.  Call instrument_null only if SANITIZE_NULL.
      testsuite/
      	* g++.dg/ubsan/pr59306.C: New test.
      
      From-SVN: r205443
      Marek Polacek committed
    • cgraph.h (enum cgraph_simd_clone_arg_type): New. · 0136f8f0
      	* cgraph.h (enum cgraph_simd_clone_arg_type): New.
      	(struct cgraph_simd_clone_arg, struct cgraph_simd_clone): New.
      	(struct cgraph_node): Add simdclone and simd_clones fields.
      	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen,
      	ix86_simd_clone_adjust, ix86_simd_clone_usable): New functions.
      	(TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
      	TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Define.
      	* doc/tm.texi.in (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
      	TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): Add.
      	* doc/tm.texi: Regenerated.
      	* ggc.h (ggc_alloc_cleared_simd_clone_stat): New function.
      	* ipa-cp.c (determine_versionability): Fail if "omp declare simd"
      	attribute is present.
      	* omp-low.c: Include pretty-print.h, ipa-prop.h and tree-eh.h.
      	(simd_clone_vector_of_formal_parm_types): New function.
      	(simd_clone_struct_alloc, simd_clone_struct_copy,
      	simd_clone_vector_of_formal_parm_types, simd_clone_clauses_extract,
      	simd_clone_compute_base_data_type, simd_clone_mangle,
      	simd_clone_create, simd_clone_adjust_return_type,
      	create_tmp_simd_array, simd_clone_adjust_argument_types,
      	simd_clone_init_simd_arrays): New functions.
      	(struct modify_stmt_info): New type.
      	(ipa_simd_modify_stmt_ops, ipa_simd_modify_function_body,
      	simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone): New
      	functions.
      	(pass_data_omp_simd_clone): New variable.
      	(pass_omp_simd_clone): New class.
      	(make_pass_omp_simd_clone): New function.
      	* passes.def (pass_omp_simd_clone): New.
      	* target.def (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN,
      	TARGET_SIMD_CLONE_ADJUST, TARGET_SIMD_CLONE_USABLE): New target
      	hooks.
      	* target.h (struct cgraph_node, struct cgraph_simd_node): Declare.
      	* tree-core.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Document.
      	* tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Define.
      	* tree-pass.h (make_pass_omp_simd_clone): New prototype.
      	* tree-vect-data-refs.c: Include cgraph.h.
      	(vect_analyze_data_refs): Inline by hand find_data_references_in_loop
      	and find_data_references_in_bb, if find_data_references_in_stmt
      	fails, still allow calls to #pragma omp declare simd functions
      	in #pragma omp simd loops unless they contain data references among
      	the call arguments or in lhs.
      	* tree-vect-loop.c (vect_determine_vectorization_factor): Handle
      	calls with no lhs.
      	(vect_transform_loop): Allow NULL STMT_VINFO_VECTYPE for calls without
      	lhs.
      	* tree-vectorizer.h (enum stmt_vec_info_type): Add
      	call_simd_clone_vec_info_type.
      	(struct _stmt_vec_info): Add simd_clone_fndecl field.
      	(STMT_VINFO_SIMD_CLONE_FNDECL): Define.
      	* tree-vect-stmts.c: Include tree-ssa-loop.h,
      	tree-scalar-evolution.h and cgraph.h.
      	(vectorizable_call): Handle calls without lhs.  Assert
      	!stmt_can_throw_internal instead of failing for it.  Don't update
      	EH stuff.
      	(struct simd_call_arg_info): New.
      	(vectorizable_simd_clone_call): New function.
      	(vect_transform_stmt): Call it.
      	(vect_analyze_stmt): Likewise.  Allow NULL STMT_VINFO_VECTYPE for
      	calls without lhs.
      	* ipa-prop.c (ipa_add_new_function): Only call ipa_analyze_node
      	if cgraph_function_with_gimple_body_p is true.
      c/
      	* c-decl.c (c_builtin_function_ext_scope): Avoid binding if
      	external_scope is NULL.
      cp/
      	* semantics.c (finish_omp_clauses): For #pragma omp declare simd
      	linear clause step call maybe_constant_value.
      testsuite/
      	* g++.dg/gomp/declare-simd-1.C (f38): Make sure
      	simdlen is a power of two.
      	* gcc.dg/gomp/simd-clones-2.c: Compile on all targets.
      	Remove -msse2.  Adjust regexps for name mangling changes.
      	* gcc.dg/gomp/simd-clones-3.c: Likewise.
      	* gcc.dg/vect/vect-simd-clone-1.c: New test.
      	* gcc.dg/vect/vect-simd-clone-2.c: New test.
      	* gcc.dg/vect/vect-simd-clone-3.c: New test.
      	* gcc.dg/vect/vect-simd-clone-4.c: New test.
      	* gcc.dg/vect/vect-simd-clone-5.c: New test.
      	* gcc.dg/vect/vect-simd-clone-6.c: New test.
      	* gcc.dg/vect/vect-simd-clone-7.c: New test.
      	* gcc.dg/vect/vect-simd-clone-8.c: New test.
      	* gcc.dg/vect/vect-simd-clone-9.c: New test.
      	* gcc.dg/vect/vect-simd-clone-10.c: New test.
      	* gcc.dg/vect/vect-simd-clone-10.h: New file.
      	* gcc.dg/vect/vect-simd-clone-10a.c: New file.
      	* gcc.dg/vect/vect-simd-clone-11.c: New test.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r205442
      Aldy Hernandez committed