- 30 Sep, 2015 15 commits
-
-
gcc/ada/ * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_11): Don't define. gcc/jit/ * jit-builtins.h: Undefine DEF_FUNCTION_TYPE_VAR_6 after use. Co-Authored-By: Ulrich Drepper <drepper@gmail.com> From-SVN: r228298
Thomas Schwinge committed -
gcc/ * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype. * config/spu/spu.c (spu_expand_atomic_op): New function. * config/spu/spu.md (AINT): New mode iterator. (ATOMIC): New code iterator. (atomic_name, atomic_pred): New code predicates. ("atomic_load<mode>", "atomic_store<mode>"): New expanders. ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise. (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>", "atomic_<atomic_name>_fetch<mode>"): Likewise. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_sync_int_128): Return 1 on spu-*-* targets. (check_effective_target_sync_int_128_runtime): Likewise. (check_effective_target_sync_long_long): Likewise. (check_effective_target_sync_long_long_runtime): Likewise. (check_effective_target_sync_int_long): Likewise. (check_effective_target_sync_char_short): Likewise. From-SVN: r228297
Ulrich Weigand committed -
gcc/ * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore debug insns. (scalar_chain::convert_reg): Likewise. gcc/testsuite/ * gcc.target/i386/pr67761.c: New test. From-SVN: r228292
Ilya Enkovich committed -
2015-09-30 Matthias Klose <doko@ubuntu.com> * config/cpu/alpha, config/cpu/ia64: Remove empty directories. From-SVN: r228291
Matthias Klose committed -
2015-09-30 Richard Biener <rguenther@suse.de> * builtins.c: Add comment that no new simplifications shouldd be added here. From-SVN: r228290
Richard Biener committed -
* jit-builtins.h Define DEF_FUNCTION_TYPE_VAR_6, remove DEF_FUNCTION_TYPE_VAR_11. * jit-builtins.c (builtins_manager::make_type): Define and handle DEF_FUNCTION_TYPE_VAR_6, remove DEF_FUNCTION_TYPE_VAR_11. From-SVN: r228289
Matthias Klose committed -
PR c/67730 * c-typeck.c (c_finish_return): Use the expansion point location for certain "return with value" warnings. * gcc.dg/pr67730.c: New test. From-SVN: r228286
Marek Polacek committed -
PR tree-optimization/67690 * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call reset_flow_sensitive_info_in_bb. * tree-ssa-tail-merge.c (replace_block_by): Likewise. * tree-ssanames.c: Include "gimple-iterator.h". (reset_flow_sensitive_info_in_bb): New function. * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare. * gcc.dg/torture/pr67690.c: New test. From-SVN: r228284
Marek Polacek committed -
gcc/ * config/i386/intelmic-mkoffload.c (target_ilp32): Remove variable, replacing it with... (offload_abi): ... this new variable. Adjust all users. * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise. From-SVN: r228283
Thomas Schwinge committed -
That is, verify that we're actually reaching the expected checkpoint before terminating. libgomp/ * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Add checkpoint. * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise. * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise. * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise. * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise. * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise. * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise. * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise. * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise. * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise. * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise. * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise. From-SVN: r228282
Thomas Schwinge committed -
2015-09-30 Matthias Klose <doko@ubuntu.com> * configure.ac: Remove extraneous ;;. * configure: Regenerate. From-SVN: r228281
Matthias Klose committed -
2015-09-30 Christophe Lyon <christophe.lyon@linaro.org> * g++.dg/cpp0x/stdint.C: Move dg-require-effective-target after dg-do. * g++.dg/gomp/tls-wrap4.C: Likewise. * gcc.dg/atomic-op-optimize.c: Likewise. * gcc.dg/pr54087.c: Likewise. * gcc.dg/tls/section-2.c: Likewise. * gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c: Likewise. * gcc.dg/vect/costmodel/ppc/costmodel-pr37194.c: Likewise. * gcc.dg/vect/trapv-vect-reduc-4.c: Likewise. * gcc.target/arm/divzero.c: Likewise. * gcc.target/arm/sibcall-2.c: Likewise. * gcc.target/arm/thumb1-Os-mult.c: Likewise. * gcc.target/arm/thumb1-load-64bit-constant-1.c: Likewise. * gcc.target/arm/thumb1-load-64bit-constant-2.c: Likewise. * gcc.target/arm/thumb1-load-64bit-constant-3.c: Likewise. * gcc.target/arm/volatile-bitfields-1.c: Likewise. * gcc.target/arm/volatile-bitfields-2.c: Likewise. * gcc.target/arm/volatile-bitfields-3.c: Likewise. * gcc.target/arm/volatile-bitfields-4.c: Likewise. * gfortran.dg/default_format_2.f90: Likewise. * gfortran.dg/default_format_denormal_2.f90: Likewise. From-SVN: r228280
Christophe Lyon committed -
From-SVN: r228279
Uros Bizjak committed -
From-SVN: r228276
GCC Administrator committed -
2015-09-29 Jonathan Roelofs <jonathan@codesourcery.com> * gcc.dg/debug/pr65771.c: Use tls_runtime instead of tls. From-SVN: r228273
Jonathan Roelofs committed
-
- 29 Sep, 2015 25 commits
-
-
Limit the MEMSET (setmemsi pattern) and MEMCPY (movmemsi pattern) instructions to 0-511 bytes. There is a hardware limitation on large MEMSET, MEMCPY operations that the library versions of memset() and memcpy() deal with. 2015-09-29 James Bowman <james.bowman@ftdichip.com> * config/ft32/predicates.md (ft32_imm_operand): New predicate. * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand predicate, disallow register for operand 2. From-SVN: r228271
James Bowman committed -
When determining the type of an index for a string/array indexing expression, the gofrontend would disallow floating-point and complex values even if they were integral and throw an internal error. This patch changes gofrontend to use an integral type context when determining the types of a string/array index. Fixes golang/go#11545. Reviewed-on: https://go-review.googlesource.com/13796 From-SVN: r228270
Ian Lance Taylor committed -
No functional changes intended. Passes make check and bootstrap. gcc/ChangeLog: 2015-09-29 Aditya Kumar <hiraditya@msn.com> * graphite-dependences.c (scop_get_dependences): Moved in down in order to be visible to its caller. * graphite-poly.h: Removed compute_deps, and extend_schedule. From-SVN: r228269
Aditya Kumar committed -
This patch fixes PR66754 by reverting an earlier unintended change. We now generate a much simpler AST for interchange-1.c: ISL AST generated by ISL: { for (int c1 = 0; c1 <= 1334; c1 += 1) { S_7(c1); for (int c3 = 0; c3 <= 1334; c3 += 1) S_4(c1, c3); S_5(c1); } for (int c1 = 0; c1 <= 1334; c1 += 1) S_10(c1); S_8(); } Bootstrap and check pass on x86_64-linux with isl-0.14.1 PR tree-optimization/67754 * graphite-optimize-isl.c (optimize_isl): Call isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14. Co-Authored-By: Aditya Kumar <aditya.k7@samsung.com> From-SVN: r228268
Sebastian Pop committed -
gcc/ * builtins.c (expand_builtin_acc_on_device): Delete. (expand_builtin): Don't call it. (fold_builtin_1): Fold acc_on_device. libgomp/ * oacc-init.c (acc_on_device): Force optimization level. From-SVN: r228267
Nathan Sidwell committed -
* config/i386/i386.c (ix86_function_arg): Fix typo in comments. (ix86_nsaved_sseregs): Likewise. From-SVN: r228266
H.J. Lu committed -
* plugin/plugin-nvptx.c (ARRAYSIZE): Delete. (cuda_errlist): Delete. (cuda_error): Reimplement. From-SVN: r228265
Nathan Sidwell committed -
[PATCH] Fix building microblaze targets with trunk * config/microblaze/microblaze.c (microblaze_version_to_int): Remove computation of unused value. From-SVN: r228263
Jeff Law committed -
gfortran.dg/ieee/ieee_4.f90: xfail on i386-*-freebsd* gfortran.dg/round_4.f90: ditto. From-SVN: r228262
Steven G. Kargl committed -
* config/pdp11/pdp11.c (pdp11_branch_cost): New function. * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than inline macro expansion. From-SVN: r228259
Jeff Law committed -
* config/i386/t-interix (winnt-stubs.o): Fix compilation rule. From-SVN: r228258
Jeff Law committed -
* config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour. (gen_shl_sext): Likewise. * config/sh/sh.md (divsi3): Likewise. (imm->ext_dest_operand splitter): Likewise. From-SVN: r228257
Jeff Law committed -
This code is not used anymore after we removed the previous loop optimizer (not based on the ISL scheduler.) We will add back the detection of commutative reductions after we improve the code generation of scalar dependences (by not going out of SSA for scalar dependences just to expose them to the data dependence graph.) Patch passed bootstrap and check on x86_64-linux with ISL-0.15. 2015-09-29 Sebastian Pop <s.pop@samsung.com> Aditya Kumar <aditya.k7@samsung.com> * graphite-sese-to-poly.c (gsi_for_phi_node): Remove. (nb_data_writes_in_bb): Remove. (split_pbb): Remove. (split_reduction_stmt): Remove. (is_reduction_operation_p): Remove. (phi_contains_arg): Remove. (follow_ssa_with_commutative_ops): Remove. (detect_commutative_reduction_arg): Remove. (detect_commutative_reduction_assign): Remove. (follow_inital_value_to_phi): Remove. (edge_initial_value_for_loop_phi): Remove. (initial_value_for_loop_phi): Remove. (used_outside_reduction): Remove. (detect_commutative_reduction): Remove. (translate_scalar_reduction_to_array_for_stmt): Remove. (remove_phi): Remove. (dr_indices_valid_in_loop): Remove. (close_phi_written_to_memory): Remove. (translate_scalar_reduction_to_array): Remove. (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove. (rewrite_commutative_reductions_out_of_ssa_loop): Remove. (rewrite_commutative_reductions_out_of_ssa): Remove. (build_poly_scop): Remove call to rewrite_commutative_reductions_out_of_ssa. Co-Authored-By: Aditya Kumar <aditya.k7@samsung.com> From-SVN: r228255
Sebastian Pop committed -
[PATCH] Fix undefined behaviour in rx port * config/rx/constraints.md (Int08): Fix undefined left shift behaviour. (Sint08, Sint16, Sint24): Likewise. * config/rx/rx.c (rx_get_stack_layout): Likewise. From-SVN: r228254
Jeff Law committed -
2015-09-29 Evandro Menezes <e.menezes@samsung.com> * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q): Add new insn types for vector load and store pairs. * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn types "neon_ldp{,_q}". * config/arm/cortex-a57.md (neon_load_c): Add insn types "neon_ldp{,_q}". (neon_store_complex): Add insn types "neon_stp{,_q}". * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types "neon_{ldp,stp}_q". From-SVN: r228253
Evandro Menezes committed -
[PATCH] Fix undefined behaviour in rl78 port * config/rl78/rl78-expand.md (movqi): Fix undefined left shift behaviour. From-SVN: r228252
Jeff Law committed -
* config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined left shift behaviour. * config/msp430/constraints.md ('L' constraint): Similarly. ('Ys' constraint): Similarly. From-SVN: r228251
Jeff Law committed -
* include/ext/string_conversions.h (__stoa): Save and restore errno. * testsuite/21_strings/basic_string/numeric_conversions/char/errno.cc: New. From-SVN: r228249
Jonathan Wakely committed -
liboffloadmic/ * plugin/libgomp-plugin-intelmic.cpp (OFFLOAD_ACTIVE_WAIT_ENV): New define. (init): Set OFFLOAD_ACTIVE_WAIT env var to 0, if it is not set. * runtime/emulator/coi_common.h (PIPE_HOST_PATH): Replace with ... (PIPE_HOST2TGT_NAME): ... this. (PIPE_TARGET_PATH): Replace with ... (PIPE_TGT2HOST_NAME): ... this. (MALLOCN): New define. (READN): Likewise. (WRITEN): Likewise. (enum cmd_t): Replace CMD_RUN_FUNCTION with CMD_PIPELINE_RUN_FUNCTION. Add CMD_PIPELINE_CREATE, CMD_PIPELINE_DESTROY. * runtime/emulator/coi_device.cpp (engine_dir): New static variable. (pipeline_thread_routine): New static function. (COIProcessWaitForShutdown): Use global engine_dir instead of mic_dir. Rename pipe_host and pipe_target to pipe_host2tgt and pipe_tgt2host. If cmd is CMD_PIPELINE_CREATE, create a new thread for the pipeline. Remove cmd == CMD_RUN_FUNCTION case. * runtime/emulator/coi_device.h (COIERRORN): New define. * runtime/emulator/coi_host.cpp: Include set, map, queue. Replace typedefs with enums and structs. (struct Function): Remove name, add num_buffers, bufs_size, bufs_data_target, misc_data_len, misc_data, return_value_len, return_value, completion_event. (struct Callback): New. (struct Process): Remove pipeline. Add pipe_host2tgt and pipe_tgt2host. (struct Pipeline): Remove pipe_host and pipe_target. Add thread, destroy, is_destroyed, pipe_host2tgt_path, pipe_tgt2host_path, pipe_host2tgt, pipe_tgt2host, queue, process. (max_pipeline_num): New static variable. (pipelines): Likewise. (max_event_num): Likewise. (non_signalled_events): Likewise. (errored_events): Likewise. (callbacks): Likewise. (cleanup): Do not check tmp_dirs before free. (start_critical_section): New static function. (finish_critical_section): Likewise. (pipeline_is_destroyed): Likewise. (maybe_invoke_callback): Likewise. (signal_event): Likewise. (get_event_result): Likewise. (COIBufferCopy): Rename arguments according to headers. Add asserts. Use process' main pipes, instead of pipeline's pipes. Signal completion event. (COIBufferCreate): Rename arguments according to headers. Add asserts. Use process' main pipes, instead of pipeline's pipes. (COIBufferCreateFromMemory): Rename arguments according to headers. Add asserts. (COIBufferDestroy): Rename arguments according to headers. Add asserts. Use process' main pipes, instead of pipeline's pipes. (COIBufferGetSinkAddress): Rename arguments according to headers. Add asserts. (COIBufferMap): Rename arguments according to headers. Add asserts. Signal completion event. (COIBufferRead): Likewise. (COIBufferSetState): Likewise. (COIBufferUnmap): Likewise. (COIBufferWrite): Likewise. (COIEngineGetCount): Add assert. (COIEngineGetHandle): Rename arguments according to headers. Add assert. (COIEventWait): Rename arguments according to headers. Add asserts. Implement waiting for events with zero or infinite timeout. (COIEventRegisterCallback): New function. (pipeline_thread_routine): New static function. (COIPipelineCreate): Create a new thread for the pipeline. (COIPipelineDestroy): Exit pipeline thread. (COIPipelineRunFunction): Add the function into pipeline's queue, instead running it here. Wait for it's completion in case of synchronous execution. (COIProcessCreateFromMemory): Rename arguments according to headers. Add asserts. Create process' main pipes, instead of pipeline's pipes. (COIProcessDestroy): Rename arguments according to headers. Add asserts. Destroy all undestroyed pipelines. (COIProcessGetFunctionHandles): Rename arguments according to headers. Add asserts. Use process' main pipes, instead of pipeline's pipes. Remove useless function names. (COIProcessLoadLibraryFromMemory): Add asserts. Use process' main pipes, instead of pipeline's pipes. (COIProcessUnloadLibrary): Likewise. (COIEngineGetInfo): Add assert. * runtime/emulator/coi_host.h (COIERRORN): New define. From-SVN: r228248
Ilya Verbin committed -
PR libstdc++/67583 * testsuite/27_io/basic_stringbuf/seekoff/char/1.cc: Fix sputn call with mismatched arguments. * testsuite/27_io/basic_stringbuf/seekoff/wchar_t/1.cc: Likewise. From-SVN: r228245
Jonathan Wakely committed -
2015-09-29 Richard Biener <rguenther@suse.de> PR tree-optimization/67170 * tree-ssa-alias.h (get_continuation_for_phi): Adjust the translate function pointer parameter to get the bool whether to disambiguate only by reference. (walk_non_aliased_vuses): Likewise. * tree-ssa-alias.c (maybe_skip_until): Adjust. (get_continuation_for_phi_1): Likewise. (get_continuation_for_phi): Likewise. (walk_non_aliased_vuses): Likewise. * tree-ssa-sccvn.c (const_parms): New bitmap. (vn_reference_lookup_3): Adjust for interface change. Disambiguate parameters pointing to readonly memory. (free_scc_vn): Free const_parms. (run_scc_vn): Initialize const_parms from a fn spec attribute. * gfortran.dg/pr67170.f90: New testcase. From-SVN: r228244
Richard Biener committed -
re PR tree-optimization/67741 (Invalid built-in usage should not cause segmentation fault in compiler) 2015-09-29 Richard Biener <rguenther@suse.de> PR tree-optimization/67741 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize builtin calls with correct signature. * gcc.dg/torture/pr67741.c: New testcase. From-SVN: r228243
Richard Biener committed -
PR libstdc++/65393 * config/abi/pre/gnu.ver: Export new symbols. * include/std/thread (thread::_State, thread::_State_impl): New types. (thread::_M_start_thread): Add overload taking unique_ptr<_State>. (thread::_M_make_routine): Remove. (thread::_S_make_state): Add. (thread::_Impl_base, thread::_Impl, thread::_M_start_thread) [_GLIBCXX_THREAD_ABI_COMPAT] Only declare conditionally. * src/c++11/thread.cc (execute_native_thread_routine): Rename to execute_native_thread_routine_compat and re-define to use _State. (thread::_State::~_State()): Define. (thread::_M_make_thread): Define new overload. (thread::_M_make_thread) [_GLIBCXX_THREAD_ABI_COMPAT]: Only define old overloads conditionally. From-SVN: r228242
Jonathan Wakely committed -
* gcc.dg/tg-tests.h (foo_1) [UNSAFE]: Also check if f and ld are non-zero for __builtin_signbit tests. From-SVN: r228240
Uros Bizjak committed -
gcc/ PR target/65105 * config/i386/i386.c: Include dbgcnt.h. (has_non_address_hard_reg): New. (convertible_comparison_p): New. (scalar_to_vector_candidate_p): New. (remove_non_convertible_regs): New. (scalar_chain): New. (scalar_chain::scalar_chain): New. (scalar_chain::~scalar_chain): New. (scalar_chain::add_to_queue): New. (scalar_chain::mark_dual_mode_def): New. (scalar_chain::analyze_register_chain): New. (scalar_chain::add_insn): New. (scalar_chain::build): New. (scalar_chain::compute_convert_gain): New. (scalar_chain::replace_with_subreg): New. (scalar_chain::replace_with_subreg_in_insn): New. (scalar_chain::emit_conversion_insns): New. (scalar_chain::make_vector_copies): New. (scalar_chain::convert_reg): New. (scalar_chain::convert_op): New. (scalar_chain::convert_insn): New. (scalar_chain::convert): New. (convert_scalars_to_vector): New. (pass_data_stv): New. (pass_stv): New. (make_pass_stv): New. (ix86_option_override): Created and register stv pass. (flag_opts): Add -mstv. (ix86_option_override_internal): Likewise. * config/i386/i386.md (SWIM1248x): New. (*movdi_internal): Add xmm to mem alternative for TARGET_STV. (and<mode>3): Use SWIM1248x iterator instead of SWIM. (*anddi3_doubleword): New. (*zext<mode>_doubleword): New. (*zextsi_doubleword): New. (<code><mode>3): Use SWIM1248x iterator instead of SWIM. (*<code>di3_doubleword): New. * config/i386/i386.opt (mstv): New. * dbgcnt.def (stv_conversion): New. gcc/testsuite/ PR target/65105 * gcc.target/i386/pr65105-1.c: New. * gcc.target/i386/pr65105-2.c: New. * gcc.target/i386/pr65105-3.c: New. * gcc.target/i386/pr65105-4.C: New. * gcc.dg/lower-subreg-1.c: Add -mno-stv options for ia32. From-SVN: r228231
Ilya Enkovich committed
-