1. 23 Jun, 2014 6 commits
    • PR/60825 Make float64x1_t in arm_neon.h a proper vector type · c6a29a09
      gcc/ChangeLog:
      	PR target/60825
      	* config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
      	V1DFmode.
      	* config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
      	add V1DFmode
      	(BUILTIN_VD1): New.
      	(BUILTIN_VD_RE): Remove.
      	(aarch64_init_simd_builtins): Add V1DF to modes/modenames.
      	(aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
      	* config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
      	variant but not df.
      	(vreinterpretv1df*, vreinterpret*v1df): New.
      	(vreinterpretdf*, vreinterpret*df): Remove.
      	* config/aarch64/aarch64-simd.md (aarch64_create, aarch64_reinterpret*):
      	Generate V1DFmode pattern not DFmode.
      	* config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
      	(VD1): New.
      	* config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
      	(vcreate_f64): Remove cast, use v1df builtin.
      	(vcombine_f64): Remove cast, get elements with gcc vector extensions.
      	(vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
      	vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
      	vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
      	vmov_n_f64, vst1_f64): Use gcc vector extensions.
      	(vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
      	add range check using __builtin_aarch64_im_lane_boundsi.
      	(vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
      	vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
      	type signature, use gcc vector extensions.
      	(vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
      	vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
      	vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
      	vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
      	vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
      	vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
      	vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
      	vreinterpret_u64_f64): Use v1df builtin not df.
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/abi/mangle-neon-aarch64.C: Also test mangling of float64x1_t.
      	* gcc.target/aarch64/aapcs/test_64x1_1.c: New test.
      	* gcc.target/aarch64/aapcs/func-ret-64x1_1.c: New test.
      	* gcc.target/aarch64/simd/ext_f64_1.c (main): Compare vector elements.
      	* gcc.target/aarch64/vadd_f64.c: Rewrite with macro to use vector types.
      	* gcc.target/aarch64/vsub_f64.c: Likewise.
      	* gcc.target/aarch64/vdiv_f.c (INDEX*, RUN_TEST): Remove indexing scheme
      	as now the same for all variants.
      	* gcc.target/aarch64/vrnd_f64_1.c (compare_f64): Return float64_t not
      	float64x1_t.
      
      From-SVN: r211892
      Alan Lawrence committed
    • parse_numbers.h (_Number_help): Fix divide-by-zero. · 83387bbd
      	* include/bits/parse_numbers.h (_Number_help): Fix divide-by-zero.
      	* include/std/chrono (_Checked_integral_constant): Allow zero.
      	* testsuite/20_util/duration/literals/values.cc: Test non-positive
      	values and digit separators.
      
      From-SVN: r211890
      Jonathan Wakely committed
    • [AArch64] Implement ADD in vector registers for 32-bit scalar values. · 463036be
      gcc/
      
      	* config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
      	vector registers.
      
      gcc/testsuite/
      
      	* gcc.target/aarch64/scalar_shift_1.c: Fix expected assembler.
      
      From-SVN: r211887
      James Greenhalgh committed
    • lto-cgraph.c (lto_output_node, input_node): Set/get init/fini priority directly. · 1cff83e2
      	* lto-cgraph.c (lto_output_node, input_node): Set/get init/fini priority
      	directly.
      
      From-SVN: r211886
      Jan Hubicka committed
    • loop-invariant.c (pre_check_invariant_p): New function. · 2c97f472
      2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
      
      	* loop-invariant.c (pre_check_invariant_p): New function.
      	(find_invariant_insn): Call pre_check_invariant_p.
      
      From-SVN: r211885
      Zhenqiang Chen committed
    • Daily bump. · 0001689b
      From-SVN: r211884
      GCC Administrator committed
  2. 22 Jun, 2014 10 commits
  3. 21 Jun, 2014 5 commits
  4. 20 Jun, 2014 19 commits
    • asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS. · 0e37a2f3
      	* asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
      	* flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
      	into SANITIZE_UNDEFINED.
      	* doc/invoke.texi: Describe -fsanitize=bounds.
      	* gimplify.c (gimplify_call_expr): Add gimplification of internal
      	functions created in the FEs.
      	* internal-fn.c: Move "internal-fn.h" after "tree.h".
      	(expand_UBSAN_BOUNDS): New function.
      	* internal-fn.def (UBSAN_BOUNDS): New internal function.
      	* internal-fn.h: Don't define internal functions here.
      	* opts.c (common_handle_option): Add -fsanitize=bounds.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
      	BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
      	* tree-core.h: Define internal functions here.
      	(struct tree_base): Add ifn field.
      	* tree-pretty-print.c: Include "internal-fn.h".
      	(dump_generic_node): Handle functions without CALL_EXPR_FN.
      	* tree.c (get_callee_fndecl): Likewise.
      	(build_call_expr_internal_loc): New function.
      	* tree.def (CALL_EXPR): Update description.
      	* tree.h (CALL_EXPR_IFN): Define.
      	(build_call_expr_internal_loc): Declare.
      	* ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
      	types.
      	(ubsan_type_descriptor): Change bool parameter to enum
      	ubsan_print_style.  Adjust the code.  Add handling of
      	UBSAN_PRINT_ARRAY.
      	(ubsan_expand_bounds_ifn): New function.
      	(ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
      	(ubsan_build_overflow_builtin): Likewise.
      	(instrument_bool_enum_load): Likewise.
      	(ubsan_instrument_float_cast): Likewise.
      	* ubsan.h (enum ubsan_print_style): New enum.
      	(ubsan_expand_bounds_ifn): Declare.
      	(ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
      c-family/
      	* c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h".
      	(ubsan_walk_array_refs_r): New function.
      	(c_genericize): Instrument array bounds.
      	* c-ubsan.c: Include "internal-fn.h".
      	(ubsan_instrument_division): Mark instrumented arrays as having
      	side effects.  Adjust ubsan_type_descriptor call.
      	(ubsan_instrument_shift): Likewise.
      	(ubsan_instrument_vla): Adjust ubsan_type_descriptor call.
      	(ubsan_instrument_bounds): New function.
      	(ubsan_array_ref_instrumented_p): New function.
      	(ubsan_maybe_instrument_array_ref): New function.
      	* c-ubsan.h (ubsan_instrument_bounds): Declare.
      	(ubsan_array_ref_instrumented_p): Declare.
      	(ubsan_maybe_instrument_array_ref): Declare.
      testsuite/
      	* c-c++-common/ubsan/bounds-1.c: New test.
      	* c-c++-common/ubsan/bounds-2.c: New test.
      	* c-c++-common/ubsan/bounds-3.c: New test.
      	* c-c++-common/ubsan/bounds-4.c: New test.
      	* c-c++-common/ubsan/bounds-5.c: New test.
      	* c-c++-common/ubsan/bounds-6.c: New test.
      
      From-SVN: r211859
      Marek Polacek committed
    • re PR fortran/33363 (gfortran is missing -fcase-preserve option) · 87681fb5
      	PR fortran/33363
      	* invoke.texi: Don't mention nonexisting -fcase-lower option.
      
      From-SVN: r211858
      Francois-Xavier Coudert committed
    • rs6000.md: Append `DONE' to preparation statements of `bswap' pattern splitters. · 96740472
      	* config/rs6000/rs6000.md: Append `DONE' to preparation
      	statements of `bswap' pattern splitters.
      
      From-SVN: r211857
      Maciej W. Rozycki committed
    • re PR c++/59296 ([c++11] ref-qualified member function is ambiguous) · caa40bc0
      	PR c++/59296
      	* call.c (add_function_candidate): Avoid special 'this' handling
      	if we have a ref-qualifier.
      
      From-SVN: r211854
      Jason Merrill committed
    • re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ is not a… · e2498d54
      re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ is not a constant expression with valid code)
      
      	PR c++/61556
      	* call.c (build_over_call): Call build_this in template path.
      
      From-SVN: r211853
      Jason Merrill committed
    • Update definition of call_fusage_contains_non_callee_clobbers · 73b3e61b
      2014-06-20  Tom de Vries  <tom@codesourcery.com>
      
      	* target.def (call_fusage_contains_non_callee_clobbers): Update
      	definition.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r211852
      Tom de Vries committed
    • Make the tests big-endian friendly. · 676d89dd
      gcc/testsuite/
      
      	Make the tests big-endian friendly.
      
      	* gcc.target/aarch64/aapcs64/test_25.c: Update.
      	* gcc.target/aarch64/aapcs64/va_arg-1.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-12.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-2.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-3.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-4.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-5.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-6.c: Ditto.
      	* gcc.target/aarch64/aapcs64/va_arg-7.c: Ditto.
      
      From-SVN: r211851
      Yufeng Zhang committed
    • asan.c (instrument_strlen_call): Fixed instrumentation of trailing byte. · 0cbf438b
      2014-06-18  Yury Gribov  <y.gribov@samsung.com>
      
      gcc/
      	* asan.c (instrument_strlen_call): Fixed instrumentation of
      	trailing byte.
      
      gcc/testsuite/
      	* c-c++-common/asan/strlen-overflow-1.c: New test.
      
      Co-Authored-By: Max Ostapenko <m.ostapenko@partner.samsung.com>
      
      From-SVN: r211849
      Yury Gribov committed
    • re PR ipa/61540 (internal compiler error in try_make_edge_direct_virtual_call) · bec81025
      2014-06-20  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/61540
      	* ipa-prop.c (impossible_devirt_target): New function.
      	(try_make_edge_direct_virtual_call): Use it, also instead of
      	asserting.
      
      testsuite/
              * g++.dg/ipa/pr61540.C: New test.
      
      From-SVN: r211847
      Martin Jambor committed
    • re PR sanitizer/61530 (segfault with asan) · bf613c02
      2014-06-18  Yury Gribov  <y.gribov@samsung.com>
      
      gcc/
      	PR sanitizer/61530
      	* asan.c (build_check_stmt): Add condition.
      
      gcc/testsuite/
      	* c-c++-common/asan/pr61530.c: New test.
      	
      
      Co-Authored-By: Max Ostapenko <m.ostapenko@partner.samsung.com>
      
      From-SVN: r211846
      Yury Gribov committed
    • re PR ipa/61211 (ICE: verify_cgraph_node failed: edge points to wrong… · 803d0ab0
      re PR ipa/61211 (ICE: verify_cgraph_node failed: edge points to wrong declaration with -O3 -fno-inline)
      
      2014-06-20  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/61211
      	* cgraph.c (clone_of_p): Allow skipped_branch to deal with
      	expanded clones.
      
      From-SVN: r211844
      Martin Jambor committed
    • [AArch64] Fix some saturating math NEON intrinsics types. · 278821f2
      [gcc/]
      	* config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
      	Update comments.
      	(VCONQ): Make comment more helpful.
      	(VCON): Delete.
      	* config/aarch64/aarch64-simd.md
      	(aarch64_sqdmulh_lane<mode>):
      	Use VCOND for operands 2.  Update lane checking and flipping logic.
      	(aarch64_sqrdmulh_lane<mode>): Likewise.
      	(aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
      	(aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
      	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
      	attribute of operand 3 to VCOND.
      	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
      	(aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
      	(aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
      	(aarch64_sqdmull2_lane<mode>_internal): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
      	define_insn.
      	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
      	(aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
      	(aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
      	(aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
      	(aarch64_sqdmull2_laneq<mode>_internal): Likewise.
      	(aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
      	operand to VCOND.  Update lane flipping and bounds checking logic.
      	(aarch64_sqdmlal2_lane<mode>): Likewise.
      	(aarch64_sqdmlsl_lane<mode>): Likewise.
      	(aarch64_sqdmull_lane<mode>): Likewise.
      	(aarch64_sqdmull2_lane<mode>): Likewise.
      	(aarch64_sqdmlal_laneq<mode>):
      	Replace VCON usage with VCONQ.
      	Emit aarch64_sqdmlal_laneq<mode>_internal insn.
      	(aarch64_sqdmlal2_laneq<mode>): Emit
      	aarch64_sqdmlal2_laneq<mode>_internal insn.
      	Replace VCON with VCONQ.
      	(aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
      	(aarch64_sqdmlsl2_laneq<mode>): Likewise.
      	(aarch64_sqdmull_laneq<mode>): Emit
      	aarch64_sqdmull_laneq<mode>_internal insn.
      	Replace VCON with VCONQ.
      	(aarch64_sqdmull2_laneq<mode>): Emit
      	aarch64_sqdmull2_laneq<mode>_internal insn.
      	(aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
      	* config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
      	of 3rd argument to int16x4_t.
      	(vqdmlalh_lane_s16): Likewise.
      	(vqdmlslh_lane_s16): Likewise.
      	(vqdmull_high_lane_s16): Likewise.
      	(vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
      	(vqdmlal_lane_s16): Don't create temporary int16x8_t value.
      	(vqdmlsl_lane_s16): Likewise.
      	(vqdmull_lane_s16): Don't create temporary int16x8_t value.
      	(vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
      	(vqdmlals_lane_s32): Likewise.
      	(vqdmlsls_lane_s32): Likewise.
      	(vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
      	(vqdmulls_lane_s32): Likewise.
      	(vqdmlal_lane_s32): Don't create temporary int32x4_t value.
      	(vqdmlsl_lane_s32): Likewise.
      	(vqdmull_lane_s32): Don't create temporary int32x4_t value.
      	(vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
      	(vqrdmulhh_lane_s16): Likewise.
      	(vqdmlsl_high_lane_s16): Likewise.
      	(vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
      	(vqdmlsl_high_lane_s32): Likewise.
      	(vqrdmulhs_lane_s32): Likewise.
      
      [gcc/testsuite]
      	* gcc.target/aarch64/simd/vqdmulhh_lane_s16.c: New test.
      	* gcc.target/aarch64/simd/vqdmulhs_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulhh_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulhs_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_high_lane_s16.c: New test.
      	* gcc.target/aarch64/simd/vqdmlal_high_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_high_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_high_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlal_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlalh_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlals_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_high_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_high_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_high_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_high_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsl_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlslh_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmlsls_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulh_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulh_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulhq_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulhq_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_high_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_high_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_high_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_high_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmull_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmullh_lane_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqdmulls_lane_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulh_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulh_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulhq_laneq_s16.c: Likewise.
      	* gcc.target/aarch64/simd/vqrdmulhq_laneq_s32.c: Likewise.
      	* gcc.target/aarch64/vector_intrinsics.c: Simplify arm_neon.h include.
      	(test_vqdmlal_high_lane_s16): Fix parameter type.
      	(test_vqdmlal_high_lane_s32): Likewise.
      	(test_vqdmull_high_lane_s16): Likewise.
      	(test_vqdmull_high_lane_s32): Likewise.
      	(test_vqdmlsl_high_lane_s32): Likewise.
      	(test_vqdmlsl_high_lane_s16): Likewise.
      	* gcc.target/aarch64/scalar_intrinsics.c (test_vqdmlalh_lane_s16):
      	Fix argument type.
      	(test_vqdmlals_lane_s32): Likewise.
      	(test_vqdmlslh_lane_s16): Likewise.
      	(test_vqdmlsls_lane_s32): Likewise.
      	(test_vqdmulhh_lane_s16): Likewise.
      	(test_vqdmulhs_lane_s32): Likewise.
      	(test_vqdmullh_lane_s16): Likewise.
      	(test_vqdmulls_lane_s32): Likewise.
      	(test_vqrdmulhh_lane_s16): Likewise.
      	(test_vqrdmulhs_lane_s32): Likewise.
      
      From-SVN: r211842
      Kyrylo Tkachov committed
    • Fix finding reg-sets of call insn · 6621ab68
      2014-06-20  Tom de Vries  <tom@codesourcery.com>
      
      	* final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
      	get_call_reg_set_usage.
      
      From-SVN: r211841
      Tom de Vries committed
    • Don't save function_used_regs if it contains all call_used_regs · 5fea8186
      2014-06-20  Tom de Vries  <tom@codesourcery.com>
      
      	* final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
      	it contains all call_used_regs.
      
      From-SVN: r211840
      Tom de Vries committed
    • Use function_used_regs variable in collect_fn_hard_reg_usage · 53f2f6c1
      2014-06-20  Tom de Vries  <tom@codesourcery.com>
      
      	* final.c (collect_fn_hard_reg_usage): Add and use variable
      	function_used_regs.
      
      From-SVN: r211839
      Tom de Vries committed
    • cgraph.h (struct symtab_node): Add field in_init_priority_hash (set_init_priority... · 569b1784
      	* cgraph.h (struct symtab_node): Add field in_init_priority_hash
      	(set_init_priority, get_init_priority, set_fini_priority,
      	get_fini_priority): New methods.
      	* tree.c (init_priority_for_decl): Remove.
      	(init_ttree): Do not initialize init priority.
      	(decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
      	(decl_priority_info): Remove.
      	(decl_init_priority_insert): Rewrite.
      	(decl_fini_priority_insert): Rewrite.
      	* tree.h (tree_priority_map_eq, tree_priority_map_hash,
      	tree_priority_map_marked_p): Remove.
      	* lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
      	* lto-streamer-out.c (hash_tree): Do not hash priorities.
      	* tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
      	not output priorities.
      	(pack_ts_function_decl_value_fields): Likewise.
      	* tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
      	not input priorities.
      	(unpack_ts_function_decl_value_fields): Likewise.
      	* symtab.c (symbol_priority_map): Declare.
      	(init_priority_hash): Declare.
      	(symtab_unregister_node): Unregister from priority hash, too.
      	(symtab_node::get_init_priority, cgraph_node::get_fini_priority):
      	New methods.
      	(symbol_priority_map_eq, symbol_priority_map_hash): New functions.
      	(symbol_priority_info): New function.
      	(symtab_node::set_init_priority, cgraph_node::set_fini_priority):
      	New methods.
      	* tree-core.h (tree_priority_map): Remove.
      
      	* lto.c (compare_tree_sccs_1): Do not compare priorities.
      
      From-SVN: r211838
      Jan Hubicka committed
    • tree-ssa-math-opts.c (do_shift_rotate, [...]): Cast 0xff to uint64_t before shifting it up. · 88f5cfcd
      	* tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
      	0xff to uint64_t before shifting it up.
      
      From-SVN: r211837
      Jakub Jelinek committed
    • arm.c (arm_output_mi_thunk): Fix offset for TARGET_THUMB1_ONLY. · 6d45574a
      2014-06-20  Julian Brown  <julian@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	* config/arm/arm.c (arm_output_mi_thunk): Fix offset for
      	TARGET_THUMB1_ONLY. Add comments.
      
      
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r211834
      Julian Brown committed