134310 Commits

Author SHA1 Message Date
Zhenqiang Chen
7dd236702d aarch64.c (aarch64_code_to_ccmode, [...]): New functions.
2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/aarch64.c (aarch64_code_to_ccmode,
	aarch64_convert_mode, aarch64_gen_ccmp_first,
	aarch64_gen_ccmp_next): New functions.
	(TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.

From-SVN: r217645
2014-11-17 06:24:36 +00:00
Zhenqiang Chen
cf67050334 aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
	* aarch64.c (aarch64_nzcv_codes): New data.
	(aarch64_ccmp_mode_to_code): New.
	(aarch64_print_operand): Output nzcv.
	config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
	New patterns.
	(cstore<mode>4): Handle ccmp_cc_register.
	* config/aarch64/predicates.md (const0_operand): New.

From-SVN: r217644
2014-11-17 06:19:08 +00:00
Zhenqiang Chen
3dfa7055cb aarch64-modes.def: Define ccmp CC mode.
2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/aarch64-modes.def: Define ccmp CC mode.
	* config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
	extacted from aarch64_get_condition_code.
	(aarch64_get_condition_code): Call aarch64_get_condition_code_1.
	config/aarch64/predicates.md (ccmp_cc_register): New predicate.

From-SVN: r217643
2014-11-17 06:12:43 +00:00
Zhenqiang Chen
b56d6aa18a constraints.md (Usn, [...]): New constraints.
2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
	aarch64_ccmp_operand): New constraints.

From-SVN: r217642
2014-11-17 06:07:15 +00:00
Zhenqiang Chen
f06cd23dc7 Makefile.in: Add ccmp.o.
2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* Makefile.in: Add ccmp.o.
	* ccmp.c: New file.
	* ccmp.h: New file.
	* expr.c: include "ccmp.h"
	(expand_cond_expr_using_cmove): Handle VOIDmode.
	(expand_expr_real_1): Try to expand ccmp.

From-SVN: r217641
2014-11-17 06:03:07 +00:00
Zhenqiang Chen
2d52a3a19d cfgexpand.c (expand_gimple_cond): Check ccmp.
2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* cfgexpand.c (expand_gimple_cond): Check ccmp.
	* expmed.c (emit_cstore): Make it global.
	* expmed.h: #include "insn-codes.h"
	(emit_cstore): New prototype.
	* expr.c (expand_operands): Make it global.
	* expr.h (expand_operands): New prototype.
	* optabs.c (get_rtx_code): Make it global.
	* optabs.h (get_rtx_code): New prototype.

From-SVN: r217640
2014-11-17 05:52:26 +00:00
Zhenqiang Chen
2e0f134153 target.def (gen_ccmp_first, [...]): Add two new hooks.
2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaor.org>

	* target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
	* doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
	* doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.

From-SVN: r217639
2014-11-17 05:38:41 +00:00
Patrick Palka
c1c7f1fc21 Always combine comparisons or conversions from booleans.
2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>

gcc/
	PR middle-end/63790
	* tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
	Always combine comparisons or conversions from booleans.

gcc/testsuite/
	PR middle-end/63790
	* gcc.dg/tree-ssa/pr21031.c: Drop XFAIL.
	* gcc.dg/tree-ssa/forwprop-29.c: New test.

From-SVN: r217638
2014-11-17 02:01:36 +00:00
GCC Administrator
6e2826178d Daily bump.
From-SVN: r217637
2014-11-17 00:16:28 +00:00
Jan Hubicka
df0d8136f1 * ipa-polymorphic-call.c
(ipa_polymorphic_call_context::speculation_consistent_p): Constify.
	(ipa_polymorphic_call_context::meet_speculation_with): New function.
	(ipa_polymorphic_call_context::combine_with): Handle types in construction
	better.
	(ipa_polymorphic_call_context::equal_to): Do not bother about useless
	speculation.
	(ipa_polymorphic_call_context::meet_with): New function.
	* cgraph.h (class ipa_polymorphic_call_context): Add
	meet_width, meet_speculation_with; constify speculation_consistent_p.
	* ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
	context.
	(propagate_context_accross_jump_function): Likewise; be more cureful.
	about set_contains_variable.
	(ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
	(find_more_scalar_values_for_callers_subset): Fix.
	(find_more_contexts_for_caller_subset): Perform meet operation.

From-SVN: r217634
2014-11-16 21:01:45 +00:00
Jan Hubicka
7048601042 passes.c (execute_one_pass): Do not apply all transforms prior every simple IPA pass.
* passes.c (execute_one_pass): Do not apply all transforms prior
	every simple IPA pass.
	* cgraphunit.c: Do not include fibheap.h
	(expand_thunk): Use get_untransformed_body.
	(cgraph_node::expand): Likewise.
	* tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
	* cgraph.c (release_function_body): Do not push cfun when CFG is not there.
	(cgraph_node::get_untransformed_body): Break out from ...
	(cgraph_node::get_body): ... here; add code to apply all transforms.
	* cgraph.h (cgraph_node): Add get_untransformed_body.
	* ipa-icf.c (sem_function::init): Use get_untransformed_body.
	* cgraphclones.c (duplicate_thunk_for_node): Likewise.
	* tree-inline.c (expand_call_inline): LIkewise.
	* i386.c (ix86_reset_to_default_globals): Break out from ...
	(ix86_set_current_function): ... here;
	(ix86_reset_previous_fndecl): Use it.
	(ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.

From-SVN: r217633
2014-11-16 19:36:37 +00:00
Uros Bizjak
9ff2f666aa * gcc.dg/vect/pr63605.c (dg-final): Cleanup vect tree dump.
From-SVN: r217632
2014-11-16 20:31:10 +01:00
Jan-Benedict Glaw
0c8969f0ce Update move-if-change from gnulib
2014-11-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* move-if-change: Sync from upstream gnulib.

From-SVN: r217631
2014-11-16 16:12:44 +00:00
Eric Botcazou
8f048116bf tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
* doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
	* doc/tm.texi: Regenerate.

From-SVN: r217628
2014-11-16 15:49:37 +00:00
Jan-Benedict Glaw
d7134c0eb5 Update from upstream Automake files.
2014-11-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* compile: Sync with upstream Automake.
	* depcomp: Ditto.
	* install-sh: Ditto.
	* missing: Ditto.
	* mkinstalldirs: Ditto.
	* ylwrap: Ditto.

From-SVN: r217627
2014-11-16 14:07:13 +00:00
Uros Bizjak
6f23a2d089 sh.c: Do not include algorithm.
* config/sh/sh.c: Do not include algorithm.
	(sh_emit_scc_to_t): Replace open-coded swap with std::swap
	to swap values.
	(sh_emit_compare_and_branch): Ditto.
	(sh_emit_compare_and_set): Ditto.
	* config/sh/sh.md (replacement peephole2): Ditto.
	(cstore4_media): Ditto.
	(*fmasf4): Ditto.

From-SVN: r217626
2014-11-16 12:50:29 +01:00
Andrew Pinski
24b5038632 memset-4.c: New test.
2014-11-16  Andrew Pinski  <apinski@cavium.com>

	* gcc.c-torture/execute/memset-4.c: New test.
	* gcc.c-torture/execute/20110418-1.c: New test.
	* gcc.c-torture/execute/20141022-1.c: New test.
	* gcc.c-torture/execute/strcpy-2.c: New test.
	* gcc.c-torture/execute/20140212-2.c: New test.
	* gcc.c-torture/compile/20120913-1.c: New test.
	* gcc.c-torture/compile/20121010-1.c: New test.
	* gcc.c-torture/compile/20120917-1.c: New test.
	* gcc.c-torture/compile/20140110-1.c: New test.
	* gcc.c-torture/compile/20121220-1.c: New test.
	* gcc.c-torture/compile/20120822-1.c: New test.
	* gcc.c-torture/compile/20121027-1.c: New test.
	* gcc.c-torture/compile/20120830-2.c: New test.

From-SVN: r217625
2014-11-16 00:01:09 -08:00
Vladimir Makarov
f607c5c4b7 lra-remat.c (cand_transf_func): Process regno for rematerialization too.
2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-remat.c (cand_transf_func): Process regno for
	rematerialization too.
	* lra.c (lra): Switch on rematerialization pass.

From-SVN: r217624
2014-11-16 05:00:30 +00:00
Janne Blomqvist
cb9365ac6a PR 60324 VLA related fixes to random number generator.
2014-11-16  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/60324
	* intrinsics/random.c (kiss_size): Rename to KISS_SIZE, make it a
	macro instead of a variable.
	(random_seed_i4): Make seed correct size, remove assert, KISS_SIZE
	related changes.
	(random_seed_i8): KISS_SIZE related changes.

From-SVN: r217623
2014-11-16 03:56:54 +02:00
GCC Administrator
431db45ab8 Daily bump.
From-SVN: r217622
2014-11-16 00:16:27 +00:00
Jan-Benedict Glaw
e4ff7e6ab0 Update config.{sub,guess} from upstream repo
2014-11-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config.sub: Update from upstream config repo.
	* config.guess: Ditto.

From-SVN: r217619
2014-11-15 23:44:29 +00:00
Jason Merrill
8ed2e44782 parser.c (cp_parser_omp_declare_reduction_exprs): A block is not an expression.
* parser.c (cp_parser_omp_declare_reduction_exprs): A block is not
	an expression.

From-SVN: r217618
2014-11-15 18:28:58 -05:00
Jason Merrill
3952ae1a52 constexpr.c (cxx_eval_builtin_function_call): Use fold_builtin_call_array.
* constexpr.c (cxx_eval_builtin_function_call): Use
	fold_builtin_call_array.

From-SVN: r217617
2014-11-15 18:28:51 -05:00
Jason Merrill
b8cd39962c * constexpr.c (cx_check_missing_mem_inits): Clarify error message.
From-SVN: r217616
2014-11-15 18:28:46 -05:00
Maciej W. Rozycki
f5f0826428 guality.exp (check_guality): Fix `test_counts' restoration.
* g++.dg/guality/guality.exp (check_guality): Fix `test_counts'
	restoration.

From-SVN: r217615
2014-11-15 23:20:18 +00:00
Adhemerval Zanella
fc8b127a00 2014-11-15 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* gcc.dg/atomic/c11-atomic-exec-5.c
	(test_main_long_double_add_overflow): Only actually define if
	LDBL_MANT_DIG != 106.
	(test_main_complex_long_double_add_overflow): Likewise.
	(test_main_long_double_sub_overflow): Likewise.
	(test_main_complex_long_double_sub_overflow): Likewise.

	(NOT_LDBL_EPSILON_2): Likewise.
	(NOT_MINUS_LDBL_EPSILON_2): Likewise.

From-SVN: r217614
2014-11-15 23:17:46 +00:00
H.J. Lu
4ecb3002c5 Don't run gcc.target/i386/sibcall-1.c on x32 targets
* gcc.target/i386/sibcall-1.c: Don't run on x32 targets,
	instead of run on ia32 targets.

From-SVN: r217613
2014-11-15 15:13:08 -08:00
Marek Polacek
8537a4a9f5 re PR middle-end/63884 (ICE: SIGSEGV in is_sec_implicit_index_fn with -fcilkplus and __builtin_sadd_overflow())
PR middle-end/63884
c-family/
	* array-notation-common.c (is_sec_implicit_index_fn): Return false
	for NULL fndecl.
	(extract_array_notation_exprs): Return for NULL node.
testsuite/
	* c-c++-common/cilk-plus/AN/pr63884.c: New test.

From-SVN: r217612
2014-11-15 20:20:05 +00:00
Francois-Xavier Coudert
d66a0f56fe re PR target/60104 (load not folded into indirect branch on x86-64)
PR target/60104
	* gcc.target/i386/sibcall-1.c: Don't run on pic targets.

From-SVN: r217611
2014-11-15 19:46:14 +00:00
Vladimir Makarov
2772f5a14f lra.c (lra): Switch off rematerialization pass.
2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>

	* lra.c (lra): Switch off rematerialization pass.

From-SVN: r217609
2014-11-15 16:59:08 +00:00
Marc Glisse
2069d6fcff xmmintrin.h (_mm_add_ps, [...]): Use vector extensions instead of builtins.
2014-11-15  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
	_mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
	instead of builtins.
	* config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
	typedefs.
	(_mm_sqrt_sd): Fix comment.
	(_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
	_mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
	_mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
	_mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
	_mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
	_mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
	_mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
	_mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
	Use vector extensions instead of builtins.
	* config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
	_mm_mullo_epi32): Likewise.
	* config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
	New typedefs.
	(_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
	_mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
	Use vector extensions instead of builtins.
	* config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
	_mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
	_mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
	_mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
	_mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
	_mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
	_mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
	* config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
	New typedefs.
	(_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
	_mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
	_mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
	_mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
	_mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
	_mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
	_mm512_div_ps): Use vector extensions instead of builtins.
	* config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
	_mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
	* config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
	* config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
	Likewise.

gcc/testsuite/
	* gcc.target/i386/intrinsics_opt-1.c: New testcase.
	* gcc.target/i386/intrinsics_opt-2.c: Likewise.
	* gcc.target/i386/intrinsics_opt-3.c: Likewise.
	* gcc.target/i386/intrinsics_opt-4.c: Likewise.

From-SVN: r217608
2014-11-15 16:56:27 +00:00
Jan Hubicka
ca9a04dab6 lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
* lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
	* lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
	* optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
	* opth-gen.awk: Add prototype of cl_optimization_hash.
	* tree-streamer-in.c (unpack_ts_optimization): Remove.
	(streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
	* tree-streamer-out.c (pack_ts_optimization): Remove.
	(streamer_pack_tree_bitfields): Use cl_optimization_stream_out.

From-SVN: r217607
2014-11-15 16:53:51 +00:00
Francois-Xavier Coudert
64ec531860 * gcc.dg/tree-ssa/pr61144.c: Add dg-require-alias.
From-SVN: r217606
2014-11-15 16:36:58 +00:00
Francois-Xavier Coudert
ec94f2242f pubtypes-3.c: Include <string.h>.
* gcc.dg/pubtypes-3.c: Include <string.h>.
	* gcc.dg/pubtypes-4.c: Likewise.

From-SVN: r217605
2014-11-15 16:06:55 +00:00
Mircea Namolaru
20d3465bd0 New unroll and jam option in Graphite.
From-SVN: r217604
2014-11-15 15:37:49 +00:00
Francois-Xavier Coudert
cf4600ed36 * gcc.dg/darwin-cfstring-format-1.c: Adjust dg-error.
From-SVN: r217603
2014-11-15 15:27:18 +00:00
Eric Botcazou
8a9b4fa113 tree-cfg.c (replace_loop_annotate_in_block): New function extracted from...
* tree-cfg.c (replace_loop_annotate_in_block): New function extracted
	from...
	(replace_loop_annotate): ...here.  Call it on the header and on the
	latch block, if any.  Restore proper behavior of final cleanup.

From-SVN: r217602
2014-11-15 12:34:20 +00:00
Eric Botcazou
d03f2c17a2 tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message for max-completely-peeled-insns limit.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
	for max-completely-peeled-insns limit.

From-SVN: r217601
2014-11-15 12:06:23 +00:00
Tobias Burnus
ddc05d1165 error.c (gfc_fatal_error_1): Renamed from gfc_fatal_error.
2014-11-15  Tobias Burnus  <burnus@net-b.de>

gcc/fortran/
        * error.c (gfc_fatal_error_1): Renamed from gfc_fatal_error.
        (gfc_fatal_error): Add; uses common diagnostics.
        * array.c (gfc_match_array_ref, gfc_match_array_spec): Use
        %< %>.
        * check.c (check_co_collective, gfc_check_lcobound,
        gfc_check_image_index, gfc_check_num_images,
        gfc_check_this_image, gfc_check_ucobound): Ditto.
        * cpp.c (gfc_cpp_post_options): Ditto.
        (gfc_cpp_init_0, gfc_cpp_done): Change %s to %qs.
        * gfc-diagnostic.def (DK_FATAL): Capitalize first letter.
        * gfortran.h (gfc_fatal_error_1): Add.
        * match.c (gfc_match_name, gfc_match_critical,
        lock_unlock_statement, sync_statement): Add %< %>.
        * module.c (bad_module, gfc_dump_module, gfc_use_module): Change
        %s to %qs.
        * options.c (gfc_handle_module_path_options,
        * gfc_handle_fpe_option,
        gfc_handle_coarray_option, gfc_handle_runtime_check_option,
        gfc_handle_option): Add %< %>.
        * simplify.c (gfc_simplify_num_images): Ditto.
        * trans-stmt.c (gfc_trans_sync): Use gfc_fatal_error_1.
        * trans-array.c (gfc_conv_array_initializer): Ditto.
        * trans-types.c (gfc_init_kinds): Use gfc_fatal_error instead
        of fatal_error; add %< %> quotations.

gcc/testsuite/
        * gfortran.dg/binding_label_tests_4.f03: Add dg-excess-errors.
        * gfortran.dg/coarray_9.f90: Ditto.
        * gfortran.dg/empty_label.f: Ditto.
        * gfortran.dg/empty_label.f90: Ditto.

From-SVN: r217600
2014-11-15 12:06:07 +01:00
GCC Administrator
87d4b38387 Daily bump.
From-SVN: r217599
2014-11-15 00:16:30 +00:00
Jan Hubicka
8f581638b0 ipa-prop.h (ipa_known_type_data): Remove.
* ipa-prop.h (ipa_known_type_data): Remove.
	(ipa_binfo_from_known_type_jfunc): Remove.

From-SVN: r217596
2014-11-14 23:25:20 +00:00
Andrew Pinski
2d41ed5820 [AARCH64] Add scheduler for ThunderX
This adds the schedule model for ThunderX. There are a few TODOs in that
not all of the SIMD is model currently.  Also the idea of a simple
shift/extend is not modeled and all cases where there is a shift/extend
is considered as non simple and take up two cycles rather than correct
value of one cycle.  Also the 32bit divide and the 64bit divide
have different cycle counts but there is no way to model that currently.
Also multiply high takes one cycle more than the normal multiply but
there is no way to model that currently either.

Build and tested for aarch64-elf with no regressions.

ChangeLog:
* config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
over to thunderx.
* config/aarch64/aarch64.md: Include thunderx.md.
(generic_sched): Set to no for thunderx.
* config/aarch64/thunderx.md: New file.

From-SVN: r217593
2014-11-14 13:21:25 -08:00
Michael Meissner
0c307d8f7e predicates.md (easy_fp_constant): Delete redunant tests for 0.0.
[gcc]
2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/predicates.md (easy_fp_constant): Delete redunant
	tests for 0.0.

	* config/rs6000/vector.md (VEC_R): Move secondary reload support
	insns to rs6000.md from vector.md.
	(reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
	(reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
	(vec_reload_and_plus_<mptrsize>): Likewise.

	* config/rs6000/rs6000.md (Fa): New mode attribute to give
	constraint for the Altivec registers for a type.
	(RELOAD): New mode iterator for all of the types that have
	secondary reload address support to load up a base register.
	(extendsfdf2_fpr): Use correct constraint.
	(copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
	instruction.
	(floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
	Generate the non-VSX instruction if all registers were FPRs.  Do
	not use the patterns in vsx.md for scalar operations.
	(floatsi<mode>2_lfiwax_mem): Likewise.
	(floatunssi<mode>2_lfiwzx): Likewise.
	(floatunssi<mode>2_lfiwzx_mem): Likewise.
	(fix_trunc<mode>di2_fctidz): Likewise.
	(fixuns_trunc<mode>di2_fctiduz): Likewise.
	(fctiwz_<mode>): Likewise.
	(fctiwuz_<mode>): Likewise.
	(friz): Likewise.
	(floatdidf2_fpr): Likewise.
	(floatdidf2_mem): Likewise.
	(floatunsdidf2): Likewise.
	(floatunsdidf2_fcfidu): Likewise.
	(floatunsdidf2_mem): Likewise.
	(floatdisf2_fcfids): Likewise.
	(floatdisf2_mem): Likewise.
	(floatdisf2_internal1): Add explicit test for not FCFIDS to make
	it more obvious that the code is for pre-ISA 2.06 machines.
	(floatdisf2_internal2): Likewise.
	(floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
	Generate the non-VSX instruction if all registers were FPRs.  Do
	not use the patterns in vsx.md for scalar operations.
	(floatunsdisf2_mem): Likewise.
	(reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
	handlers here from vector.md, and expand the types we generate
	reload handlers for.
	(reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
	(vec_reload_and_plus_<mptrsize>): Likewise.

	* config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
	vector forms of the instructions.  Move VSX scalar forms to
	rs6000.md, and add support for -mupper-regs-sf.
	(vsx_floatuns<VSi><mode>2): Likewise.
	(vsx_fix_trunc<mode><VSi>2): Likewise.
	(vsx_fixuns_trunc<mode><VSi>2): Likewise.
	(vsx_float_fix_<mode>2): Delete DF version, rename to
	vsx_float_fix_v2df2.
	(vsx_float_fix_v2df2): Likewise.

[gcc/testsuite]
2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/ppc-fpconv-1.c: Adjust for -mupper-regs-df
	changes.
	* gcc.target/powerpc/ppc-fpconv-2.c: Likewise.
	* gcc.target/powerpc/ppc-fpconv-3.c: Likewise.
	* gcc.target/powerpc/ppc-fpconv-4.c: Likewise.
	* gcc.target/powerpc/ppc-fpconv-5.c: Likewise.
	* gcc.target/powerpc/ppc-fpconv-6.c: Likewise.
	* gcc.target/powerpc/ppc-fpconv-7.c: Likewise.
	* gcc.target/powerpc/ppc-fpconv-8.c: Likewise.
	* gcc.target/powerpc/ppc-fpconv-9.c: Likewise.
	* gcc.target/powerpc/ppc-fpconv-10.c: Likewise.
	* gcc.target/powerpc/ppc-round.c: Likewise.

From-SVN: r217590
2014-11-14 20:45:21 +00:00
Martin Jambor
3b97a5c7c6 ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
2014-11-14  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
	(ipa_pass_through_data): Removed field type_preserved.
	(ipa_ancestor_jf_data): removed fields type and type_preserved.
	(ipa_jump_func): Removed field known_type.
	(ipa_get_jf_known_type_offset): Removed.
	(ipa_get_jf_known_type_base_type): Likewise.
	(ipa_get_jf_known_type_component_type): Likewise.
	(ipa_get_jf_ancestor_type): Likewise.
	* ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
	(ipa_get_jf_pass_through_result): Likewise.
	(ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
	(values_equal_for_ipcp_p): Removed BINFO handling.
	(ipa_get_indirect_edge_target_1): Updated comment.
	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
	of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
	(ipa_set_jf_known_type): Removed.
	(ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
	all callers.
	(ipa_set_jf_arith_pass_through): Likewise.
	(ipa_set_ancestor_jf): Likewise.
	(ipa_binfo_from_known_type_jfunc): Removed.
	(prop_type_change_info): Removed fields known_current_type and
	multiple_types_encountered.
	(extr_type_from_vtbl_ptr_store): Removed.
	(check_stmt_for_type_change): Do not attempt to identify changed type.
	(detect_type_change_from_memory_writes): Do not set the removed fields,
	always set jfunc to unknown.
	(compute_complex_assign_jump_func): Do not detect dynamic type change.
	(compute_complex_ancestor_jump_func): Likewise.
	(compute_known_type_jump_func): Removed.
	(ipa_compute_jump_functions_for_edge): Do not detect dynamic type
	change.  Do not comute known type jump functions.
	(combine_known_type_and_ancestor_jfs): Removed.
	(update_jump_functions_after_inlining): Removed handling of
	IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
	(ipa_write_jump_function): Do not stream removed fields or known type
	jump functions.
	(ipa_read_jump_function): Likewise.

From-SVN: r217589
2014-11-14 21:07:39 +01:00
Vladimir Makarov
4ab74a0147 lra-int.h (lra_create_live_ranges): Add parameter.
2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-int.h (lra_create_live_ranges): Add parameter.
	* lra-lives.c (temp_bitmap): Move higher.
	(initiate_live_solver): Move temp_bitmap initialization into
	lra_live_ranges_init.
	(finish_live_solver): Move temp_bitmap clearing into
	live_ranges_finish.
	(process_bb_lives): Add parameter.  Use it to control live info
	update and dead insn elimination.  Pass it to mark_regno_live and
	mark_regno_dead.
	(lra_create_live_ranges): Add parameter.  Pass it to
	process_bb_lives.
	(lra_live_ranges_init, lra_live_ranges_finish): See changes in
	initiate_live_solver and finish_live_solver.
	* lra-remat.c (do_remat): Process insn non-operand hard regs too.
	Use temp_bitmap to update avail_cands.
	* lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
	check with lra_need_for_spill_p after live range pass.  Switch on
	rematerialization pass.

From-SVN: r217588
2014-11-14 20:06:11 +00:00
Martin Jambor
44210a9672 ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use agg_preserved flag instead.
2014-11-14  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
	agg_preserved flag instead.
	(ipa_get_jf_ancestor_type_preserved): Likewise.
	(ipa_node_params): Rename known_vals to known_csts, update all users.
	New field known_contexts.
	(ipa_get_indirect_edge_target): Update prototype.
	(ipcp_poly_ctx_values_pool): Declare.
	(ipa_context_from_jfunc): Likewise.
	* ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
	* cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
	parameter newline of method dump.
	* ipa-cp.c (ctxlat): New field.
	(ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
	(ipcp_poly_ctx_values_pool):New variable.
	(ipa_get_poly_ctx_lat): New function.
	(print_ipcp_constant_value): New overloaded function for contexts.
	(print_all_lattices): Also print contexts.
	(ipa_topo_info): New field contexts;
	(set_all_contains_variable): Also set the flag in the context lattice.
	(initialize_node_lattices): Likewise for flag bottom.
	(ipa_get_jf_ancestor_result): Removed BINFO handling.
	(ipa_value_from_jfunc): Likewise.
	(ipa_context_from_jfunc): New function.
	(values_equal_for_ipcp_p): New overloaded function for contexts.
	(allocate_and_init_ipcp_value): Construct the value.
	(allocate_and_init_ipcp_value): New overloaded function for contexts.
	(propagate_scalar_accross_jump_function): Removed handling of
	KNOWN_TYPE jump functions.
	(propagate_context_accross_jump_function): New function.
	(propagate_constants_accross_call): Also propagate contexts.
	(ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
	(ipa_get_indirect_edge_target): Likewise.
	(devirtualization_time_bonus): Likewise.
	(gather_context_independent_values): Create and populate known_contexts
	vector rather than known_binfos.
	(perform_estimation_of_a_value): Work on contexts rather than BINFOs.
	(estimate_local_effects): Likewise.
	(add_all_node_vals_to_toposort): Also add contexts to teir topological
	sort.
	(ipcp_propagate_stage): Also propagate effects of contexts.
	(ipcp_discover_new_direct_edges): Receive and pass known_contexts to
	ipa_get_indirect_edge_target_1.
	(cgraph_edge_brings_value_p): New overloaded function for contexts.
	(create_specialized_node): Work on contexts rather than BINFOs.
	(find_more_contexts_for_caller_subset): New function.
	(known_contexts_useful_p): New function.
	(copy_useful_known_contexts): Likewise.
	(modify_known_vectors_with_val): Likewise.
	(ipcp_val_in_agg_replacements_p): Renamed to
	ipcp_val_agg_replacement_ok_p, return true for all offset indicating
	non-aggregate.
	(ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
	(decide_about_value): Work on contexts rather than BINFOs.
	(decide_whether_version_node): Likewise.
	(ipcp_driver): Initialize the new alloc pool.
	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
	printing of edge contexts.
	(ipa_set_ancestor_jf): Replace assert with conditional setting of
	type_preserved to false.
	(update_jump_functions_after_inlining): Use access function instead of
	reading agg_preserved directly.  Store combined context in the ancestor
	case.
	(try_make_edge_direct_virtual_call): Work on contexts rather than
	BINFOs.
	(update_indirect_edges_after_inlining): Get context from
	ipa_context_from_jfunc.
	(ipa_free_node_params_substructures): Free also known_contexts.
	(ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
	(ipa_free_all_structures_after_iinln): Likewise.
	* ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
	contexts rather than BINFOs.
	(estimate_edge_devirt_benefit): Likewise.
	(estimate_edge_size_and_time): Likewise.
	(estimate_calls_size_and_time): Likewise.
	(estimate_node_size_and_time): Likewise.
	(estimate_ipcp_clone_size_and_time): Likewise.
	(do_estimate_edge_time): Likewise.
	(do_estimate_edge_size): Likewise.
	(do_estimate_edge_hints): Likewise.
	* ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
	parameter newline, ouput newline only when it is set.
	(ipa_polymorphic_call_context::equal_to): New method.

testsuite/
	* g++.dg/ipa/devirt-11.C: Dont't run ipa-cp, remove times constraint
	from the dump scan.
	* g++.dg/ipa/devirt-21.C: Xfail.
	* g++.dg/ipa/devirt-24.C: Likewise.
	* g++.dg/ipa/devirt-10.C: Removed times constraint from the dump scan.
	* g++.dg/ipa/devirt-41.C: Updated the dump scan.
	* g++.dg/ipa/devirt-44.C: Likewise.
	* g++.dg/ipa/devirt-43.C: Xfail.

From-SVN: r217587
2014-11-14 21:03:19 +01:00
Martin Jambor
c0cb505599 ipa-cp.c (ipcp_value_source): Converted to a template class.
2014-11-14  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipcp_value_source): Converted to a template class.  All
	users converted to the same specialization as the using class/function
	or specialization on tree.
	(ipcp_value): Likewise.
	(ipcp_lattice): Likewise.
	(ipcp_agg_lattice): Now derived from tree specialization of
	ipcp_lattice.
	(values_topo): Moved to new class value_topo_info.
	(ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
	Updated all callers.
	(print_lattice): Turned into ipcp_lattice::print.  Updated all
	callers.
	(value_topo_info): New class template.
	(ipa_topo_info): New field constants.  New constructor.
	(build_toporder_info): Do not clear stack_top, only checkign assert
	it.
	(set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
	Updated all callers.
	(set_lattice_contains_variable): Turned into
	ipcp_lattice::set_contains_variable.  Updated all callers.
	(add_value_source): Turned into ipcp_value::add_source.  Updated all
	callers.
	(allocate_and_init_ipcp_value): New function.
	(add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
	parameter got default a value.  Updated all callers.
	(add_scalar_value_to_lattice): Removed, users converted to using
	ipcp_lattice::add_value with default value of the last parameter.
	(add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
	all callers.
	(propagate_effects): Made method of value_topo_info.
	(cgraph_edge_brings_value_p): Now a template function.
	(get_info_about_necessary_edges): Likewise.
	(gather_edges_for_value): Likewise.
	(perhaps_add_new_callers): Likewise.
	(decide_about_value): Likewise.
	* ipa-prop.h (ipcp_lattice): Remove fowrward declaration.

From-SVN: r217586
2014-11-14 20:58:18 +01:00
Jakub Jelinek
b907149be5 * doc/install.texi (--with-diagnostics-color=): Document.
From-SVN: r217585
2014-11-14 20:41:33 +01:00
Jakub Jelinek
a601baa0f7 tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate IFN_GOMP_SIMD_LANE without lhs as useless.
* tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
	IFN_GOMP_SIMD_LANE without lhs as useless.

From-SVN: r217584
2014-11-14 20:41:00 +01:00
Ian Lance Taylor
4c46b5f0c2 runtime: set library name based on compiler name
Different compilers may have different release cadences or ABI
incompatibilities, so it does not make sense to use the same library
name for runtime libraries intended for different compilers.

This CL causes a libgo built by llgo to receive the name libgo-llgo.
Likewise, libgobegin is named libgobegin-llgo.

From-SVN: r217583
2014-11-14 18:02:50 +00:00