aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-11-17cfgexpand.c (expand_gimple_cond): Check ccmp.Zhenqiang Chen8-9/+37
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-17target.def (gen_ccmp_first, [...]): Add two new hooks.Zhenqiang Chen4-0/+50
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-17Always combine comparisons or conversions from booleans.Patrick Palka5-2/+57
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-17Daily bump.GCC Administrator1-1/+1
From-SVN: r217637
2014-11-16* ipa-polymorphic-call.cJan Hubicka4-39/+375
(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-16passes.c (execute_one_pass): Do not apply all transforms prior every simple ↵Jan Hubicka10-75/+125
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* gcc.dg/vect/pr63605.c (dg-final): Cleanup vect tree dump.Uros Bizjak1-0/+2
From-SVN: r217632
2014-11-16Update move-if-change from gnulibJan-Benedict Glaw2-3/+7
2014-11-16 Jan-Benedict Glaw <jbglaw@lug-owl.de> * move-if-change: Sync from upstream gnulib. From-SVN: r217631
2014-11-16tm.texi.in (TARGET_FLAGS_REGNUM): Move around.Eric Botcazou3-6/+11
* doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around. * doc/tm.texi: Regenerate. From-SVN: r217628
2014-11-16Update from upstream Automake files.Jan-Benedict Glaw7-836/+1005
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-16sh.c: Do not include algorithm.Uros Bizjak3-25/+19
* 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-16memset-4.c: New test.Andrew Pinski14-0/+239
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-16lra-remat.c (cand_transf_func): Process regno for rematerialization too.Vladimir Makarov3-1/+11
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-16PR 60324 VLA related fixes to random number generator.Janne Blomqvist2-26/+28
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-16Daily bump.GCC Administrator1-1/+1
From-SVN: r217622
2014-11-15Update config.{sub,guess} from upstream repoJan-Benedict Glaw3-7/+20
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-15parser.c (cp_parser_omp_declare_reduction_exprs): A block is not an expression.Jason Merrill2-1/+4
* parser.c (cp_parser_omp_declare_reduction_exprs): A block is not an expression. From-SVN: r217618
2014-11-15constexpr.c (cxx_eval_builtin_function_call): Use fold_builtin_call_array.Jason Merrill2-3/+5
* constexpr.c (cxx_eval_builtin_function_call): Use fold_builtin_call_array. From-SVN: r217617
2014-11-15* constexpr.c (cx_check_missing_mem_inits): Clarify error message.Jason Merrill7-7/+12
From-SVN: r217616
2014-11-15guality.exp (check_guality): Fix `test_counts' restoration.Maciej W. Rozycki2-1/+6
* g++.dg/guality/guality.exp (check_guality): Fix `test_counts' restoration. From-SVN: r217615
2014-11-152014-11-15 Adhemerval Zanella <azanella@linux.vnet.ibm.com>Adhemerval Zanella2-4/+16
* 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-15Don't run gcc.target/i386/sibcall-1.c on x32 targetsH.J. Lu2-1/+6
* gcc.target/i386/sibcall-1.c: Don't run on x32 targets, instead of run on ia32 targets. From-SVN: r217613
2014-11-15re PR middle-end/63884 (ICE: SIGSEGV in is_sec_implicit_index_fn with ↵Marek Polacek4-0/+28
-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-15re PR target/60104 (load not folded into indirect branch on x86-64)Francois-Xavier Coudert2-1/+6
PR target/60104 * gcc.target/i386/sibcall-1.c: Don't run on pic targets. From-SVN: r217611
2014-11-15lra.c (lra): Switch off rematerialization pass.Vladimir Makarov2-1/+5
2014-11-15 Vladimir Makarov <vmakarov@redhat.com> * lra.c (lra): Switch off rematerialization pass. From-SVN: r217609
2014-11-15xmmintrin.h (_mm_add_ps, [...]): Use vector extensions instead of builtins.Marc Glisse15-232/+218
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-15lto-streamer-out.c (hash_tree): Use cl_optimization_hash.Jan Hubicka7-36/+78
* 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* gcc.dg/tree-ssa/pr61144.c: Add dg-require-alias.Francois-Xavier Coudert2-0/+5
From-SVN: r217606
2014-11-15pubtypes-3.c: Include <string.h>.Francois-Xavier Coudert3-1/+8
* gcc.dg/pubtypes-3.c: Include <string.h>. * gcc.dg/pubtypes-4.c: Likewise. From-SVN: r217605
2014-11-15New unroll and jam option in Graphite.Mircea Namolaru9-24/+308
From-SVN: r217604
2014-11-15* gcc.dg/darwin-cfstring-format-1.c: Adjust dg-error.Francois-Xavier Coudert2-1/+5
From-SVN: r217603
2014-11-15tree-cfg.c (replace_loop_annotate_in_block): New function extracted from...Eric Botcazou5-34/+92
* 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-15tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message for ↵Eric Botcazou2-4/+14
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-15error.c (gfc_fatal_error_1): Renamed from gfc_fatal_error.Tobias Burnus19-63/+135
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-15Daily bump.GCC Administrator1-1/+1
From-SVN: r217599
2014-11-14ipa-prop.h (ipa_known_type_data): Remove.Jan Hubicka2-12/+5
* ipa-prop.h (ipa_known_type_data): Remove. (ipa_binfo_from_known_type_jfunc): Remove. From-SVN: r217596
2014-11-14[AARCH64] Add scheduler for ThunderXAndrew Pinski4-2/+271
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-14predicates.md (easy_fp_constant): Delete redunant tests for 0.0.Michael Meissner17-172/+270
[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-14ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.Martin Jambor4-410/+71
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-14lra-int.h (lra_create_live_ranges): Add parameter.Vladimir Makarov5-52/+113
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-14ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use agg_preserved flag ↵Martin Jambor16-380/+898
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-14ipa-cp.c (ipcp_value_source): Converted to a template class.Martin Jambor3-231/+331
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* doc/install.texi (--with-diagnostics-color=): Document.Jakub Jelinek2-0/+11
From-SVN: r217585
2014-11-14tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate IFN_GOMP_SIMD_LANE ↵Jakub Jelinek2-0/+8
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-14runtime: set library name based on compiler nameIan Lance Taylor4-44/+116
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-14ipa-pure-const.c (struct funct_state_d): Add can_free field.Jakub Jelinek6-7/+113
* ipa-pure-const.c (struct funct_state_d): Add can_free field. (varying_state): Add true for can_free. (check_call): For builtin or internal !nonfreeing_call_p set local->can_free. (check_stmt): For asm volatile and asm with "memory" set local->can_free. (analyze_function): Clear local->can_free initially, continue calling check_stmt until all flags are computed, dump can_free flag. (pure_const_write_summary): Write can_free flag. (pure_const_read_summary): Read it back. (propagate_pure_const): Propagate also can_free flag, set w->nonfreeing_fn if it is false after propagation. * cgraph.h (cgraph_node): Add nonfreeing_fn member. * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h. (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set. Also return true for IFN_ABNORMAL_DISPATCHER. * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag. * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag. (input_overwrite_node): Read it back. From-SVN: r217582
2014-11-14sanopt.c: Include tree-ssa-operands.h.Jakub Jelinek3-91/+393
* sanopt.c: Include tree-ssa-operands.h. (struct sanopt_info): Add has_freeing_call_p, has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p, imm_dom_path_with_freeing_call_computed_p, freeing_call_events, being_visited_p fields. (struct sanopt_ctx): Add asan_check_map field. (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn, maybe_optimize_asan_check_ifn): New functions. (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK internal calls. (pass_sanopt::execute): Call sanopt_optimize even for -fsanitize=address. * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF internal calls. Co-Authored-By: Marek Polacek <polacek@redhat.com> From-SVN: r217581
2014-11-14[Vectorizer] Tidy up vect_create_epilog / use_scalar_resultAlan Lawrence2-24/+21
* tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for 'if (extract_scalar_result)' to the only place that it is true. From-SVN: r217580
2014-11-14e.54.2.c (main): Use N / 8 instead of 32 as block_size.Jakub Jelinek3-2/+9
* libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead of 32 as block_size. * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8 instead of 32 as block_size. From-SVN: r217579
2014-11-14* dwarf2.def (DW_AT_APPLE_optimized, DW_AT_APPLE_flags)Shinichiro Hamaji2-0/+24
(DW_AT_APPLE_isa, DW_AT_APPLE_block) (DW_AT_APPLE_major_runtime_vers, DW_AT_APPLE_runtime_class) (DW_AT_APPLE_omit_frame_ptr, DW_AT_APPLE_property_name) (DW_AT_APPLE_property_getter, DW_AT_APPLE_property_setter) (DW_AT_APPLE_property_attribute, DW_AT_APPLE_objc_complete_type) (DW_AT_APPLE_property): New macros. From-SVN: r217578