15912 lines
586 KiB
Plaintext
15912 lines
586 KiB
Plaintext
2014-06-23 Paul Gortmaker <paul.gortmaker@windriver.com>
|
||
|
||
* gcc.c (set_multilib_dir): Fix typo.
|
||
|
||
2014-06-23 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop.c (gate_loop): New function.
|
||
(pass_tree_loop::gate): Call it.
|
||
(pass_data_tree_no_loop, pass_tree_no_loop,
|
||
make_pass_tree_no_loop): New.
|
||
* tree-vectorizer.c: Include tree-scalar-evolution.c
|
||
(pass_slp_vectorize::execute): Initialize loops and SCEV if
|
||
required.
|
||
(pass_slp_vectorize::clone): New method.
|
||
* timevar.def (TV_TREE_NOLOOP): New.
|
||
* tree-pass.h (make_pass_tree_no_loop): Declare.
|
||
* passes.def (pass_tree_no_loop): New pass group with
|
||
SLP vectorizer.
|
||
|
||
2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/61570
|
||
* config/i386/driver-i386.c (host_detect_local_cpu): Set arch
|
||
to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
|
||
|
||
2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
|
||
"yes" where needed.
|
||
|
||
2014-06-23 Alan Modra <amodra@gmail.com>
|
||
|
||
PR bootstrap/61583
|
||
* tree-vrp.c (remove_range_assertions): Do not set is_unreachable
|
||
to zero on debug statements.
|
||
|
||
2014-06-19 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
PR target/60825
|
||
* config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
|
||
Ignore third operand if present by marking qualifier_internal.
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (abs): Comment.
|
||
|
||
* config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
|
||
vector extension.
|
||
(aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
|
||
arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
|
||
(vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
|
||
vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
|
||
vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
|
||
vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
|
||
vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
|
||
vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
|
||
vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
|
||
vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
|
||
vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
|
||
vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
|
||
vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
|
||
vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
|
||
vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
|
||
vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
|
||
logic in GCC vector extensions
|
||
|
||
(vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
|
||
vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
|
||
vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
|
||
vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
|
||
vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
|
||
vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
|
||
vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
|
||
vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
|
||
vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
|
||
vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
|
||
|
||
(vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
|
||
|
||
(vget_high_s64, vget_high_u64): Reimplement with GCC vector
|
||
extensions.
|
||
|
||
(__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
|
||
(vget_low_s64): Use __GET_LOW macro.
|
||
(vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
|
||
gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
|
||
(vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
|
||
(vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
|
||
__builtin_aarch64_lane_boundsi, use GCC vector extensions.
|
||
|
||
(vcombine_s64): Use GCC vector extensions; remove cast.
|
||
(vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
|
||
vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
|
||
vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
|
||
Fix type signature; remove cast.
|
||
|
||
2014-06-19 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
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.
|
||
|
||
2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
|
||
vector registers.
|
||
|
||
2014-06-23 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* lto-cgraph.c (lto_output_node, input_node): Set/get init/fini priority
|
||
directly.
|
||
|
||
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.
|
||
|
||
2014-06-22 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/61565
|
||
* compare-elim.c (struct comparison): Add eh_note.
|
||
(find_comparison_dom_walker::before_dom_children): Don't eliminate
|
||
a redundant comparison in a different EH region. Purge EH edges if
|
||
necessary.
|
||
|
||
2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
|
||
(var_shift): Use it.
|
||
(rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
|
||
*rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
|
||
*rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
|
||
*rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
|
||
*rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
|
||
*rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
|
||
*ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
|
||
*lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
|
||
*ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
|
||
*rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
|
||
*rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
|
||
*rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
|
||
*rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
|
||
*rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
|
||
*rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
|
||
*rotldi3_internal15be): Use the new attribute. Merge register and
|
||
integer alternatives.
|
||
|
||
2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
|
||
define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
|
||
split, *ashrdi3_internal3 and split): Delete, merge into...
|
||
(ashr<mode>3): New expander.
|
||
(*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
|
||
(*ashrsi3_64): Fix formatting. Replace "i" by "n".
|
||
|
||
2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
|
||
*rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
|
||
*rotldi3_internal3 and split): Delete, merge into...
|
||
(rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
|
||
(*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
|
||
Use "rotlw" extended mnemonic.
|
||
|
||
2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
|
||
and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
|
||
and split, *ashldi3_internal3 and split): Delete, merge into...
|
||
(ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
|
||
(*ashlsi3_64): Fix formatting. Replace "i" by "n".
|
||
|
||
2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md ("hH"): New define_mode_attr.
|
||
(lshrsi3, two anonymous define_insns and define_splits,
|
||
lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
|
||
*lshrdi3_internal3 and split): Delete, merge into...
|
||
(lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
|
||
(*lshrsi3_64): Fix formatting. Replace "i" by "n".
|
||
|
||
2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
|
||
Remove "O" alternative.
|
||
|
||
2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
|
||
(mips_move_from_gpr_cost): Likewise.
|
||
(mips_register_move_cost): Update accordingly.
|
||
(mips_secondary_reload_class): Remove name of in_p.
|
||
|
||
2014-06-22 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR target/61503
|
||
* config/i386/i386.md (x86_64_shrd, x86_shrd,
|
||
ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
|
||
|
||
2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/nios2/nios2.c: Include "builtins.h".
|
||
|
||
2014-06-20 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* cgraph.h (tls_model_names): New variable.
|
||
* print-tree.c (print_node): Simplify.
|
||
* varpool.c (tls_model_names): New variable.
|
||
(dump_varpool_node): Output tls model.
|
||
|
||
2014-06-20 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-visibility.c (function_and_variable_visibility): Disable
|
||
temporarily local aliases for some targets.
|
||
|
||
2014-06-20 Marek Polacek <polacek@redhat.com>
|
||
|
||
* 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.
|
||
|
||
2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
|
||
|
||
* config/rs6000/rs6000.md: Append `DONE' to preparation
|
||
statements of `bswap' pattern splitters.
|
||
|
||
2014-06-20 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* target.def (call_fusage_contains_non_callee_clobbers): Update
|
||
definition.
|
||
* doc/tm.texi: Regenerate.
|
||
|
||
2014-06-20 Yury Gribov <y.gribov@samsung.com>
|
||
Max Ostapenko <m.ostapenko@partner.samsung.com>
|
||
|
||
PR sanitizer/61547
|
||
* asan.c (instrument_strlen_call): Fixed instrumentation of
|
||
trailing byte.
|
||
|
||
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.
|
||
|
||
2014-06-20 Yury Gribov <y.gribov@samsung.com>
|
||
Max Ostapenko <m.ostapenko@partner.samsung.com>
|
||
|
||
PR sanitizer/61530
|
||
* asan.c (build_check_stmt): Add condition.
|
||
|
||
2014-06-20 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/61211
|
||
* cgraph.c (clone_of_p): Allow skipped_branch to deal with
|
||
expanded clones.
|
||
|
||
2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* 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.
|
||
|
||
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.
|
||
|
||
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.
|
||
|
||
2014-06-20 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* final.c (collect_fn_hard_reg_usage): Add and use variable
|
||
function_used_regs.
|
||
|
||
2014-06-20 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* 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.
|
||
|
||
2014-06-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
|
||
0xff to uint64_t before shifting it up.
|
||
|
||
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.
|
||
|
||
2014-06-19 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
|
||
return type to void.
|
||
* config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
|
||
|
||
2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
* loop-invariant.c (get_inv_cost): Skip invariants, which are marked
|
||
as "move", from depends_on.
|
||
|
||
2014-06-19 Terry Guo <terry.guo@arm.com>
|
||
|
||
* config/arm/thumb1.md (define_split): Split 64bit constant in earlier
|
||
stage.
|
||
|
||
2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
|
||
Remove cr5.
|
||
(REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
|
||
|
||
2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
PR target/61550
|
||
* config/sh/sh.c (prepare_move_operands): Don't process TLS
|
||
addresses here if reload in progress or completed.
|
||
|
||
2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
|
||
|
||
* config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
|
||
"TARGET_MIPS16 ? M16_REGS : GR_REGS".
|
||
* config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
|
||
(mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
|
||
(mips_register_priority): New function that implements the target
|
||
hook TARGET_REGISTER_PRIORITY.
|
||
(mips_spill_class): Likewise for TARGET_SPILL_CLASS.
|
||
(mips_lra_p): Likewise for TARGET_LRA_P.
|
||
(TARGET_REGISTER_PRIORITY): Define macro.
|
||
(TARGET_SPILL_CLASS): Likewise.
|
||
(TARGET_LRA_P): Likewise.
|
||
* config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
|
||
classes.
|
||
(REG_CLASS_NAMES): Likewise.
|
||
(REG_CLASS_CONTENTS): Likewise.
|
||
(BASE_REG_CLASS): Use M16_SP_REGS.
|
||
* config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
|
||
New set attribute to enable alternatives depending on the register
|
||
allocator used.
|
||
(*mul_acc_si_r3900, *mul_sub_si): Likewise.
|
||
(*lea64): Disable pattern for MIPS16.
|
||
* config/mips/mips.opt (mlra): New option.
|
||
|
||
2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
|
||
|
||
* lra-constraints.c (base_to_reg): New function.
|
||
(process_address): Use new function.
|
||
|
||
2014-06-18 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
|
||
* config/aarch64/aarch64.c
|
||
(TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
|
||
(aarch64_emit_call_insn): New function.
|
||
(aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
|
||
of emit_call_insn.
|
||
* config/aarch64/aarch64.md (define_expand "call_internal")
|
||
(define_expand "call_value_internal", define_expand "sibcall_internal")
|
||
(define_expand "sibcall_value_internal"): New.
|
||
(define_expand "call", define_expand "call_value")
|
||
(define_expand "sibcall", define_expand "sibcall_value"): Use internal
|
||
expand variant and aarch64_emit_call_insn.
|
||
|
||
2014-06-18 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
|
||
* config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
|
||
Redefine to true.
|
||
(arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
|
||
clobbers to CALL_INSN_FUNCTION_USAGE.
|
||
(define_expand "sibcall_internal")
|
||
(define_expand "sibcall_value_internal"): New.
|
||
(define_expand "call", define_expand "call_value"): Add argument to
|
||
arm_emit_call_insn.
|
||
(define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
|
||
(define_expand "sibcall_value"): Use sibcall_value_internal and
|
||
arm_emit_call_insn.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
|
||
__udivmoddi4.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
|
||
push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
|
||
annotations. Fix DWARF information.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
|
||
__udivmoddi4, and fixups for negative operands.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
|
||
to __udivmoddi4.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
|
||
manipulation.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
|
||
describing register usage on function entry and exit.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
|
||
(__aeabi_ldivmod): Fix whitespace.
|
||
|
||
2014-06-18 Andreas Schwab <schwab@suse.de>
|
||
|
||
* doc/md.texi (Standard Names): Use @itemx for grouped items.
|
||
Remove blank line after @item.
|
||
|
||
2014-06-18 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/61545
|
||
* config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
|
||
|
||
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
* config/arm/arm.c (neon_vector_mem_operand): Allow register
|
||
POST_MODIFY for neon loads and stores.
|
||
(arm_print_operand): Output post-index register for neon loads and
|
||
stores.
|
||
|
||
2014-06-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
|
||
|
||
2014-06-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-pass.h (make_pass_dce_loop): Remove.
|
||
* passes.def: Replace pass_dce_loop with pass_dce.
|
||
* tree-ssa-dce.c (perform_tree_ssa_dce): If something
|
||
changed free niter estimates and reset the scev cache.
|
||
(tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
|
||
make_pass_dce_loop): Remove.
|
||
* tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
|
||
(fini_copy_prop): Return whether something changed. Always
|
||
let substitute_and_fold perform DCE and free niter estimates
|
||
and reset the scev cache if so.
|
||
(execute_copy_prop): If sth changed schedule cleanup-cfg.
|
||
(pass_data_copy_prop): Do not unconditionally schedule
|
||
cleanup-cfg or update-ssa.
|
||
|
||
2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
|
||
|
||
PR tree-optimization/61518
|
||
* tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
|
||
reduction var is used in reduction stmt or phi-function only.
|
||
|
||
2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
|
||
|
||
2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
PR tree-optimization/61517
|
||
* tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
|
||
whose rhs's first tree is the source expression instead of the
|
||
expression itself.
|
||
(find_bswap_or_nop): Likewise.
|
||
(bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
|
||
gimple stmt whose rhs's first tree is the source. In the memory source
|
||
case, move the stmt to be replaced close to one of the original load to
|
||
avoid the problem of a store between the load and the stmt's original
|
||
location.
|
||
(pass_optimize_bswap::execute): Adapt to change in bswap_replace's
|
||
signature.
|
||
|
||
2014-06-18 Andreas Schwab <schwab@suse.de>
|
||
|
||
PR rtl-optimization/54555
|
||
* postreload.c (move2add_use_add2_insn): Substitute
|
||
STRICT_LOW_PART only if it is cheaper.
|
||
|
||
2014-06-18 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
|
||
Do not use unspec as call operand. Use memory_operand instead of
|
||
memory_nox32_operand and add "m" operand constraint. Disable
|
||
pattern for TARGET_X32.
|
||
(*sibcall_pop_memory): Ditto.
|
||
(*sibcall_value_memory): Ditto.
|
||
(*sibcall_value_pop_memory): Ditto.
|
||
(sibcall peepholes): Merge SImode and DImode patterns using
|
||
W mode iterator. Use memory_operand instead of memory_nox32_operand.
|
||
Disable pattern for TARGET_X32. Check if eliminated register is
|
||
really dead after call insn. Generate call RTX without unspec operand.
|
||
(sibcall_value peepholes): Ditto.
|
||
(sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
|
||
instead of memory_nox32_operand. Check if eliminated register is
|
||
really dead after call insn. Generate call RTX without unspec operand.
|
||
(sibcall_value_pop peepholes): Ditto.
|
||
* config/i386/predicates.md (memory_nox32_operand): Remove predicate.
|
||
|
||
2014-06-18 Terry Guo <terry.guo@arm.com>
|
||
|
||
PR target/61544
|
||
* config/arm/arm.c (thumb1_reorg): Move to next basic block if we
|
||
reach the head.
|
||
|
||
2014-06-18 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* tree-core.h (tree_block): Add an "end_locus" field, allowing
|
||
memorization of the end of block source location.
|
||
* tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
|
||
* gimplify.c (gimplify_bind_expr): Propagate the block start and
|
||
end source location info we have on the block entry/exit code we
|
||
generate.
|
||
|
||
2014-06-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* common.opt (fssa-phiopt): New option.
|
||
* opts.c (default_options_table): Enable -fssa-phiopt with -O1+
|
||
but not with -Og.
|
||
* tree-ssa-phiopt.c (pass_phiopt): Add gate method.
|
||
* doc/invoke.texi (-fssa-phiopt): Document.
|
||
|
||
2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* genattrtab.c (n_bypassed): New variable.
|
||
(process_bypasses): Initialise n_bypassed.
|
||
Count number of bypassed reservations.
|
||
(make_automaton_attrs): Allocate space for bypassed reservations
|
||
rather than number of bypasses.
|
||
|
||
2014-06-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-propagate.c (replace_phi_args_in): Return whether
|
||
we propagated anything.
|
||
(substitute_and_fold_dom_walker::before_dom_children): Something
|
||
changed if we propagated into PHI arguments.
|
||
* tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
|
||
we removed a stmt.
|
||
|
||
2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_reassociation_width): Add alternative for
|
||
vector case.
|
||
* config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
|
||
* config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
|
||
* tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
|
||
Introduces alternative way of loads group permutaions.
|
||
(vect_transform_grouped_load): Try alternative way of permutations.
|
||
|
||
2014-06-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gimplify.c (omp_notice_variable): If n is non-NULL and no flags
|
||
changed in ORT_TARGET region, don't jump to do_outer.
|
||
(struct gimplify_adjust_omp_clauses_data): New type.
|
||
(gimplify_adjust_omp_clauses_1): Adjust for data being
|
||
a struct gimplify_adjust_omp_clauses_data pointer instead
|
||
of tree *. Pass pre_p as a new argument to
|
||
lang_hooks.decls.omp_finish_clause hook.
|
||
(gimplify_adjust_omp_clauses): Add pre_p argument, adjust
|
||
splay_tree_foreach to pass both list_p and pre_p.
|
||
(gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
|
||
gimplify_omp_workshare, gimplify_omp_target_update): Adjust
|
||
gimplify_adjust_omp_clauses callers.
|
||
* langhooks.c (lhd_omp_finish_clause): New function.
|
||
* langhooks-def.h (lhd_omp_finish_clause): New prototype.
|
||
(LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
|
||
* langhooks.h (struct lang_hooks_for_decls): Add a new
|
||
gimple_seq * argument to omp_finish_clause hook.
|
||
* omp-low.c (scan_sharing_clauses): Call scan_omp_op on
|
||
non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
|
||
(scan_omp_parallel, lower_omp_for): When adding
|
||
_LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
|
||
* tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
|
||
* tree-nested.c (convert_nonlocal_omp_clauses,
|
||
convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
|
||
* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
|
||
|
||
2014-06-17 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
|
||
* tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
|
||
|
||
2014-06-17 Xinliang David Li <davidxl@google.com>
|
||
|
||
* tree-pretty-print.c (dump_function_header): Print cgraph uid.
|
||
* passes.c (pass_init_dump_file): Do not set initialize
|
||
flag to false unconditionally.
|
||
|
||
2014-06-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* genopinit.c (main): Use vec<>::qsort method.
|
||
* tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
|
||
Likewise.
|
||
* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
|
||
|
||
2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
|
||
|
||
* config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
|
||
* config/mips/mips.c (mips_expand_fcc_reload): Remove.
|
||
(mips_move_to_gpr_cost): Remove ST_REGS case.
|
||
(mips_move_from_gpr_cost): Likewise.
|
||
(mips_register_move_cost): Likewise.
|
||
(mips_secondary_reload_class): Likewise.
|
||
|
||
2014-06-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* passes.def (pass_all_early_optimizations): Remove copy-prop pass.
|
||
(pass_all_optimizations): Move 3rd copy-prop pass from after
|
||
fre to before ifcombine/phiopt.
|
||
|
||
2014-06-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-switch-conversion.c (collect_switch_conv_info): Simplify
|
||
and allow all blocks to be forwarders.
|
||
|
||
2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
|
||
|
||
PR target/61483
|
||
* config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
|
||
variable 'size'; calculate 'size' right in the front; use
|
||
'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
|
||
pcum->aapcs_stack_words.
|
||
|
||
2014-06-17 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
|
||
(umulhi3, mulsidi3, umulsidi3): Likewise.
|
||
|
||
2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
PR middle-end/61508
|
||
* fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
|
||
check for section name.
|
||
|
||
2014-06-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-propagate.c: Include domwalk.h.
|
||
(substitute_and_fold): Outline main worker into a domwalker ...
|
||
(substitute_and_fold_dom_walker::before_dom_children): ... here.
|
||
Schedule stmts we can fully propagate for removal. Remove
|
||
poor-mans DCE.
|
||
(substitute_and_fold): Apply a dominator walk to perform
|
||
substitution. Process stmts scheduled for removal here.
|
||
|
||
2014-06-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-loop-im.c (determine_max_movement): Adjust cost
|
||
of PHI node moving.
|
||
|
||
2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||
|
||
* config/arm/arm.c (arm_atomic_assign_expand_fenv): call
|
||
default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
|
||
(arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
|
||
__builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
|
||
* config/arm/vfp.md (set_fpscr): Make pattern conditional on
|
||
TARGET_HARD_FLOAT.
|
||
(get_fpscr) : Likewise.
|
||
|
||
2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/61325
|
||
* lra-constraints.c (valid_address_p): Add forward declaration.
|
||
(simplify_operand_subreg): Check address validity before and after
|
||
alter_reg of memory subreg.
|
||
|
||
2014-06-16 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (decide_alg): Correctly handle
|
||
maximum size of stringop algorithm.
|
||
|
||
2014-06-16 Yury Gribov <y.gribov@samsung.com>
|
||
|
||
* asan.c (build_check_stmt): Fix maybe-uninitialized warning.
|
||
|
||
2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/61522
|
||
* lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
|
||
|
||
2014-06-16 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
Revert:
|
||
* symtab.c (symtab_node::reset_section): New method.
|
||
* cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
|
||
for localization.
|
||
* cgraph.h (reset_section): Declare.
|
||
* ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
|
||
do not consider comdat locals.
|
||
* cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
|
||
for new symbol.
|
||
* ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
|
||
(update_visibility_by_resolution_info): Consider UNDEF; fix checking;
|
||
reset sections of symbols dragged out of the comdats.
|
||
(function_and_variable_visibility): Reset sections of
|
||
localized symbols.
|
||
|
||
2014-06-16 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61482
|
||
* tree-vrp.c (adjust_range_with_scev): Avoid setting of
|
||
[-INF(OVF), +INF(OVF)] range.
|
||
|
||
2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
|
||
instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
|
||
handling 32-bit multiplication.
|
||
|
||
2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
|
||
|
||
PR middle-end/61430
|
||
* lra-lives.c (process_bb_lives): Skip creating copy during
|
||
insn scan when src/dest has constrained to same regno.
|
||
|
||
2014-06-15 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
|
||
DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
|
||
|
||
2014-06-16 Yury Gribov <y.gribov@samsung.com>
|
||
|
||
* asan.c (check_func): New function.
|
||
(maybe_create_ssa_name): Likewise.
|
||
(build_check_stmt_with_calls): Likewise.
|
||
(use_calls_p): Likewise.
|
||
(report_error_func): Change interface.
|
||
(build_check_stmt): Allow non-integer lengths; add support
|
||
for new parameter.
|
||
(asan_instrument): Likewise.
|
||
(instrument_mem_region_access): Moved code to build_check_stmt.
|
||
(instrument_derefs): Likewise.
|
||
(instrument_strlen_call): Likewise.
|
||
* cfgcleanup.c (old_insns_match_p): Add support for new functions.
|
||
* doc/invoke.texi: Describe new parameter.
|
||
* params.def: Define new parameter.
|
||
* params.h: Likewise.
|
||
* sanitizer.def: Describe new builtins.
|
||
|
||
2014-06-16 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
|
||
Make all defs available at the end.
|
||
(eliminate): If we remove a PHI node schedule cfg-cleanup.
|
||
|
||
2014-06-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR plugins/45078
|
||
* config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
|
||
|
||
2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR bootstrap/61516
|
||
* auto-inc-dec.c (merge_in_block): Fix location of insn_info
|
||
initialization. Replace remaining use of uid.
|
||
|
||
2014-06-15 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* c-family/c-common.c (handle_tls_model_attribute): Use
|
||
set_decl_tls_model.
|
||
* c-family/c-common.c (handle_tls_model_attribute): Use
|
||
set_decl_tls_model.
|
||
* cgraph.h (struct varpool_node): Add tls_model.
|
||
* tree.c (decl_tls_model, set_decl_tls_model): New functions.
|
||
* tree.h (DECL_TLS_MODEL): Update.
|
||
(DECL_THREAD_LOCAL_P): Check that variable is static.
|
||
(decl_tls_model): Declare.
|
||
(set_decl_tls_model): Declare.
|
||
* tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
|
||
set symbol prorperties.
|
||
(get_emutls_init_templ_addr): Cleanup.
|
||
(new_emutls_decl): Update.
|
||
* lto-cgraph.c (lto_output_varpool_node): Stream TLS model
|
||
(lto_input_varpool_node): Likewise.
|
||
* lto-streamer-out.c (hash_tree): Likewise.
|
||
* tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
|
||
not stream DECL_TLS_MODEL.
|
||
* tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
|
||
* tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
|
||
|
||
2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
|
||
|
||
2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
|
||
(df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
|
||
lists.
|
||
(df_scan_bb_info): Likewise artificial_defs and artificial_uses.
|
||
(DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
|
||
(FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
|
||
(FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
|
||
(FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
|
||
(df_get_artificial_defs, df_get_artificial_uses)
|
||
(df_single_def, df_single_use): Update accordingly.
|
||
(df_refs_chain_dump): Take the first element in a linked list as
|
||
parameter, rather than a pointer to an array of pointers.
|
||
* df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
|
||
* df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
|
||
(df_chain_create_bb_process_use): Likewise.
|
||
(df_md_bb_local_compute_process_def): Likewise.
|
||
* fwprop.c (process_defs, process_uses): Likewise.
|
||
(register_active_defs, update_uses): Likewise.
|
||
(forward_propagate_asm): Update for new df_ref linking.
|
||
* df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
|
||
(df_null_ref_rec, df_null_mw_rec): Likewise.
|
||
(df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
|
||
explicitly.
|
||
(df_scan_free_bb_info): Remove check for null artificial_defs.
|
||
(df_install_ref_incremental): Adjust for new df_ref linking.
|
||
Use a single-element insertion rather than a full sort.
|
||
(df_ref_chain_delete_du_chain): Take the first element
|
||
in a linked list as parameter, rather than a pointer to an array of
|
||
pointers.
|
||
(df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
|
||
(df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
|
||
(df_insn_info_delete): Remove check for null defs and call to
|
||
df_scan_free_mws_vec.
|
||
(df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
|
||
null rather than df_null_*_rec.
|
||
(df_insn_rescan_debug_internal): Likewise, and update null
|
||
checks in the same way. Remove check for null defs.
|
||
(df_ref_change_reg_with_loc_1): Fix choice of list for defs.
|
||
Move a single element rather doing a full sort.
|
||
(df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
|
||
linking.
|
||
(df_notes_rescan): Likewise. Use a merge rather than a full sort.
|
||
Initialize df_ref and df_mw_hardreg lists to null rather than
|
||
df_null_*_rec.
|
||
(df_ref_compare): Take df_refs as parameter, transferring the
|
||
old interface to...
|
||
(df_ref_ptr_compare): ...this new function.
|
||
(df_sort_and_compress_refs): Update accordingly.
|
||
(df_mw_compare): Take df_mw_hardregs as parameter, transferring the
|
||
old interface to...
|
||
(df_mw_ptr_compare): ...this new function.
|
||
(df_sort_and_compress_mws): Update accordingly.
|
||
(df_install_refs, df_install_mws): Return a linked list rather than
|
||
an array of pointers.
|
||
(df_refs_add_to_chains): Assert that old lists are empty rather
|
||
than freeing them.
|
||
(df_insn_refs_verify): Don't handle null defs speciailly.
|
||
* web.c (union_match_dups): Update for new df_ref linking.
|
||
|
||
2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* df.h (df_ref_create, df_ref_remove): Delete.
|
||
* df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
|
||
(df_ref_remove): Likewise.
|
||
|
||
2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* df.h (df_single_def, df_single_use): New functions.
|
||
* ira.c (find_moveable_pseudos): Use them.
|
||
|
||
2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* df.h (FOR_EACH_INSN_INFO_MW): New macro.
|
||
* df-problems.c (df_note_bb_compute): Use it.
|
||
* regstat.c (regstat_bb_compute_ri): Likewise.
|
||
|
||
2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
|
||
* cse.c (cse_extended_basic_block): Use them.
|
||
* dce.c (mark_artificial_use): Likewise.
|
||
* df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
|
||
(df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
|
||
(df_chain_remove_problem, df_chain_bb_dump): Likewise.
|
||
(df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
|
||
(df_simulate_initialize_backwards): Likewise.
|
||
(df_simulate_finalize_backwards): Likewise.
|
||
(df_simulate_initialize_forwards): Likewise.
|
||
(df_md_simulate_artificial_defs_at_top): Likewise.
|
||
* df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
|
||
* regrename.c (init_rename_info): Likewise.
|
||
* regstat.c (regstat_bb_compute_ri): Likewise.
|
||
(regstat_bb_compute_calls_crossed): Likewise.
|
||
|
||
2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
|
||
(FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
|
||
(FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
|
||
* auto-inc-dec.c (find_inc, merge_in_block): Use them.
|
||
* combine.c (create_log_links): Likewise.
|
||
* compare-elim.c (find_flags_uses_in_insn): Likewise.
|
||
(try_eliminate_compare): Likewise.
|
||
* cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
|
||
* dce.c (deletable_insn_p, find_call_stack_args): Likewise.
|
||
(remove_reg_equal_equiv_notes_for_defs): Likewise.
|
||
(reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
|
||
(word_dce_process_block, dce_process_block): Likewise.
|
||
* ddg.c (def_has_ccmode_p): Likewise.
|
||
* df-core.c (df_bb_regno_first_def_find): Likewise.
|
||
(df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
|
||
* df-problems.c (df_rd_simulate_one_insn): Likewise.
|
||
(df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
|
||
(df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
|
||
(df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
|
||
(df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
|
||
(df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
|
||
(df_simulate_find_defs, df_simulate_find_uses): Likewise.
|
||
(df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
|
||
(df_simulate_uses, df_md_simulate_one_insn): Likewise.
|
||
* df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
|
||
* fwprop.c (local_ref_killed_between_p): Likewise.
|
||
(all_uses_available_at, free_load_extend): Likewise.
|
||
* gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
|
||
* hw-doloop.c (scan_loop): Likewise.
|
||
* ifcvt.c (dead_or_predicable): Likewise.
|
||
* init-regs.c (initialize_uninitialized_regs): Likewise.
|
||
* ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
|
||
(process_bb_node_lives): Likewise.
|
||
* ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
|
||
(find_moveable_pseudos): Likewise.
|
||
* loop-invariant.c (check_dependencies, record_uses): Likewise.
|
||
* recog.c (peep2_find_free_register): Likewise.
|
||
* ree.c (get_defs): Likewise.
|
||
* regstat.c (regstat_bb_compute_ri): Likewise.
|
||
(regstat_bb_compute_calls_crossed): Likewise.
|
||
* sched-deps.c (find_inc, find_mem): Likewise.
|
||
* sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
|
||
(maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
|
||
* shrink-wrap.c (requires_stack_frame_p): Likewise.
|
||
(prepare_shrink_wrap): Likewise.
|
||
* store-motion.c (compute_store_table, build_store_vectors): Likewise.
|
||
* web.c (union_defs, pass_web::execute): Likewise.
|
||
* config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
|
||
(insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
|
||
|
||
2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* lra-assign.c (assign_by_spills): Add code to assign vector regs
|
||
to inheritance pseudos.
|
||
* config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
|
||
|
||
2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
PR target/61415
|
||
* config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
|
||
(BU_MISC_2): Rename to ...
|
||
(BU_LDBL128_2): ... this.
|
||
* config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
|
||
(RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
|
||
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
|
||
RS6000_BTM_LDBL128.
|
||
(rs6000_invalid_builtin): Add long double 128-bit builtin support.
|
||
(rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
|
||
* config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
|
||
(unpacktf_1): Likewise.
|
||
* doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
|
||
(__builtin_longdouble_dw1): Likewise.
|
||
* doc/sourcebuild.texi (longdouble128): Document.
|
||
|
||
2014-06-13 Jeff Law <law@redhat.com>
|
||
|
||
PR rtl-optimization/61094
|
||
PR rtl-optimization/61446
|
||
* ree.c (combine_reaching_defs): Get the mode for the copy from
|
||
the extension insn rather than the defining insn.
|
||
|
||
2014-06-13 Dehao Chen <dehao@google.com>
|
||
|
||
* dwarf2out.c (add_linkage_name): Emit more linkage name.
|
||
|
||
2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* doc/install.texi (--enable-linker-plugin-configure-flags)
|
||
(--enable-linker-plugin-flags): Document new flags.
|
||
|
||
2014-06-13 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/61186
|
||
* ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
|
||
cache_token if returning early.
|
||
|
||
2014-06-13 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/rx/rx.h (JUMP_ALIGN): Return the log value if user
|
||
requested alignment is active.
|
||
(LABEL_ALIGN): Likewise.
|
||
(LOOP_ALIGN): Likewise.
|
||
|
||
2014-06-13 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
|
||
Rewrite to propagate the VN result into all uses where
|
||
possible and to remove stmts becoming dead because of that.
|
||
(eliminate): Generalize stmt removal handling, remove in
|
||
reverse dominator order to support proper debug stmt
|
||
generation. Update stmts before removing stmts.
|
||
* tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
|
||
|
||
2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
PR tree-optimization/61375
|
||
* tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
|
||
symbolic number cannot be represented in an uint64_t.
|
||
(find_bswap_or_nop_1): Likewise.
|
||
|
||
2014-06-12 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* symtab.c (symtab_node::reset_section): New method.
|
||
* cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
|
||
for localization.
|
||
* cgraph.h (reset_section): Declare.
|
||
* ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
|
||
do not consider comdat locals.
|
||
* cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
|
||
for new symbol.
|
||
* ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
|
||
(update_visibility_by_resolution_info): Consider UNDEF; fix checking;
|
||
reset sections of symbols dragged out of the comdats.
|
||
(function_and_variable_visibility): Reset sections of
|
||
localized symbols.
|
||
|
||
2014-06-12 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
|
||
to use symtab and decl_binds_to_current_def_p
|
||
* tree-vectorizer.c (increase_alignment): Increase alignment
|
||
of alias target, too.
|
||
|
||
2014-06-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/61486
|
||
* gimplify.c (struct gimplify_omp_ctx): Add distribute field.
|
||
(gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
|
||
if outer combined construct is distribute.
|
||
(gimplify_omp_for): For OMP_DISTRIBUTE set
|
||
gimplify_omp_ctxp->distribute.
|
||
* omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
|
||
GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
|
||
mapping into decl map.
|
||
|
||
2014-06-12 Jason Merrill <jason@redhat.com>
|
||
|
||
* common.opt (fabi-version): Change default to 0.
|
||
|
||
2014-06-12 Jason Merrill <jason@redhat.com>
|
||
|
||
* toplev.c (process_options): Reject -fabi-version=1.
|
||
|
||
2014-06-12 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/61009
|
||
* tree-ssa-threadedge.c (thread_through_normal_block): Correct return
|
||
value when we stop processing a block due to problematic PHIs.
|
||
|
||
2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
|
||
vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
|
||
vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
|
||
vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
|
||
vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
|
||
vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
|
||
vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
|
||
are not in the spec.
|
||
|
||
2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
PR target/59843
|
||
* config/aarch64/aarch64-modes.def: Add V1DFmode.
|
||
* config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
|
||
Support V1DFmode.
|
||
|
||
2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
|
||
|
||
2014-06-12 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/61443
|
||
* config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
|
||
loading from address spaces.
|
||
|
||
2014-06-12 Martin Liska <mliska@suse.cz>
|
||
|
||
PR ipa/61462
|
||
* ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
|
||
statement is reachable.
|
||
|
||
2014-06-11 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* symtab.c (section_hash): New hash.
|
||
(symtab_unregister_node): Clear section before freeing.
|
||
(hash_section_hash_entry): New haser.
|
||
(eq_sections): New function.
|
||
(symtab_node::set_section_for_node): New method.
|
||
(set_section_1): Update.
|
||
(symtab_node::set_section): Take string instead of tree as parameter.
|
||
(symtab_resolve_alias): Update.
|
||
* cgraph.h (section_hash_entry_d): New structure.
|
||
(section_hash_entry): New typedef.
|
||
(cgraph_node): Change comdat_group_ to x_comdat_group,
|
||
change section_ to x_section and turn into section_hash_entry;
|
||
update accestors; put set_section_for_node offline.
|
||
* tree.c (decl_section_name): Turn into string.
|
||
(set_decl_section_name): Change parameter to be string.
|
||
* tree.h (decl_section_name, set_decl_section_name): Update prototypes.
|
||
* sdbout.c (sdbout_one_type): Update.
|
||
* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
|
||
* varasm.c (IN_NAMED_SECTION, get_named_section,
|
||
resolve_unique_section, hot_function_section, get_named_text_section,
|
||
USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
|
||
make_decl_rtl, default_unique_section): Update.
|
||
* config/c6x/c6x.c (c6x_in_small_data_p): Update.
|
||
(c6x_elf_unique_section): Update.
|
||
* config/nios2/nios2.c (nios2_in_small_data_p): Update.
|
||
* config/pa/pa.c (pa_function_section): Update.
|
||
* config/pa/pa.h (IN_NAMED_SECTION_P): Update.
|
||
* config/ia64/ia64.c (ia64_in_small_data_p): Update.
|
||
* config/arc/arc.c (arc_in_small_data_p): Update.
|
||
* config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
|
||
* config/mcore/mcore.c (mcore_unique_section): Update.
|
||
* config/mips/mips.c (mips16_build_function_stub): Update.
|
||
(mips16_build_call_stub): Update.
|
||
(mips_function_rodata_section): Update.
|
||
(mips_in_small_data_p): Update.
|
||
* config/score/score.c (score_in_small_data_p): Update.
|
||
* config/rx/rx.c (rx_in_small_data): Update.
|
||
* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
|
||
(rs6000_xcoff_asm_named_section): Update.
|
||
(rs6000_xcoff_unique_section): Update.
|
||
* config/frv/frv.c (frv_string_begins_with): Update.
|
||
(frv_in_small_data_p): Update.
|
||
* config/v850/v850.c (v850_encode_data_area): Update.
|
||
* config/bfin/bfin.c (DECL_SECTION_NAME): Update.
|
||
(bfin_handle_l1_data_attribute): Update.
|
||
(bfin_handle_l2_attribute): Update.
|
||
* config/mep/mep.c (mep_unique_section): Update.
|
||
* config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
|
||
Update.
|
||
* config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
|
||
(h8300_handle_tiny_data_attribute): Update.
|
||
* config/m32r/m32r.c (m32r_in_small_data_p): Update.
|
||
(m32r_in_small_data_p): Update.
|
||
* config/alpha/alpha.c (alpha_in_small_data_p): Update.
|
||
* config/i386/i386.c (ix86_in_large_data_p): Update.
|
||
* config/i386/winnt.c (i386_pe_unique_section): Update.
|
||
* config/darwin.c (darwin_function_section): Update.
|
||
* config/lm32/lm32.c (lm32_in_small_data_p): Update.
|
||
* tree-emutls.c (get_emutls_init_templ_addr): Update.
|
||
(new_emutls_decl): Update.
|
||
* lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
|
||
input_varpool_node): Update.
|
||
(ead_string_cst): Turn to ...
|
||
(read_string): ... this one.
|
||
* dwarf2out.c (secname_for_decl): Update.
|
||
* asan.c (asan_protect_global): Update.
|
||
|
||
2014-06-11 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
|
||
cache lines.
|
||
* config/rx/rx.c (rx_option_override): Likewise.
|
||
(rx_align_for_label): Likewise.
|
||
|
||
* config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
|
||
|
||
2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
|
||
|
||
* config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
|
||
prototype.
|
||
|
||
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* common.md: New file.
|
||
* doc/md.texi: Update description of generic, machine-independent
|
||
constraints.
|
||
* config/s390/constraints.md (e): Delete.
|
||
* Makefile.in (md_file): Include common.md.
|
||
* config/m32c/t-m32c (md_file): Likewise.
|
||
* genpreds.c (general_mem): New array.
|
||
(generic_constraint_letters): Remove constraints now defined by
|
||
common.md.
|
||
(add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
|
||
Allow the first character to be '<' or '>' as well.
|
||
* genoutput.c (general_mem): New array.
|
||
(indep_constraints): Remove constraints now defined by common.md.
|
||
(note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
|
||
Remove special handling of 'm'.
|
||
* ira-costs.c (record_reg_classes): Remove special handling of
|
||
constraints now defined by common.md.
|
||
* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
|
||
* ira-lives.c (single_reg_class): Likewise.
|
||
(ira_implicitly_set_insn_hard_regs): Likewise.
|
||
* lra-constraints.c (reg_class_from_constraints): Likewise.
|
||
(process_alt_operands, process_address, curr_insn_transform): Likewise.
|
||
* postreload.c (reload_cse_simplify_operands): Likewise.
|
||
* reload.c (push_secondary_reload, scratch_reload_class)
|
||
(find_reloads, alternative_allows_const_pool_ref): Likewise.
|
||
* reload1.c (maybe_fix_stack_asms): Likewise.
|
||
* targhooks.c (default_secondary_reload): Likewise.
|
||
* stmt.c (parse_output_constraint): Likewise.
|
||
* recog.c (preprocess_constraints): Likewise.
|
||
(constrain_operands, peep2_find_free_register): Likewise.
|
||
(asm_operand_ok): Likewise, but add a comment saying why 'o'
|
||
must be handled specially.
|
||
|
||
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
|
||
* genpreds.c (have_const_dbl_constraints): Delete.
|
||
(add_constraint): Don't set it.
|
||
(write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
|
||
* ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
|
||
constraints using the lookup_constraint logic.
|
||
* ira-lives.c (single_reg_class): Likewise.
|
||
* ira.c (ira_setup_alts): Likewise.
|
||
* lra-constraints.c (process_alt_operands): Likewise.
|
||
* recog.c (asm_operand_ok, constrain_operands): Likewise.
|
||
* reload.c (find_reloads): Likewise.
|
||
|
||
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* genpreds.c (const_int_start, const_int_end): New variables.
|
||
(choose_enum_order): Output CONST_INT constraints before memory
|
||
constraints.
|
||
(write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
|
||
Add CT_CONST_INT.
|
||
* ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
|
||
* ira.c (ira_setup_alts): Likewise.
|
||
* lra-constraints.c (process_alt_operands): Likewise.
|
||
* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
|
||
* reload.c (find_reloads): Likewise.
|
||
|
||
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
|
||
decmem_ok and incmem_ok. Reformat other bitfields for consistency.
|
||
* recog.c (preprocess_constraints): Update accordingly.
|
||
|
||
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
|
||
(REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
|
||
(EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
|
||
* genpreds.c (print_type_tree): New function.
|
||
(write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
|
||
REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
|
||
EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
|
||
Write out enum constraint_type and get_constraint_type.
|
||
* lra-constraints.c (satisfies_memory_constraint_p): Take a
|
||
constraint_num rather than a constraint string.
|
||
(satisfies_address_constraint_p): Likewise.
|
||
(reg_class_from_constraints): Avoid old constraint macros.
|
||
(process_alt_operands, process_address_1): Likewise.
|
||
(curr_insn_transform): Likewise.
|
||
* ira-costs.c (record_reg_classes): Likewise.
|
||
(record_operand_costs): Likewise.
|
||
* ira-lives.c (single_reg_class): Likewise.
|
||
(ira_implicitly_set_insn_hard_regs): Likewise.
|
||
* ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
|
||
* postreload.c (reload_cse_simplify_operands): Likewise.
|
||
* recog.c (asm_operand_ok, preprocess_constraints): Likewise.
|
||
(constrain_operands, peep2_find_free_register): Likewise.
|
||
* reload.c (push_secondary_reload, scratch_reload_class): Likewise.
|
||
(find_reloads, alternative_allows_const_pool_ref): Likewise.
|
||
* reload1.c (maybe_fix_stack_asms): Likewise.
|
||
* stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
|
||
* targhooks.c (default_secondary_reload): Likewise.
|
||
* config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
|
||
to EXTRA_CONSTRAINT_STR.
|
||
* config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
|
||
|
||
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* genpreds.c (write_constraint_satisfied_p_1): Replace with...
|
||
(write_constraint_satisfied_p_array): ...this new function.
|
||
(write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
|
||
an array.
|
||
(write_insn_preds_c): Update accordingly.
|
||
|
||
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* genpreds.c (write_lookup_constraint): Rename to...
|
||
(write_lookup_constraint_1): ...this.
|
||
(write_lookup_constraint_array): New function.
|
||
(write_tm_preds_h): Define lookup_constraint as an inline function
|
||
that uses write_lookup_constraint_array where possible.
|
||
(write_insn_preds_c): Update for the changes above.
|
||
|
||
2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* doc/md.texi (regclass_for_constraint): Rename to...
|
||
(reg_class_for_constraint): ...this.
|
||
* genpreds.c (num_constraints, enum_order, register_start)
|
||
(register_end, satisfied_start, memory_start, memory_end)
|
||
(address_start, address_end): New variables.
|
||
(add_constraint): Count the number of constraints.
|
||
(choose_enum_order): New function.
|
||
(write_enum_constraint_num): Iterate over enum_order.
|
||
(write_regclass_for_constraint): Rename to...
|
||
(write_reg_class_for_constraint_1): ...this and update output
|
||
accordingly.
|
||
(write_constraint_satisfied_p): Rename to...
|
||
(write_constraint_satisfied_p_1): ...this and update output
|
||
accordingly. Do nothing if all extra constraints are register
|
||
constraints.
|
||
(write_insn_extra_memory_constraint): Delete.
|
||
(write_insn_extra_address_constraint): Delete.
|
||
(write_range_function): New function.
|
||
(write_tm_preds_h): Define constraint_satisfied_p and
|
||
reg_class_for_constraint as inline functions that do a range check
|
||
before calling the out-of-line function. Use write_range_function
|
||
to implement insn_extra_{register,memory,address}_constraint,
|
||
the first of which is new.
|
||
(write_insn_preds_c): Update after above changes to write_* functions.
|
||
(main): Call choose_enum_order.
|
||
|
||
2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
PR tree-optimization/61306
|
||
* tree-ssa-math-opts.c (struct symbolic_number): Store type of
|
||
expression instead of its size.
|
||
(do_shift_rotate): Adapt to change in struct symbolic_number. Return
|
||
false to prevent optimization when the result is unpredictable due to
|
||
arithmetic right shift of signed type with highest byte is set.
|
||
(verify_symbolic_number_p): Adapt to change in struct symbolic_number.
|
||
(init_symbolic_number): Likewise.
|
||
(find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
|
||
when the result is unpredictable due to sign extension.
|
||
|
||
2014-06-11 Terry Guo <terry.guo@arm.com>
|
||
|
||
* config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
|
||
(*thumb1_addsi3): Ditto.
|
||
(*thumb_subdi3): Ditto.
|
||
(thumb1_subsi3_insn): Ditto.
|
||
(*thumb_mulsi3): Ditto.
|
||
(*thumb_mulsi3_v6): Ditto.
|
||
(*thumb1_andsi3_insn): Ditto.
|
||
(thumb1_bicsi3): Ditto.
|
||
(*thumb1_iorsi3_insn): Ditto.
|
||
(*thumb1_xorsi3_insn): Ditto.
|
||
(*thumb1_ashlsi3): Ditto.
|
||
(*thumb1_ashrsi3): Ditto.
|
||
(*thumb1_lshrsi3): Ditto.
|
||
(*thumb1_rotrsi3): Ditto.
|
||
(*thumb1_negdi2): Ditto.
|
||
(*thumb1_negsi2): Ditto.
|
||
(*thumb1_abssi2): Ditto.
|
||
(*thumb1_neg_abssi2): Ditto.
|
||
(*thumb1_one_cmplsi2): Ditto.
|
||
(*thumb1_zero_extendhisi2): Ditto.
|
||
(*thumb1_zero_extendqisi2): Ditto.
|
||
(*thumb1_zero_extendqisi2_v6): Ditto.
|
||
(thumb1_extendhisi2): Ditto.
|
||
(thumb1_extendqisi2): Ditto.
|
||
(*thumb1_movdi_insn): Ditto.
|
||
(*thumb1_movsi_insn): Ditto.
|
||
(*thumb1_movhi_insn): Ditto.
|
||
(thumb_movhi_clobber): Ditto.
|
||
(*thumb1_movqi_insn): Ditto.
|
||
(*thumb1_movhf): Ditto.
|
||
(*thumb1_movsf_insn): Ditto.
|
||
(*thumb_movdf_insn): Ditto.
|
||
(movmem12b): Ditto.
|
||
(movmem8b): Ditto.
|
||
(cbranchqi4): Ditto.
|
||
(cbranchsi4_insn): Ditto.
|
||
(cbranchsi4_scratch): Ditto.
|
||
(*negated_cbranchsi4): Ditto.
|
||
(*tbit_cbranch): Ditto.
|
||
(*tlobits_cbranch): Ditto.
|
||
(*tstsi3_cbranch): Ditto.
|
||
(*cbranchne_decr1): Ditto.
|
||
(*addsi3_cbranch): Ditto.
|
||
(*addsi3_cbranch_scratch): Ditto.
|
||
(*thumb_cmpdi_zero): Ditto.
|
||
(cstoresi_eq0_thumb1): Ditto.
|
||
(cstoresi_ne0_thumb1): Ditto.
|
||
(*cstoresi_eq0_thumb1_insn): Ditto.
|
||
(*cstoresi_ne0_thumb1_insn): Ditto.
|
||
(cstoresi_nltu_thumb1): Ditto.
|
||
(cstoresi_ltu_thumb1): Ditto.
|
||
(thumb1_addsi3_addgeu): Ditto.
|
||
(*thumb_jump): Ditto.
|
||
(*call_reg_thumb1_v5): Ditto.
|
||
(*call_reg_thumb1): Ditto.
|
||
(*call_value_reg_thumb1_v5): Ditto.
|
||
(*call_value_reg_thumb1): Ditto.
|
||
(*call_insn): Ditto.
|
||
(*call_value_insn): Ditto.
|
||
(thumb1_casesi_internal_pic): Ditto.
|
||
(thumb1_casesi_dispatch): Ditto.
|
||
(*thumb1_indirect_jump): Ditto.
|
||
(prologue_thumb1_interwork): Ditto.
|
||
(*epilogue_insns): Ditto.
|
||
(consttable_1): Ditto.
|
||
(consttable_2): Ditto.
|
||
(tablejump): Ditto.
|
||
(*thumb1_tablejump): Ditto.
|
||
(thumb_eh_return): Ditto.
|
||
(define_peephole2): Two of them are thumb1 only and got moved into
|
||
new file thumb1.md.
|
||
(define_split): Six of them are thumb1 only and got moved into new
|
||
file thumb1.md.
|
||
* config/arm/thumb1.md: New file comprised of above thumb1 only
|
||
patterns.
|
||
|
||
2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
|
||
* Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
|
||
dependencies.
|
||
* config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
|
||
(aarch64_crc_builtin_datum): New struct.
|
||
(aarch64_crc_builtin_data): New.
|
||
(aarch64_init_crc32_builtins): New function.
|
||
(aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
|
||
(aarch64_crc32_expand_builtin): New.
|
||
(aarch64_expand_builtin): Add CRC32 builtin expansion case.
|
||
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
|
||
__ARM_FEATURE_CRC32 when appropriate.
|
||
(TARGET_CRC32): Define.
|
||
* config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
|
||
UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
|
||
UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
|
||
(aarch64_<crc_variant>): New pattern.
|
||
* config/aarch64/arm_acle.h: New file.
|
||
* config/aarch64/iterators.md (CRC): New int iterator.
|
||
(crc_variant, crc_mode): New int attributes.
|
||
* doc/aarch64-acle-intrinsics.texi: New file.
|
||
* doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
|
||
Include aarch64-acle-intrinsics.texi.
|
||
|
||
2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
|
||
|
||
* tree-vect-data-refs.c (vect_grouped_store_supported): New
|
||
check for stores group of length 3.
|
||
(vect_permute_store_chain): New permutations for stores group of
|
||
length 3.
|
||
* tree-vect-stmts.c (vect_model_store_cost): Change cost
|
||
of vec_perm_shuffle for the new permutations.
|
||
|
||
2014-06-11 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-visibility.c (function_and_variable_visibility): Disable virtual
|
||
table rewriting temporarily on targets not supporting ONE_ONLY.
|
||
|
||
2014-06-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/61437
|
||
Revert
|
||
2014-06-04 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
|
||
TREE_PUBLIC and DECL_EXTERNAL decls.
|
||
|
||
2014-06-10 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* varasm.c (set_implicit_section): New function.
|
||
(resolve_unique_section): Use it to set implicit section
|
||
for aliases, too.
|
||
(get_named_text_section): Use symtab_get_node (decl)->implicit_section
|
||
(default_function_section): Likewise.
|
||
(decl_binds_to_current_def_p): Constify argument.
|
||
* varasm.h (decl_binds_to_current_def_p): Update prototype.
|
||
* asan.c (asan_protect_global): Use
|
||
symtab_get_node (decl)->implicit_section.
|
||
* symtab.c (dump_symtab_base): Dump implicit sections.
|
||
(verify_symtab_base): Verify sanity of sectoins and comdats.
|
||
(symtab_resolve_alias): Alias share the section of its target.
|
||
(set_section_1): New function.
|
||
(symtab_node::set_section): Move here, recurse to aliases.
|
||
(verify_symtab): Check for duplicated symtab lists.
|
||
* tree-core.h (implicit_section_name_p): Remove.
|
||
* tree-vect-data-refs.c: Include varasm.h.
|
||
(vect_can_force_dr_alignment_p): Fix conditional on when
|
||
decl bints to current definition; use
|
||
symtab_get_node (decl)->implicit_section.
|
||
* cgraph.c (cgraph_make_node_local_1): Fix section set.
|
||
* cgraph.h (struct symtab_node): Add implicit_section.
|
||
(set_section): Rename to ...
|
||
(set_section_for_node): ... this one.
|
||
(set_section): Declare.
|
||
* tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
|
||
* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
|
||
input_overwrite_node, input_varpool_node): Stream implicit_section.
|
||
* ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
|
||
removal; it will fail in LTO.
|
||
|
||
2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
|
||
Change second alternative type to f_mcr.
|
||
* config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
|
||
and 12th alternatives' types to f_mcr and f_mrc.
|
||
(*movdi_aarch64): Same for 12th and 13th alternatives.
|
||
(*movsf_aarch64): Change 9th alternatives' type to mov_reg.
|
||
(aarch64_movtilow_tilow): Change type to fmov.
|
||
|
||
2014-06-10 Jiong Wang <jiong.wang@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
|
||
(aarch64_save_or_restore_callee_save_registers): Fix layout.
|
||
|
||
2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
|
||
New expander.
|
||
(aarch64_sqrdmulh_lane<mode>): Likewise.
|
||
(aarch64_sq<r>dmulh_lane<mode>): Rename to...
|
||
(aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
|
||
(aarch64_sqdmulh_laneq<mode>): New expander.
|
||
(aarch64_sqrdmulh_laneq<mode>): Likewise.
|
||
(aarch64_sq<r>dmulh_laneq<mode>): Rename to...
|
||
(aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
|
||
(aarch64_sqdmulh_lane<mode>): New expander.
|
||
(aarch64_sqrdmulh_lane<mode>): Likewise.
|
||
(aarch64_sq<r>dmulh_lane<mode>): Rename to...
|
||
(aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
|
||
(aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
|
||
(aarch64_sqdmlal_laneq<mode>): Likewise.
|
||
(aarch64_sqdmlsl_lane<mode>): Likewise.
|
||
(aarch64_sqdmlsl_laneq<mode>): Likewise.
|
||
(aarch64_sqdmlal2_lane<mode>): Likewise.
|
||
(aarch64_sqdmlal2_laneq<mode>): Likewise.
|
||
(aarch64_sqdmlsl2_lane<mode>): Likewise.
|
||
(aarch64_sqdmlsl2_laneq<mode>): Likewise.
|
||
(aarch64_sqdmull_lane<mode>): Likewise.
|
||
(aarch64_sqdmull_laneq<mode>): Likewise.
|
||
(aarch64_sqdmull2_lane<mode>): Likewise.
|
||
(aarch64_sqdmull2_laneq<mode>): Likewise.
|
||
|
||
2014-06-10 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61438
|
||
* tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
|
||
(eliminate_dom_walker::before_dom_children): Only try to inhibit
|
||
insertion of IVs if running PRE.
|
||
(eliminate): Adjust.
|
||
(pass_pre::execute): Likewise.
|
||
(pass_fre::execute): Likewise.
|
||
|
||
2014-06-10 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/61456
|
||
* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
|
||
Do not use the main variant for the type comparison.
|
||
(ncr_compar): Likewise.
|
||
(nonoverlapping_component_refs_p): Likewise.
|
||
|
||
2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
|
||
REG_CFA_RESTORE mode.
|
||
|
||
2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
|
||
|
||
* config/i386/i386.c (expand_vec_perm_pblendv): New.
|
||
* config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
|
||
expand_vec_perm_pblendv.
|
||
|
||
2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
|
||
available.
|
||
Simplify description of __crc32d and __crc32cd intrinsics.
|
||
* doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
|
||
availability.
|
||
|
||
2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
PR lto/61334
|
||
* configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
|
||
* config.in: Regenerate.
|
||
* configure: Likewise.
|
||
|
||
2014-06-10 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-reference.c (is_proper_for_analysis): Exclude addressable
|
||
and public vars.
|
||
(intersect_static_var_sets): Remove.
|
||
(propagate): Do not prune local statics.
|
||
|
||
2014-06-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR fortran/60928
|
||
* omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
|
||
Set lastprivate_firstprivate even if omp_private_outer_ref
|
||
langhook returns true.
|
||
<case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
|
||
langhook, call unshare_expr on new_var and call
|
||
build_outer_var_ref to get the last argument.
|
||
|
||
2014-06-10 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/60988
|
||
* doc/extend.texi: Add cindex for transparent_union.
|
||
|
||
2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
* tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
|
||
init_symbolic_number ().
|
||
|
||
2014-05-18 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
PR middle-end/61141
|
||
* emit-rtl.c (reset_all_used_flags): In a sequence, check that
|
||
XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
|
||
(verify_rtl_sharing): Likewise.
|
||
|
||
2014-06-09 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR c++/54442
|
||
* tree.c (build_qualified_type): Use a canonical type for
|
||
TYPE_CANONICAL.
|
||
|
||
2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/arm-modes.def: Remove XFmode.
|
||
|
||
2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
PR target/61062
|
||
* config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
|
||
vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
|
||
vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
|
||
vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
|
||
vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
|
||
vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
|
||
vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
|
||
vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
|
||
vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
|
||
|
||
2014-06-09 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* tree-core.h (tree_decl_with_vis): Remove section_name.
|
||
|
||
2014-06-09 Kito Cheng <kito@0xlab.org>
|
||
|
||
* ira.c (ira): Don't call init_caller_save if LRA enabled
|
||
since LRA use its own infrastructure to handle that.
|
||
|
||
2014-06-07 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* symtab.c (dump_symtab_base): Update dumping.
|
||
(symtab_make_decl_local): Clear only DECL_COMDAT.
|
||
* tree-vect-data-refs.c (Check that variable is static before
|
||
tampering with sections.
|
||
* cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
|
||
(cgraph_create_virtual_clone): Likewise.
|
||
* tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
|
||
(decl_section_name, set_decl_section_name): New accessors.
|
||
(find_decls_types_r): Do not walk section name
|
||
* tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
|
||
(decl_comdat_group, decl_comdat_group_id): Constify.
|
||
(decl_section_name, set_decl_section_name): Update.
|
||
* varpool.c (varpool_finalize_named_section_flags): Use get_section.
|
||
* cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
|
||
(cgraph_make_node_local_1): Clear section and comdat group.
|
||
* cgraph.h (set_comdat_group): Sanity check.
|
||
(get_section, set_section): New.
|
||
* ipa-comdats.c (ipa_comdats): Use get_section.
|
||
* ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
|
||
* lto-streamer-out.c: Do not follow section names.
|
||
* c-family/c-common.c (handle_section_attribute): Update.
|
||
* lto-cgraph.c (lto_output_node): Output section.
|
||
(lto_output_varpool_node): Likewise.
|
||
(read_comdat_group): Rename to ...
|
||
(read_identifier): ... this one.
|
||
(read_string_cst): New function.
|
||
(input_node, input_varpool_node): Input section names.
|
||
* tree-emutls.c (get_emutls_init_templ_addr): Update.
|
||
(new_emutls_decl): Update.
|
||
(secname_for_decl): Check section names only of static vars.
|
||
* config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
|
||
* config/i386/winnt.c (i386_pe_unique_section): Likewise.
|
||
* config/i386/i386.c (x86_64_elf_unique_section): Likewise.
|
||
* config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
|
||
* config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
|
||
* config/mcore/mcore.c (mcore_unique_section): Likewise.
|
||
* config/mips/mips.c (mips16_build_function_stub): Likewise.
|
||
* config/v850/v850.c (v850_insert_attributes): Likewise.
|
||
* config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
|
||
Likewise.
|
||
(h8300_handle_tiny_data_attribute): Likewise.
|
||
* config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
|
||
(bfin_handle_l2_attribute): Likewise.
|
||
|
||
2014-06-07 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
|
||
remove static initializer.
|
||
|
||
2014-06-07 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* varasm.c (use_blocks_for_decl_p): Check symbol table
|
||
instead of alias attribute.
|
||
(place_block_symbol): Recurse on aliases.
|
||
|
||
2014-06-07 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-visibility.c: Include varasm.h
|
||
(can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
|
||
|
||
2014-06-07 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
|
||
outputting aliases.
|
||
|
||
2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
* gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
|
||
from test_insn into GGC space escape via SET_SRC.
|
||
|
||
2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
|
||
call statement, if any.
|
||
(gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
|
||
statements, if any. Tidy up.
|
||
|
||
2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/61431
|
||
* config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
|
||
iterators, VSX_D that handles 64-bit types, and VSX_LE that
|
||
handles swapping the two 64-bit double words on little endian
|
||
systems. Include V1TImode and optionally TImode in VSX_LE so that
|
||
these types are properly swapped. Change all of the insns and
|
||
splits that do the 64-bit swaps to use VSX_LE.
|
||
(vsx_le_perm_load_<mode>): Likewise.
|
||
(vsx_le_perm_store_<mode>): Likewise.
|
||
(splitters for little endian memory operations): Likewise.
|
||
(vsx_xxpermdi2_le_<mode>): Likewise.
|
||
(vsx_lxvd2x2_le_<mode>): Likewise.
|
||
(vsx_stxvd2x2_le_<mode>): Likewise.
|
||
|
||
2014-06-06 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/61423
|
||
* config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
|
||
define_insn_and_split pattern, merged from *floatunssi<mode>2_1
|
||
and corresponding splitters. Zero extend general register
|
||
or memory input operand to XMM temporary. Enable for
|
||
TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
|
||
(floatunssi<mode>2): Update expander predicate.
|
||
|
||
2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/61325
|
||
* lra-constraints.c (process_address_1): Check scale equal to one
|
||
to prevent transformation: base + scale * index => base + new_reg.
|
||
|
||
2014-06-06 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/59299
|
||
* tree-ssa-sink.c (all_immediate_uses_same_place): Work on
|
||
a def operand.
|
||
(nearest_common_dominator_of_uses): Likewise.
|
||
(statement_sink_location): Adjust. Support sinking loads.
|
||
|
||
2014-06-06 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ipa-prop.c (get_place_in_agg_contents_list): New function.
|
||
(build_agg_jump_func_from_list): Likewise.
|
||
(determine_known_aggregate_parts): Renamed to
|
||
determine_locally_known_aggregate_parts. Moved some functionality
|
||
to the two functions above, removed bound checks.
|
||
|
||
2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
|
||
* config/aarch64/aarch64.c (aarch64_move_pointer): New.
|
||
(aarch64_progress_pointer): Likewise.
|
||
(aarch64_copy_one_part_and_move_pointers): Likewise.
|
||
(aarch64_expand_movmen): Likewise.
|
||
* config/aarch64/aarch64.h (MOVE_RATIO): Set low.
|
||
* config/aarch64/aarch64.md (movmem<mode>): New.
|
||
|
||
2014-06-06 Bingfeng Mei <bmei@broadcom.com>
|
||
|
||
* targhooks.c (default_add_stmt_cost): Call target specific
|
||
hook instead of default one.
|
||
|
||
2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
* ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
|
||
endianness instead of host endianness.
|
||
* tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
|
||
comments.
|
||
|
||
2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR debug/53927
|
||
* function.c (instantiate_decls): Process the saved static chain.
|
||
(expand_function_start): If not optimizing, save the static chain
|
||
onto the stack.
|
||
* tree-nested.c (convert_all_function_calls): Always create the static
|
||
chain for nested functions if not optimizing.
|
||
|
||
2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
|
||
|
||
2014-06-06 Richard Biener <rguenther@suse.de>
|
||
|
||
* cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
|
||
(construct_init_block): Likewise.
|
||
(construct_exit_block): Likewise.
|
||
(pass_expand::execute): Likewise.
|
||
* graphite.c (graphite_transforms): Replace check for current_loops
|
||
with a check for > 1 loops.
|
||
(pass_graphite_transforms::execute): Adjust.
|
||
* ipa-split.c (split_function): Remove check for current_loops.
|
||
* omp-low.c (expand_parallel_call): Likewise.
|
||
(expand_omp_for_init_counts): Likewise.
|
||
(extract_omp_for_update_vars): Likewise.
|
||
(expand_omp_for_generic): Likewise.
|
||
(expand_omp_sections): Likewise.
|
||
(expand_omp_target): Likewise.
|
||
* tracer.c (tail_duplicate): Likewise.
|
||
(pass_tracer::execute): Likewise.
|
||
* trans-mem.c (expand_transaction): Likewise.
|
||
* tree-complex.c (expand_complex_div_wide): Likewise.
|
||
* tree-eh.c (lower_resx): Likewise.
|
||
(cleanup_empty_eh_merge_phis): Likewise.
|
||
* tree-predcom.c (run_tree_predictive_commoning): Replace check for
|
||
current_loops with a check for > 1 loops.
|
||
(pass_predcom::execute): Adjust.
|
||
* tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
|
||
* tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
|
||
* tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
|
||
* tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
|
||
* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
|
||
* tree-switch-conversion.c (process_switch): Likewise.
|
||
* tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
|
||
* tree-vrp.c (vrp_visit_phi_node): Likewise.
|
||
(execute_vrp): Likewise.
|
||
* ubsan.c (ubsan_expand_null_ifn): Likewise.
|
||
|
||
2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* rtl.h (insn_location): Declare.
|
||
* cfgcleanup.c (try_forward_edges): Compare the locus of locations
|
||
with UNKNOWN_LOCATION.
|
||
* emit-rtl.c (insn_location): New function.
|
||
* final.c (notice_source_line): Check that the instruction has a
|
||
location before retrieving it and use insn_location.
|
||
* modulo-sched.c (loop_single_full_bb_p): Likewise.
|
||
* print-rtl.c (print_rtx): Likewise.
|
||
|
||
2014-06-06 Richard Biener <rguenther@suse.de>
|
||
|
||
* passes.def: Move 2nd VRP pass before phi-only-cprop.
|
||
|
||
2014-06-06 Christian Bruel <christian.bruel@st.com>
|
||
|
||
PR tree-optimization/43934
|
||
* tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
|
||
cost.
|
||
|
||
2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* ira-lives.c (single_reg_class): Add missing break. Explicitly
|
||
return NO_REGS for extra address and memory constraints. Handle
|
||
operands that match (or are equivalent to something that matches)
|
||
extra constant constraints. Ignore other non-register operands.
|
||
|
||
2014-06-06 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/61300
|
||
* doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
|
||
* doc/tm.texi: Regenerate.
|
||
* function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
|
||
Use throughout in place of REG_PARM_STACK_SPACE.
|
||
* config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
|
||
"incoming" param. Pass to rs6000_function_parms_need_stack.
|
||
(rs6000_function_parms_need_stack): Add "incoming" param, ignore
|
||
prototype_p when incoming. Use function decl when incoming
|
||
to handle K&R style functions.
|
||
* config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
|
||
(INCOMING_REG_PARM_STACK_SPACE): Define.
|
||
|
||
2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
||
|
||
PR target/52472
|
||
* cfgexpand.c (expand_debug_expr): Use address space of nested
|
||
TREE_TYPE for ADDR_EXPR and MEM_REF.
|
||
|
||
2014-06-05 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/61289
|
||
* tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
|
||
DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
|
||
looking for those which match LHS. All callers changed.
|
||
(record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
|
||
parameters and code which manipulated them. All callers changed.
|
||
(record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
|
||
and DST_MAP parameters. Simplify invalidation code by just calling
|
||
invalidate_equivalences. All callers changed.
|
||
(thread_across_edge): Simplify now that we don't need to maintain
|
||
the map of equivalences to invalidate.
|
||
|
||
2014-06-05 Kai Tietz <ktietz@redhat.com>
|
||
Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/46219
|
||
* config/i386/predicates.md (memory_nox32_operand): Add memory_operand
|
||
checking for !TARGET_X32.
|
||
* config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
|
||
(sibcall_intern): New define_insn, plus required peepholes.
|
||
(sibcall_pop_intern): Likewise.
|
||
(sibcall_value_intern): Likewise.
|
||
(sibcall_value_pop_intern): Likewise.
|
||
|
||
2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
|
||
|
||
* tree-inline.c (tree_function_versioning): Check DF info existence
|
||
before accessing it.
|
||
|
||
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
|
||
frame_size.
|
||
* config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
|
||
aarch64_frame hard_fp_offset and frame_size.
|
||
(aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
|
||
frame_size; remove original_frame_size.
|
||
(aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
|
||
(aarch64_initial_elimination_offset): Remove frame_size and
|
||
offset. Use aarch64_frame frame_size.
|
||
|
||
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
Jiong Wang <jiong.wang@arm.com>
|
||
Renlin <renlin.li@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_layout_frame): Correct
|
||
initialization of R30 offset. Update offset. Iterate core
|
||
regisers upto X30. Remove X29, X30 specific code.
|
||
|
||
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
Jiong Wang <jiong.wang@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
|
||
(aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
|
||
(aarch64_register_saved_on_entry): Adjust test.
|
||
|
||
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.h (machine_function): Move
|
||
saved_varargs_size from here...
|
||
(aarch64_frame): ... to here.
|
||
|
||
* config/aarch64/aarch64.c (aarch64_expand_prologue)
|
||
(aarch64_expand_epilogue, aarch64_final_eh_return_addr)
|
||
(aarch64_initial_elimination_offset)
|
||
(aarch64_setup_incoming_varargs): Adjust location of
|
||
saved_varargs_size.
|
||
|
||
2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
|
||
layout comment.
|
||
|
||
2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
|
||
Prachi Godbole <Prachi.Godbole@imgtec.com>
|
||
|
||
* config/mips/mips-cpus.def: Add definition for p5600. Updated
|
||
mips32r5 entry to use PROCESSOR_P5600.
|
||
* config/mips/mips-tables.opt: Regenerate.
|
||
* config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
|
||
* config/mips/mips.c (mips_fmadd_bypass): New function.
|
||
(mips_rtx_cost_data): Add costs for p5600.
|
||
(mips_issue_rate): Add support for p5600.
|
||
(mips_multipass_dfa_lookahead): Likewise.
|
||
* config/mips/mips.h (TUNE_P5600): New define.
|
||
(TUNE_MACC_CHAINS): Add TUNE_P5600.
|
||
(MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
|
||
* config/mips/mips.md: Include p5600.md.
|
||
(processor): Add p5600.
|
||
* config/mips/p5600.md: New file.
|
||
|
||
2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
|
||
|
||
* config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
|
||
* config/i386/predicates.md (palignr_operand): New.
|
||
Indicates if permutation is suitable for palignr instruction.
|
||
|
||
2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
|
||
|
||
PR tree-optimization/61319
|
||
* tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
|
||
stmt belongs to loop.
|
||
|
||
2014-06-05 Richard Biener <rguenther@suse.de>
|
||
|
||
* gimplify.c (create_tmp_from_val): Remove is_formal parameter
|
||
and set DECL_GIMPLE_REG_P unconditionally if appropriate.
|
||
(lookup_tmp_var): Adjust.
|
||
(prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
|
||
|
||
2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/arm.md (enabled): Disable opt_enabled attribute.
|
||
|
||
2014-06-05 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/49706
|
||
* doc/invoke.texi: Document -Wlogical-not-parentheses.
|
||
|
||
2014-06-04 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
|
||
CONST_INT.
|
||
|
||
2014-06-04 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR tree-optimization/61385
|
||
* tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
|
||
|
||
2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
* lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
|
||
changed to use fatal_error.
|
||
(main): Ensure lto_wrapper_cleanup is run atexit.
|
||
|
||
2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* lra-constraints.c (valid_address_p): Move earlier in file.
|
||
(address_eliminator): New structure.
|
||
(satisfies_memory_constraint_p): New function.
|
||
(satisfies_address_constraint_p): Likewise.
|
||
(process_alt_operands, process_address, curr_insn_transform): Use them.
|
||
|
||
2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* lra-int.h (lra_static_insn_data): Make operand_alternative a
|
||
const pointer.
|
||
(target_lra_int, default_target_lra_int, this_target_lra_int)
|
||
(op_alt_data): Delete.
|
||
* lra.h (lra_init): Delete.
|
||
* lra.c (default_target_lra_int, this_target_lra_int): Delete.
|
||
(init_insn_code_data_once): Remove op_alt_data handling.
|
||
(finish_insn_code_data_once): Likewise.
|
||
(init_op_alt_data): Delete.
|
||
(get_static_insn_data): Initialize operand_alternative to null.
|
||
(free_insn_recog_data): Cast operand_alternative before freeing it.
|
||
(setup_operand_alternative): Take the operand_alternative as
|
||
parameter and assume it isn't already cached in the static
|
||
insn data.
|
||
(lra_set_insn_recog_data): Update accordingly.
|
||
(lra_init): Delete.
|
||
* ira.c (ira_init): Don't call lra_init.
|
||
* target-globals.h (this_target_lra_int): Declare.
|
||
(target_globals): Remove lra_int.
|
||
(restore_target_globals): Update accordingly.
|
||
* target-globals.c: Don't include lra-int.h.
|
||
(default_target_globals, save_target_globals): Remove lra_int.
|
||
|
||
2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* recog.h (operand_alternative): Convert reg_class, reject,
|
||
matched and matches into bitfields.
|
||
(preprocess_constraints): New overload.
|
||
(preprocess_insn_constraints): New function.
|
||
(preprocess_constraints): Take the insn as parameter.
|
||
(recog_op_alt): Change into a pointer.
|
||
(target_recog): Add x_op_alt.
|
||
* recog.c (asm_op_alt): New variable.
|
||
(recog_op_alt): Change into a pointer.
|
||
(preprocess_constraints): New overload, replacing the old function
|
||
definition with one that doesn't use global state.
|
||
(preprocess_insn_constraints): New function.
|
||
(preprocess_constraints): Use them. Take the insn as parameter.
|
||
Use asm_op_alt for asms.
|
||
(recog_init): Free existing x_op_alt entries.
|
||
* ira-lives.c (check_and_make_def_conflict): Make operand_alternative
|
||
pointer const.
|
||
(make_early_clobber_and_input_conflicts): Likewise.
|
||
(process_bb_node_lives): Pass the insn to process_constraints.
|
||
* reg-stack.c (check_asm_stack_operands): Likewise.
|
||
(subst_asm_stack_regs): Likewise.
|
||
* regcprop.c (copyprop_hardreg_forward_1): Likewise.
|
||
* regrename.c (build_def_use): Likewise.
|
||
* sched-deps.c (sched_analyze_insn): Likewise.
|
||
* sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
|
||
* config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
|
||
(note_invalid_constants): Likewise.
|
||
* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
|
||
(ix86_legitimate_combined_insn): Make operand_alternative pointer
|
||
const.
|
||
|
||
2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* recog.c (preprocess_constraints): Don't skip disabled alternatives.
|
||
* ira-lives.c (check_and_make_def_conflict): Check for disabled
|
||
alternatives.
|
||
(make_early_clobber_and_input_conflicts): Likewise.
|
||
* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
|
||
|
||
2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* recog.h (alternative_class): New function.
|
||
(which_op_alt): Return a const recog_op_alt.
|
||
* reg-stack.c (check_asm_stack_operands): Update type accordingly.
|
||
(subst_asm_stack_regs): Likewise.
|
||
* config/arm/arm.c (note_invalid_constants): Likewise.
|
||
* regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
|
||
the operand_alternative; use alternative class instead.
|
||
* sel-sched.c (get_reg_class): Likewise.
|
||
* regrename.c (build_def_use): Likewise.
|
||
(hide_operands, restore_operands, record_out_operands): Update type
|
||
accordingly.
|
||
|
||
2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* recog.h (recog_op_alt): Convert to a flat array.
|
||
(which_op_alt): New function.
|
||
* recog.c (recog_op_alt): Convert to a flat array.
|
||
(preprocess_constraints): Update accordingly, grouping all
|
||
operands of the same alternative together, rather than the
|
||
other way around.
|
||
* ira-lives.c (check_and_make_def_conflict): Likewise.
|
||
(make_early_clobber_and_input_conflicts): Likewise.
|
||
* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
|
||
* reg-stack.c (check_asm_stack_operands): Use which_op_alt.
|
||
(subst_asm_stack_regs): Likewise.
|
||
* regcprop.c (copyprop_hardreg_forward_1): Likewise.
|
||
* regrename.c (hide_operands, record_out_operands): Likewise.
|
||
(build_def_use): Likewise.
|
||
* sel-sched.c (get_reg_class): Likewise.
|
||
* config/arm/arm.c (note_invalid_constants): Likewise.
|
||
|
||
2014-06-04 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/51253
|
||
PR c++/61382
|
||
* gimplify.c (gimplify_arg): Non-static.
|
||
* gimplify.h: Declare it.
|
||
|
||
2014-06-04 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
|
||
TREE_PUBLIC and DECL_EXTERNAL decls.
|
||
|
||
2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
|
||
|
||
* regcprop.c (copyprop_hardreg_forward_1): Account for
|
||
HARD_REGNO_CALL_PART_CLOBBERED.
|
||
|
||
2014-06-04 Richard Biener <rguenther@suse.de>
|
||
|
||
* configure.ac: Check whether the underlying type of int64_t
|
||
is long or long long.
|
||
* configure: Regenerate.
|
||
* config.in: Likewise.
|
||
* hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
|
||
(HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
|
||
|
||
2014-06-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60098
|
||
* tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
|
||
we hit a kill.
|
||
(dse_optimize_stmt): Simplify, now that we found a kill
|
||
earlier.
|
||
|
||
2014-06-04 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
|
||
of accesses with non-invariant address.
|
||
|
||
2014-06-04 Martin Liska <mliska@suse.cz>
|
||
|
||
* cgraph.h (cgraph_make_wrapper): New function introduced.
|
||
* cgraphunit.c (cgraph_make_wrapper): The function implementation.
|
||
* ipa-inline.h (inline_analyze_function): The function is global.
|
||
* ipa-inline-analysis.c (inline_analyze_function): Likewise.
|
||
|
||
2014-06-04 Martin Liska <mliska@suse.cz>
|
||
|
||
* tree.h (private_lookup_attribute_starting): New function.
|
||
(lookup_attribute_starting): Likewise.
|
||
* tree.c (private_lookup_attribute_starting): Likewise.
|
||
|
||
2014-06-04 Martin Liska <mliska@suse.cz>
|
||
|
||
* cgraph.h (expand_thunk): New argument added.
|
||
(address_taken_from_non_vtable_p): New global function.
|
||
* ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
|
||
* cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
|
||
* cgraphunit.c (analyze_function): Likewise.
|
||
(assemble_thunks_and_aliases): Argument added to call.
|
||
(expand_thunk): New argument forces to produce GIMPLE thunk.
|
||
|
||
2014-06-04 Martin Liska <mliska@suse.cz>
|
||
|
||
* coverage.h (coverage_compute_cfg_checksum): Argument added.
|
||
* coverage.c (coverage_compute_cfg_checksum): Likewise.
|
||
* profile.c (branch_prob): Likewise.
|
||
|
||
2014-06-04 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/61340
|
||
* ipa-pure-const.c (propagate_pure_const): Add unreachable default
|
||
handler for switch on an ipa_ref_use enum.
|
||
* ipa-reference.c (analyze_function): Likewise.
|
||
|
||
2014-06-04 Kai Tietz <ktietz@redhat.com>
|
||
|
||
* recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
|
||
from old call-instruction.
|
||
|
||
2014-06-04 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_classify_address)
|
||
(aarch64_legitimize_reload_address): Support full addressing modes
|
||
for vector modes.
|
||
* config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
|
||
(*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
|
||
|
||
2014-06-03 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
|
||
for OP0.
|
||
|
||
2014-06-03 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
|
||
(aarch64_rtx_costs): Use aarch64_if_then_else_costs.
|
||
|
||
2014-06-03 Kai Tietz <ktietz@redhat.com>
|
||
|
||
* config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
|
||
for 64-bit ms-abi.
|
||
|
||
2014-06-03 Dehao Chen <dehao@google.com>
|
||
|
||
* tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
|
||
the same loop.
|
||
|
||
2014-06-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/60439
|
||
* doc/invoke.texi: Document -Wswitch-bool.
|
||
* function.c (stack_protect_epilogue): Cast controlling expression of
|
||
the switch to int.
|
||
* gengtype.c (walk_type): Generate switch expression with its
|
||
controlling expression cast to int.
|
||
|
||
2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
|
||
|
||
* config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
|
||
and attiny841.
|
||
* config/avr/avr-tables.opt: Regenerate.
|
||
* config/avr/t-multilib: Regenerate.
|
||
* doc/avr-mmcu.texi: Regenerate.
|
||
|
||
2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
|
||
Pitchumani Sivanupandi <pitchumani.s@atmel.com>
|
||
|
||
* config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
|
||
(ata6617c, ata664251): Add new avr35 devices.
|
||
(ata6612c): Add new avr4 device.
|
||
(ata6613c, ata6614q): Add new avr5 devices.
|
||
* config/avr/avr-tables.opt: Regenerate.
|
||
* config/avr/t-multilib: Regenerate.
|
||
* doc/avr-mmcu.texi: Regenerate.
|
||
|
||
2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* gcc/config/aarch64/aarch64-builtins.c
|
||
(aarch64_types_binop_ssu_qualifiers): New static data.
|
||
(TYPES_BINOP_SSU): Define.
|
||
* gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
|
||
urshr_n, ushll_n): Use appropriate unsigned qualifiers.
|
||
* gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
|
||
vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
|
||
vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
|
||
vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
|
||
vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
|
||
vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
|
||
vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
|
||
suffix to builtin function name, remove cast.
|
||
(vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
|
||
vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
|
||
vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
|
||
|
||
2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* gcc/config/aarch64/aarch64-builtins.c
|
||
(aarch64_types_binop_uus_qualifiers,
|
||
aarch64_types_shift_to_unsigned_qualifiers,
|
||
aarch64_types_unsigned_shiftacc_qualifiers): Define.
|
||
* gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
|
||
uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
|
||
sqshlu_n, uqshl_n): Update qualifiers.
|
||
* gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
|
||
vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
|
||
vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
|
||
vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
|
||
vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
|
||
vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
|
||
vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
|
||
vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
|
||
vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
|
||
vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
|
||
vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
|
||
vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
|
||
vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
|
||
vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
|
||
vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
|
||
vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
|
||
vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
|
||
vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
|
||
vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
|
||
vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
|
||
vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
|
||
vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
|
||
vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
|
||
vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
|
||
vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
|
||
vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
|
||
vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
|
||
|
||
2014-06-03 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* tree-sra.c (modify_function): Record caller nodes after rebuild.
|
||
|
||
2014-06-02 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/61020
|
||
* varpool.c (ctor_for_folding): Handle uninitialized vtables.
|
||
|
||
2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
|
||
location == 0.
|
||
|
||
2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
|
||
New pattern.
|
||
* config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
|
||
(aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
|
||
* config/aarch64/iterators.md (REVERSE): New iterator.
|
||
(UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
|
||
(rev_op): New int_attribute.
|
||
* config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
|
||
vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
|
||
vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
|
||
vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
|
||
vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
|
||
vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
|
||
vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
|
||
Replace temporary __asm__ with __builtin_shuffle.
|
||
|
||
2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
|
||
|
||
* config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
|
||
mips64r5.
|
||
* config/mips/mips-tables.opt: Regenerate.
|
||
* config/mips/mips.c (mips_compute_frame_info): Changed if statement
|
||
to use mips_isa_rev rather than ISA_MIPS32R2.
|
||
* config/mips/mips.h (ISA_MIPS32R3): New define.
|
||
(ISA_MIPS32R5): New define.
|
||
(ISA_MIPS64R3): New define.
|
||
(ISA_MIPS64R5): New define.
|
||
(TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
|
||
ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
|
||
(MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
|
||
and mips64r5.
|
||
(MIPS_ISA_SYNCI_SPEC): Likewise.
|
||
(ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
|
||
(LINK_SPEC): Added mips32r3 and mips32r5.
|
||
* config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
|
||
to mips32r2; and mips64r3 and mips64r5 to mips64r2.
|
||
* config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
|
||
* config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
|
||
* config/mips/t-sde (MULTILIB_MATCHES): Likewise.
|
||
* config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
|
||
* doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
|
||
|
||
2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
|
||
|
||
* doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
|
||
options.
|
||
* config/mips/mips.opt (mxpa): New option.
|
||
* config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
|
||
assembler.
|
||
|
||
2014-06-03 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/61160
|
||
* ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
|
||
thunks.
|
||
|
||
2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
PR tree-optimization/61328
|
||
* tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
|
||
initialization from find_bswap_or_nop_1.
|
||
(find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
|
||
in source_expr2 before using the size value the function sets. Also
|
||
make use of init_symbolic_number () in both the old place and
|
||
find_bswap_or_nop_load () to avoid reading uninitialized memory when
|
||
doing recursion in the GIMPLE_BINARY_RHS case.
|
||
|
||
2014-06-03 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61383
|
||
* tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
|
||
stmts can't trap.
|
||
|
||
2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
|
||
(EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
|
||
(CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
|
||
(REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
|
||
in this file.
|
||
(REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
|
||
(CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
|
||
* system.h: ...here and make it unconditional.
|
||
* target.def (conditional_register_usage): Mention
|
||
define_register_constraint instead of old-style constraint macros.
|
||
* doc/tm.texi.in: Remove documentation for old-style constraint macros.
|
||
* doc/tm.texi: Regenerate.
|
||
* genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
|
||
protected by !USE_MD_CONSTRAINTS.
|
||
* config/frv/frv.md: Remove quote from old version of documentation.
|
||
* config/frv/frv.c (frv_conditional_register_usage): Likewise.
|
||
* config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
|
||
CONST_DOUBLE_OK_FOR_LETTER.
|
||
* config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
|
||
|
||
2014-06-02 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
|
||
/lib/ld-linux32-aarch64.so.1 is used for ILP32.
|
||
(LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
|
||
file whose name depends on -mabi= and -mbig-endian.
|
||
* config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
|
||
Handle LP64 better and handle ilp32 too.
|
||
(MULTILIB_OPTIONS): Delete.
|
||
(MULTILIB_DIRNAMES): Delete.
|
||
|
||
2014-06-02 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
* expr.h: Remove prototypes of functions defined in builtins.c.
|
||
* tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
|
||
Remove prototypes of functions defined in builtins.c.
|
||
* builtins.h: Update prototype list to include all exported functions.
|
||
* builtins.c: (default_libc_has_function, gnu_libc_has_function,
|
||
no_c99_libc_has_function): Move to targhooks.c
|
||
(build_string_literal, build_call_expr_loc_array,
|
||
build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
|
||
to tree.c.
|
||
(expand_builtin_object_size, fold_builtin_object_size): Make static.
|
||
* targhooks.c (default_libc_has_function, gnu_libc_has_function,
|
||
no_c99_libc_has_function): Relocate from builtins.c.
|
||
* tree.c: Include builtins.h.
|
||
(build_call_expr_loc_array, build_call_expr_loc_vec,
|
||
build_call_expr_loc, build_call_expr, build_string_literal): Relocate
|
||
from builtins.c.
|
||
* fold-const.h (fold_fma): Move prototype to builtins.h.
|
||
* realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
|
||
* asan.c: Include builtins.h.
|
||
* cfgexpand.c: Likewise.
|
||
* convert.c: Likewise.
|
||
* emit-rtl.c: Likewise.
|
||
* except.c: Likewise.
|
||
* expr.c: Likewise.
|
||
* fold-const.c: Likewise.
|
||
* gimple-fold.c: Likewise.
|
||
* gimple-ssa-strength-reduction.c: Likewise.
|
||
* gimplify.c: Likewise.
|
||
* ipa-inline.c: Likewise.
|
||
* ipa-prop.c: Likewise.
|
||
* lto-streamer-out.c: Likewise.
|
||
* stmt.c: Likewise.
|
||
* tree-inline.c: Likewise.
|
||
* tree-object-size.c: Likewise.
|
||
* tree-sra.c: Likewise.
|
||
* tree-ssa-ccp.c: Likewise.
|
||
* tree-ssa-forwprop.c: Likewise.
|
||
* tree-ssa-loop-ivcanon.c: Likewise.
|
||
* tree-ssa-loop-ivopts.c: Likewise.
|
||
* tree-ssa-math-opts.c: Likewise.
|
||
* tree-ssa-reassoc.c: Likewise.
|
||
* tree-ssa-threadedge.c: Likewise.
|
||
* tree-streamer-in.c: Likewise.
|
||
* tree-vect-data-refs.c: Likewise.
|
||
* tree-vect-patterns.c: Likewise.
|
||
* tree-vect-stmts.c: Likewise.
|
||
* config/aarch64/aarch64.c: Likewise.
|
||
* config/alpha/alpha.c: Likewise.
|
||
* config/arc/arc.c: Likewise.
|
||
* config/arm/arm.c: Likewise.
|
||
* config/avr/avr.c: Likewise.
|
||
* config/bfin/bfin.c: Likewise.
|
||
* config/c6x/c6x.c: Likewise.
|
||
* config/cr16/cr16.c: Likewise.
|
||
* config/cris/cris.c: Likewise.
|
||
* config/epiphany/epiphany.c: Likewise.
|
||
* config/fr30/fr30.c: Likewise.
|
||
* config/frv/frv.c: Likewise.
|
||
* config/h8300/h8300.c: Likewise.
|
||
* config/i386/i386.c: Likewise.
|
||
* config/i386/winnt.c: Likewise.
|
||
* config/ia64/ia64.c: Likewise.
|
||
* config/iq2000/iq2000.c: Likewise.
|
||
* config/lm32/lm32.c: Likewise.
|
||
* config/m32c/m32c.c: Likewise.
|
||
* config/m32r/m32r.c: Likewise.
|
||
* config/m68k/m68k.c: Likewise.
|
||
* config/mcore/mcore.c: Likewise.
|
||
* config/mep/mep.c: Likewise.
|
||
* config/microblaze/microblaze.c: Likewise.
|
||
* config/mips/mips.c: Likewise.
|
||
* config/mmix/mmix.c: Likewise.
|
||
* config/mn10300/mn10300.c: Likewise.
|
||
* config/moxie/moxie.c: Likewise.
|
||
* config/msp430/msp430.c: Likewise.
|
||
* config/nds32/nds32.c: Likewise.
|
||
* config/pa/pa.c: Likewise.
|
||
* config/pdp11/pdp11.c: Likewise.
|
||
* config/picochip/picochip.c: Likewise.
|
||
* config/rl78/rl78.c: Likewise.
|
||
* config/rs6000/rs6000.c: Likewise.
|
||
* config/rx/rx.c: Likewise.
|
||
* config/s390/s390.c: Likewise.
|
||
* config/score/score.c: Likewise.
|
||
* config/sh/sh.c: Likewise.
|
||
* config/sparc/sparc.c: Likewise.
|
||
* config/spu/spu.c: Likewise.
|
||
* config/stormy16/stormy16.c: Likewise.
|
||
* config/tilegx/tilegx.c: Likewise.
|
||
* config/tilepro/tilepro.c: Likewise.
|
||
* config/v850/v850.c: Likewise.
|
||
* config/vax/vax.c: Likewise.
|
||
* config/xtensa/xtensa.c: Likewise.
|
||
|
||
2014-06-02 Jeff Law <law@redhat.com>
|
||
|
||
PR rtl-optimization/61094
|
||
* ree.c (combine_reaching_defs): Do not reextend an insn if it
|
||
was marked as do_no_reextend. If a copy is needed to eliminate
|
||
an extension, then mark it as do_not_reextend.
|
||
|
||
2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
|
||
|
||
2014-06-02 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/61336
|
||
* config/alpha/alpha.c (print_operand_address): Allow symbolic
|
||
addresses inside asms. Use output_operand_lossage instead of
|
||
gcc_unreachable.
|
||
|
||
2014-06-02 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/61239
|
||
* config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
|
||
GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
|
||
|
||
2014-06-02 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
|
||
case that x has VOIDmode.
|
||
|
||
2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
* varasm.c (copy_constant): Delete function.
|
||
(build_constant_desc): Don't call it.
|
||
|
||
2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
PR target/61154
|
||
* config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
|
||
* config/arm/arm.md (mov64 splitter): Replace const_double_operand
|
||
with immediate_operand.
|
||
|
||
2014-06-02 Andreas Schwab <schwab@suse.de>
|
||
|
||
* config/ia64/ia64.c
|
||
(ia64_first_cycle_multipass_dfa_lookahead_guard): Check
|
||
pending_data_specs first.
|
||
|
||
2014-06-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61378
|
||
* tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
|
||
valueized_anything.
|
||
|
||
2014-06-01 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/constraints.md (Bw): Rename from 'w'.
|
||
(Bz): Rename from 'z'.
|
||
* config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
|
||
|
||
2014-06-01 Kai Tietz <ktietz@redhat.com>
|
||
|
||
PR target/61377
|
||
* config/i386/constrains.md (define_constrain): New 'Bs' constraint.
|
||
* config/i386/i386.md (sibcall_insn_operand): Use Bs
|
||
instead of m constraint.
|
||
|
||
2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
|
||
|
||
* config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
|
||
a separate alternative where the scratch operand 2 is marked as
|
||
early clobber.
|
||
|
||
2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||
|
||
* config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
|
||
(arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
|
||
(bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
|
||
and __builtins_arm_get_fpscr.
|
||
(arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
|
||
__builtins_arm_get_fpscr.
|
||
(arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
|
||
__builtins_arm_ldfpscr.
|
||
(arm_atomic_assign_expand_fenv): New function.
|
||
* config/arm/vfp.md (set_fpscr): New pattern.
|
||
(get_fpscr) : Likewise.
|
||
* config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
|
||
VUNSPEC_SET_FPSCR.
|
||
* doc/extend.texi (AARCH64 Built-in Functions) : Document
|
||
__builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
|
||
|
||
2014-05-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* asan.c (report_error_func): Add SLOW_P argument, use
|
||
BUILT_IN_ASAN_*_N if set.
|
||
(build_check_stmt): Likewise.
|
||
(instrument_derefs): If T has insufficient alignment,
|
||
force same handling as for odd sizes.
|
||
|
||
* sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
|
||
BUILT_IN_ASAN_REPORT_STORE_N): New.
|
||
* asan.c (struct asan_mem_ref): Change access_size type to
|
||
HOST_WIDE_INT.
|
||
(asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
|
||
update_mem_ref_hash_table): Likewise.
|
||
(asan_mem_ref_hasher::hash): Hash in a HWI.
|
||
(report_error_func): Change size_in_bytes argument to HWI.
|
||
Use *_N builtins if size_in_bytes is larger than 16 or not power of
|
||
two.
|
||
(build_shadow_mem_access): New function.
|
||
(build_check_stmt): Use it. Change size_in_bytes argument to HWI.
|
||
Handle size_in_bytes not power of two or larger than 16.
|
||
(instrument_derefs): Don't give up if size_in_bytes is not
|
||
power of two or is larger than 16.
|
||
|
||
2014-05-30 Kai Tietz <ktietz@redhat.com>
|
||
|
||
PR target/60104
|
||
* config/i386/i386.c (x86_output_mi_thunk): Add memory case
|
||
for sibling-tail-calls.
|
||
* config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
|
||
to its use.
|
||
* config/i386/predicates.md (sibcall_memory_operand): New predicate.
|
||
(sibcall_insn_operand): Add check for sibcall_memory_operand.
|
||
|
||
2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
|
||
|
||
* config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
|
||
* config/avr/avr-tables.opt: Regenerate.
|
||
* config/avr/t-multilib: Regenerate.
|
||
* doc/avr-mmcu.texi: Regenerate.
|
||
|
||
2014-05-30 Ian Lance Taylor <iant@google.com>
|
||
|
||
* config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
|
||
target("sse").
|
||
|
||
2014-05-30 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
|
||
Redefine as true.
|
||
|
||
2014-05-30 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
|
||
* lra.c (initialize_lra_reg_info_element): Add init of
|
||
actual_call_used_reg_set field.
|
||
(lra): Call lra_create_live_ranges before lra_inheritance for
|
||
-fuse-caller-save.
|
||
* lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
|
||
-fuse-caller-save.
|
||
* lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
|
||
instead of call_used_reg_set for -fuse-caller-save.
|
||
* lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
|
||
|
||
2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
|
||
to mov_imm.
|
||
* config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
|
||
|
||
2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* ira.c (ira_get_dup_out_num): Check for output operands at
|
||
the start of the loop. Handle cases where an included alternative
|
||
follows an excluded one.
|
||
|
||
2014-05-29 Mike Stump <mikestump@comcast.net>
|
||
|
||
PR debug/61352
|
||
* collect2.c (maybe_run_lto_and_relink): Be sure to always run
|
||
post ld passes when lto is used.
|
||
|
||
2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/61325
|
||
* lra-constraints.c (process_address): Rename to process_address_1.
|
||
(process_address): New function.
|
||
|
||
2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
|
||
TYPES_BINOPV): New static data.
|
||
* config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
|
||
New builtin.
|
||
* config/aarch64/aarch64-simd.md (aarch64_ext,
|
||
aarch64_im_lane_boundsi): New patterns.
|
||
* config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
|
||
patterns for EXT.
|
||
(aarch64_evpc_ext): New function.
|
||
|
||
* config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
|
||
|
||
* config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
|
||
vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
|
||
vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
|
||
vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
|
||
vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
|
||
|
||
2014-05-29 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
|
||
|
||
2014-05-29 Richard Earnshaw <rearnsha@arm.com>
|
||
Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* arm/iterators.md (shiftable_ops): New code iterator.
|
||
(t2_binop0, arith_shift_insn): New code attributes.
|
||
* arm/predicates.md (shift_nomul_operator): New predicate.
|
||
* arm/arm.md (insn_enabled): Delete.
|
||
(enabled): Remove insn_enabled test.
|
||
(*arith_shiftsi): Delete. Replace with ...
|
||
(*<arith_shift_insn>_multsi): ... new pattern.
|
||
(*<arith_shift_insn>_shiftsi): ... new pattern.
|
||
* config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
|
||
|
||
2014-05-29 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* config/mips/mips.h (POST_CALL_TMP_REG): Define.
|
||
* config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
|
||
clobber.
|
||
(mips_split_call): Use POST_CALL_TMP_REG.
|
||
(TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
|
||
|
||
2014-05-29 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* final.c (collect_fn_hard_reg_usage): Guard variable declaration
|
||
with #ifdef STACK_REGS.
|
||
|
||
2014-05-28 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* varasm.c (get_variable_section): Walk aliases.
|
||
(place_block_symbol): Walk aliases.
|
||
|
||
2014-05-28 Tom de Vries <tom@codesourcery.com>
|
||
|
||
Revert:
|
||
2014-05-28 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
|
||
* lra.c (initialize_lra_reg_info_element): Add init of
|
||
actual_call_used_reg_set field.
|
||
(lra): Call lra_create_live_ranges before lra_inheritance for
|
||
-fuse-caller-save.
|
||
* lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
|
||
-fuse-caller-save.
|
||
* lra-constraints.c (need_for_call_save_p): Use
|
||
actual_call_used_reg_set instead of call_used_reg_set for
|
||
-fuse-caller-save.
|
||
* lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
|
||
|
||
2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* doc/md.texi: Document that the % constraint character must
|
||
be at the beginning of the string.
|
||
* genoutput.c (validate_insn_alternatives): Check that '=',
|
||
'+' and '%' only appear at the beginning of a constraint.
|
||
* ira.c (commutative_constraint_p): Delete.
|
||
(ira_get_dup_out_num): Expect the '%' commutativity marker to be
|
||
at the start of the string.
|
||
* config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
|
||
duplicate '='s.
|
||
* config/arm/neon.md (bicdi3_neon): Likewise.
|
||
* config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
|
||
(slt_si, sltu_si): Likewise.
|
||
* config/vax/vax.md (sbcdi3): Likewise.
|
||
* config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
|
||
* config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
|
||
(mul64): Move '%' to beginning of constraint.
|
||
* config/arm/arm.md (*xordi3_insn): Likewise.
|
||
* config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
|
||
(xorsi3): Likewise.
|
||
|
||
2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* doc/md.texi: Document the restrictions on the "enabled" attribute.
|
||
|
||
2014-05-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/47202
|
||
* cgraph.h (symtab_node::get_comdat_group_id): New.
|
||
* cgraphunit.c (analyze_functions): Call it.
|
||
* symtab.c (dump_symtab_node): Likewise.
|
||
* tree.c (decl_comdat_group_id): New.
|
||
* tree.h: Declare it.
|
||
* lto-streamer-out.c (write_symbol): Use it.
|
||
* trans-mem.c (ipa_tm_create_version_alias): Likewise.
|
||
|
||
2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
|
||
|
||
PR bootstrap/PR61146
|
||
* wide-int.cc: Do not include longlong.h when compiling with clang.
|
||
|
||
2014-05-28 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-propagate.c (add_control_edge): Print less vertical space.
|
||
* tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
|
||
(vrp_visit_assignment_or_call): Print less vertical space.
|
||
(vrp_visit_stmt): Likewise.
|
||
(vrp_visit_phi_node): Likewise. For a PHI argument with
|
||
VR_VARYING range consider recording it as copy.
|
||
|
||
2014-05-28 Richard Biener <rguenther@suse.de>
|
||
|
||
Revert
|
||
2014-05-28 Richard Biener <rguenther@suse.de>
|
||
|
||
* hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
|
||
|
||
2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
* expr.c (expand_assignment): Fold the bitpos in the to_rtx if
|
||
sufficiently aligned and an offset is used at the same time.
|
||
(expand_expr_real_1): Likewise.
|
||
|
||
2014-05-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/61045
|
||
* fold-const.c (fold_comparison): When folding
|
||
X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
|
||
the sign of the remaining constant operand stays the same.
|
||
|
||
2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
|
||
|
||
* config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
|
||
__RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
|
||
(ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
|
||
to the assembler.
|
||
(DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
|
||
* gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
|
||
(m32bit-doubles) Likewise.
|
||
* gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
|
||
* doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
|
||
option for RL78.
|
||
|
||
2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* configure.ac ($gcc_cv_ld_clearcap): New test.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
* config/sol2.opt (mclear-hwcap): New option.
|
||
* config/sol2.h (LINK_CLEARCAP_SPEC): Define.
|
||
* config/sol2-clearcap.map: Moved here from
|
||
testsuite/gcc.target/i386/clearcap.map.
|
||
* config/sol2-clearcapv2.map: Move here from
|
||
gcc.target/i386/clearcapv2.map.
|
||
* config/t-sol2 (install): Depend on install-clearcap-map.
|
||
(install-clearcap-map): New target.
|
||
* doc/invoke.texi (Option Summary, Solaris 2 Options): Document
|
||
-mclear-hwcap.
|
||
|
||
2014-05-28 Richard Biener <rguenther@suse.de>
|
||
|
||
* hwint.h (*_HALF_WIDE_INT*): Move to ...
|
||
* wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
|
||
... here and remove the rest.
|
||
* hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
|
||
|
||
2014-05-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61335
|
||
* tree-vrp.c (vrp_visit_phi_node): If the compare of old and
|
||
new range fails, drop to varying.
|
||
|
||
2014-05-28 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
|
||
(CPP_SPEC): Add entry for -mcpu=8548.
|
||
* config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
|
||
* config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
|
||
|
||
2014-05-28 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
|
||
* lra.c (initialize_lra_reg_info_element): Add init of
|
||
actual_call_used_reg_set field.
|
||
(lra): Call lra_create_live_ranges before lra_inheritance for
|
||
-fuse-caller-save.
|
||
* lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
|
||
-fuse-caller-save.
|
||
* lra-constraints.c (need_for_call_save_p): Use
|
||
actual_call_used_reg_set instead of call_used_reg_set for
|
||
-fuse-caller-save.
|
||
* lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
|
||
|
||
2014-05-28 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
|
||
to gccoptlist.
|
||
(@item -fuse-caller-save): New item.
|
||
|
||
2014-05-28 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
|
||
OPT_fuse_caller_save.
|
||
|
||
2014-05-28 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
|
||
* caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
|
||
get_call_reg_set_usage.
|
||
* resource.c (mark_set_resources, mark_target_live_regs): Use
|
||
get_call_reg_set_usage.
|
||
* ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
|
||
field.
|
||
(ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
|
||
* ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
|
||
Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
|
||
* ira-build.c (ira_create_allocno): Init
|
||
ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
|
||
(create_cap_allocno, propagate_allocno_info)
|
||
(propagate_some_info_from_allocno)
|
||
(copy_info_to_removed_store_destinations): Handle
|
||
ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
|
||
* ira-costs.c (ira_tune_allocno_costs): Use
|
||
ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
|
||
|
||
2014-05-28 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* cgraph.h (struct cgraph_rtl_info): Add function_used_regs
|
||
and function_used_regs_valid fields.
|
||
* final.c: Move include of hard-reg-set.h to before rtl.h to declare
|
||
find_all_hard_reg_sets.
|
||
(collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
|
||
(get_call_reg_set_usage): New function.
|
||
(rest_of_handle_final): Use collect_fn_hard_reg_usage.
|
||
* regs.h (get_call_reg_set_usage): Declare.
|
||
|
||
2014-05-28 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR libgcc/61152
|
||
* config/dbx.h (License): Add Runtime Library Exception.
|
||
* config/newlib-stdint.h (License): Same.
|
||
* config/rtems.h (License): Same
|
||
* config/initfini-array.h (License): Same
|
||
* config/v850/v850.h (License): Same.
|
||
* config/v850/v850-opts.h (License): Same
|
||
* config/v850/rtems.h (License): Same.
|
||
|
||
2014-05-28 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/61044
|
||
* doc/extend.texi (Local Labels): Note that label differences are
|
||
not supported for AVR.
|
||
|
||
2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
|
||
Olivier Hainque <hainque@adacore.com>
|
||
|
||
* rtl.h (set_for_reg_notes): Declare.
|
||
* emit-rtl.c (set_for_reg_notes): New function.
|
||
(set_unique_reg_note): Use it.
|
||
* optabs.c (add_equal_note): Likewise
|
||
|
||
2014-05-27 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* config/aarch64/aarch64.md (stack_protect_set_<mode>):
|
||
Use <w> for the register in assembly template.
|
||
(stack_protect_test): Use the mode of operands[0] for the result.
|
||
(stack_protect_test_<mode>): Use <w> for the register
|
||
in assembly template.
|
||
|
||
2014-05-27 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/rx/rx.c (add_vector_labels): New.
|
||
(rx_output_function_prologue): Call it.
|
||
(rx_handle_func_attribute): Don't require empty arguments.
|
||
(rx_handle_vector_attribute): New.
|
||
(rx_attribute_table): Add "vector" attribute.
|
||
* doc/extend.texi (interrupt, vector): Document new/changed
|
||
RX-specific attributes.
|
||
|
||
* config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
|
||
|
||
2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
|
||
predicate to detect a negative quotient.
|
||
|
||
2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
|
||
to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
|
||
Add X - Y CMP 0 to X CMP Y transformation.
|
||
(fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
|
||
|
||
2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
|
||
before printing.
|
||
|
||
2014-05-27 Steve Ellcey <sellcey@mips.com>
|
||
|
||
* config/mips/mips.c: Add include of cgraph.h.
|
||
|
||
2014-05-27 Richard Biener <rguenther@suse.de>
|
||
|
||
* system.h (__STDC_FORMAT_MACROS): Define as very first thing.
|
||
|
||
2014-05-27 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR libgcc/61152
|
||
* config/arm/arm.h (License): Add note to COPYING.RUNTIME.
|
||
* config/arm/arm-cores.def (License): Same.
|
||
* config/arm/arm-opts.h (License): Same.
|
||
* config/arm/aout.h (License): Same.
|
||
* config/arm/bpabi.h (License): Same.
|
||
* config/arm/elf.h (License): Same.
|
||
* config/arm/linux-elf.h (License): Same.
|
||
* config/arm/linux-gas.h (License): Same.
|
||
* config/arm/netbsd-elf.h (License): Same.
|
||
* config/arm/uclinux-eabi.h (License): Same.
|
||
* config/arm/uclinux-elf.h (License): Same.
|
||
* config/arm/vxworks.h (License): Same.
|
||
|
||
2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/neon.md (neon_bswap<mode>): New pattern.
|
||
* config/arm/arm.c (neon_itype): Add NEON_BSWAP.
|
||
(arm_init_neon_builtins): Handle NEON_BSWAP.
|
||
Define required type nodes.
|
||
(arm_expand_neon_builtin): Handle NEON_BSWAP.
|
||
(arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
|
||
* config/arm/arm_neon_builtins.def (bswap): Define builtins.
|
||
* config/arm/iterators.md (VDQHSD): New mode iterator.
|
||
|
||
2014-05-27 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
|
||
Try using literal operands when comparing value-ranges failed.
|
||
|
||
2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* ira.c (commutative_operand): Adjust for change to recog_data.
|
||
[Missing from previous commit.]
|
||
|
||
2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* system.h (TEST_BIT): New macro.
|
||
* recog.h (alternative_mask): New type.
|
||
(ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
|
||
(recog_data_d): Replace alternative_enabled_p array with
|
||
enabled_alternatives.
|
||
(target_recog): New structure.
|
||
(default_target_recog, this_target_recog): Declare.
|
||
(get_enabled_alternatives, recog_init): Likewise.
|
||
* recog.c (default_target_recog, this_target_recog): New variables.
|
||
(get_enabled_alternatives): New function.
|
||
(extract_insn): Use it.
|
||
(recog_init): New function.
|
||
(preprocess_constraints, constrain_operands): Adjust for change to
|
||
recog_data.
|
||
* postreload.c (reload_cse_simplify_operands): Likewise.
|
||
* reload.c (find_reloads): Likewise.
|
||
* ira-costs.c (record_reg_classes): Likewise.
|
||
* ira-lives.c (single_reg_class): Likewise. Fix bug in which
|
||
all alternatives after a disabled one would be skipped.
|
||
(ira_implicitly_set_insn_hard_regs): Likewise.
|
||
* ira.c (ira_setup_alts): Adjust for change to recog_data.
|
||
* lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
|
||
with enabled_alternatives.
|
||
* lra.c (free_insn_recog_data): Update accordingly.
|
||
(lra_update_insn_recog_data): Likewise.
|
||
(lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
|
||
* lra-constraints.c (process_alt_operands): Likewise. Handle
|
||
only_alternative as part of the enabled mask.
|
||
* target-globals.h (this_target_recog): Declare.
|
||
(target_globals): Add a recog field.
|
||
(restore_target_globals): Restore this_target_recog.
|
||
* target-globals.c: Include recog.h.
|
||
(default_target_globals): Initialize recog field.
|
||
(save_target_globals): Likewise.
|
||
* reginfo.c (reinit_regs): Call recog_init.
|
||
* toplev.c (backend_init_target): Likewise.
|
||
|
||
2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
|
||
rather than any named insn's code.
|
||
|
||
2014-05-27 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR libgcc/61152
|
||
* config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
|
||
* config/arm/arm-cores.def (License): Same.
|
||
|
||
2014-05-26 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* tree.h (decl_comdat_group): Declare.
|
||
* cgraph.h (symtab_in_same_comdat_p): Move offline to ...
|
||
* tree.c (decl_comdat_group): Here.
|
||
|
||
2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
|
||
|
||
PR rtl-optimization/61222
|
||
* combine.c (simplify_shift_const_1): When moving a PLUS outside
|
||
the shift, truncate the PLUS operand to the result mode.
|
||
|
||
2014-05-26 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/61271
|
||
* config/i386/i386.c (ix86_rtx_costs)
|
||
<case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
|
||
Fix condition.
|
||
|
||
2014-05-26 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
|
||
subreg uses.
|
||
|
||
2014-05-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
|
||
wi::int_traits <long long>, wi::int_traits <unsigned long long>):
|
||
Provide specializations.
|
||
(wi::int_traits <HOST_WIDE_INT>,
|
||
wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
|
||
|
||
2014-05-26 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/61098
|
||
* config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
|
||
params and return a bool. Remove dead code. Update comment.
|
||
Assert we have a const_int source. Remove bogus code from
|
||
32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
|
||
handling of constants > 2G and reg_equal note, from..
|
||
(rs6000_emit_set_long_const): ..here. Remove unneeded param and
|
||
return value. Update comment. If we can, use a new pseudo
|
||
for intermediate calculations.
|
||
* config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
|
||
prototype.
|
||
* config/rs6000/rs6000.md (movsi_internal1_single+1): Update
|
||
call to rs6000_emit_set_const in splitter.
|
||
(movdi_internal64+2, +3): Likewise.
|
||
|
||
2014-05-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* system.h: Define __STDC_FORMAT_MACROS before
|
||
including inttypes.h.
|
||
* hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
|
||
HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
|
||
HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
|
||
HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
|
||
HOST_WIDEST_INT_C): Remove.
|
||
(PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
|
||
if C99 inttypes.h is not available.
|
||
* coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
|
||
* gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
|
||
* gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
|
||
* cfgloop.h (struct niter_desc): Use uint64_t for niter field.
|
||
* bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
|
||
(struct output_info): Likewise.
|
||
(print_statistics): Adjust.
|
||
(dump_bitmap_statistics): Likewise.
|
||
* bt-load.c (migrate_btr_defs): Print with PRId64.
|
||
* cfg.c (dump_edge_info, dump_bb_info): Likewise.
|
||
(MAX_SAFE_MULTIPLIER): Adjust.
|
||
* cfghooks.c (dump_bb_for_graph): Print with PRId64.
|
||
* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
|
||
dump_cgraph_node): Likewise.
|
||
* final.c (dump_basic_block_info): Likewise.
|
||
* gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
|
||
* gcov.c (format_gcov): Likewise.
|
||
* ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
|
||
for calculation.
|
||
(get_clone_agg_value): Use HOST_WIDE_INT for offset.
|
||
* ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
|
||
(inline_small_functions, dump_overall_stats, dump_inline_stats):
|
||
Use PRId64 for dumping.
|
||
* ipa-profile.c (dump_histogram, ipa_profile): Likewise.
|
||
* ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
|
||
(add_allocno_hard_regs): Adjust.
|
||
* loop-doloop.c (doloop_modify): Print using PRId64.
|
||
* loop-iv.c (inverse): Compute in uint64_t.
|
||
(determine_max_iter, iv_number_of_iterations): Likewise.
|
||
* loop-unroll.c (decide_peel_completely, decide_peel_simple):
|
||
Print using PRId64.
|
||
* lto-streamer-out.c (write_symbol): Use uint64_t.
|
||
* mcf.c (CAP_INFINITY): Use int64_t maximum.
|
||
(dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
|
||
find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
|
||
* modulo-sched.c (const_iteration_count): Use int64_t.
|
||
(sms_schedule): Dump using PRId64.
|
||
* predict.c (dump_prediction): Likewise.
|
||
* pretty-print.h (pp_widest_integer): Remove.
|
||
* profile.c (get_working_sets, is_edge_inconsistent,
|
||
is_inconsistent, read_profile_edge_counts): Dump using PRId64.
|
||
* tree-pretty-print.c (pp_double_int): Remove case handling
|
||
HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
|
||
* tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
|
||
and adjust users.
|
||
(pass_optimize_bswap::execute): Remove restriction on hosts.
|
||
* tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
|
||
* tree-streamer-out.c (streamer_write_tree_header): Likewise.
|
||
* tree.c (widest_int_cst_value): Remove.
|
||
* tree.h (widest_int_cst_value): Likewise.
|
||
* value-prof.c (dump_histogram_value): Print using PRId64.
|
||
* gengtype.c (main): Also inject int64_t.
|
||
* ggc-page.c (struct max_alignment): Use int64_t.
|
||
* alloc-pool.c (struct allocation_object_def): Likewise.
|
||
* ira-conflicts.c (build_conflict_bit_table): Use uint64_t
|
||
for computation.
|
||
* doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
|
||
* doc/tm.texi: Regenerated.
|
||
* gengtype-lex.l (IWORD): Handle [u]int64_t.
|
||
* config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
|
||
* config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
|
||
mmix_output_register_setting): Use [u]int64_t in prototypes.
|
||
* config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
|
||
mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
|
||
mmix_output_octa, mmix_output_shifted_value): Adjust.
|
||
(mmix_intval): Adjust. Remove unreachable case.
|
||
* config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
|
||
|
||
2014-05-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* configure.ac: Drop __int64 type check. Insist that we
|
||
found uint64_t and int64_t.
|
||
* hwint.h (HOST_BITS_PER___INT64): Remove.
|
||
(HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
|
||
(HOST_WIDE_INT_PRINT_*): Remove 32bit case.
|
||
(HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
|
||
(HOST_WIDEST_FAST_INT): Remove __int64 case.
|
||
* vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
|
||
for dst_q_src_df_rms_cdt.
|
||
* configure: Regenerate.
|
||
* config.in: Likewise.
|
||
|
||
2014-05-26 Michael Tautschnig <mt@debian.org>
|
||
|
||
PR target/61249
|
||
* doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
|
||
__builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
|
||
|
||
2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
PR rtl-optimization/61278
|
||
* shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
|
||
|
||
2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
PR rtl-optimization/61220
|
||
Part of PR rtl-optimization/61225
|
||
* shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
|
||
insn; skip split_edge for a block with only one successor.
|
||
|
||
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
|
||
for variables.
|
||
|
||
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
|
||
(update_vtable_references): New function.
|
||
(function_and_variable_visibility): Rewrite also vtable initializers.
|
||
* varpool.c (cgraph_variable_initializer_availability): Remove assert.
|
||
|
||
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ggc.h (ggc_grow): New function.
|
||
* ggc-none.c (ggc_grow): New function.
|
||
* ggc-page.c (ggc_grow): Likewise.
|
||
|
||
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
|
||
address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
|
||
comdat_can_be_unshared_p, cgraph_externally_visible_p,
|
||
varpool_externally_visible_p, can_replace_by_local_alias,
|
||
update_visibility_by_resolution_info, function_and_variable_visibility,
|
||
pass_data_ipa_function_and_variable_visibility,
|
||
make_pass_ipa_function_and_variable_visibility,
|
||
whole_program_function_and_variable_visibility,
|
||
pass_data_ipa_whole_program_visibility,
|
||
make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
|
||
* cgraph.h (cgraph_local_node_p): Declare.
|
||
* ipa-visibility.c: New file.
|
||
* Makefile.in (OBJS): Add ipa-visiblity.o
|
||
|
||
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
|
||
that var decl is available.
|
||
|
||
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* tree-core.h (tree_decl_with_vis): Replace comdat_group by
|
||
symtab_node pointer.
|
||
* tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
|
||
(find_decls_types_r): Do not walk COMDAT_GROUP.
|
||
* tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
|
||
* varasm.c (make_decl_one_only): Use set_comdat_group;
|
||
create node if needed.
|
||
* ipa-inline-transform.c (save_inline_function_body): Update
|
||
way we decl->symtab mapping.
|
||
* symtab.c (symtab_hash, hash_node, eq_node
|
||
symtab_insert_node_to_hashtable): Remove.
|
||
(symtab_register_node): Update.
|
||
(symtab_unregister_node): Update.
|
||
(symtab_get_node): Reimplement as inline function.
|
||
(symtab_add_to_same_comdat_group): Update.
|
||
(symtab_dissolve_same_comdat_group_list): Update.
|
||
(dump_symtab_base): Update.
|
||
(verify_symtab_base): Update.
|
||
(symtab_make_decl_local): Update.
|
||
(fixup_same_cpp_alias_visibility): Update.
|
||
(symtab_nonoverwritable_alias): Update.
|
||
* cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
|
||
* ipa.c (update_visibility_by_resolution_info): UPdate.
|
||
* bb-reorder.c: Include cgraph.h
|
||
* lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
|
||
with comdat groups.
|
||
* ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
|
||
* cgraph.c (cgraph_get_create_node): Update.
|
||
* cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
|
||
and comdat_group_.
|
||
(symtab_get_node): Make inline.
|
||
(symtab_insert_node_to_hashtable): Remove.
|
||
(symtab_can_be_discarded): Update.
|
||
(decl_comdat_group): New function.
|
||
* tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
|
||
Update.
|
||
* lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
|
||
comdat group name.
|
||
(read_comdat_group): New function.
|
||
(input_node, input_varpool_node): Use it.
|
||
* trans-mem.c (ipa_tm_create_version_alias): Update code creating
|
||
comdat groups.
|
||
* mips.c (mips_start_unique_function): Likewise.
|
||
(ix86_code_end): Likewise.
|
||
(rs6000_code_end): Likweise.
|
||
* tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
|
||
|
||
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* gengtype-state.c (fatal_reading_state): Bring offline.
|
||
* optabs.c (widening_optab_handler): Bring offline.
|
||
* optabs.h (widening_optab_handler): Likewise.
|
||
* final.c (get_attr_length_1): Likewise.
|
||
|
||
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* sched-int.h (sd_iterator_cond): Manually tail recurse.
|
||
|
||
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/440.md (ppc440-integer): Include shift without dot.
|
||
(ppc440-compare): Include shift with dot.
|
||
* config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
|
||
* config/rs6000/e5500.md (e5500_sfx2): Include constant shift
|
||
without dot.
|
||
* config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
|
||
without dot.
|
||
(e6500_sfx2): Include it.
|
||
* config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
|
||
*zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
|
||
*zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
|
||
andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
|
||
*extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
|
||
*rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
|
||
*rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
|
||
*lshiftrt_internal1le, *lshiftrt_internal1be,
|
||
*lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
|
||
*rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
|
||
*rotldi3_internal10le, *rotldi3_internal10be,
|
||
*rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
|
||
ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
|
||
ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
|
||
*anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
|
||
define_insns): Use type "shift" in the appropriate alternatives.
|
||
|
||
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (type): Add "logical". Delete
|
||
"fast_compare".
|
||
(dot): Adjust comment.
|
||
(andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
|
||
*andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
|
||
*boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
|
||
anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
|
||
*booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
|
||
*boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
|
||
*mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
|
||
* config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
|
||
|
||
* config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
|
||
* config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
|
||
* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
|
||
* config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
|
||
* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
|
||
* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
|
||
* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
|
||
* config/rs6000/8540.md (ppc8540_su): Adjust.
|
||
* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
|
||
cell-cmp-microcoded): Adjust.
|
||
* config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
|
||
* config/rs6000/e500mc.md (e500mc_su): Adjust.
|
||
* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
|
||
* config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
|
||
* config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
|
||
* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
|
||
* config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
|
||
* config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
|
||
* config/rs6000/power6.md (power6-integer, power6-fast-compare):
|
||
Adjust.
|
||
* config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
|
||
* config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
|
||
Adjust. Adjust comment.
|
||
* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
|
||
* config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
|
||
|
||
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (type): Add "add".
|
||
(*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
|
||
*add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
|
||
define_insns): Use it.
|
||
* config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
|
||
|
||
* config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
|
||
* config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
|
||
* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
|
||
* config/rs6000/601.md (ppc601-integer): Adjust.
|
||
* config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
|
||
* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
|
||
* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
|
||
* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
|
||
* config/rs6000/8540.md (ppc8540_su): Adjust.
|
||
* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
|
||
cell-cmp-microcoded): Adjust.
|
||
* config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
|
||
* config/rs6000/e500mc.md (e500mc_su): Adjust.
|
||
* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
|
||
* config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
|
||
* config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
|
||
* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
|
||
* config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
|
||
* config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
|
||
* config/rs6000/power6.md (power6-integer, power6-fast-compare):
|
||
Adjust.
|
||
* config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
|
||
* config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
|
||
* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
|
||
* config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
|
||
|
||
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
|
||
"delayed_compare", "var_delayed_compare".
|
||
(var_shift): New attribute.
|
||
(cell_micro): Adjust.
|
||
(*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
|
||
*andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
|
||
rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
|
||
*rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
|
||
*rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
|
||
*rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
|
||
*rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
|
||
*rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
|
||
*lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
|
||
*lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
|
||
*lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
|
||
rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
|
||
*rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
|
||
*rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
|
||
*rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
|
||
*rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
|
||
*rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
|
||
*rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
|
||
*rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
|
||
*ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
|
||
*lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
|
||
*ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
|
||
*anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
|
||
* config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
|
||
insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
|
||
|
||
* config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
|
||
* config/rs6000/440.md (ppc440-integer): Adjust.
|
||
* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
|
||
* config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
|
||
* config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
|
||
* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
|
||
* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
|
||
* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
|
||
* config/rs6000/8540.md (ppc8540_su): Adjust.
|
||
* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
|
||
cell-cmp-microcoded): Adjust.
|
||
* config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
|
||
* config/rs6000/e500mc.md (e500mc_su): Adjust.
|
||
* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
|
||
e500mc64_delayed): Adjust.
|
||
* config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
|
||
* config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
|
||
* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
|
||
* config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
|
||
* config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
|
||
* config/rs6000/power6.md (power6-shift, power6-var-rotate,
|
||
power6-delayed-compare, power6-var-delayed-compare): Adjust.
|
||
* config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
|
||
* config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
|
||
Adjust comment.
|
||
* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
|
||
* config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
|
||
|
||
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
|
||
(bits): New mode_attr.
|
||
(idiv_ldiv): Delete mode_attr.
|
||
(udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
|
||
* config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
|
||
rs6000_adjust_priority, is_nonpipeline_insn,
|
||
insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
|
||
|
||
* config/rs6000/40x.md (ppc403-idiv): Adjust.
|
||
* config/rs6000/440.md (ppc440-idiv): Adjust.
|
||
* config/rs6000/476.md (ppc476-idiv): Adjust.
|
||
* config/rs6000/601.md (ppc601-idiv): Adjust.
|
||
* config/rs6000/603.md (ppc603-idiv): Adjust.
|
||
* config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
|
||
ppc620-ldiv): Adjust.
|
||
* config/rs6000/7450.md (ppc7450-idiv): Adjust.
|
||
* config/rs6000/7xx.md (ppc750-idiv): Adjust.
|
||
* config/rs6000/8540.md (ppc8540_divide): Adjust.
|
||
* config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
|
||
* config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
|
||
* config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
|
||
* config/rs6000/e500mc.md (e500mc_divide): Adjust.
|
||
* config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
|
||
* config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
|
||
* config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
|
||
* config/rs6000/mpc.md (mpccore-idiv): Adjust.
|
||
* config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
|
||
* config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
|
||
* config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
|
||
* config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
|
||
* config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
|
||
* config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
|
||
* config/rs6000/titan.md (titan_fxu_div): Adjust.
|
||
|
||
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (type): Delete "insert_word",
|
||
"insert_dword". Add "insert".
|
||
(size): Update comment.
|
||
* config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
|
||
insn_must_be_first_in_group): Adjust.
|
||
(insvsi_internal, *insvsi_internal1, *insvsi_internal2,
|
||
*insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
|
||
*insvsi_internal6, insvdi_internal): Adjust.
|
||
|
||
* config/rs6000/40x.md (ppc403-integer): Adjust.
|
||
* config/rs6000/440.md (ppc440-integer): Adjust.
|
||
* config/rs6000/476.md (ppc476-simple-integer): Adjust.
|
||
* config/rs6000/601.md (ppc601-integer): Adjust.
|
||
* config/rs6000/603.md (ppc603-integer): Adjust.
|
||
* config/rs6000/6xx.md (ppc604-integer): Adjust.
|
||
* config/rs6000/7450.md (ppc7450-integer): Adjust.
|
||
* config/rs6000/7xx.md (ppc750-integer): Adjust.
|
||
* config/rs6000/8540.md (ppc8540_su): Adjust.
|
||
* config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
|
||
* config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
|
||
* config/rs6000/e500mc.md (e500mc_su): Adjust.
|
||
* config/rs6000/e500mc64.md (e500mc64_su): Adjust.
|
||
* config/rs6000/e5500.md (e5500_sfx): Adjust.
|
||
* config/rs6000/e6500.md (e6500_sfx): Adjust.
|
||
* config/rs6000/mpc.md (mpccore-integer): Adjust.
|
||
* config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
|
||
* config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
|
||
* config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
|
||
* config/rs6000/power7.md (power7-integer): Adjust.
|
||
* config/rs6000/power8.md (power8-1cyc): Adjust.
|
||
* config/rs6000/rs64.md (rs64a-integer): Adjust.
|
||
* config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
|
||
|
||
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
|
||
"imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
|
||
(size): New attribute.
|
||
(dot): New attribute.
|
||
(cell_micro): Adjust.
|
||
(mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
|
||
umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
|
||
*muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
|
||
umuldi3_highpart): Adjust.
|
||
* config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
|
||
rs6000_adjust_priority, is_nonpipeline_insn,
|
||
insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
|
||
|
||
* config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
|
||
ppc405-imul3): Adjust.
|
||
* config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
|
||
* config/rs6000/476.md (ppc476-imul): Adjust.
|
||
* config/rs6000/601.md (ppc601-imul): Adjust.
|
||
* config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
|
||
* config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
|
||
ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
|
||
* config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
|
||
* config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
|
||
Adjust.
|
||
* config/rs6000/8540.md (ppc8540_multiply): Adjust.
|
||
* config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
|
||
* config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
|
||
cell-imul): Adjust.
|
||
* config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
|
||
* config/rs6000/e500mc.md (e500mc_multiply): Adjust.
|
||
* config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
|
||
* config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
|
||
* config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
|
||
* config/rs6000/mpc.md (mpccore-imul): Adjust.
|
||
* config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
|
||
power4-lmul, power4-imul, power4-imul3): Adjust.
|
||
* config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
|
||
power5-lmul, power5-imul, power5-imul3): Adjust.
|
||
* config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
|
||
power6-lmul, power6-imul, power6-imul3): Adjust.
|
||
* config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
|
||
* config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
|
||
|
||
* config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
|
||
rs64a-lmul): Adjust.
|
||
* config/rs6000/titan.md (titan_imul): Adjust.
|
||
|
||
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (type): Add new value "halfmul".
|
||
(*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
|
||
*machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
|
||
*nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
|
||
*mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
|
||
*mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
|
||
* config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
|
||
* config/rs6000/440.md (ppc440-imul2): Add type halfmul.
|
||
* config/rs6000/476.md (ppc476-imul): Add type halfmul.
|
||
* config/rs6000/titan.md: Delete nonsensical comment.
|
||
(titan_imul): Add type imul3.
|
||
(titan_mulhw): Remove type imul3; add type halfmul.
|
||
|
||
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/rs6000.md (type): Reorder, reformat.
|
||
|
||
2014-05-23 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/53787
|
||
* params.def (PARAM_IPA_MAX_AA_STEPS): New param.
|
||
* ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
|
||
analysis_done, update all uses.
|
||
* ipa-prop.c: Include domwalk.h
|
||
(param_analysis_info): Removed.
|
||
(param_aa_status): New type.
|
||
(ipa_bb_info): Likewise.
|
||
(func_body_info): Likewise.
|
||
(ipa_get_bb_info): New function.
|
||
(aa_overwalked): Likewise.
|
||
(find_dominating_aa_status): Likewise.
|
||
(parm_bb_aa_status_for_bb): Likewise.
|
||
(parm_preserved_before_stmt_p): Changed to use new param AA info.
|
||
(load_from_unmodified_param): Accept func_body_info as a parameter
|
||
instead of parms_ainfo.
|
||
(parm_ref_data_preserved_p): Changed to use new param AA info.
|
||
(parm_ref_data_pass_through_p): Likewise.
|
||
(ipa_load_from_parm_agg_1): Likewise. Update callers.
|
||
(compute_complex_assign_jump_func): Changed to use new param AA info.
|
||
(compute_complex_ancestor_jump_func): Likewise.
|
||
(ipa_compute_jump_functions_for_edge): Likewise.
|
||
(ipa_compute_jump_functions): Removed.
|
||
(ipa_compute_jump_functions_for_bb): New function.
|
||
(ipa_analyze_indirect_call_uses): Likewise, moved variable
|
||
declarations down.
|
||
(ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
|
||
and info, moved variable declarations down.
|
||
(ipa_analyze_call_uses): Accept and pass on func_body_info instead of
|
||
node and info.
|
||
(ipa_analyze_stmt_uses): Likewise.
|
||
(ipa_analyze_params_uses): Removed.
|
||
(ipa_analyze_params_uses_in_bb): New function.
|
||
(ipa_analyze_controlled_uses): Likewise.
|
||
(free_ipa_bb_info): Likewise.
|
||
(analysis_dom_walker): New class.
|
||
(ipa_analyze_node): Handle node-specific forbidden analysis,
|
||
initialize and free func_body_info, use dominator walker.
|
||
(ipcp_modif_dom_walker): New class.
|
||
(ipcp_transform_function): Create and free func_body_info, use
|
||
ipcp_modif_dom_walker, moved a lot of functionality there.
|
||
|
||
2014-05-23 Marek Polacek <polacek@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
|
||
* gcc.c (sanitize_spec_function): Likewise.
|
||
* convert.c (convert_to_integer): Include "ubsan.h". Add
|
||
floating-point to integer instrumentation.
|
||
* doc/invoke.texi: Document -fsanitize=float-cast-overflow.
|
||
* flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
|
||
SANITIZE_NONDEFAULT.
|
||
* opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
|
||
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
|
||
BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
|
||
* ubsan.c: Include "realmpfr.h" and "dfp.h".
|
||
(get_ubsan_type_info_for_type): Handle REAL_TYPEs.
|
||
(ubsan_type_descriptor): Set tkind to 0xffff for types other than
|
||
float/double/long double.
|
||
(ubsan_instrument_float_cast): New function.
|
||
* ubsan.h (ubsan_instrument_float_cast): Declare.
|
||
|
||
2014-05-23 Jiong Wang <jiong.wang@arm.com>
|
||
|
||
* config/aarch64/predicates.md (aarch64_call_insn_operand): New
|
||
predicate.
|
||
* config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
|
||
* config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
|
||
Adjust for tailcalling through registers.
|
||
* config/aarch64/aarch64.h (enum reg_class): New caller save
|
||
register class.
|
||
(REG_CLASS_NAMES): Likewise.
|
||
(REG_CLASS_CONTENTS): Likewise.
|
||
* config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
|
||
Allow tailcalling without decls.
|
||
|
||
2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
|
||
Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
|
||
|
||
* omp-low.c (expand_omp_for_static_chunk): Rename variable si to
|
||
gsi, and variables v_* to v*.
|
||
|
||
2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
|
||
|
||
2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
|
||
* omp-low.c: Update accordingly.
|
||
|
||
* gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
|
||
for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
|
||
GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
|
||
GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
|
||
GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
|
||
GF_OMP_TARGET_KIND_UPDATE.
|
||
|
||
* gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
|
||
Explicitly enumerate the expected region types.
|
||
|
||
2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
|
||
|
||
PR other/56955
|
||
* doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
|
||
documentation; the old documentation didn't clearly state the
|
||
constraints on the contents of the pointed-to storage.
|
||
|
||
2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
|
||
|
||
Fix bootstrap error on ia64
|
||
* config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
|
||
Return default value.
|
||
|
||
2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
PR tree-optimization/54733
|
||
* tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
|
||
(CMPNOP): Define.
|
||
(find_bswap_or_nop_load): New.
|
||
(find_bswap_1): Renamed to ...
|
||
(find_bswap_or_nop_1): This. Also add support for memory source.
|
||
(find_bswap): Renamed to ...
|
||
(find_bswap_or_nop): This. Also add support for memory source and
|
||
detection of bitwise operations equivalent to load in target
|
||
endianness.
|
||
(execute_optimize_bswap): Likewise. Also move its leading comment back
|
||
in place and split statement transformation into ...
|
||
(bswap_replace): This.
|
||
|
||
2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/61215
|
||
* lra-elelimination.c (lra_eliminate_regs_1): Don't use
|
||
simplify_gen_subreg until final substitution.
|
||
|
||
2014-05-23 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/61231
|
||
* config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
|
||
* config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
|
||
Use "Y" constraint rather than "m".
|
||
|
||
2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||
|
||
* config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
|
||
define.
|
||
* config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
|
||
New function declaration.
|
||
* config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
|
||
AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
|
||
AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
|
||
(aarch64_init_builtins) : Initialize builtins
|
||
__builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
|
||
__builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
|
||
(aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
|
||
__builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
|
||
and __builtins_aarch64_set_fpsr.
|
||
(aarch64_atomic_assign_expand_fenv): New function.
|
||
* config/aarch64/aarch64.md (set_fpcr): New pattern.
|
||
(get_fpcr) : Likewise.
|
||
(set_fpsr) : Likewise.
|
||
(get_fpsr) : Likewise.
|
||
(unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
|
||
and UNSPECV_SET_FPSR.
|
||
* doc/extend.texi (AARCH64 Built-in Functions) : Document
|
||
__builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
|
||
__builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
|
||
|
||
2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/60969
|
||
* ira-costs.c (record_reg_classes): Process NO_REGS for matching
|
||
constraints. Set up mem cost for NO_REGS case.
|
||
|
||
2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
|
||
|
||
2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
* config/darwin.c: Include "lto-section-names.h".
|
||
(LTO_SEGMENT_NAME): Don't define.
|
||
* config/i386/winnt.c: Include "lto-section-names.h".
|
||
* lto-streamer.c: Include "lto-section-names.h".
|
||
* lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
|
||
* lto-wrapper.c: Include "lto-section-names.h".
|
||
(LTO_SECTION_NAME_PREFIX): Don't define.
|
||
* lto-section-names.h: New file.
|
||
* cgraphunit.c: Include "lto-section-names.h".
|
||
|
||
2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
|
||
|
||
2014-05-22 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
PR target/61208
|
||
* arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
|
||
|
||
2014-05-22 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
|
||
|
||
2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
|
||
-> (T)A transformation to integer types.
|
||
|
||
2014-05-22 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
|
||
(gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
|
||
(gcov_rewrite): Use gcov_nonruntime_assert.
|
||
(gcov_open): Ditto.
|
||
(gcov_write_words): Ditto.
|
||
(gcov_write_length): Ditto.
|
||
(gcov_read_words): Use gcov_nonruntime_assert, and remove
|
||
gcc_assert from IN_LIBGCOV code.
|
||
(gcov_read_summary): Use gcov_error to flag profile corruption.
|
||
(gcov_sync): Use gcov_nonruntime_assert.
|
||
(gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
|
||
(gcov_histo_index): Use gcov_nonruntime_assert.
|
||
(static void gcov_histogram_merge): Ditto.
|
||
(compute_working_sets): Ditto.
|
||
* gcov-io.h (gcov_nonruntime_assert): Define.
|
||
(gcov_error): Define for !IN_LIBGCOV
|
||
|
||
2014-05-22 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
|
||
BUILT_IN_REALLOC like BUILT_IN_STRDUP.
|
||
(call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
|
||
and deallocation site.
|
||
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
|
||
Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
|
||
passing through the incoming points-to set.
|
||
(handle_lhs_call): Use flags argument instead of recomputing it.
|
||
(find_func_aliases_for_call): Call handle_lhs_call with proper
|
||
call return flags.
|
||
|
||
2014-05-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
|
||
all padding bits in REAL_VALUE_TYPE are cleared.
|
||
|
||
2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
|
||
|
||
Cleanup and improve multipass_dfa_lookahead_guard
|
||
* config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
|
||
(core2i7_first_cycle_multipass_begin,)
|
||
(core2i7_first_cycle_multipass_issue,)
|
||
(core2i7_first_cycle_multipass_backtrack): Update signature.
|
||
* config/ia64/ia64.c
|
||
(ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
|
||
(ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
|
||
(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
|
||
hook definition.
|
||
(ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
|
||
ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
|
||
values.
|
||
* config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
|
||
return values.
|
||
* doc/tm.texi: Regenerate.
|
||
* doc/tm.texi.in
|
||
(TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
|
||
* haifa-sched.c (ready_try): Make signed to allow negative values.
|
||
(rebug_ready_list_1): Update.
|
||
(choose_ready): Simplify.
|
||
(sched_extend_ready_list): Update.
|
||
|
||
2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
|
||
|
||
Remove IA64 speculation tweaking flags
|
||
* config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
|
||
speculation tuning flags.
|
||
(msched-prefer-non-data-spec-insns,)
|
||
(msched-prefer-non-control-spec-insns): Obsolete options.
|
||
* haifa-sched.c (choose_ready): Remove handling of
|
||
PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
|
||
* sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
|
||
and PREFER_NON_DATA_SPEC.
|
||
* sel-sched.c (process_spec_exprs): Remove handling of
|
||
PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
|
||
|
||
2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
|
||
|
||
Improve scheduling debug output
|
||
* haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
|
||
(advance_one_cycle): Update.
|
||
(schedule_insn, queue_to_ready): Add debug printouts.
|
||
(debug_ready_list_1): New static function.
|
||
(debug_ready_list): Update.
|
||
(max_issue): Add debug printouts.
|
||
(dump_insn_stream): New static function.
|
||
(schedule_block): Use it. Also better indent printouts.
|
||
|
||
2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
|
||
|
||
Fix sched_insn debug counter
|
||
* haifa-sched.c (schedule_insn): Update.
|
||
(struct haifa_saved_data): Add nonscheduled_insns_begin.
|
||
(save_backtrack_point, restore_backtrack_point): Update.
|
||
(first_nonscheduled_insn): New static function.
|
||
(queue_to_ready, choose_ready): Use it.
|
||
(schedule_block): Init nonscheduled_insns_begin.
|
||
(sched_emit_insn): Update.
|
||
|
||
|
||
2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
|
||
to GENERAL_REGS.
|
||
(aarch64_secondary_reload) : LikeWise.
|
||
(aarch64_class_max_nregs) : Remove CORE_REGS.
|
||
* config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
|
||
(REG_CLASS_NAMES) : Likewise.
|
||
(REG_CLASS_CONTENTS) : LikeWise.
|
||
(INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
|
||
|
||
2014-05-21 Guozhi Wei <carrot@google.com>
|
||
|
||
PR target/61202
|
||
* config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
|
||
constraint.
|
||
(vqdmulhq_n_s16): Likewise.
|
||
|
||
2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/predicates.md (update_indexed_address_mem): Delete.
|
||
|
||
2014-05-21 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR sanitizer/61272
|
||
* ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
|
||
|
||
2014-05-21 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* doc/invoke.texi (Optimize Options): Document parameters
|
||
ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
|
||
ipa-cp-array-index-hint-bonus.
|
||
|
||
2014-05-21 Mark Wielaard <mjw@redhat.com>
|
||
|
||
PR debug/16063
|
||
* dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
|
||
version >= 3 or not strict DWARF.
|
||
* langhooks.h (struct lang_hooks_for_types): Add
|
||
enum_underlying_base_type.
|
||
* langhooks.c (lhd_enum_underlying_base_type): New function.
|
||
* gcc/langhooks.h (struct lang_hooks_for_types): Add
|
||
enum_underlying_base_type.
|
||
* langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
|
||
(LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
|
||
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
|
||
|
||
2014-05-21 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/invoke.texi (-flto-partition=): Document one and none algorithms.
|
||
|
||
2014-05-21 John Marino <gnugcc@marino.st>
|
||
|
||
* config.gcc (*-*-dragonfly*): New target.
|
||
* configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
|
||
* configure: Regenerate.
|
||
* config/dragonfly-stdint.h: New.
|
||
* config/dragonfly.h: New.
|
||
* config/dragonfly.opt: New.
|
||
* config/i386/dragonfly.h: New.
|
||
* ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
|
||
|
||
2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
* tree.def (VOID_CST): New.
|
||
* tree-core.h (TI_VOID): New.
|
||
* tree.h (void_node): New.
|
||
* tree.c (tree_node_structure_for_code, tree_code_size)
|
||
(iterative_hash_expr): Handle VOID_CST.
|
||
(build_common_tree_nodes): Initialize void_node.
|
||
|
||
2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
* reload1.c (remove_init_insns, will_delete_init_insn_p): New static
|
||
functions.
|
||
(reload, calculate_needs_all_insns, reload_as_needed): Use them.
|
||
|
||
* config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
|
||
more places.
|
||
|
||
* cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
|
||
flag_reorder_blocks_and_partition.
|
||
* hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
|
||
|
||
2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/54236
|
||
* config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
|
||
constraints.
|
||
(*addc_r_t): Add new insn_and_split.
|
||
|
||
2014-05-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/61252
|
||
* omp-low.c (handle_simd_reference): New function.
|
||
(lower_rec_input_clauses): Use it. Defer adding reference
|
||
initialization even for reduction without placeholder if in simd,
|
||
handle it properly later on.
|
||
|
||
2014-05-20 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR tree-optimization/60899
|
||
* gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
|
||
assume all static symbols will have definition wile parsing and
|
||
check the do have definition later in compilation; check that
|
||
variable referring symbol will be output before concluding that
|
||
reference is safe; be conservative for referring local statics;
|
||
be more precise about when comdat is output in other partition.
|
||
|
||
2014-05-20 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR bootstrap/60984
|
||
* ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
|
||
parameter.
|
||
* ipa-inline.c (inline_to_all_callers): If callee was removed; return.
|
||
(ipa_inline): Loop inline_to_all_callers until no more aliases
|
||
are removed.
|
||
|
||
2014-05-20 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
|
||
set writeonly flag only for vars actually written to.
|
||
|
||
2014-05-20 Dehao Chen <dehao@google.com>
|
||
|
||
* ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
|
||
and callee count to get clone count.
|
||
* tree-inline.c (expand_call_inline): Use callee count instead of bb
|
||
count in copy_body.
|
||
|
||
2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR rtl-optimization/61243
|
||
* emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
|
||
|
||
2014-05-20 Xinliang David Li <davidxl@google.com>
|
||
|
||
* cgraphunit.c (walk_polymorphic_call_targets): Add
|
||
dbgcnt and fopt-info support.
|
||
* ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
|
||
* ipa-devirt.c (ipa_devirt): Ditto.
|
||
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
|
||
* ipa.c (walk_polymorphic_call_targets): Ditto.
|
||
* gimple-fold.c (fold_gimple_assign): Ditto.
|
||
(gimple_fold_call): Ditto.
|
||
* dbgcnt.def: New counter.
|
||
|
||
2014-05-20 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/msp430/msp430.md (split): Don't allow subregs when
|
||
splitting SImode adds.
|
||
(andneghi): Fix subtraction logic.
|
||
* config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
|
||
|
||
2014-05-20 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* tree.h (DECL_ONE_ONLY): Return true only for externally visible
|
||
symbols.
|
||
* except.c (switch_to_exception_section, resolve_unique_section,
|
||
get_named_text_section, default_function_rodata_section,
|
||
align_variable, get_block_for_decl, default_section_type_flags):
|
||
Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
|
||
* symtab.c (symtab_add_to_same_comdat_group,
|
||
symtab_make_decl_local, fixup_same_cpp_alias_visibility,
|
||
symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
|
||
Likewise.
|
||
* cgraphclones.c (cgraph_create_virtual_clone): Likewise.
|
||
* bb-reorder.c (pass_partition_blocks::gate): Likewise.
|
||
* config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
|
||
(c6x_function_in_section_p): Likewise.
|
||
* config/darwin.c (machopic_select_section): Likewise.
|
||
* config/arm/arm.c (arm_function_in_section_p): Likewise.
|
||
* config/mips/mips.c (mips_function_rodata_section): Likewise.
|
||
* config/mep/mep.c (mep_select_section): LIkewise.
|
||
* config/i386/i386.c (x86_64_elf_unique_section): Likewise.
|
||
|
||
2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
|
||
EH region of calls to pure functions that can throw an exception.
|
||
* tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
|
||
(copy_reference_ops_from_call): Also copy the EH region of the call if
|
||
it can throw an exception.
|
||
|
||
2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* simplify-rtx.c (simplify_binary_operation_1): Optimize case of
|
||
nested VEC_SELECTs that are inverses of each other.
|
||
|
||
2014-05-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
|
||
(extract_and_process_scc_for_name): not here.
|
||
(cond_dom_walker::before_dom_children): Only process
|
||
stmts that end the BB in interesting ways.
|
||
(run_scc_vn): Mark param uses as visited.
|
||
|
||
2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.md (arith_shiftsi): Do not predicate for
|
||
arm_restrict_it.
|
||
|
||
2014-05-20 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
|
||
(msp430_gimplify_va_arg_expr): New function.
|
||
(msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
|
||
|
||
* config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
|
||
operand 0 in order to prevent confusion about the number of
|
||
registers involved.
|
||
|
||
2014-05-20 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61221
|
||
* tree-ssa-pre.c (el_to_update): Remove.
|
||
(eliminate_dom_walker::before_dom_children): Handle released
|
||
VDEFs by value-numbering them to the associated VUSE. Update
|
||
stmt immediately for substituted call address.
|
||
(eliminate): Remove delayed stmt updating code.
|
||
* tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
|
||
possibly late re-numbered vuses.
|
||
(vn_reference_lookup_2): Adjust.
|
||
(vn_reference_lookup_pieces): Likewise.
|
||
(vn_reference_lookup): Likewise.
|
||
|
||
2014-05-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* config.gcc: Remove need_64bit_hwint.
|
||
* configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
|
||
* hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
|
||
it to be true.
|
||
* config.in: Regenerate.
|
||
* configure: Likewise.
|
||
|
||
2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
|
||
|
||
* doc/extend.texi: Create Label Attributes section,
|
||
move all label attributes into it and reference it.
|
||
|
||
2014-05-19 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* arm.c (thumb1_reorg): When scanning backwards skip anything
|
||
that's not a proper insn.
|
||
|
||
2014-05-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61221
|
||
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
|
||
Do nothing for unreachable blocks.
|
||
* tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
|
||
Improve unreachability detection.
|
||
|
||
2014-05-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61209
|
||
* tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
|
||
|
||
2014-05-19 Nick Clifton <nickc@redhat.com>
|
||
|
||
* except.c (init_eh): Fix computation of builtin setjmp buffer
|
||
size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
|
||
|
||
2014-05-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61184
|
||
* tree-vrp.c (is_negative_overflow_infinity): Use
|
||
TREE_OVERFLOW_P and do that check first.
|
||
(is_positive_overflow_infinity): Likewise.
|
||
(is_overflow_infinity): Likewise.
|
||
(vrp_operand_equal_p): Properly treat operands with
|
||
differing overflow as not equal.
|
||
|
||
2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
* simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
|
||
shift simplification where it was intended.
|
||
|
||
2014-05-19 Christian Bruel <christian.bruel@st.com>
|
||
|
||
PR target/61195
|
||
* config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
|
||
|
||
2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
|
||
|
||
PR target/61084
|
||
* config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
|
||
than wide_int.
|
||
|
||
2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* reg-notes.def (CROSSING_JUMP): Likewise.
|
||
* rtl.h (rtx_def): Update comment for jump flag.
|
||
(CROSSING_JUMP_P): Define.
|
||
* cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
|
||
of a REG_CROSSING_JUMP note.
|
||
* cfghooks.c (tidy_fallthru_edges): Likewise.
|
||
* cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
|
||
* emit-rtl.c (try_split): Likewise.
|
||
* haifa-sched.c (sched_create_recovery_edges): Likewise.
|
||
* ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
|
||
* jump.c (redirect_jump_2): Likewise.
|
||
* reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
|
||
(relax_delay_slots): Likewise.
|
||
* config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
|
||
(bbit_di): Likewise.
|
||
* config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
|
||
* config/sh/sh.md (jump_compact): Likewise.
|
||
* bb-reorder.c (rotate_loop): Likewise.
|
||
(pass_duplicate_computed_gotos::execute): Likewise.
|
||
(add_reg_crossing_jump_notes): Rename to...
|
||
(update_crossing_jump_flags): ...this.
|
||
(pass_partition_blocks::execute): Update accordingly.
|
||
|
||
2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* tree.h: Remove extraneous template <>.
|
||
|
||
2014-05-17 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa.c (symtab_remove_unreachable_nodes): Remove
|
||
symbol from comdat group if its body was eliminated.
|
||
(comdat_can_be_unshared_p_1): Static symbols can always be privatized.
|
||
* symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
|
||
(symtab_unregister_node): ... this one.
|
||
(verify_symtab_base): More strict checking of comdats.
|
||
* cgraph.h (symtab_remove_from_same_comdat_group): Declare.
|
||
|
||
2014-05-17 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* tree-pass.h (make_pass_ipa_comdats): New pass.
|
||
* timevar.def (TV_IPA_COMDATS): New timevar.
|
||
* passes.def (pass_ipa_comdats): Add.
|
||
* Makefile.in (OBJS): Add ipa-comdats.o
|
||
* ipa-comdats.c: New file.
|
||
|
||
2014-05-17 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa.c (update_visibility_by_resolution_info): New function.
|
||
(function_and_variable_visibility): Use it.
|
||
|
||
2014-05-17 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
|
||
New functions.
|
||
(FOR_EACH_DEFINED_SYMBOL): New macro.
|
||
(varpool_first_static_initializer, varpool_next_static_initializer,
|
||
varpool_first_defined_variable, varpool_next_defined_variable):
|
||
Fix comments.
|
||
(symtab_in_same_comdat_p): Correctly deal with inline functions.
|
||
|
||
2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* ggc-page.c (ggc_handle_finalizers): Add comment.
|
||
|
||
2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* ggc-common.c (ggc_internal_cleared_alloc): Adjust.
|
||
* ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
|
||
(ggc_internal_cleared_alloc): Likewise.
|
||
* ggc-page.c (finalizer): New class.
|
||
(vec_finalizer): Likewise.
|
||
(globals::finalizers): New member.
|
||
(globals::vec_finalizers): Likewise.
|
||
(ggc_internal_alloc): Record the finalizer if any for the block being
|
||
allocated.
|
||
(ggc_handle_finalizers): New function.
|
||
(ggc_collect): Call ggc_handle_finalizers.
|
||
* ggc.h (ggc_internal_alloc): Add arguments to allow installing a
|
||
finalizer.
|
||
(ggc_internal_cleared_alloc): Likewise.
|
||
(finalize): New function.
|
||
(need_finalization_p): Likewise.
|
||
(ggc_alloc): Install the type's destructor as the finalizer if it
|
||
might do something.
|
||
(ggc_cleared_alloc): Likewise.
|
||
(ggc_vec_alloc): Likewise.
|
||
(ggc_cleared_vec_alloc): Likewise.
|
||
|
||
2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
|
||
|
||
2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* alias.c (record_alias_subset): Adjust.
|
||
* bitmap.c (bitmap_element_allocate): Likewise.
|
||
(bitmap_gc_alloc_stat): Likewise.
|
||
* cfg.c (init_flow): Likewise.
|
||
(alloc_block): Likewise.
|
||
(unchecked_make_edge): Likewise.
|
||
* cfgloop.c (alloc_loop): Likewise.
|
||
(flow_loops_find): Likewise.
|
||
(rescan_loop_exit): Likewise.
|
||
* cfgrtl.c (init_rtl_bb_info): Likewise.
|
||
* cgraph.c (insert_new_cgraph_node_version): Likewise.
|
||
(cgraph_allocate_node): Likewise.
|
||
(cgraph_create_edge_1): Likewise.
|
||
(cgraph_allocate_init_indirect_info): Likewise.
|
||
* cgraphclones.c (cgraph_clone_edge): Likewise.
|
||
* cgraphunit.c (add_asm_node): Likewise.
|
||
(init_lowered_empty_function): Likewise.
|
||
* config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
|
||
* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
|
||
(alpha_use_linkage): Likewise.
|
||
* config/arc/arc.c (arc_init_machine_status): Likewise.
|
||
* config/arm/arm.c (arm_init_machine_status): Likewise.
|
||
* config/avr/avr.c (avr_init_machine_status): Likewise.
|
||
* config/bfin/bfin.c (bfin_init_machine_status): Likewise.
|
||
* config/c6x/c6x.c (c6x_init_machine_status): Likewise.
|
||
* config/cris/cris.c (cris_init_machine_status): Likewise.
|
||
* config/darwin.c (machopic_indirection_name): Likewise.
|
||
(darwin_build_constant_cfstring): Likewise.
|
||
(darwin_enter_string_into_cfstring_table): Likewise.
|
||
* config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
|
||
* config/frv/frv.c (frv_init_machine_status): Likewise.
|
||
* config/i386/i386.c (get_dllimport_decl): Likewise.
|
||
(ix86_init_machine_status): Likewise.
|
||
(assign_386_stack_local): Likewise.
|
||
* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
|
||
(i386_pe_maybe_record_exported_symbol): Likewise.
|
||
(i386_pe_record_stub): Likewise.
|
||
* config/ia64/ia64.c (ia64_init_machine_status): Likewise.
|
||
* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
|
||
* config/m32c/m32c.c (m32c_init_machine_status): Likewise.
|
||
(m32c_note_pragma_address): Likewise.
|
||
* config/mep/mep.c (mep_init_machine_status): Likewise.
|
||
(mep_note_pragma_flag): Likewise.
|
||
* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
|
||
(mips16_local_alias): Likewise.
|
||
(mips_init_machine_status): Likewise.
|
||
* config/mmix/mmix.c (mmix_init_machine_status): Likewise.
|
||
* config/moxie/moxie.c (moxie_init_machine_status): Likewise.
|
||
* config/msp430/msp430.c (msp430_init_machine_status): Likewise.
|
||
* config/nds32/nds32.c (nds32_init_machine_status): Likewise.
|
||
* config/nios2/nios2.c (nios2_init_machine_status): Likewise.
|
||
* config/pa/pa.c (pa_init_machine_status): Likewise.
|
||
(pa_get_deferred_plabel): Likewise.
|
||
* config/rl78/rl78.c (rl78_init_machine_status): Likewise.
|
||
* config/rs6000/rs6000.c (builtin_function_type): Likewise.
|
||
(rs6000_init_machine_status): Likewise.
|
||
(output_toc): Likewise.
|
||
* config/s390/s390.c (s390_init_machine_status): Likewise.
|
||
* config/score/score.c (score_output_external): Likewise.
|
||
* config/sparc/sparc.c (sparc_init_machine_status): Likewise.
|
||
* config/spu/spu.c (spu_init_machine_status): Likewise.
|
||
* config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
|
||
* config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
|
||
* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
|
||
* coverage.c (coverage_end_function): Likewise.
|
||
* dbxout.c (dbxout_init): Likewise.
|
||
* doc/gty.texi: Don't mention variable_size attribute.
|
||
* dwarf2cfi.c (new_cfi): Adjust.
|
||
(new_cfi_row): Likewise.
|
||
(copy_cfi_row): Likewise.
|
||
(create_cie_data): Likewise.
|
||
* dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
|
||
(new_loc_descr): Likewise.
|
||
(find_AT_string_in_table): Likewise.
|
||
(add_addr_table_entry): Likewise.
|
||
(new_die): Likewise.
|
||
(add_var_loc_to_decl): Likewise.
|
||
(clone_die): Likewise.
|
||
(clone_as_declaration): Likewise.
|
||
(break_out_comdat_types): Likewise.
|
||
(new_loc_list): Likewise.
|
||
(add_loc_descr_to_each): Likewise.
|
||
(add_location_or_const_value_attribute): Likewise.
|
||
(add_linkage_name): Likewise.
|
||
(lookup_filename): Likewise.
|
||
(dwarf2out_var_location): Likewise.
|
||
(new_line_info_table): Likewise.
|
||
(dwarf2out_init): Likewise.
|
||
(mem_loc_descriptor): Likewise.
|
||
(loc_descriptor): Likewise.
|
||
(add_const_value_attribute): Likewise.
|
||
(tree_add_const_value_attribute): Likewise.
|
||
(comp_dir_string): Likewise.
|
||
(dwarf2out_vms_debug_main_pointer): Likewise.
|
||
(string_cst_pool_decl): Likewise.
|
||
* emit-rtl.c (set_mem_attrs): Likewise.
|
||
(get_reg_attrs): Likewise.
|
||
(start_sequence): Likewise.
|
||
(init_emit): Likewise.
|
||
(init_emit_regs): Likewise.
|
||
* except.c (init_eh_for_function): Likewise.
|
||
(gen_eh_region): Likewise.
|
||
(gen_eh_region_catch): Likewise.
|
||
(gen_eh_landing_pad): Likewise.
|
||
(add_call_site): Likewise.
|
||
* function.c (add_frame_space): Likewise.
|
||
(insert_temp_slot_address): Likewise.
|
||
(assign_stack_temp_for_type): Likewise.
|
||
(get_hard_reg_initial_val): Likewise.
|
||
(allocate_struct_function): Likewise.
|
||
(prepare_function_start): Likewise.
|
||
(types_used_by_var_decl_insert): Likewise.
|
||
* gengtype.c (variable_size_p): Remove function.
|
||
(enum alloc_quantity): Remove enum.
|
||
(write_typed_alloc_def): Remove function.
|
||
(write_typed_struct_alloc_def): Likewise.
|
||
(write_typed_typedef_alloc_def): Likewise.
|
||
(write_typed_alloc_defns): Likewise.
|
||
(main): Adjust.
|
||
* ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
|
||
(ggc_cleared_alloc_ptr_array_two_args): Likewise.
|
||
* ggc.h (ggc_alloc): new function.
|
||
(ggc_cleared_alloc): Likewise.
|
||
(ggc_vec_alloc): Template on type of vector element, and remove
|
||
element size argument.
|
||
(ggc_cleared_vec_alloc): Likewise.
|
||
* gimple.c (gimple_build_omp_for): Adjust.
|
||
(gimple_copy): Likewise.
|
||
* ipa-cp.c (get_replacement_map): Likewise.
|
||
(find_aggregate_values_for_callers_subset): Likewise.
|
||
(known_aggs_to_agg_replacement_list): Likewise.
|
||
* ipa-devirt.c (get_odr_type): Likewise.
|
||
* ipa-prop.c (ipa_node_duplication_hook): Likewise.
|
||
(read_agg_replacement_chain): Likewise.
|
||
* loop-iv.c (get_simple_loop_desc): Likewise.
|
||
* lto-cgraph.c (input_node_opt_summary): Likewise.
|
||
* lto-section-in.c (lto_new_in_decl_state): Likewise.
|
||
* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
|
||
(input_eh_region): Likewise.
|
||
(input_eh_lp): Likewise.
|
||
(input_cfg): Likewise.
|
||
* optabs.c (set_optab_libfunc): Likewise.
|
||
(init_tree_optimization_optabs): Likewise.
|
||
(set_conv_libfunc): Likewise.
|
||
* passes.c (do_per_function_toporder): Likewise.
|
||
* rtl.h: Don't use variable_size gty attribute.
|
||
* sese.c (if_region_set_false_region): Adjust.
|
||
* stringpool.c (gt_pch_save_stringpool): Likewise.
|
||
* target-globals.c (save_target_globals): Likewise.
|
||
* toplev.c (general_init): Likewise.
|
||
* trans-mem.c (record_tm_replacement): Likewise.
|
||
(split_bb_make_tm_edge): Likewise.
|
||
* tree-cfg.c (move_sese_region_to_fn): Likewise.
|
||
* tree-data-ref.h (lambda_vector_new): Likewise.
|
||
* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
|
||
* tree-iterator.c (tsi_link_before): Likewise.
|
||
(tsi_link_after): Likewise.
|
||
* tree-scalar-evolution.c (new_scev_info_str): Likewise.
|
||
* tree-ssa-loop-niter.c (record_estimate): Likewise.
|
||
* tree-ssa-operands.c (ssa_operand_alloc): Likewise.
|
||
* tree-ssa-operands.h: Don't use variable_size gty attribute.
|
||
* tree-ssa.c (init_tree_ssa): Adjust.
|
||
* tree-ssanames.c (set_range_info): Likewise.
|
||
(get_ptr_info): Likewise.
|
||
(duplicate_ssa_name_ptr_info): Likewise.
|
||
(duplicate_ssa_name_range_info): Likewise.
|
||
* tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
|
||
(unpack_ts_fixed_cst_value_fields): Likewise.
|
||
* tree.c (build_fixed): Likewise.
|
||
(build_real): Likewise.
|
||
(build_string): Likewise.
|
||
(decl_priority_info): Likewise.
|
||
(decl_debug_expr_insert): Likewise.
|
||
(decl_value_expr_insert): Likewise.
|
||
(decl_debug_args_insert): Likewise.
|
||
(type_hash_add): Likewise.
|
||
(build_omp_clause): Likewise.
|
||
* ubsan.c (decl_for_type_insert): Likewise.
|
||
* varasm.c (get_unnamed_section): Likewise.
|
||
(get_noswitch_section): Likewise.
|
||
(get_section): Likewise.
|
||
(get_block_for_section): Likewise.
|
||
(create_block_symbol): Likewise.
|
||
(build_constant_desc): Likewise.
|
||
(create_constant_pool): Likewise.
|
||
(force_const_mem): Likewise.
|
||
(record_tm_clone_pair): Likewise.
|
||
* varpool.c (varpool_create_empty_node): Likewise.
|
||
|
||
2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* dwarf2out.c (tree_add_const_value_attribute): Call
|
||
ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
|
||
* gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
|
||
instead of ggc_internal_<x>alloc_stat.
|
||
* ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
|
||
(ggc_realloc): Likewise.
|
||
* ggc-none.c (ggc_internal_alloc): Likewise.
|
||
(ggc_internal_cleared_alloc): Likewise.
|
||
* ggc-page.c: Likewise.
|
||
* ggc.h (ggc_internal_alloc_stat): Likewise.
|
||
(ggc_internal_alloc): Remove macro.
|
||
(ggc_internal_cleared_alloc_stat): Drop _stat suffix.
|
||
(ggc_internal_cleared_alloc): Remove macro.
|
||
(GGC_RESIZEVEC): Adjust.
|
||
(ggc_resizevar): Remove macro.
|
||
(ggc_internal_vec_alloc_stat): Drop _stat suffix.
|
||
(ggc_internal_cleared_vec_alloc_stat): Likewise.
|
||
(ggc_internal_vec_cleared_alloc): Remove macro.
|
||
(ggc_alloc_atomic_stat): Drop _stat suffix.
|
||
(ggc_alloc_atomic): Remove macro.
|
||
(ggc_alloc_cleared_atomic): Remove macro.
|
||
(ggc_alloc_string_stat): Drop _stat suffix.
|
||
(ggc_alloc_string): Remove macro.
|
||
(ggc_alloc_rtx_def_stat): Adjust.
|
||
(ggc_alloc_tree_node_stat): Likewise.
|
||
(ggc_alloc_cleared_tree_node_stat): Likewise.
|
||
(ggc_alloc_cleared_gimple_statement_stat): Likewise.
|
||
(ggc_alloc_cleared_simd_clone_stat): Likewise.
|
||
* gimple.c (gimple_build_omp_for): Likewise.
|
||
(gimple_copy): Likewise.
|
||
* stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
|
||
* toplev.c (realloc_for_line_map): Adjust.
|
||
* tree-data-ref.h (lambda_vector_new): Likewise.
|
||
* tree-phinodes.c (allocate_phi_node): Likewise.
|
||
* tree.c (grow_tree_vec_stat): Likewise.
|
||
* vec.h (va_gc::reserve): Adjust.
|
||
|
||
2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.c (break_handler): New Declaration.
|
||
(microblaze_break_function_p,microblaze_is_break_handler): New.
|
||
(compute_frame_size): Use microblaze_break_function_p.
|
||
Add the test of break_handler.
|
||
(microblaze_function_prologue) : Add the test of variable
|
||
break_handler. Check the fnname by BREAK_HANDLER_NAME.
|
||
(microblaze_function_epilogue) : Add the test of break_handler.
|
||
(microblaze_globalize_label) : Add the test of break_handler.
|
||
Check the name by BREAK_HANDLER_NAME.
|
||
|
||
* config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
|
||
|
||
* config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
|
||
microblaze_is_break_handler test.
|
||
(call_internal1,call_value_intern): Use microblaze_break_function_p.
|
||
Use SYMBOL_REF_DECL.
|
||
|
||
* config/microblaze/microblaze-protos.h
|
||
(microblaze_break_function_p,microblaze_is_break_handler):
|
||
New Declaration.
|
||
|
||
* doc/extend.texi (MicroBlaze break_handler Functions): Document
|
||
new MicroBlaze break_handler functions.
|
||
|
||
2014-05-17 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* doc/extend.texi (Size of an asm): Move node text according
|
||
to its @menu entry position.
|
||
|
||
2014-05-17 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR tree-optimization/61140
|
||
PR tree-optimization/61150
|
||
PR tree-optimization/61197
|
||
* tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
|
||
|
||
2014-05-17 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
|
||
|
||
2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
|
||
|
||
* wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
|
||
__SIZEOF_INT128__ is defined.
|
||
|
||
2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
|
||
(rs6000_delegitimize_address): Use it.
|
||
|
||
2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
|
||
inplace argument. Store the new address in the original MEM when true.
|
||
* emit-rtl.c (change_address_1): Likewise.
|
||
(adjust_address_1, adjust_automodify_address_1, offset_address):
|
||
Update accordingly.
|
||
* rtl.h (plus_constant): Add an inplace argument.
|
||
* explow.c (plus_constant): Likewise. Try to reuse the original PLUS
|
||
when true. Avoid generating (plus X (const_int 0)).
|
||
* function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
|
||
in-place. Pass true to plus_constant.
|
||
(instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
|
||
|
||
2014-05-16 Dehao Chen <dehao@google.com>
|
||
|
||
* tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
|
||
|
||
2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/54089
|
||
* config/sh/predicates.md (negt_reg_shl31_operand): Match additional
|
||
patterns.
|
||
* config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
|
||
|
||
2014-05-16 Dehao Chen <dehao@google.com>
|
||
|
||
* ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
|
||
optimize_function_for_size_p.
|
||
* regs.h (REG_FREQ_FROM_BB): Likewise.
|
||
|
||
2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/51244
|
||
* config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
|
||
negt_reg_operand cases.
|
||
* config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
|
||
predicate.
|
||
* config/sh/predicates.md (cbranch_treg_value): Simplify.
|
||
|
||
2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
* config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
|
||
target variants.
|
||
|
||
2014-05-16 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
Revert:
|
||
2014-04-29 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* tree-cfg.c (dump_function_to_file): Dump the return type of
|
||
functions, in a line to itself before the function body, mimicking
|
||
the layout of a C function.
|
||
|
||
2014-05-16 Dehao Chen <dehao@google.com>
|
||
|
||
* cfghooks.c (make_forwarder_block): Use direct computation to
|
||
get fall-through edge's count and frequency.
|
||
|
||
2014-05-16 Benno Schulenberg <bensberg@justemail.net>
|
||
|
||
* config/arc/arc.c (arc_init): Fix typo in error message.
|
||
* config/i386/i386.c (ix86_expand_builtin): Likewise.
|
||
(split_stack_prologue_scratch_regno): Likewise.
|
||
* fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
|
||
word from error message.
|
||
|
||
2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
|
||
|
||
* ira-costs.c: Fix typo in comment.
|
||
|
||
2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
|
||
|
||
* doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
|
||
|
||
2014-05-16 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* varpool.c (dump_varpool_node): Dump write-only flag.
|
||
* lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
|
||
write-only flag.
|
||
* tree-cfg.c (execute_fixup_cfg): Remove statements setting
|
||
write-only variables.
|
||
* ipa.c (process_references): New function.
|
||
(set_readonly_bit): New function.
|
||
(set_writeonly_bit): New function.
|
||
(clear_addressable_bit): New function.
|
||
(ipa_discover_readonly_nonaddressable_var): Mark write only variables;
|
||
fix handling of aliases.
|
||
* cgraph.h (struct varpool_node): Add writeonly flag.
|
||
|
||
2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/60969
|
||
* ira-costs.c (record_reg_classes): Allow only memory for pseudo.
|
||
Calculate costs for this case.
|
||
|
||
2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
|
||
<CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
|
||
|
||
2014-05-16 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61194
|
||
* tree-vect-patterns.c (adjust_bool_pattern): Also handle
|
||
bool patterns ending in a COND_EXPR.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
|
||
where we were unable to cost an RTX.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
|
||
HIGH, LO_SUM.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
|
||
FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
|
||
operators.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
|
||
DIV/MOD.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
|
||
(aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
|
||
rotates and shifts.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
|
||
ZERO_EXTEND and SIGN_EXTEND better.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
|
||
logical operations.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
|
||
costs when costing loads and stores to memory.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philip Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
|
||
for SET RTX.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
|
||
to...
|
||
(aarch64_strip_extend): ...this, don't strip shifts, check RTX is
|
||
well formed.
|
||
(aarch64_rtx_mult_cost): New.
|
||
(aarch64_rtx_costs): Use it, refactor as appropriate.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
|
||
emit instructions, return number of instructions which would
|
||
be emitted.
|
||
(aarch64_add_constant): Update call to aarch64_build_constant.
|
||
(aarch64_output_mi_thunk): Likewise.
|
||
(aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
|
||
a CONST_DOUBLE.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
|
||
(TARGET_RTX_COSTS): Call it.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
|
||
(cortexa57_vector_cost): Likewise.
|
||
(cortexa57_tunings): Use them.
|
||
|
||
2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
|
||
(cpu_addrcost_table): Use it.
|
||
* config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
|
||
(aarch64_address_cost): Rewrite using aarch64_classify_address,
|
||
move it.
|
||
|
||
2014-05-16 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
|
||
(set_ssa_val_to): Handle unexpected sets to VN_TOP.
|
||
(visit_phi): Ignore edges marked as not executable.
|
||
(class cond_dom_walker): New.
|
||
(cond_dom_walker::before_dom_children): Value-number
|
||
control statements and mark successor edges as not
|
||
executable if possible.
|
||
(run_scc_vn): First walk all control statements in
|
||
dominator order, marking edges as not executable.
|
||
* tree-inline.c (copy_edges_for_bb): Be not confused
|
||
about random edge flags.
|
||
|
||
2014-05-16 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
|
||
|
||
2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
PR target/61193
|
||
* config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
|
||
(__TM_simple_begin): Use it.
|
||
(__TM_begin): Likewise.
|
||
|
||
2014-05-15 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/61085
|
||
* ipa-prop.c (update_indirect_edges_after_inlining): Check
|
||
type_preserved flag when the indirect edge is polymorphic.
|
||
|
||
2014-05-15 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR tree-optimization/61090
|
||
* tree-sra.c (sra_modify_expr): Pass the current gsi to
|
||
build_ref_for_model.
|
||
|
||
2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
|
||
enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
|
||
|
||
2014-05-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/61158
|
||
* fold-const.c (fold_binary_loc): If X is zero-extended and
|
||
shiftc >= prec, make sure zerobits is all ones instead of
|
||
invoking undefined behavior.
|
||
|
||
2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
* regcprop.h: New file.
|
||
* regcprop.c (skip_debug_insn_p): New decl.
|
||
(replace_oldest_value_reg): Check skip_debug_insn_p.
|
||
(copyprop_hardreg_forward_bb_without_debug_insn): New function.
|
||
* shrink-wrap.c: Include regcprop.h.
|
||
(prepare_shrink_wrap): Call
|
||
copyprop_hardreg_forward_bb_without_debug_insn.
|
||
|
||
2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
* shrink-wrap.h: Update comment.
|
||
* shrink-wrap.c: Update comment.
|
||
(next_block_for_reg): Rename to live_edge_for_reg.
|
||
(live_edge_for_reg): Allow live_edge->dest has two predecessors.
|
||
(move_insn_for_shrink_wrap): Split live_edge.
|
||
(prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
|
||
|
||
2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
|
||
Delete.
|
||
* config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
|
||
* config/sparc/sparc.md (fptype_ut699): New attribute.
|
||
(in_branch_delay): Return false if -mfix-ut699 is specified and
|
||
fptype_ut699 is set to single.
|
||
(truncdfsf2): Add fptype_ut699 attribute.
|
||
(fix_truncdfsi2): Likewise.
|
||
(floatsisf2): Change fptype attribute.
|
||
(fix_truncsfsi2): Likewise.
|
||
(negtf2_notv9): Delete.
|
||
(negtf2_v9): Likewise.
|
||
(negtf2_hq): New instruction.
|
||
(negtf2): New instruction and splitter.
|
||
(negdf2_notv9): Rewrite.
|
||
(abstf2_notv9): Delete.
|
||
(abstf2_hq_v9): Likewise.
|
||
(abstf2_v9): Likewise.
|
||
(abstf2_hq): New instruction.
|
||
(abstf2): New instruction and splitter.
|
||
(absdf2_notv9): Rewrite.
|
||
|
||
2014-05-14 Cary Coutant <ccoutant@google.com>
|
||
|
||
PR debug/61013
|
||
* opts.c (common_handle_option): Don't special-case "-g".
|
||
(set_debug_level): Default to at least level 2 with "-g".
|
||
|
||
2014-05-14 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/msp430/msp430.c (msp430_builtin): Add
|
||
MSP430_BUILTIN_DELAY_CYCLES.
|
||
(msp430_init_builtins): Register void __delay_cycles(long long).
|
||
(msp430_builtin_decl): Add it.
|
||
(cg_magic_constant): New.
|
||
(msp430_expand_delay_cycles): New.
|
||
(msp430_expand_builtin): Call it.
|
||
(msp430_print_operand_raw): Change integer printing from "int" to
|
||
HOST_WIDE_INT.
|
||
* config/msp430/msp430.md (define_constants): Add delay_cycles tags.
|
||
(delay_cycles_start): New.
|
||
(delay_cycles_end): New.
|
||
(delay_cycles_32): New.
|
||
(delay_cycles_32x): New.
|
||
(delay_cycles_16): New.
|
||
(delay_cycles_16x): New.
|
||
(delay_cycles_2): New.
|
||
(delay_cycles_1): New.
|
||
* doc/extend.texi: Document __delay_cycles().
|
||
|
||
2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
|
||
length attribute computation.
|
||
|
||
2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR debug/61188
|
||
* print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
|
||
|
||
2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
|
||
|
||
PR target/61084
|
||
* config/sparc/sparc.md: Fix types of low and high in DI constant
|
||
splitter. Use gen_int_mode in some other splitters.
|
||
|
||
2014-05-14 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/60897
|
||
* ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
|
||
|
||
2014-05-14 James Norris <jnorris@codesourcery.com>
|
||
|
||
* omp-low.c (expand_parallel_call): Remove shadow variable.
|
||
(expand_omp_taskreg): Likewise.
|
||
|
||
2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* common/config/i386/i386-common.c
|
||
(OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
|
||
(OPTION_MASK_ISA_XSAVES_SET): Ditto.
|
||
(OPTION_MASK_ISA_XSAVEC_SET): Ditto.
|
||
(OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
|
||
(OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
|
||
(OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
|
||
(ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
|
||
* config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
|
||
xsavecintrin.h, xsavesintrin.h.
|
||
(x86_64-*-*): Ditto.
|
||
* config/i386/clflushoptintrin.h: New.
|
||
* config/i386/xsavecintrin.h: Ditto.
|
||
* config/i386/xsavesintrin.h: Ditto.
|
||
* config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
|
||
(bit_XSAVES): Ditto.
|
||
(bit_XSAVES): Ditto.
|
||
* config/i386/driver-i386.c (host_detect_local_cpu): Handle
|
||
-mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
|
||
-mno-clflushopt.
|
||
* config/i386/i386-c.c (ix86_target_macros_internal): Handle
|
||
OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
|
||
OPTION_MASK_ISA_XSAVES.
|
||
* config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
|
||
-mxsavec, -mxsaves.
|
||
(PTA_CLFLUSHOPT) Define.
|
||
(PTA_XSAVEC): Ditto.
|
||
(PTA_XSAVES): Ditto.
|
||
(ix86_option_override_internal): Handle new options.
|
||
(ix86_valid_target_attribute_inner_p): Ditto.
|
||
(ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
|
||
IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
|
||
IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
|
||
(bdesc_special_args): Add __builtin_ia32_xsaves,
|
||
__builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
|
||
__builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
|
||
(ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
|
||
(ix86_expand_builtin): Handle new builtins.
|
||
* config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
|
||
(TARGET_CLFLUSHOPT_P): Ditto.
|
||
(TARGET_XSAVEC): Ditto.
|
||
(TARGET_XSAVEC_P): Ditto.
|
||
(TARGET_XSAVES): Ditto.
|
||
(TARGET_XSAVES_P): Ditto.
|
||
* config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
|
||
(ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
|
||
(attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
|
||
(ANY_XRSTOR): New.
|
||
(ANY_XRSTOR64): Ditto.
|
||
(xrstor): Ditto.
|
||
(xrstor): Change into <xrstor>.
|
||
(xrstor_rex64): Change into <xrstor>_rex64.
|
||
(xrstor64): Change into <xrstor>64
|
||
(clflushopt): New.
|
||
* config/i386/i386.opt (mclflushopt): New.
|
||
(mxsavec): Ditto.
|
||
(mxsaves): Ditto.
|
||
* config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
|
||
xsavecintrin.h.
|
||
* doc/invoke.texi: Document new options.
|
||
|
||
2014-05-14 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
PR rtl-optimization/60866
|
||
* sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
|
||
Default it to -1. Pass it down to init_simplejump_data.
|
||
(init_simplejump_data): New parameter old_seqno. Pass it down
|
||
to get_seqno_for_a_jump.
|
||
(get_seqno_for_a_jump): New parameter old_seqno. Use it for
|
||
initializing new jump seqno as a last resort. Add comment.
|
||
(sel_redirect_edge_and_branch): Save old seqno of the conditional
|
||
jump and pass it down to sel_init_new_insn.
|
||
(sel_redirect_edge_and_branch_force): Likewise.
|
||
|
||
2014-05-14 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
|
||
shifted values to avoid build warning.
|
||
|
||
2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* cfgcleanup.c (try_forward_edges): Use location_t for locations.
|
||
* cfgrtl.c (rtl_merge_blocks): Fix comment.
|
||
(cfg_layout_merge_blocks): Likewise.
|
||
* except.c (emit_to_new_bb_before): Remove prev_bb local variable.
|
||
|
||
2014-05-14 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
PR rtl-optimization/60901
|
||
* config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
|
||
bb predecessor belongs to the same scheduling region. Adjust comment.
|
||
|
||
2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* doc/sourcebuild.texi: (dfp_hw): Document.
|
||
(p8vector_hw): Likewise.
|
||
(powerpc_eabi_ok): Likewise.
|
||
(powerpc_elfv2): Likewise.
|
||
(powerpc_htm_ok): Likewise.
|
||
(ppc_recip_hw): Likewise.
|
||
(vsx_hw): Likewise.
|
||
|
||
2014-05-13 Cary Coutant <ccoutant@google.com>
|
||
|
||
* opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
|
||
|
||
2014-05-13 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* gengtype-parse.c (require3): Eliminate in favor of...
|
||
(require4): New.
|
||
(require_template_declaration): Update to support optional single *
|
||
on a type.
|
||
|
||
* gengtype.c (get_ultimate_base_class): Add a non-const overload.
|
||
(create_user_defined_type): Handle a single level of explicit
|
||
pointerness within template arguments.
|
||
(struct write_types_data): Add field "kind".
|
||
(filter_type_name): Handle "*" character.
|
||
(write_user_func_for_structure_ptr): Require a write_types_data
|
||
rather than just a prefix string, so that we can look up the kind
|
||
of the wtd and use it as an index into wrote_user_func_for_ptr,
|
||
ensuring that such functions are written at most once. Support
|
||
subclasses by invoking the marking function of the ultimate base class.
|
||
(write_user_func_for_structure_body): Require a write_types_data
|
||
rather than just a prefix string, so that we can pass this to
|
||
write_user_func_for_structure_ptr.
|
||
(write_func_for_structure): Likewise.
|
||
(ggc_wtd): Add initializer of new "kind" field.
|
||
(pch_wtd): Likewise.
|
||
|
||
* gengtype.h (enum write_types_kinds): New.
|
||
(struct type): Add field wrote_user_func_for_ptr to the "s"
|
||
union member.
|
||
|
||
2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
|
||
|
||
* fold-const.c (optimize_bit_field_compare): Use wi:: operations
|
||
instead of const_binop.
|
||
(fold_binary_loc): Likewise.
|
||
|
||
2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
|
||
|
||
* tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
|
||
calculation to match get_ref_base_and_extent.
|
||
|
||
2014-05-13 Catherine Moore <clm@codesourcery.com>
|
||
Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* configure.ac: Fix assembly for explicit JALR relocation check.
|
||
* configure: Regenerate.
|
||
|
||
2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
|
||
(arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
|
||
Remove associated type declarations and initialisations.
|
||
(arm_expand_neon_builtin): Likewise.
|
||
(neon_emit_pair_result_insn): Delete.
|
||
* config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
|
||
* config/arm/neon.md (neon_vtrn<mode>): Delete.
|
||
(neon_vzip<mode>): Likewise.
|
||
(neon_vuzp<mode>): Likewise.
|
||
|
||
2014-05-13 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/60973
|
||
* tree-inline.c (remap_gimple_stmt): Clear tail call flag,
|
||
it needs revisiting whether the call still may be tail-called.
|
||
|
||
2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* rtl.def (SYMBOL_REF): Remove middle "0" field.
|
||
* rtl.h (block_symbol): Reduce number of fields to 2.
|
||
(rtx_def): Add u2.symbol_ref_flags.
|
||
(SYMBOL_REF_FLAGS): Use it.
|
||
(SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
|
||
(SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
|
||
* gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
|
||
Lower index of SYMBOL_REF_DATA.
|
||
* print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
|
||
Print SYMBOL_REF_FLAGS at the same time.
|
||
* genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
|
||
|
||
2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* rtl.def (VAR_LOCATION): Remove "i" field.
|
||
* rtl.h (rtx_def): Add u2.var_location_status.
|
||
(PAT_VAR_LOCATION_STATUS): Use it.
|
||
(gen_rtx_VAR_LOCATION): Declare.
|
||
* gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
|
||
* emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
|
||
* var-tracking.c (emit_note_insn_var_location): Remove casts.
|
||
|
||
2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* rtl.def (scratch): Fix outdated comment and remove "0" field.
|
||
* gengtype.c (adjust_field_rtx_def): Update accordingly.
|
||
|
||
2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
|
||
(BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
|
||
* rtl.h (rtx_def): Add insn_uid to u2 field.
|
||
(RTX_FLAG_CHECK8): Delete in favor of...
|
||
(RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
|
||
(INSN_DELETED_P): Update accordingly.
|
||
(INSN_UID): Use u2.insn_uid.
|
||
(INSN_CHAIN_CODE_P): Define.
|
||
(PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
|
||
(INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
|
||
(NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
|
||
(NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
|
||
(NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
|
||
indices accordingly.
|
||
* print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
|
||
Update indices for insn-chain rtxes.
|
||
* gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
|
||
(adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
|
||
* emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
|
||
* caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
|
||
* combine.c (try_combine): Likewise.
|
||
* ira.c (setup_prohibited_mode_move_regs): Likewise.
|
||
|
||
2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* rtl.def (REG): Remove middle field.
|
||
* rtl.h (rtx_def): Add orignal_regno to u2.
|
||
(ORIGINAL_REGNO): Use it instead of field 1.
|
||
(REG_ATTRS): Lower field index accordingly.
|
||
* gengtype.c (adjust_field_rtx_def): Remove handling of
|
||
ORIGINAL_REGNO. Move REG_ATTRS index down.
|
||
* print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
|
||
code that prints the REGNO.
|
||
|
||
2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* print-rtl.c (print_rtx): Guard whole '0' block with ifndef
|
||
GENERATOR_FILE.
|
||
|
||
2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* rtl.h (rtx_def): Mark u2 as GTY ((skip)).
|
||
|
||
2014-05-13 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
* tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
|
||
(alloc_iv): Lower base expressions containing ADDR_EXPR.
|
||
|
||
2014-05-13 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64-protos.h
|
||
(aarch64_hard_regno_caller_save_mode): New prototype.
|
||
* config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
|
||
New function.
|
||
* config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
|
||
|
||
2014-05-13 Christian Bruel <christian.bruel@st.com>
|
||
|
||
* target.def (mode_switching): New hook vector.
|
||
(mode_emit, mode_needed, mode_after, mode_entry): New hooks.
|
||
(mode_exit, modepriority_to_mode): Likewise.
|
||
* mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
|
||
(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
|
||
* target.h: Include tm.h and hard-reg-set.h.
|
||
* doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
|
||
(MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
|
||
* doc/tm.texi Regenerate.
|
||
* config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
|
||
(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
|
||
* config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
|
||
(sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
|
||
* config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
|
||
(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
|
||
* config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
|
||
(ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
|
||
* config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
|
||
(ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
|
||
(ix86_emit_mode_set): Hookify.
|
||
* config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
|
||
Delete.
|
||
(MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
|
||
* config/epiphany/epiphany-protos.h (epiphany_mode_needed)
|
||
(emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
|
||
(epiphany_mode_priority_to_mode): Remove declaration.
|
||
* config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
|
||
(epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
|
||
(epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
|
||
Likewise.
|
||
(epiphany_mode_priority_to_mode): Change priority type. Hookify.
|
||
(epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
|
||
(epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
|
||
|
||
2014-05-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/61060
|
||
* config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
|
||
is const0_rtx, return immediately. Don't test count == 0 when
|
||
it is always true.
|
||
|
||
2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
* Makefile.in: add shrink-wrap.o.
|
||
* config/i386/i386.c: include "shrink-wrap.h"
|
||
* function.c: Likewise.
|
||
(requires_stack_frame_p, next_block_for_reg,
|
||
move_insn_for_shrink_wrap, prepare_shrink_wrap,
|
||
dup_block_and_redirect): Move to shrink-wrap.c
|
||
(thread_prologue_and_epilogue_insns): Extract three code segments
|
||
as functions in shrink-wrap.c
|
||
* function.h: Move #ifdef HAVE_simple_return ... #endif block to
|
||
shrink-wrap.h
|
||
* shrink-wrap.c: New file.
|
||
* shrink-wrap.h: New file.
|
||
|
||
2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
|
||
|
||
* doc/extend.texi: Reflect current numbers of pragmas. Remove
|
||
reference to Solaris.
|
||
|
||
2014-05-12 Mike Stump <mikestump@comcast.net>
|
||
|
||
PR other/31778
|
||
* genattrtab.c (filename): Add.
|
||
(convert_set_attr_alternative): Improve error message.
|
||
(check_defs): Restore read_md_filename for error messages.
|
||
(gen_insn): Save filename.
|
||
|
||
2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
|
||
|
||
* doc/invoke.texi: Document new switches -Wno-shadow-ivar,
|
||
-fno-local-ivars and -fivar-visibility.
|
||
* c-family/c.opt: Make -Wshadow also implicitly enable
|
||
-Wshadow-ivar.
|
||
|
||
2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
|
||
|
||
* doc/tm.texi: Remove reference to deleted macro.
|
||
* doc/tm.texi.in: Likewise.
|
||
|
||
2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
||
|
||
PR target/60991
|
||
* config/avr/avr.c (avr_out_store_psi): Use correct constant
|
||
to restore Y.
|
||
|
||
2014-05-12 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR libgcc/61152
|
||
* config/arm/arm.h (License): Add GCC Runtime Library Exception.
|
||
* config/arm/aout.h (License): Same.
|
||
* config/arm/bpabi.h (License): Same.
|
||
* config/arm/elf.h (License): Same.
|
||
* config/arm/linux-elf.h (License): Same.
|
||
* config/arm/linux-gas.h (License): Same.
|
||
* config/arm/netbsd-elf.h (License): Same.
|
||
* config/arm/uclinux-eabi.h (License): Same.
|
||
* config/arm/uclinux-elf.h (License): Same.
|
||
* config/arm/vxworks.h (License): Same.
|
||
|
||
2014-05-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
|
||
* tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
|
||
number of operands to 3.
|
||
(walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
|
||
* tree-nested.c (convert_nonlocal_omp_clauses,
|
||
convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
|
||
* gimplify.c (gimplify_scan_omp_clauses): Handle
|
||
OMP_CLAUSE_LINEAR_STMT.
|
||
* omp-low.c (lower_rec_input_clauses): Fix typo.
|
||
(maybe_add_implicit_barrier_cancel, lower_omp_1): Add
|
||
cast between Fortran boolean_type_node and C _Bool if
|
||
needed.
|
||
|
||
2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR tree-optimization/61136
|
||
* wide-int.h (multiple_of_p): Define a version that doesn't return
|
||
the quotient.
|
||
* fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
|
||
integer_zerop/const_binop pair.
|
||
(multiple_of_p): Likewise, converting both operands to widest_int
|
||
precision.
|
||
|
||
2014-05-09 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* cgraphunit.c (analyze_functions): Use correct dump file.
|
||
|
||
2014-05-09 Florian Weimer <fweimer@redhat.com>
|
||
|
||
* cfgexpand.c (stack_protect_decl_p): New function, extracted from
|
||
expand_used_vars.
|
||
(stack_protect_return_slot_p): New function.
|
||
(expand_used_vars): Call stack_protect_decl_p and
|
||
stack_protect_return_slot_p for -fstack-protector-strong.
|
||
|
||
2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
|
||
Andrew Haley <aph@redhat.com>
|
||
Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* doc/extend.texi: Rewrite inline asm page / re-org asm-related
|
||
pages.
|
||
|
||
2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
|
||
PR middle-end/61111
|
||
* fold-const.c (fold_binary_loc): Changed width of mask.
|
||
|
||
2014-05-09 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
* config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
|
||
unsigned int initializers for regno_in, regno_out.
|
||
|
||
2014-05-09 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/61055
|
||
* config/avr/avr.md (cc): Add new attribute set_vzn.
|
||
(addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
|
||
Set cc insn attribute to set_vzn instead of set_zn for alternatives
|
||
with INC, DEC or NEG.
|
||
* config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
|
||
(avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
|
||
INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
|
||
|
||
2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
Revert:
|
||
2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* wide-int.cc (UTItype): Define.
|
||
(UDWtype): Define for appropriate W_TYPE_SIZE.
|
||
|
||
2014-05-09 Richard Biener <rguenther@suse.de>
|
||
|
||
* Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
|
||
* tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
|
||
(interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
|
||
(add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
|
||
ssa_propagate): Adjust.
|
||
|
||
2014-05-08 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/61009
|
||
* tree-ssa-threadedge.c (thread_through_normal_block): Return a
|
||
tri-state rather than a boolean. When a block is too big to
|
||
thread through, inform caller via negative return value.
|
||
(thread_across_edge): If a block was too big for normal threading,
|
||
then it's too big for a joiner too, so remove temporary equivalences
|
||
and return immediately.
|
||
|
||
2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||
Matthias Klose <doko@ubuntu.com>
|
||
|
||
PR driver/61106
|
||
* optc-gen.awk: Fix option handling for -Wunused-parameter.
|
||
|
||
2014-05-08 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/59952
|
||
* config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
|
||
|
||
2014-05-08 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/61092
|
||
* config/alpha/alpha.c: Include gimple-iterator.h.
|
||
(alpha_gimple_fold_builtin): New function. Move
|
||
ALPHA_BUILTIN_UMULH folding from ...
|
||
(alpha_fold_builtin): ... here.
|
||
(TARGET_GIMPLE_FOLD_BUILTIN): New define.
|
||
|
||
2014-05-08 Wei Mi <wmi@google.com>
|
||
|
||
PR target/58066
|
||
* config/i386/i386.c (ix86_compute_frame_layout): Update
|
||
preferred_stack_boundary for call, expanded from tls descriptor.
|
||
* config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
|
||
to depend on SP register.
|
||
(*tls_local_dynamic_base_32_gnu): Ditto.
|
||
(*tls_local_dynamic_32_once): Ditto.
|
||
(tls_global_dynamic_64_<mode>): Set
|
||
ix86_tls_descriptor_calls_expanded_in_cfun.
|
||
(tls_local_dynamic_base_64_<mode>): Ditto.
|
||
(tls_global_dynamic_32): Set
|
||
ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
|
||
to depend on SP register.
|
||
(tls_local_dynamic_base_32): Ditto.
|
||
|
||
2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/arm_neon.h: Update comment.
|
||
* config/arm/neon-docgen.ml: Delete.
|
||
* config/arm/neon-gen.ml: Delete.
|
||
* doc/arm-neon-intrinsics.texi: Update comment.
|
||
|
||
2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
|
||
and v4sf versions.
|
||
(vand, vorr, veor, vorn, vbic): Remove.
|
||
* config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
|
||
iterator.
|
||
(neon_vsub_unspec): Likewise.
|
||
(neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
|
||
|
||
2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/arm_neon.h (vadd_s8): GNU C implementation
|
||
(vadd_s16): Likewise.
|
||
(vadd_s32): Likewise.
|
||
(vadd_f32): Likewise.
|
||
(vadd_u8): Likewise.
|
||
(vadd_u16): Likewise.
|
||
(vadd_u32): Likewise.
|
||
(vadd_s64): Likewise.
|
||
(vadd_u64): Likewise.
|
||
(vaddq_s8): Likewise.
|
||
(vaddq_s16): Likewise.
|
||
(vaddq_s32): Likewise.
|
||
(vaddq_s64): Likewise.
|
||
(vaddq_f32): Likewise.
|
||
(vaddq_u8): Likewise.
|
||
(vaddq_u16): Likewise.
|
||
(vaddq_u32): Likewise.
|
||
(vaddq_u64): Likewise.
|
||
(vmul_s8): Likewise.
|
||
(vmul_s16): Likewise.
|
||
(vmul_s32): Likewise.
|
||
(vmul_f32): Likewise.
|
||
(vmul_u8): Likewise.
|
||
(vmul_u16): Likewise.
|
||
(vmul_u32): Likewise.
|
||
(vmul_p8): Likewise.
|
||
(vmulq_s8): Likewise.
|
||
(vmulq_s16): Likewise.
|
||
(vmulq_s32): Likewise.
|
||
(vmulq_f32): Likewise.
|
||
(vmulq_u8): Likewise.
|
||
(vmulq_u16): Likewise.
|
||
(vmulq_u32): Likewise.
|
||
(vsub_s8): Likewise.
|
||
(vsub_s16): Likewise.
|
||
(vsub_s32): Likewise.
|
||
(vsub_f32): Likewise.
|
||
(vsub_u8): Likewise.
|
||
(vsub_u16): Likewise.
|
||
(vsub_u32): Likewise.
|
||
(vsub_s64): Likewise.
|
||
(vsub_u64): Likewise.
|
||
(vsubq_s8): Likewise.
|
||
(vsubq_s16): Likewise.
|
||
(vsubq_s32): Likewise.
|
||
(vsubq_s64): Likewise.
|
||
(vsubq_f32): Likewise.
|
||
(vsubq_u8): Likewise.
|
||
(vsubq_u16): Likewise.
|
||
(vsubq_u32): Likewise.
|
||
(vsubq_u64): Likewise.
|
||
(vand_s8): Likewise.
|
||
(vand_s16): Likewise.
|
||
(vand_s32): Likewise.
|
||
(vand_u8): Likewise.
|
||
(vand_u16): Likewise.
|
||
(vand_u32): Likewise.
|
||
(vand_s64): Likewise.
|
||
(vand_u64): Likewise.
|
||
(vandq_s8): Likewise.
|
||
(vandq_s16): Likewise.
|
||
(vandq_s32): Likewise.
|
||
(vandq_s64): Likewise.
|
||
(vandq_u8): Likewise.
|
||
(vandq_u16): Likewise.
|
||
(vandq_u32): Likewise.
|
||
(vandq_u64): Likewise.
|
||
(vorr_s8): Likewise.
|
||
(vorr_s16): Likewise.
|
||
(vorr_s32): Likewise.
|
||
(vorr_u8): Likewise.
|
||
(vorr_u16): Likewise.
|
||
(vorr_u32): Likewise.
|
||
(vorr_s64): Likewise.
|
||
(vorr_u64): Likewise.
|
||
(vorrq_s8): Likewise.
|
||
(vorrq_s16): Likewise.
|
||
(vorrq_s32): Likewise.
|
||
(vorrq_s64): Likewise.
|
||
(vorrq_u8): Likewise.
|
||
(vorrq_u16): Likewise.
|
||
(vorrq_u32): Likewise.
|
||
(vorrq_u64): Likewise.
|
||
(veor_s8): Likewise.
|
||
(veor_s16): Likewise.
|
||
(veor_s32): Likewise.
|
||
(veor_u8): Likewise.
|
||
(veor_u16): Likewise.
|
||
(veor_u32): Likewise.
|
||
(veor_s64): Likewise.
|
||
(veor_u64): Likewise.
|
||
(veorq_s8): Likewise.
|
||
(veorq_s16): Likewise.
|
||
(veorq_s32): Likewise.
|
||
(veorq_s64): Likewise.
|
||
(veorq_u8): Likewise.
|
||
(veorq_u16): Likewise.
|
||
(veorq_u32): Likewise.
|
||
(veorq_u64): Likewise.
|
||
(vbic_s8): Likewise.
|
||
(vbic_s16): Likewise.
|
||
(vbic_s32): Likewise.
|
||
(vbic_u8): Likewise.
|
||
(vbic_u16): Likewise.
|
||
(vbic_u32): Likewise.
|
||
(vbic_s64): Likewise.
|
||
(vbic_u64): Likewise.
|
||
(vbicq_s8): Likewise.
|
||
(vbicq_s16): Likewise.
|
||
(vbicq_s32): Likewise.
|
||
(vbicq_s64): Likewise.
|
||
(vbicq_u8): Likewise.
|
||
(vbicq_u16): Likewise.
|
||
(vbicq_u32): Likewise.
|
||
(vbicq_u64): Likewise.
|
||
(vorn_s8): Likewise.
|
||
(vorn_s16): Likewise.
|
||
(vorn_s32): Likewise.
|
||
(vorn_u8): Likewise.
|
||
(vorn_u16): Likewise.
|
||
(vorn_u32): Likewise.
|
||
(vorn_s64): Likewise.
|
||
(vorn_u64): Likewise.
|
||
(vornq_s8): Likewise.
|
||
(vornq_s16): Likewise.
|
||
(vornq_s32): Likewise.
|
||
(vornq_s64): Likewise.
|
||
(vornq_u8): Likewise.
|
||
(vornq_u16): Likewise.
|
||
(vornq_u32): Likewise.
|
||
(vornq_u64): Likewise.
|
||
|
||
2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* wide-int.cc (UTItype): Define.
|
||
(UDWtype): Define for appropriate W_TYPE_SIZE.
|
||
|
||
2014-05-08 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR tree-optimization/59100
|
||
* tree-ssa-phiopt.c: Include tree-inline.h.
|
||
(neutral_element_p, absorbing_element_p): New functions.
|
||
(value_replacement): Handle conditional binary operations with a
|
||
neutral or absorbing element.
|
||
|
||
2014-05-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
|
||
folding the expression.
|
||
(valueize_expr): Remove.
|
||
(visit_reference_op_load): Do not valueize the result of
|
||
vn_get_expr_for.
|
||
(simplify_binary_expression): Likewise.
|
||
(simplify_unary_expression): Likewise.
|
||
|
||
2014-05-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* gimplify.c (gimplify_call_expr): Use saved fnptrtype for
|
||
looking at TYPE_ARG_TYPES.
|
||
|
||
2014-05-08 Richard Biener <rguenther@suse.de>
|
||
|
||
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
|
||
pointer propagation special-case.
|
||
|
||
2014-05-08 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
* tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
|
||
core part of address expressions.
|
||
|
||
2014-05-08 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/60737
|
||
* config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
|
||
loads and stores when -mno-strict-align at any alignment.
|
||
(expand_block_clear): Similarly. Also correct calculation of
|
||
instruction count.
|
||
|
||
2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
PR middle-end/39246
|
||
* tree-complex.c (expand_complex_move): Keep line info when expanding
|
||
complex move.
|
||
* tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
|
||
of complex expression. Use new argument to display correct location
|
||
for values coming from phi statement.
|
||
(warn_uninitialized_vars): Adapt to new signature of warn_uninit.
|
||
(warn_uninitialized_phi): Pass location of phi argument to
|
||
warn_uninit.
|
||
* tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
|
||
COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
|
||
|
||
2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
* config/rs6000/predicates.md (indexed_address_mem): New.
|
||
* config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
|
||
load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
|
||
fpstore_ux, fpstore_u.
|
||
(sign_extend, indexed, update): New.
|
||
(cell_micro): Adjust.
|
||
(*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
|
||
*extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
|
||
*movsi_internal1, *movsi_internal1_single, *movhi_internal,
|
||
*movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
|
||
*mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
|
||
*mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
|
||
*mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
|
||
*ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
|
||
*movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
|
||
*movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
|
||
*movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
|
||
*movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
|
||
*movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
|
||
*movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
|
||
*stmw, *lmw, as well as 10 anonymous patterns): Adjust.
|
||
|
||
* config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
|
||
* config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
|
||
*vsx_extract_<mode>_store): Adjust.
|
||
* config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
|
||
is_cracked_insn, insn_must_be_first_in_group,
|
||
insn_must_be_last_in_group): Adjust.
|
||
|
||
* config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
|
||
Adjust.
|
||
* config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
|
||
ppc440-fpstore): Adjust.
|
||
* config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
|
||
ppc476-fpstore): Adjust.
|
||
* config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
|
||
ppc601-fpstore): Adjust.
|
||
* config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
|
||
Adjust.
|
||
* config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
|
||
Adjust.
|
||
* config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
|
||
ppc7450-fpstore): Adjust.
|
||
* config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
|
||
* config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
|
||
* config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
|
||
Adjust.
|
||
* config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
|
||
cell-fpload, cell-fpload-update, cell-store, cell-store-update,
|
||
cell-fpstore, cell-fpstore-update): Adjust.
|
||
* config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
|
||
ppce300c3_store, ppce300c3_fpstore): Adjust.
|
||
* config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
|
||
e500mc_fpstore): Adjust.
|
||
* config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
|
||
e500mc64_store, e500mc64_fpstore): Adjust.
|
||
* config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
|
||
e5500_fpstore): Adjust.
|
||
* config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
|
||
e6500_fpstore): Adjust.
|
||
* config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
|
||
Adjust.
|
||
* config/rs6000/power4.md (power4-load, power4-load-ext,
|
||
power4-load-ext-update, power4-load-ext-update-indexed,
|
||
power4-load-update-indexed, power4-load-update, power4-fpload,
|
||
power4-fpload-update, power4-store, power4-store-update,
|
||
power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
|
||
Adjust.
|
||
* config/rs6000/power5.md (power5-load, power5-load-ext,
|
||
power5-load-ext-update, power5-load-ext-update-indexed,
|
||
power5-load-update-indexed, power5-load-update, power5-fpload,
|
||
power5-fpload-update, power5-store, power5-store-update,
|
||
power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
|
||
Adjust.
|
||
* config/rs6000/power6.md (power6-load, power6-load-ext,
|
||
power6-load-update, power6-load-update-indexed,
|
||
power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
|
||
power6-fpload-update, power6-store, power6-store-update,
|
||
power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
|
||
Adjust.
|
||
* config/rs6000/power7.md (power7-load, power7-load-ext,
|
||
power7-load-update, power7-load-update-indexed,
|
||
power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
|
||
power7-fpload-update, power7-store, power7-store-update,
|
||
power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
|
||
Adjust.
|
||
* config/rs6000/power8.md (power8-load, power8-load-update,
|
||
power8-load-ext, power8-load-ext-update, power8-fpload,
|
||
power8-fpload-update, power8-store, power8-store-update-indexed,
|
||
power8-fpstore, power8-fpstore-update): Adjust.
|
||
* config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
|
||
Adjust.
|
||
* config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
|
||
titan_lsu_store, titan_lsu_fpstore): Adjust.
|
||
* config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
|
||
|
||
2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/60884
|
||
* config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
|
||
unrolled byte insns. Emit address increments after move insns.
|
||
|
||
2014-05-07 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* gimple.h (gimple_builtin_call_types_compatible_p): Accept a
|
||
const_gimple, rather than a gimple.
|
||
(gimple_call_builtin_p): Likewise, for the three variants.
|
||
|
||
* gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
|
||
(gimple_call_builtin_p): Likewise, for the three variants.
|
||
|
||
2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
PR tree-optimization/61095
|
||
* tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
|
||
|
||
2014-05-07 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/61034
|
||
* tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
|
||
(maybe_skip_until): Use translate to take into account
|
||
lattices when trying to do disambiguations.
|
||
(get_continuation_for_phi_1): Likewise.
|
||
(get_continuation_for_phi): Adjust for added translate arguments.
|
||
(walk_non_aliased_vuses): Likewise.
|
||
* tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
|
||
(walk_non_aliased_vuses): Likewise.
|
||
(call_may_clobber_ref_p_1): Declare.
|
||
* tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
|
||
calls. Stop early if we are only supposed to disambiguate.
|
||
* tree-ssa-pre.c (translate_vuse_through_block): Adjust.
|
||
|
||
2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
|
||
Emit an error when the function has arguments.
|
||
|
||
2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* cfgloop.h (unswitch_loops): Remove.
|
||
* doc/passes.texi: Remove references to loop-unswitch.c
|
||
* timevar.def (TV_LOOP_UNSWITCH): Remove.
|
||
|
||
2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
|
||
|
||
* tree-vect-data-refs.c (vect_grouped_load_supported): New
|
||
check for loads group of length 3.
|
||
(vect_permute_load_chain): New permutations for loads group of
|
||
length 3.
|
||
* tree-vect-stmts.c (vect_model_load_cost): Change cost
|
||
of vec_perm_shuffle for the new permutations.
|
||
|
||
2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
|
||
vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
|
||
vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
|
||
vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
|
||
vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
|
||
vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
|
||
vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
|
||
vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
|
||
|
||
2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* loop-unswitch.c: Delete.
|
||
|
||
2014-05-07 Richard Biener <rguenther@suse.de>
|
||
|
||
* config.gcc: Always set need_64bit_hwint to yes.
|
||
|
||
2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
|
||
|
||
* config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
|
||
of using optimize_size.
|
||
|
||
2014-05-06 Mike Stump <mikestump@comcast.net>
|
||
|
||
* wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
|
||
|
||
2014-05-06 Joseph Myers <joseph@codesourcery.com>
|
||
|
||
* config/i386/sse.md (*mov<mode>_internal)
|
||
(*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
|
||
(*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
|
||
(<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
|
||
(*<code><mode>3, *andnot<mode>3<mask_name>)
|
||
(<mask_codefor><code><mode>3<mask_name>): Only consider
|
||
TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
|
||
|
||
2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
Revert:
|
||
2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* lra-constraints.c (valid_address_p): Move earlier in file.
|
||
Add a constraint argument to the address_info version.
|
||
(satisfies_memory_constraint_p): New function.
|
||
(satisfies_address_constraint_p): Likewise.
|
||
(process_alt_operands, curr_insn_transform): Use them.
|
||
(process_address): Pass the constraint to valid_address_p when
|
||
checking address operands.
|
||
|
||
2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
|
||
|
||
* lto-cgraph.c (compute_ltrans_boundary): Make node variables local
|
||
to their respective blocks. Fix inadvertent use of "node".
|
||
|
||
2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* emit-rtl.c (init_derived_machine_modes): New functionm, split
|
||
out from...
|
||
(init_emit_once): ...here.
|
||
* rtl.h (init_derived_machine_modes): Declare.
|
||
* toplev.c (do_compile): Call it even if no_backend.
|
||
|
||
2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||
Mike Stump <mikestump@comcast.net>
|
||
Richard Sandiford <rdsandiford@googlemail.com>
|
||
Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* alias.c (ao_ref_from_mem): Use wide-int interfaces.
|
||
(rtx_equal_for_memref_p): Update comment.
|
||
(adjust_offset_for_component_ref): Use wide-int interfaces.
|
||
* builtins.c (get_object_alignment_2): Likewise.
|
||
(c_readstr): Likewise.
|
||
(target_char_cast): Add comment.
|
||
(determine_block_size): Use wide-int interfaces.
|
||
(expand_builtin_signbit): Likewise.
|
||
(fold_builtin_int_roundingfn): Likewise.
|
||
(fold_builtin_bitop): Likewise.
|
||
(fold_builtin_bswap): Likewise.
|
||
(fold_builtin_logarithm): Use signop.
|
||
(fold_builtin_pow): Likewise.
|
||
(fold_builtin_memory_op): Use wide-int interfaces.
|
||
(fold_builtin_object_size): Likewise.
|
||
* cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
|
||
nb_iterations_estimate.
|
||
(record_niter_bound): Use wide-int interfaces.
|
||
(get_estimated_loop_iterations_int): Likewise.
|
||
(get_estimated_loop_iterations): Likewise.
|
||
(get_max_loop_iterations): Likewise.
|
||
* cfgloop.h: Include wide-int.h.
|
||
(struct nb_iter_bound): Change bound to widest_int.
|
||
(struct loop): Change nb_iterations_upper_bound and
|
||
nb_iterations_estimate to widest_int.
|
||
(record_niter_bound): Switch to use widest_int.
|
||
(get_estimated_loop_iterations): Likewise.
|
||
(get_max_loop_iterations): Likewise.
|
||
(gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
|
||
update for wide-int.
|
||
* cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
|
||
* combine.c (try_combine): Likewise.
|
||
(subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
|
||
* config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
|
||
interfaces.
|
||
(aarch64_float_const_representable_p): Likewise.
|
||
* config/arc/arc.c: Include wide-int.h.
|
||
(arc_can_use_doloop_p): Use wide-int interfaces.
|
||
* config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
|
||
(vfp3_const_double_index): Likewise.
|
||
* config/avr/avr.c (avr_out_round): Likewise.
|
||
(avr_fold_builtin): Likewise.
|
||
* config/bfin/bfin.c (bfin_local_alignment): Likewise.
|
||
(bfin_can_use_doloop_p): Likewise.
|
||
* config/darwin.c (darwin_mergeable_constant_section): Likewise.
|
||
(machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
|
||
* config/i386/i386.c: Include wide-int.h.
|
||
(ix86_data_alignment): Use wide-int interfaces.
|
||
(ix86_local_alignment): Likewise.
|
||
(ix86_emit_swsqrtsf): Update real_from_integer.
|
||
* config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
|
||
* config/nds32/nds32.c (nds32_insert_attributes): Likewise.
|
||
* config/rs6000/predicates.md (any_operand): Add const_wide_int.
|
||
(zero_constant): Likewise.
|
||
(input_operand): Likewise.
|
||
(splat_input_operand): Likewise.
|
||
(non_logical_cint_operand): Change const_double to const_wide_int.
|
||
* config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
|
||
(easy_altivec_constant): Remove comment.
|
||
(paired_expand_vector_init): Use CONSTANT_P.
|
||
(rs6000_legitimize_address): Handle CONST_WIDE_INT.
|
||
(rs6000_emit_move): Update checks.
|
||
(rs6000_aggregate_candidate): Use wide-int interfaces.
|
||
(rs6000_expand_ternop_builtin): Likewise.
|
||
(rs6000_output_move_128bit): Handle CONST_WIDE_INT.
|
||
(rs6000_assemble_integer): Likewise.
|
||
(rs6000_hash_constant): Likewise.
|
||
(output_toc): Likewise.
|
||
(rs6000_rtx_costs): Likewise.
|
||
(rs6000_emit_swrsqrt); Update call to real_from_integer.
|
||
* config/rs6000/rs6000-c.c: Include wide-int.h.
|
||
(altivec_resolve_overloaded_builtin): Use wide-int interfaces.
|
||
* config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
|
||
* config/rs6000/rs6000.md: Use const_scalar_int_operand.
|
||
Handle CONST_WIDE_INT.
|
||
* config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
|
||
Use tree_fits_uhwi_p.
|
||
* config/sparc/sparc.c: Include wide-int.h.
|
||
(sparc_fold_builtin): Use wide-int interfaces.
|
||
* config/vax/vax.c: Include wide-int.h.
|
||
(vax_float_literal): Use real_from_integer.
|
||
* coretypes.h (struct hwivec_def): New.
|
||
(hwivec): New.
|
||
(const_hwivec): New.
|
||
* cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
|
||
(equiv_constant): Handle CONST_WIDE_INT.
|
||
* cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
|
||
(cselib_hash_rtx): Handle CONST_WIDE_INT.
|
||
* dbxout.c (stabstr_U): Use wide-int interfaces.
|
||
(dbxout_type): Update to use cst_fits_shwi_p.
|
||
* defaults.h (LOG2_BITS_PER_UNIT): Define.
|
||
(TARGET_SUPPORTS_WIDE_INT): Add default.
|
||
* dfp.c: Include wide-int.h.
|
||
(decimal_real_to_integer2): Use wide-int interfaces and rename to
|
||
decimal_real_to_integer.
|
||
* dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
|
||
decimal_real_to_integer.
|
||
* doc/generic.texi (Constant expressions): Update for wide_int.
|
||
* doc/rtl.texi (const_double): Likewise.
|
||
(const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
|
||
(CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
|
||
* doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
|
||
(REAL_VALUE_FROM_INT): Remove.
|
||
(TARGET_SUPPORTS_WIDE_INT): New.
|
||
* doc/tm.texi: Regenerate.
|
||
* dojump.c (prefer_and_bit_test): Use wide-int interfaces.
|
||
* double-int.h: Include wide-int.h.
|
||
(struct wi::int_traits): New.
|
||
* dwarf2out.c (get_full_len): New.
|
||
(dw_val_equal_p): Add case dw_val_class_wide_int.
|
||
(size_of_loc_descr): Likewise.
|
||
(output_loc_operands): Likewise.
|
||
(insert_double): Remove.
|
||
(insert_wide_int): New.
|
||
(add_AT_wide): New.
|
||
(print_die): Add case dw_val_class_wide_int.
|
||
(attr_checksum): Likewise.
|
||
(attr_checksum_ordered): Likewise.
|
||
(same_dw_val_p): Likewise.
|
||
(size_of_die): Likewise.
|
||
(value_format): Likewise.
|
||
(output_die): Likewise.
|
||
(double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
|
||
Use wide-int.
|
||
(clz_loc_descriptor): Use wide-int interfaces.
|
||
(mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
|
||
(loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
|
||
(round_up_to_align): Use wide-int interfaces.
|
||
(field_byte_offset): Likewise.
|
||
(insert_double): Rename to insert_wide_int. Use wide-int interfaces.
|
||
(add_const_value_attribute): Handle CONST_WIDE_INT. Update
|
||
CONST_DOUBLE handling. Use wide-int interfaces.
|
||
(add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
|
||
(gen_enumeration_type_die): Use add_AT_wide.
|
||
(hash_loc_operands): Add case dw_val_class_wide_int.
|
||
(compare_loc_operands): Likewise.
|
||
* dwarf2out.h: Include wide-int.h.
|
||
(wide_int_ptr): New.
|
||
(enum dw_val_class): Add dw_val_class_wide_int.
|
||
(struct dw_val_struct): Add val_wide.
|
||
* emit-rtl.c (const_wide_int_htab): New.
|
||
(const_wide_int_htab_hash): New.
|
||
(const_wide_int_htab_eq): New.
|
||
(lookup_const_wide_int): New.
|
||
(const_double_htab_hash): Use wide-int interfaces.
|
||
(const_double_htab_eq): Likewise.
|
||
(rtx_to_double_int): Conditionally compile for wide-int.
|
||
(immed_double_int_const): Rename to immed_wide_int_const and
|
||
update for wide-int.
|
||
(immed_double_const): Conditionally compile for wide-int.
|
||
(init_emit_once): Use wide-int interfaces.
|
||
* explow.c (plus_constant): Likewise.
|
||
* expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
|
||
(lshift_value): Use wide-int interfaces.
|
||
(expand_mult): Likewise.
|
||
(choose_multiplier): Likewise.
|
||
(expand_smod_pow2): Likewise.
|
||
(make_tree): Likewise.
|
||
* expr.c (convert_modes): Consolidate handling of constants.
|
||
Use wide-int interfaces.
|
||
(emit_group_load_1): Add note.
|
||
(store_expr): Update comment.
|
||
(get_inner_reference): Use wide-int interfaces.
|
||
(expand_constructor): Update comment.
|
||
(expand_expr_real_2): Use wide-int interfaces.
|
||
(expand_expr_real_1): Likewise.
|
||
(reduce_to_bit_field_precision): Likewise.
|
||
(const_vector_from_tree): Likewise.
|
||
* final.c: Include wide-int-print.h.
|
||
(output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
|
||
* fixed-value.c: Include wide-int.h.
|
||
(fixed_from_string): Use wide-int interfaces.
|
||
(fixed_to_decimal): Likewise.
|
||
(fixed_convert_from_real): Likewise.
|
||
(real_convert_from_fixed): Likewise.
|
||
* fold-const.h (mem_ref_offset): Return an offset_int.
|
||
(div_if_zero_remainder): Remove code parameter.
|
||
* fold-const.c (div_if_zero_remainder): Remove code parameter.
|
||
Use wide-int interfaces.
|
||
(may_negate_without_overflow_p): Use wide-int interfaces.
|
||
(negate_expr_p): Likewise.
|
||
(fold_negate_expr): Likewise.
|
||
(int_const_binop_1): Likewise.
|
||
(const_binop): Likewise.
|
||
(fold_convert_const_int_from_int): Likewise.
|
||
(fold_convert_const_int_from_real): Likewise.
|
||
(fold_convert_const_int_from_fixed): Likewise.
|
||
(fold_convert_const_fixed_from_int): Likewise.
|
||
(all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
|
||
(sign_bit_p): Use wide-int interfaces.
|
||
(make_range_step): Likewise.
|
||
(build_range_check): Likewise. Pass an integer of the correct type
|
||
instead of using integer_one_node.
|
||
(range_predecessor): Pass an integer of the correct type instead
|
||
of using integer_one_node.
|
||
(range_successor): Likewise.
|
||
(merge_ranges): Likewise.
|
||
(unextend): Use wide-int interfaces.
|
||
(extract_muldiv_1): Likewise.
|
||
(fold_div_compare): Likewise.
|
||
(fold_single_bit_test): Likewise.
|
||
(fold_sign_changed_comparison): Likewise.
|
||
(try_move_mult_to_index): Update calls to div_if_zero_remainder.
|
||
(fold_plusminus_mult_expr): Use wide-int interfaces.
|
||
(native_encode_int): Likewise.
|
||
(native_interpret_int): Likewise.
|
||
(fold_unary_loc): Likewise.
|
||
(pointer_may_wrap_p): Likewise.
|
||
(size_low_cst): Likewise.
|
||
(mask_with_tz): Likewise.
|
||
(fold_binary_loc): Likewise.
|
||
(fold_ternary_loc): Likewise.
|
||
(multiple_of_p): Likewise.
|
||
(tree_call_nonnegative_warnv_p): Update calls to
|
||
tree_int_cst_min_precision and real_from_integer.
|
||
(fold_negate_const): Use wide-int interfaces.
|
||
(fold_abs_const): Likewise.
|
||
(fold_relational_const): Use tree_int_cst_lt.
|
||
(round_up_loc): Use wide-int interfaces.
|
||
* genemit.c (gen_exp): Add CONST_WIDE_INT case.
|
||
* gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
|
||
* gengtype.c: Remove include of double-int.h.
|
||
(do_typedef): Use wide-int interfaces.
|
||
(open_base_files): Add wide-int.h.
|
||
(main): Add offset_int and widest_int typedefs.
|
||
* gengtype-lex.l: Handle "^".
|
||
(CXX_KEYWORD): Add "static".
|
||
* gengtype-parse.c (require3): New.
|
||
(require_template_declaration): Handle constant template arguments
|
||
and nested templates.
|
||
* gengtype-state.c: Don't include "double-int.h".
|
||
* genpreds.c (write_one_predicate_function): Update comment.
|
||
(write_tm_constrs_h): Add check for hval and lval use in
|
||
CONST_WIDE_INT.
|
||
* genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
|
||
(add_to_sequence): Likewise.
|
||
* gensupport.c (struct std_pred_table): Add const_scalar_int_operand
|
||
and const_double_operand.
|
||
* gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
|
||
interfaces.
|
||
* gimple-fold.c (get_base_constructor): Likewise.
|
||
(fold_array_ctor_reference): Likewise.
|
||
(fold_nonarray_ctor_reference): Likewise.
|
||
(fold_const_aggregate_ref_1): Likewise.
|
||
(gimple_val_nonnegative_real_p): Likewise.
|
||
(gimple_fold_indirect_ref): Likewise.
|
||
* gimple-pretty-print.c (dump_ssaname_info): Likewise.
|
||
* gimple-ssa-strength-reduction.c: Include wide-int-print.h.
|
||
(struct slsr_cand_d): Change index to be widest_int.
|
||
(struct incr_info_d): Change incr to be widest_int.
|
||
(alloc_cand_and_find_basis): Use wide-int interfaces.
|
||
(slsr_process_phi): Likewise.
|
||
(backtrace_base_for_ref): Likewise. Return a widest_int.
|
||
(restructure_reference): Take a widest_int instead of a double_int.
|
||
(slsr_process_ref): Use wide-int interfaces.
|
||
(create_mul_ssa_cand): Likewise.
|
||
(create_mul_imm_cand): Likewise.
|
||
(create_add_ssa_cand): Likewise.
|
||
(create_add_imm_cand): Take a widest_int instead of a double_int.
|
||
(slsr_process_add): Use wide-int interfaces.
|
||
(slsr_process_cast): Likewise.
|
||
(slsr_process_copy): Likewise.
|
||
(dump_candidate): Likewise.
|
||
(dump_incr_vec): Likewise.
|
||
(replace_ref): Likewise.
|
||
(cand_increment): Likewise. Return a widest_int.
|
||
(cand_abs_increment): Likewise.
|
||
(replace_mult_candidate): Take a widest_int instead of a double_int.
|
||
(replace_unconditional_candidate): Use wide-int interfaces.
|
||
(incr_vec_index): Take a widest_int instead of a double_int.
|
||
(create_add_on_incoming_edge): Likewise.
|
||
(create_phi_basis): Use wide-int interfaces.
|
||
(replace_conditional_candidate): Likewise.
|
||
(record_increment): Take a widest_int instead of a double_int.
|
||
(record_phi_increments): Use wide-int interfaces.
|
||
(phi_incr_cost): Take a widest_int instead of a double_int.
|
||
(lowest_cost_path): Likewise.
|
||
(total_savings): Likewise.
|
||
(analyze_increments): Use wide-int interfaces.
|
||
(ncd_with_phi): Take a widest_int instead of a double_int.
|
||
(ncd_of_cand_and_phis): Likewise.
|
||
(nearest_common_dominator_for_cands): Likewise.
|
||
(insert_initializers): Use wide-int interfaces.
|
||
(all_phi_incrs_profitable): Likewise.
|
||
(replace_one_candidate): Likewise.
|
||
(replace_profitable_candidates): Likewise.
|
||
* godump.c: Include wide-int-print.h.
|
||
(go_output_typedef): Use wide-int interfaces.
|
||
* graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
|
||
* graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
|
||
(build_loop_iteration_domains): Likewise.
|
||
* hooks.h: Include wide-int.h rather than double-int.h.
|
||
(hook_bool_dint_dint_uint_bool_true): Delete.
|
||
(hook_bool_wint_wint_uint_bool_true): Declare.
|
||
* hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
|
||
(hook_bool_wint_wint_uint_bool_true): New.
|
||
* internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
|
||
interfaces.
|
||
(ubsan_expand_si_overflow_mul_check): Likewise.
|
||
* ipa-devirt.c (get_polymorphic_call_info): Likewise.
|
||
* ipa-prop.c (compute_complex_assign_jump_func): Likewise.
|
||
(get_ancestor_addr_info): Likewise.
|
||
(ipa_modify_call_arguments): Likewise.
|
||
* loop-doloop.c (doloop_modify): Likewise.
|
||
(doloop_optimize): Likewise.
|
||
* loop-iv.c (iv_number_of_iterations): Likewise.
|
||
* loop-unroll.c (decide_unroll_constant_iterations): Likewise.
|
||
(unroll_loop_constant_iterations): Likewise.
|
||
(decide_unroll_runtime_iterations): Likewise.
|
||
(unroll_loop_runtime_iterations): Likewise.
|
||
(decide_peel_simple): Likewise.
|
||
(decide_unroll_stupid): Likewise.
|
||
* lto-streamer-in.c (streamer_read_wi): Add.
|
||
(input_cfg): Use wide-int interfaces.
|
||
(lto_input_tree_1): Likewise.
|
||
* lto-streamer-out.c (streamer_write_wi): Add.
|
||
(hash_tree): Use wide-int interfaces.
|
||
(output_cfg): Likewise.
|
||
* Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
|
||
(GTFILES): Add wide-int.h and signop.h.
|
||
(TAGS): Look for .cc files too.
|
||
* omp-low.c (scan_omp_1_op): Use wide-int interfaces.
|
||
* optabs.c (expand_subword_shift): Likewise.
|
||
(expand_doubleword_shift): Likewise.
|
||
(expand_absneg_bit): Likewise.
|
||
(expand_copysign_absneg): Likewise.
|
||
(expand_copysign_bit): Likewise.
|
||
* postreload.c (reload_cse_simplify_set): Likewise.
|
||
* predict.c (predict_iv_comparison): Likewise.
|
||
* pretty-print.h: Include wide-int-print.h.
|
||
(pp_wide_int) New.
|
||
* print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
|
||
* print-tree.c: Include wide-int-print.h.
|
||
(print_node_brief): Use wide-int interfaces.
|
||
(print_node): Likewise.
|
||
* read-rtl.c (validate_const_wide_int): New.
|
||
(read_rtx_code): Add CONST_WIDE_INT case.
|
||
* real.c: Include wide-int.h.
|
||
(real_to_integer2): Delete.
|
||
(real_to_integer): New function, returning a wide_int.
|
||
(real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
|
||
(ten_to_ptwo): Update call to real_from_integer.
|
||
(real_digit): Likewise.
|
||
* real.h: Include signop.h, wide-int.h and insn-modes.h.
|
||
(real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
|
||
(REAL_VALUE_TO_INT): Delete.
|
||
(real_to_integer): Declare a wide-int form.
|
||
(real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
|
||
* recog.c (const_int_operand): Improve comment.
|
||
(const_scalar_int_operand): New.
|
||
(const_double_operand): Add a separate definition for CONST_WIDE_INT.
|
||
* rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
|
||
(split_double): Likewise.
|
||
* rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
|
||
(rtx_size): Likewise.
|
||
(rtx_alloc_stat_v): New.
|
||
(rtx_alloc_stat): Now calls rtx_alloc_stat_v.
|
||
(cwi_output_hex): New.
|
||
(iterative_hash_rtx): Handle CONST_WIDE_INT.
|
||
(cwi_check_failed_bounds): New.
|
||
* rtl.def (CONST_WIDE_INT): New.
|
||
* rtl.h: Include <utility> and wide-int.h.
|
||
(struct hwivec_def): New.
|
||
(CWI_GET_NUM_ELEM): New.
|
||
(CWI_PUT_NUM_ELEM): New.
|
||
(struct rtx_def): Add num_elem and hwiv.
|
||
(CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
|
||
(CASE_CONST_UNIQUE): Likewise.
|
||
(CASE_CONST_ANY): Likewise.
|
||
(CONST_SCALAR_INT_P): Likewise.
|
||
(CONST_WIDE_INT_P): New.
|
||
(CWI_ELT): New.
|
||
(HWIVEC_CHECK): New.
|
||
(cwi_check_failed_bounds): New.
|
||
(CWI_ELT): New.
|
||
(HWIVEC_CHECK): New.
|
||
(CONST_WIDE_INT_VEC) New.
|
||
(CONST_WIDE_INT_NUNITS) New.
|
||
(CONST_WIDE_INT_ELT) New.
|
||
(rtx_mode_t): New type.
|
||
(wi::int_traits <rtx_mode_t>): New.
|
||
(wi::shwi): New.
|
||
(wi::min_value): New.
|
||
(wi::max_value): New.
|
||
(rtx_alloc_v) New.
|
||
(const_wide_int_alloc): New.
|
||
(immed_wide_int_const): New.
|
||
* sched-vis.c (print_value): Handle CONST_WIDE_INT.
|
||
* sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
|
||
* signop.h: New file.
|
||
* simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
|
||
(simplify_const_unary_operation): Use wide-int interfaces.
|
||
(simplify_binary_operation_1): Likewise.
|
||
(simplify_const_binary_operation): Likewise.
|
||
(simplify_const_relational_operation): Likewise.
|
||
(simplify_immed_subreg): Likewise.
|
||
* stmt.c (expand_case): Likewise.
|
||
* stor-layout.h (set_min_and_max_values_for_integral_type): Take a
|
||
signop rather than a bool.
|
||
* stor-layout.c (layout_type): Use wide-int interfaces.
|
||
(initialize_sizetypes): Update calls to
|
||
set_min_and_max_values_for_integral_type.
|
||
(set_min_and_max_values_for_integral_type): Take a signop rather
|
||
than a bool. Use wide-int interfaces.
|
||
(fixup_signed_type): Update accordingly. Remove
|
||
HOST_BITS_PER_DOUBLE_INT limit.
|
||
(fixup_unsigned_type): Likewise.
|
||
* system.h (STATIC_CONSTANT_P): New.
|
||
(STATIC_ASSERT): New.
|
||
* target.def (can_use_doloop_p): Take widest_ints rather than
|
||
double_ints.
|
||
* target.h: Include wide-int.h rather than double-int.h.
|
||
* targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
|
||
than double_ints.
|
||
* targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
|
||
rather than INT_CST_LT_UNSIGNED.
|
||
(can_use_doloop_if_innermost): Take widest_ints rather than
|
||
double_ints.
|
||
* tree-affine.c: Include wide-int-print.h.
|
||
(double_int_ext_for_comb): Delete.
|
||
(wide_int_ext_for_comb): New.
|
||
(aff_combination_zero): Use wide-int interfaces.
|
||
(aff_combination_const): Take a widest_int instead of a double_int.
|
||
(aff_combination_elt): Use wide-int interfaces.
|
||
(aff_combination_scale): Take a widest_int instead of a double_int.
|
||
(aff_combination_add_elt): Likewise.
|
||
(aff_combination_add_cst): Likewise.
|
||
(aff_combination_add): Use wide-int interfaces.
|
||
(aff_combination_convert): Likewise.
|
||
(tree_to_aff_combination): Likewise.
|
||
(add_elt_to_tree): Take a widest_int instead of a double_int.
|
||
(aff_combination_to_tree): Use wide-int interfaces.
|
||
(aff_combination_remove_elt): Likewise.
|
||
(aff_combination_add_product): Take a widest_int instead of
|
||
a double_int.
|
||
(aff_combination_mult): Use wide-int interfaces.
|
||
(aff_combination_expand): Likewise.
|
||
(double_int_constant_multiple_p): Delete.
|
||
(wide_int_constant_multiple_p): New.
|
||
(aff_combination_constant_multiple_p): Take a widest_int pointer
|
||
instead of a double_int pointer.
|
||
(print_aff): Use wide-int interfaces.
|
||
(get_inner_reference_aff): Take a widest_int pointer
|
||
instead of a double_int pointer.
|
||
(aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
|
||
* tree-affine.h: Include wide-int.h.
|
||
(struct aff_comb_elt): Change type of coef to widest_int.
|
||
(struct affine_tree_combination): Change type of offset to widest_int.
|
||
(double_int_ext_for_comb): Delete.
|
||
(wide_int_ext_for_comb): New.
|
||
(aff_combination_const): Use widest_int instead of double_int.
|
||
(aff_combination_scale): Likewise.
|
||
(aff_combination_add_elt): Likewise.
|
||
(aff_combination_constant_multiple_p): Likewise.
|
||
(get_inner_reference_aff): Likewise.
|
||
(aff_comb_cannot_overlap_p): Likewise.
|
||
(aff_combination_zero_p): Use wide-int interfaces.
|
||
* tree.c: Include tree.h.
|
||
(init_ttree): Use make_int_cst.
|
||
(tree_code_size): Removed code for INTEGER_CST case.
|
||
(tree_size): Add INTEGER_CST case.
|
||
(make_node_stat): Update comment.
|
||
(get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
|
||
(build_int_cst_type): Use wide-int interfaces.
|
||
(double_int_to_tree): Likewise.
|
||
(double_int_fits_to_tree_p): Delete.
|
||
(force_fit_type_double): Delete.
|
||
(force_fit_type): New.
|
||
(int_cst_hash_hash): Use wide-int interfaces.
|
||
(int_cst_hash_eq): Likewise.
|
||
(build_int_cst_wide): Delete.
|
||
(wide_int_to_tree): New.
|
||
(cache_integer_cst): Use wide-int interfaces.
|
||
(build_low_bits_mask): Likewise.
|
||
(cst_and_fits_in_hwi): Likewise.
|
||
(real_value_from_int_cst): Likewise.
|
||
(make_int_cst_stat): New.
|
||
(integer_zerop): Use wide_int interfaces.
|
||
(integer_onep): Likewise.
|
||
(integer_all_onesp): Likewise.
|
||
(integer_pow2p): Likewise.
|
||
(integer_nonzerop): Likewise.
|
||
(tree_log2): Likewise.
|
||
(tree_floor_log2): Likewise.
|
||
(tree_ctz): Likewise.
|
||
(int_size_in_bytes): Likewise.
|
||
(mem_ref_offset): Return an offset_int rather than a double_int.
|
||
(build_type_attribute_qual_variant): Use wide_int interfaces.
|
||
(type_hash_eq): Likewise
|
||
(tree_int_cst_equal): Likewise.
|
||
(tree_int_cst_lt): Delete.
|
||
(tree_int_cst_compare): Likewise.
|
||
(tree_fits_shwi_p): Use wide_int interfaces.
|
||
(tree_fits_uhwi_p): Likewise.
|
||
(tree_int_cst_sign_bit): Likewise.
|
||
(tree_int_cst_sgn): Likewise.
|
||
(tree_int_cst_min_precision): Take a signop rather than a bool.
|
||
(simple_cst_equal): Use wide_int interfaces.
|
||
(compare_tree_int): Likewise.
|
||
(iterative_hash_expr): Likewise.
|
||
(int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
|
||
INT_CST_LT.
|
||
(get_type_static_bounds): Use wide_int interfaces.
|
||
(tree_int_cst_elt_check_failed): New.
|
||
(build_common_tree_nodes): Reordered to set prec before filling in
|
||
value.
|
||
(int_cst_value): Check cst_and_fits_in_hwi.
|
||
(widest_int_cst_value): Use wide_int interfaces.
|
||
(upper_bound_in_type): Likewise.
|
||
(lower_bound_in_type): Likewise.
|
||
(num_ending_zeros): Likewise.
|
||
(drop_tree_overflow): Likewise.
|
||
* tree-call-cdce.c (check_pow): Update call to real_from_integer.
|
||
(gen_conditions_for_pow_cst_base): Likewise.
|
||
* tree-cfg.c: Include wide-int.h and wide-int-print.h.
|
||
(group_case_labels_stmt): Use wide-int interfaces.
|
||
(verify_gimple_assign_binary): Likewise.
|
||
(print_loop): Likewise.
|
||
* tree-chrec.c (tree_fold_binomial): Likewise.
|
||
* tree-core.h (struct tree_base): Add int_length.
|
||
(struct tree_int_cst): Change rep of value.
|
||
* tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
|
||
(dr_may_alias_p): Likewise.
|
||
(max_stmt_executions_tree): Likewise.
|
||
* tree.def (INTEGER_CST): Update comment.
|
||
* tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
|
||
* tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
|
||
* tree-dump.c: Include wide-int.h and wide-int-print.h.
|
||
(dequeue_and_dump): Use wide-int interfaces.
|
||
* tree.h: Include wide-int.h.
|
||
(NULL_TREE): Moved to earlier loc in file.
|
||
(TREE_INT_CST_ELT_CHECK): New.
|
||
(tree_int_cst_elt_check_failed): New.
|
||
(TYPE_SIGN): New.
|
||
(TREE_INT_CST): Delete.
|
||
(TREE_INT_CST_LOW): Use wide-int interfaces.
|
||
(TREE_INT_CST_HIGH): Delete.
|
||
(TREE_INT_CST_NUNITS): New.
|
||
(TREE_INT_CST_EXT_NUNITS): Likewise.
|
||
(TREE_INT_CST_OFFSET_NUNITS): Likewise.
|
||
(TREE_INT_CST_ELT): Likewise.
|
||
(INT_CST_LT): Delete.
|
||
(tree_int_cst_elt_check): New (two forms).
|
||
(type_code_size): Update comment.
|
||
(make_int_cst_stat, make_int_cst): New.
|
||
(tree_to_double_int): Delete.
|
||
(double_int_fits_to_tree_p): Delete.
|
||
(force_fit_type_double): Delete.
|
||
(build_int_cstu): Replace with out-of-line function.
|
||
(build_int_cst_wide): Delete.
|
||
(tree_int_cst_lt): Define inline.
|
||
(tree_int_cst_le): New.
|
||
(tree_int_cst_compare): Define inline.
|
||
(tree_int_cst_min_precision): Take a signop rather than a bool.
|
||
(wi::int_traits <const_tree>): New.
|
||
(wi::int_traits <tree>): New.
|
||
(wi::extended_tree): New.
|
||
(wi::int_traits <wi::extended_tree>): New.
|
||
(wi::to_widest): New.
|
||
(wi::to_offset): New.
|
||
(wi::fits_to_tree_p): New.
|
||
(wi::min_value): New.
|
||
(wi::max_value): New.
|
||
* tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
|
||
(copy_tree_body_r): Likewise.
|
||
* tree-object-size.c (compute_object_offset): Likewise.
|
||
(addr_object_size): Likewise.
|
||
* tree-predcom.c: Include wide-int-print.h.
|
||
(struct dref_d): Change type of offset to widest_int.
|
||
(dump_dref): Call wide-int printer.
|
||
(aff_combination_dr_offset): Use wide-int interfaces.
|
||
(determine_offset): Take a widest_int pointer rather than a
|
||
double_int pointer.
|
||
(split_data_refs_to_components): Use wide-int interfaces.
|
||
(suitable_component_p): Likewise.
|
||
(order_drefs): Likewise.
|
||
(add_ref_to_chain): Likewise.
|
||
(valid_initializer_p): Likewise.
|
||
(determine_roots_comp): Likewise.
|
||
* tree-pretty-print.c: Include wide-int-print.h.
|
||
(dump_generic_node): Use wide-int interfaces.
|
||
* tree-sra.c (sra_ipa_modify_expr): Likewise.
|
||
* tree-ssa-address.c (addr_for_mem_ref): Likewise.
|
||
(move_fixed_address_to_symbol): Likewise.
|
||
(move_hint_to_base): Likewise.
|
||
(move_pointer_to_base): Likewise.
|
||
(move_variant_to_index): Likewise.
|
||
(most_expensive_mult_to_index): Likewise.
|
||
(addr_to_parts): Likewise.
|
||
(copy_ref_info): Likewise.
|
||
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
|
||
(indirect_refs_may_alias_p): Likewise.
|
||
(stmt_kills_ref_p_1): Likewise.
|
||
* tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
|
||
* tree-ssa-ccp.c: Update comment at top of file. Include
|
||
wide-int-print.h.
|
||
(struct prop_value_d): Change type of mask to widest_int.
|
||
(extend_mask): New function.
|
||
(dump_lattice_value): Use wide-int interfaces.
|
||
(get_default_value): Likewise.
|
||
(set_constant_value): Likewise.
|
||
(set_value_varying): Likewise.
|
||
(valid_lattice_transition): Likewise.
|
||
(set_lattice_value): Likewise.
|
||
(value_to_double_int): Delete.
|
||
(value_to_wide_int): New.
|
||
(get_value_from_alignment): Use wide-int interfaces.
|
||
(get_value_for_expr): Likewise.
|
||
(do_dbg_cnt): Likewise.
|
||
(ccp_finalize): Likewise.
|
||
(ccp_lattice_meet): Likewise.
|
||
(bit_value_unop_1): Use widest_ints rather than double_ints.
|
||
(bit_value_binop_1): Likewise.
|
||
(bit_value_unop): Use wide-int interfaces.
|
||
(bit_value_binop): Likewise.
|
||
(bit_value_assume_aligned): Likewise.
|
||
(evaluate_stmt): Likewise.
|
||
(ccp_fold_stmt): Likewise.
|
||
(visit_cond_stmt): Likewise.
|
||
(ccp_visit_stmt): Likewise.
|
||
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
|
||
(constant_pointer_difference): Likewise.
|
||
(associate_pointerplus): Likewise.
|
||
(combine_conversions): Likewise.
|
||
* tree-ssa-loop.h: Include wide-int.h.
|
||
(struct tree_niter_desc): Change type of max to widest_int.
|
||
* tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
|
||
* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
|
||
(remove_redundant_iv_tests): Likewise.
|
||
(canonicalize_loop_induction_variables): Likewise.
|
||
* tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
|
||
(constant_multiple_of): Take a widest_int pointer instead of
|
||
a double_int pointer.
|
||
(get_computation_aff): Use wide-int interfaces.
|
||
(ptr_difference_cost): Likewise.
|
||
(difference_cost): Likewise.
|
||
(get_loop_invariant_expr_id): Likewise.
|
||
(get_computation_cost_at): Likewise.
|
||
(iv_elimination_compare_lt): Likewise.
|
||
(may_eliminate_iv): Likewise.
|
||
* tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
|
||
instead of double_int.
|
||
(max_loop_iterations): Likewise.
|
||
(max_stmt_executions): Likewise.
|
||
(estimated_stmt_executions): Likewise.
|
||
* tree-ssa-loop-niter.c: Include wide-int-print.h.
|
||
(split_to_var_and_offset): Use wide-int interfaces.
|
||
(determine_value_range): Likewise.
|
||
(bound_difference_of_offsetted_base): Likewise.
|
||
(bounds_add): Take a widest_int instead of a double_int.
|
||
(number_of_iterations_ne_max): Use wide-int interfaces.
|
||
(number_of_iterations_ne): Likewise.
|
||
(number_of_iterations_lt_to_ne): Likewise.
|
||
(assert_loop_rolls_lt): Likewise.
|
||
(number_of_iterations_lt): Likewise.
|
||
(number_of_iterations_le): Likewise.
|
||
(number_of_iterations_cond): Likewise.
|
||
(number_of_iterations_exit): Likewise.
|
||
(finite_loop_p): Likewise.
|
||
(derive_constant_upper_bound_assign): Likewise.
|
||
(derive_constant_upper_bound): Return a widest_int.
|
||
(derive_constant_upper_bound_ops): Likewise.
|
||
(do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
|
||
(record_estimate): Take a widest_int rather than a double_int.
|
||
(record_nonwrapping_iv): Use wide-int interfaces.
|
||
(double_int_cmp): Delete.
|
||
(wide_int_cmp): New.
|
||
(bound_index): Take a widest_int rather than a double_int.
|
||
(discover_iteration_bound_by_body_walk): Use wide-int interfaces.
|
||
(maybe_lower_iteration_bound): Likewise.
|
||
(estimate_numbers_of_iterations_loop): Likewise.
|
||
(estimated_loop_iterations): Take a widest_int pointer than than
|
||
a double_int pointer.
|
||
(estimated_loop_iterations_int): Use wide-int interfaces.
|
||
(max_loop_iterations): Take a widest_int pointer than than
|
||
a double_int pointer.
|
||
(max_loop_iterations_int): Use wide-int interfaces.
|
||
(max_stmt_executions): Take a widest_int pointer than than
|
||
a double_int pointer.
|
||
(estimated_stmt_executions): Likewise.
|
||
(n_of_executions_at_most): Use wide-int interfaces.
|
||
(scev_probably_wraps_p): Likewise.
|
||
* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
|
||
to real_to_integer.
|
||
* tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
|
||
interfaces.
|
||
* tree-ssanames.c (set_range_info): Use wide_int_refs rather than
|
||
double_ints. Adjust for trailing_wide_ints <3> representation.
|
||
(set_nonzero_bits): Likewise.
|
||
(get_range_info): Return wide_ints rather than double_ints.
|
||
Adjust for trailing_wide_ints <3> representation.
|
||
(get_nonzero_bits): Likewise.
|
||
(duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
|
||
representation.
|
||
* tree-ssanames.h (struct range_info_def): Replace min, max and
|
||
nonzero_bits with a trailing_wide_ints <3>.
|
||
(set_range_info): Use wide_int_refs rather than double_ints.
|
||
(set_nonzero_bits): Likewise.
|
||
(get_range_info): Return wide_ints rather than double_ints.
|
||
(get_nonzero_bits): Likewise.
|
||
* tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
|
||
* tree-ssa-pre.c (phi_translate_1): Likewise.
|
||
* tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
|
||
(acceptable_pow_call): Likewise.
|
||
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
|
||
interfaces.
|
||
(vn_reference_fold_indirect): Likewise.
|
||
(vn_reference_maybe_forwprop_address): Likewise.
|
||
(valueize_refs_1): Likewise.
|
||
* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
|
||
* tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
|
||
tree_int_cst_lt and tree_int_cst_le.
|
||
* tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
|
||
interfaces.
|
||
(streamer_alloc_tree): Likewise.
|
||
* tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
|
||
(streamer_write_tree_header): Likewise.
|
||
(streamer_write_integer_cst): Likewise.
|
||
* tree-switch-conversion.c (emit_case_bit_tests): Likewise.
|
||
(build_constructors): Likewise.
|
||
(array_value_type): Likewise.
|
||
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
|
||
(vect_check_gather): Likewise.
|
||
* tree-vect-generic.c (build_replicated_const): Likewise.
|
||
(expand_vector_divmod): Likewise.
|
||
* tree-vect-loop.c (vect_transform_loop): Likewise.
|
||
* tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
|
||
(vect_do_peeling_for_alignment): Likewise.
|
||
* tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
|
||
* tree-vrp.c: Include wide-int.h.
|
||
(operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
|
||
(extract_range_from_assert): Use wide-int interfaces.
|
||
(vrp_int_const_binop): Likewise.
|
||
(zero_nonzero_bits_from_vr): Take wide_int pointers rather than
|
||
double_int pointers.
|
||
(ranges_from_anti_range): Use wide-int interfaces.
|
||
(quad_int_cmp): Delete.
|
||
(quad_int_pair_sort): Likewise.
|
||
(extract_range_from_binary_expr_1): Use wide-int interfaces.
|
||
(extract_range_from_unary_expr_1): Likewise.
|
||
(adjust_range_with_scev): Likewise.
|
||
(masked_increment): Take and return wide_ints rather than double_ints.
|
||
(register_edge_assert_for_2): Use wide-int interfaces.
|
||
(check_array_ref): Likewise.
|
||
(search_for_addr_array): Likewise.
|
||
(maybe_set_nonzero_bits): Likewise.
|
||
(union_ranges): Pass an integer of the correct type instead of
|
||
using integer_one_node.
|
||
(intersect_ranges): Likewise.
|
||
(simplify_truth_ops_using_ranges): Likewise.
|
||
(simplify_bit_ops_using_ranges): Use wide-int interfaces.
|
||
(range_fits_type_p): Likewise.
|
||
(simplify_cond_using_ranges): Likewise. Take a signop rather than
|
||
a bool.
|
||
(simplify_conversion_using_ranges): Use wide-int interfaces.
|
||
(simplify_float_conversion_using_ranges): Likewise.
|
||
(vrp_finalize): Likewise.
|
||
* value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
|
||
(gimple_stringops_transform): Likewise.
|
||
* varasm.c (decode_addr_const): Likewise.
|
||
(const_hash_1): Likewise.
|
||
(const_rtx_hash_1): Likewise
|
||
(output_constant): Likewise.
|
||
(array_size_for_constructor): Likewise.
|
||
(output_constructor_regular_field): Likewise.
|
||
(output_constructor_bitfield): Likewise.
|
||
* var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
|
||
* mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
|
||
GENERATOR_FILEs.
|
||
* gencheck.c: Define BITS_PER_UNIT.
|
||
* wide-int.cc: New.
|
||
* wide-int.h: New.
|
||
* wide-int-print.cc: New.
|
||
* wide-int-print.h: New.
|
||
|
||
2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/avr/avr.c (avr_can_eliminate): Mark unused argument.
|
||
|
||
2014-05-06 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
|
||
TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
|
||
(TODO_verify_all): Adjust.
|
||
* asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
|
||
TODO_verify_stmts and TODO_verify_rtl_sharing.
|
||
* bb-reorder.c: Likewise.
|
||
* cfgexpand.c: Likewise.
|
||
* cprop.c: Likewise.
|
||
* cse.c: Likewise.
|
||
* function.c: Likewise.
|
||
* fwprop.c: Likewise.
|
||
* gcse.c: Likewise.
|
||
* gimple-ssa-isolate-paths.c: Likewise.
|
||
* gimple-ssa-strength-reduction.c: Likewise.
|
||
* ipa-split.c: Likewise.
|
||
* loop-init.c: Likewise.
|
||
* loop-unroll.c: Likewise.
|
||
* lower-subreg.c: Likewise.
|
||
* modulo-sched.c: Likewise.
|
||
* postreload-gcse.c: Likewise.
|
||
* predict.c: Likewise.
|
||
* recog.c: Likewise.
|
||
* sched-rgn.c: Likewise.
|
||
* store-motion.c: Likewise.
|
||
* tracer.c: Likewise.
|
||
* trans-mem.c: Likewise.
|
||
* tree-call-cdce.c: Likewise.
|
||
* tree-cfg.c: Likewise.
|
||
* tree-cfgcleanup.c: Likewise.
|
||
* tree-complex.c: Likewise.
|
||
* tree-eh.c: Likewise.
|
||
* tree-emutls.c: Likewise.
|
||
* tree-if-conv.c: Likewise.
|
||
* tree-into-ssa.c: Likewise.
|
||
* tree-loop-distribution.c: Likewise.
|
||
* tree-object-size.c: Likewise.
|
||
* tree-parloops.c: Likewise.
|
||
* tree-pass.h: Likewise.
|
||
* tree-sra.c: Likewise.
|
||
* tree-ssa-ccp.c: Likewise.
|
||
* tree-ssa-copy.c: Likewise.
|
||
* tree-ssa-copyrename.c: Likewise.
|
||
* tree-ssa-dce.c: Likewise.
|
||
* tree-ssa-dom.c: Likewise.
|
||
* tree-ssa-dse.c: Likewise.
|
||
* tree-ssa-forwprop.c: Likewise.
|
||
* tree-ssa-ifcombine.c: Likewise.
|
||
* tree-ssa-loop-ch.c: Likewise.
|
||
* tree-ssa-loop-ivcanon.c: Likewise.
|
||
* tree-ssa-loop.c: Likewise.
|
||
* tree-ssa-math-opts.c: Likewise.
|
||
* tree-ssa-phiopt.c: Likewise.
|
||
* tree-ssa-phiprop.c: Likewise.
|
||
* tree-ssa-pre.c: Likewise.
|
||
* tree-ssa-reassoc.c: Likewise.
|
||
* tree-ssa-sink.c: Likewise.
|
||
* tree-ssa-strlen.c: Likewise.
|
||
* tree-ssa-tail-merge.c: Likewise.
|
||
* tree-ssa-uncprop.c: Likewise.
|
||
* tree-switch-conversion.c: Likewise.
|
||
* tree-tailcall.c: Likewise.
|
||
* tree-vect-generic.c: Likewise.
|
||
* tree-vectorizer.c: Likewise.
|
||
* tree-vrp.c: Likewise.
|
||
* tsan.c: Likewise.
|
||
* var-tracking.c: Likewise.
|
||
* bt-load.c: Likewise.
|
||
* cfgcleanup.c: Likewise.
|
||
* combine-stack-adj.c: Likewise.
|
||
* combine.c: Likewise.
|
||
* compare-elim.c: Likewise.
|
||
* config/epiphany/resolve-sw-modes.c: Likewise.
|
||
* config/i386/i386.c: Likewise.
|
||
* config/mips/mips.c: Likewise.
|
||
* config/s390/s390.c: Likewise.
|
||
* config/sh/sh_treg_combine.cc: Likewise.
|
||
* config/sparc/sparc.c: Likewise.
|
||
* dce.c: Likewise.
|
||
* dse.c: Likewise.
|
||
* final.c: Likewise.
|
||
* ifcvt.c: Likewise.
|
||
* mode-switching.c: Likewise.
|
||
* passes.c: Likewise.
|
||
* postreload.c: Likewise.
|
||
* ree.c: Likewise.
|
||
* reg-stack.c: Likewise.
|
||
* regcprop.c: Likewise.
|
||
* regrename.c: Likewise.
|
||
* web.c: Likewise.
|
||
|
||
2014-05-06 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/61070
|
||
* bitmap.c (debug_bitmap): Dump to stderr, not stdout.
|
||
* tree-ssa-structalias.c (dump_solution_for_var): Likewise.
|
||
|
||
2014-05-05 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/60965
|
||
* ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
|
||
|
||
2014-05-05 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* target.def (call_fusage_contains_non_callee_clobbers): New
|
||
DEFHOOKPOD.
|
||
* doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
|
||
Hooks to @menu.
|
||
(@node Miscellaneous Register Hooks): New node.
|
||
(@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
|
||
* doc/tm.texi: Regenerate.
|
||
|
||
2014-05-05 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR driver/61065
|
||
* opts.c (common_handle_option): Call error_at instead of warning_at.
|
||
|
||
2014-05-05 Richard Biener <rguenther@suse.de>
|
||
|
||
* passes.c (execute_function_todo): Don't reset TODO_verify_ssa
|
||
from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
|
||
under the TODO_verify_il umbrella.
|
||
|
||
2014-05-05 Richard Biener <rguenther@suse.de>
|
||
|
||
* passes.c (execute_function_todo): Move TODO_verify_flow under
|
||
the TODO_verify_ul umbrella.
|
||
|
||
2014-05-05 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/61010
|
||
* fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
|
||
X & CST away from a CST that is the mask of a mode.
|
||
|
||
2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/picochip/picochip-protos.h (picochip_regno_nregs): Change
|
||
int argument to enum machine_mode.
|
||
(picochip_class_max_nregs): Ditto.
|
||
* config/picochip/picochip.c (picochip_regno_nregs): Ditto.
|
||
(picochip_class_max_nregs): Ditto.
|
||
|
||
2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* target.def: Add new target hook.
|
||
* doc/tm.texi: Regenerate.
|
||
* targhooks.h (default_keep_leaf_when_profiled): Add prototype.
|
||
* targhooks.c (default_keep_leaf_when_profiled): New function.
|
||
|
||
* config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
|
||
(TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
|
||
|
||
2014-05-05 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
PR tree-optimization/60363
|
||
* gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
|
||
(copy_phi_args): New parameters. Call get_value_locus_in_path.
|
||
(update_destination_phis): New parameter.
|
||
(create_edge_and_update_destination_phis): Ditto.
|
||
(ssa_fix_duplicate_block_edges): Pass new arguments.
|
||
(thread_single_edge): Ditto.
|
||
|
||
2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
|
||
(RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
|
||
(TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
|
||
* config/rs6000/rs6000-builtin.def (BU_MISC_1):
|
||
Use RS6000_BTM_HARD_FLOAT.
|
||
(BU_MISC_2): Likewise.
|
||
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
|
||
RS6000_BTM_HARD_FLOAT.
|
||
(rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
|
||
is explicitly used.
|
||
(rs6000_invalid_builtin): Add hard floating builtin support.
|
||
(rs6000_expand_builtin): Relax the gcc_assert to allow the new
|
||
hard float builtins.
|
||
(rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
|
||
|
||
2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
* config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
|
||
Add missing function* argument.
|
||
|
||
2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* lra-constraints.c (valid_address_p): Move earlier in file.
|
||
Add a constraint argument to the address_info version.
|
||
(satisfies_memory_constraint_p): New function.
|
||
(satisfies_address_constraint_p): Likewise.
|
||
(process_alt_operands, curr_insn_transform): Use them.
|
||
(process_address): Pass the constraint to valid_address_p when
|
||
checking address operands.
|
||
|
||
2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.c (mips_isa_rev): New variable.
|
||
(mips_set_architecture): Set it.
|
||
* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
|
||
from mips_isa_rev.
|
||
(ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
|
||
(ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
|
||
(ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
|
||
(ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
|
||
(ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
|
||
conditions in terms of mips_isa_rev.
|
||
(mips_isa_rev): Declare.
|
||
|
||
2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
* config/sh/sh-mem.cc: Use tabs instead of spaces.
|
||
(prob_unlikely, prob_likely): Make variables const.
|
||
|
||
2014-05-03 Denis Chertykov <chertykov@gmail.com>
|
||
|
||
* config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
|
||
|
||
2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
* config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
|
||
|
||
2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
* config/sh/sh.h (ROUND_ADVANCE): Delete macro.
|
||
(ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
|
||
* config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
|
||
functions.
|
||
(sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
|
||
sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
|
||
sh_pass_in_reg_p.
|
||
Replace usage of ROUND_REG with sh_round_reg.
|
||
Use CEIL instead of ROUND_ADVANCE.
|
||
|
||
2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/61026
|
||
* config/sh/sh.c: Include stdlib headers before everything else.
|
||
|
||
2014-05-02 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* gimplify.c (gimplify_adjust_omp_clauses_1): Handle
|
||
GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
|
||
(gimplify_adjust_omp_clauses): Simd region is never
|
||
directly nested in combined parallel. Instead, for linear
|
||
with copyin/copyout, if in combined for simd loop, make decl
|
||
firstprivate/lastprivate on OMP_FOR.
|
||
* omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
|
||
expand_omp_for_static_chunk): When setting endvar, also set
|
||
fd->loop.v to the same value.
|
||
|
||
2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
* hwint.h (zext_hwi): Fix signed overflow for prec == 63.
|
||
|
||
2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
|
||
expression.
|
||
|
||
2014-05-02 Marek Polacek <polacek@redhat.com>
|
||
|
||
* doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
|
||
|
||
2014-05-02 Kito Cheng <kito@0xlab.org>
|
||
|
||
* defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
|
||
to a C expression marco.
|
||
* ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
|
||
* config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
|
||
* config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
|
||
* doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
|
||
HONOR_REG_ALLOC_ORDER.
|
||
* doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
|
||
|
||
2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
|
||
|
||
2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/arc/arc.c (arc_select_cc_mode): Fix typo.
|
||
|
||
2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
|
||
|
||
* tree-if-conv.c (is_cond_scalar_reduction): New function.
|
||
(convert_scalar_cond_reduction): Likewise.
|
||
(predicate_scalar_phi): Add recognition and transformation
|
||
of simple conditioanl reduction to be vectorizable.
|
||
|
||
2014-05-01 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/43245
|
||
* doc/invoke.texi: Document -Wdiscarded-qualifiers.
|
||
|
||
2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
|
||
vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
|
||
vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
|
||
vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
|
||
vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
|
||
vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
|
||
vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
|
||
vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
|
||
|
||
2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/arc/arc.opt (mlra): Move comment above option name
|
||
to avoid mis-parsing as language options.
|
||
|
||
2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
|
||
* config/sol2.h: ... here.
|
||
* config/sol2-10.h: Remove.
|
||
|
||
* config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
|
||
(WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
|
||
(DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
|
||
(LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
|
||
(LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
|
||
* config/sol2.h: ... here.
|
||
(SECTION_NAME_FORMAT): Don't redefine.
|
||
(STARTFILE_ARCH32_SPEC): Rename to ...
|
||
(STARTFILE_ARCH_SPEC): ... this.
|
||
(ASM_OUTPUT_ALIGNED_COMMON): Move ...
|
||
* config/sparc/sol2.h: ... here.
|
||
(SECTION_NAME_FORMAT): Don't undef.
|
||
* config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
|
||
(SUBTARGET_EXTRA_SPECS): Remove.
|
||
* config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
|
||
|
||
* config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
|
||
(MD_STARTFILE_PREFIX): Remove.
|
||
(SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
|
||
(ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
|
||
(ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
|
||
(ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
|
||
(ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
|
||
(USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
|
||
* config/i386/sol2.h: ... here.
|
||
(TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
|
||
* config/i386/sol2-bi.h: Remove.
|
||
* config/sol2.h (MD_STARTFILE_PREFIX): Remove.
|
||
(LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
|
||
|
||
* config/i386/t-sol2-64: Rename to ...
|
||
* config/i386/t-sol2: ... this.
|
||
* config/sparc/t-sol2-64: Rename to ...
|
||
* config/sparc/t-sol2: ... this.
|
||
|
||
* config.gcc (*-*-solaris2*): Split sol2_tm_file into
|
||
sol2_tm_file_head, sol2_tm_file_tail.
|
||
Include ${cpu_type}/sol2.h before sol2.h.
|
||
Remove sol2-10.h.
|
||
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
|
||
i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
|
||
Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
|
||
Reflect i386/t-sol2-64 renaming.
|
||
(sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
|
||
Reflect sparc/t-sol2-64 renaming.
|
||
|
||
2014-04-30 Richard Biener <rguenther@suse.de>
|
||
|
||
* passes.c (execute_function_todo): Move TODO_verify_stmts
|
||
and TODO_verify_ssa under the TODO_verify_il umbrella.
|
||
* tree-ssa.h (verify_ssa): Adjust prototype.
|
||
* tree-ssa.c (verify_ssa): Add parameter to tell whether
|
||
we should verify SSA operands.
|
||
* tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
|
||
* tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
|
||
whether we should verify whether not throwing stmts have EH info.
|
||
* graphite-scop-detection.c (create_sese_edges): Adjust.
|
||
* tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
|
||
* tree-eh.c (lower_try_finally_switch): Do not add the
|
||
default case label twice.
|
||
|
||
2014-04-30 Marek Polacek <polacek@redhat.com>
|
||
|
||
* gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
|
||
* builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
|
||
* flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
|
||
* opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
|
||
|
||
2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
|
||
vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
|
||
vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
|
||
vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
|
||
vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
|
||
vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
|
||
vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
|
||
vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
|
||
|
||
2014-04-29 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* tree-cfg.c (dump_function_to_file): Dump the return type of
|
||
functions, in a line to itself before the function body, mimicking
|
||
the layout of a C function.
|
||
|
||
2014-04-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/60971
|
||
* tree-tailcall.c (process_assignment): Reject conversions which
|
||
reduce precision.
|
||
|
||
2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* calls.c (initialize_argument_information): Always treat
|
||
PUSH_ARGS_REVERSED as 1, simplify code accordingly.
|
||
(expand_call): Likewise.
|
||
(emit_library_call_calue_1): Likewise.
|
||
* expr.c (PUSH_ARGS_REVERSED): Do not define.
|
||
(emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
|
||
code accordingly.
|
||
|
||
2014-04-29 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/msp430/msp430.md (umulsidi): Fix typo.
|
||
(mulhisi3): Enable even inside interrupt handlers.
|
||
* config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
|
||
bigger return address pushed in large mode.
|
||
|
||
2014-04-29 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
|
||
(arc_init_reg_tables): Use a machine_mode enum to iterate over
|
||
available modes.
|
||
* config/m32r/m32r.c (init_reg_tables): Likewise.
|
||
* config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
|
||
enum to hold the modes.
|
||
|
||
2014-04-29 Richard Biener <rguenther@suse.de>
|
||
|
||
* dominance.c (free_dominance_info): Add overload with
|
||
function parameter.
|
||
(dom_info_state): Likewise.
|
||
(dom_info_available_p): Likewise.
|
||
* basic-block.h (free_dominance_info, dom_info_state,
|
||
dom_info_available_p): Declare overloads.
|
||
* passes.c (execute_function_todo): Verify that verifiers
|
||
don't change dominator info state. Drop dominator info
|
||
for IPA pass invocations.
|
||
* cgraph.c (release_function_body): Restore asserts that
|
||
dominator information is released.
|
||
|
||
2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
* doc/invoke.texi: Fix typo.
|
||
* tree-vrp.c: Fix typos.
|
||
* gimple.c (infer_nonnull_range): Reorder operands of an && condition.
|
||
|
||
2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
* config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
|
||
|
||
2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_types_storestruct_lane_qualifiers): New.
|
||
(TYPES_STORESTRUCT_LANE): Likewise.
|
||
* config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
|
||
(st3_lane): Likewise.
|
||
(st4_lane): Likewise.
|
||
* config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
|
||
(vec_store_lanesci_lane<mode>): Likewise.
|
||
(vec_store_lanesxi_lane<mode>): Likewise.
|
||
(aarch64_st2_lane<VQ:mode>): Likewise.
|
||
(aarch64_st3_lane<VQ:mode>): Likewise.
|
||
(aarch64_st4_lane<VQ:mode>): Likewise.
|
||
* config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
|
||
* config/aarch64/arm_neon.h
|
||
(__ST2_LANE_FUNC): Rewrite using builtins, update use points to
|
||
use new macro arguments.
|
||
(__ST3_LANE_FUNC): Likewise.
|
||
(__ST4_LANE_FUNC): Likewise.
|
||
* config/aarch64/iterators.md (V_TWO_ELEM): New.
|
||
(V_THREE_ELEM): Likewise.
|
||
(V_FOUR_ELEM): Likewise.
|
||
|
||
2014-04-28 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* doc/gimple.texi: Replace the description of the now-defunct
|
||
union gimple_statement_d with a diagram showing the
|
||
gimple_statement_base class hierarchy and its relationships to
|
||
the GSS_ and GIMPLE_ enums.
|
||
|
||
2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
|
||
* config/aarch64/aarch64.c
|
||
(aarch64_cannot_change_mode_class): Weaken conditions.
|
||
(aarch64_modes_tieable_p): New.
|
||
* config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
|
||
|
||
2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* config/rs6000/sync.md (AINT mode_iterator): Move definition.
|
||
(loadsync_<mode>): Change mode.
|
||
(load_quadpti, store_quadpti): New.
|
||
(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
|
||
* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
|
||
|
||
2014-04-28 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* tree-sra.c (sra_modify_expr): Generate new memory accesses with
|
||
same alias type as the original statement.
|
||
(subreplacement_assignment_data): New type.
|
||
(handle_unscalarized_data_in_subtree): New type of parameter,
|
||
generate new memory accesses with same alias type as the original
|
||
statement.
|
||
(load_assign_lhs_subreplacements): Likewise.
|
||
(sra_modify_constructor_assign): Generate new memory accesses with
|
||
same alias type as the original statement.
|
||
|
||
2014-04-28 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-pass.h (TODO_verify_il): Define.
|
||
(TODO_verify_all): Complete properly.
|
||
* passes.c (execute_function_todo): Move existing loop-closed
|
||
SSA verification under TODO_verify_il.
|
||
(execute_one_pass): Trigger TODO_verify_il at todo-after time.
|
||
* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
|
||
Fix tree sharing issue.
|
||
|
||
2014-04-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60092
|
||
* builtins.def (DEF_C11_BUILTIN): Add.
|
||
(BUILT_IN_ALIGNED_ALLOC): Likewise.
|
||
* coretypes.h (enum function_class): Add function_c11_misc.
|
||
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
|
||
BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
|
||
(call_may_clobber_ref_p_1): Likewise.
|
||
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
|
||
(mark_all_reaching_defs_necessary_1): Likewise.
|
||
(propagate_necessity): Likewise.
|
||
(eliminate_unnecessary_stmts): Likewise.
|
||
* tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
|
||
|
||
2014-04-28 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vrp.c (vrp_var_may_overflow): Remove.
|
||
(vrp_visit_phi_node): Rather than bumping to +-INF possibly
|
||
with overflow immediately bump to one before that value and
|
||
let iteration figure out overflow status.
|
||
|
||
2014-04-28 Richard Biener <rguenther@suse.de>
|
||
|
||
* configure.ac: Do valgrind header checks unconditionally.
|
||
Add --enable-valgrind-annotations.
|
||
* system.h: Guard valgrind header inclusion with
|
||
ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
|
||
* alloc-pool.c (pool_alloc, pool_free): Use
|
||
ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
|
||
to guard possibly dead code.
|
||
* config.in: Regenerated.
|
||
* configure: Likewise.
|
||
|
||
2014-04-28 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/60902
|
||
* tree-ssa-threadedge.c
|
||
(record_temporary_equivalences_from_stmts_at_dest): Only iterate
|
||
over real defs when invalidating outputs from statements that do not
|
||
produce useful outputs for threading.
|
||
|
||
2014-04-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60979
|
||
* graphite-scop-detection.c (scopdet_basic_block_info): Reject
|
||
SCOPs that end in a block with a successor with abnormal
|
||
predecessors.
|
||
|
||
2014-04-28 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-pass.h (execute_pass_list): Adjust prototype.
|
||
* passes.c (pass_manager::execute_early_local_passes): Adjust.
|
||
(do_per_function): Change callback signature, push all actual
|
||
work to the callbals.
|
||
(do_per_function_toporder): Likewise.
|
||
(execute_function_dump): Adjust.
|
||
(execute_function_todo): Likewise.
|
||
(clear_last_verified): Likewise.
|
||
(verify_curr_properties): Likewise.
|
||
(update_properties_after_pass): Likewise.
|
||
(execute_pass_list_1): Split out from ...
|
||
(execute_pass_list): ... here. Adjust.
|
||
(execute_ipa_pass_list): Likewise.
|
||
* cgraphunit.c (cgraph_add_new_function): Adjust.
|
||
(analyze_function): Likewise.
|
||
(expand_function): Likewise.
|
||
* cgraph.c (release_function_body): Free dominance info
|
||
here instead of asserting it was magically freed elsewhere.
|
||
|
||
2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* configure.ac: Tweak GAS check for LEON instructions on SPARC.
|
||
* configure: Regenerate.
|
||
* config/sparc/sparc.opt (muser-mode): New option.
|
||
* config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
|
||
for LEON3.
|
||
(atomic_compare_and_swap_leon3_1): New instruction for LEON3.
|
||
* doc/invoke.texi (SPARC options): Document -muser-mode.
|
||
|
||
2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* cselib.c (find_slot_memmode): Delete.
|
||
(cselib_hasher): Change compare_type to a struct.
|
||
(cselib_hasher::equal): Update accordingly. Don't expect wrapped
|
||
constants.
|
||
(preserve_constants_and_equivs): Adjust for new compare_type.
|
||
(cselib_find_slot): Likewise. Take the mode of the rtx as argument.
|
||
(wrap_constant): Delete.
|
||
(cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
|
||
|
||
2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
|
||
|
||
* doc/install.texi (Building with profile feedback): Remove
|
||
outdated sentence.
|
||
|
||
2014-04-26 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
|
||
array accesses.
|
||
|
||
2014-04-25 Cary Coutant <ccoutant@google.com>
|
||
|
||
PR debug/60929
|
||
* dwarf2out.c (should_move_die_to_comdat): A type definition
|
||
can contain a subprogram definition, but don't move it to a
|
||
comdat unit.
|
||
(clone_as_declaration): Copy DW_AT_abstract_origin attribute.
|
||
(generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
|
||
from original DIE.
|
||
(clone_tree_hash): Rename to...
|
||
(clone_tree_partial): ...this; change callers. Copy
|
||
DW_TAG_subprogram DIEs as declarations.
|
||
(copy_decls_walk): Don't copy children of a declaration into a
|
||
type unit.
|
||
|
||
2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/60969
|
||
* config/i386/i386.md (*movsf_internal): Set MODE to SI for
|
||
alternative 12.
|
||
|
||
2014-04-25 Jiong Wang <jiong.wang@arm.com>
|
||
|
||
* config/arm/predicates.md (call_insn_operand): Add long_call check.
|
||
* config/arm/arm.md (sibcall, sibcall_value): Force the address to
|
||
reg for long_call.
|
||
* config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
|
||
restriction.
|
||
|
||
2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
|
||
|
||
2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
PR tree-optimization/60930
|
||
* gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
|
||
creating a multiply candidate by folding two constant
|
||
multiplicands when the result overflows.
|
||
|
||
2014-04-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/60960
|
||
* tree-vect-generic.c (expand_vector_operation): Only call
|
||
expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
|
||
|
||
2014-04-25 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* expr.c (clobber_reg_mode): New function.
|
||
* expr.h (clobber_reg): New function.
|
||
|
||
2014-04-25 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
|
||
clobbers.
|
||
|
||
2014-04-25 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
|
||
handle.
|
||
* rtl.h (find_all_hard_reg_sets): Add bool parameter.
|
||
* haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
|
||
new argument to find_all_hard_reg_sets call.
|
||
|
||
2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
|
||
Use HOST_WIDE_INT_C for mask literal.
|
||
(aarch_rev16_shleft_mask_imm_p): Likewise.
|
||
|
||
2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR target/60941
|
||
* config/sparc/sparc.md (ashlsi3_extend): Delete.
|
||
|
||
2014-04-25 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR preprocessor/56540
|
||
* config/i386/i386-c.c (ix86_target_macros): Define
|
||
__SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
|
||
|
||
2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* configure.ac (tga_func): Remove.
|
||
(LIB_TLS_SPEC): Remove.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
* config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
|
||
|
||
2014-04-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/60912
|
||
* tree-ssa-structalias.c (ipa_pta_execute): Compute direct
|
||
call stmt use/clobber sets during stmt walk instead of
|
||
walking the possibly incomplete set of caller edges.
|
||
|
||
2014-04-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/60911
|
||
* passes.c (apply_ipa_transforms): Inline into only caller ...
|
||
(execute_one_pass): ... here. Properly bring in function
|
||
bodies for nodes we want to apply IPA transforms to.
|
||
|
||
2014-04-24 Cong Hou <congh@google.com>
|
||
|
||
PR tree-optimization/60896
|
||
* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
|
||
all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
|
||
(vect_mark_pattern_stmts): Set the def type of all statements in
|
||
PATTERN_DEF_SEQ as vect_internal_def.
|
||
|
||
2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
* doc/extend.texi (PowerPC Built-in Functions): Document new
|
||
powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
|
||
(PowerPC AltiVec/VSX Built-in Functions): Likewise.
|
||
|
||
* config/rs6000/predicates.md (const_0_to_3_operand): New
|
||
predicate to match 0..3 integer constants.
|
||
|
||
* config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
|
||
to support adding miscellaneous builtin functions.
|
||
(BU_DFP_MISC_2): Likewise.
|
||
(BU_P7_MISC_1): Likewise.
|
||
(BU_P7_MISC_2): Likewise.
|
||
(BU_P8V_MISC_3): Likewise.
|
||
(BU_MISC_1): Likewise.
|
||
(BU_MISC_2): Likewise.
|
||
(DIVWE): Add extended divide builtin functions.
|
||
(DIVWEO): Likewise.
|
||
(DIVWEU): Likewise.
|
||
(DIVWEUO): Likewise.
|
||
(DIVDE): Likewise.
|
||
(DIVDEO): Likewise.
|
||
(DIVDEU): Likewise.
|
||
(DIVDEUO): Likewise.
|
||
(DXEX): Add decimal floating-point builtin functions.
|
||
(DXEXQ): Likewise.
|
||
(DDEDPD): Likewise.
|
||
(DDEDPDQ): Likewise.
|
||
(DENBCD): Likewise.
|
||
(DENBCDQ): Likewise.
|
||
(DIEX): Likewise.
|
||
(DIEXQ): Likewise.
|
||
(DSCLI): Likewise.
|
||
(DSCLIQ): Likewise.
|
||
(DSCRI): Likewise.
|
||
(DSCRIQ): Likewise.
|
||
(CDTBCD): Add new BCD builtin functions.
|
||
(CBCDTD): Likewise.
|
||
(ADDG6S): Likewise.
|
||
(BCDADD): Likewise.
|
||
(BCDADD_LT): Likewise.
|
||
(BCDADD_EQ): Likewise.
|
||
(BCDADD_GT): Likewise.
|
||
(BCDADD_OV): Likewise.
|
||
(BCDSUB): Likewise.
|
||
(BCDSUB_LT): Likewise.
|
||
(BCDSUB_EQ): Likewise.
|
||
(BCDSUB_GT): Likewise.
|
||
(BCDSUB_OV): Likewise.
|
||
(PACK_TD): Add new pack/unpack 128-bit type builtin functions.
|
||
(UNPACK_TD): Likewise.
|
||
(PACK_TF): Likewise.
|
||
(UNPACK_TF): Likewise.
|
||
(UNPACK_TF_0): Likewise.
|
||
(UNPACK_TF_1): Likewise.
|
||
(PACK_V1TI): Likewise.
|
||
(UNPACK_V1TI): Likewise.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
|
||
support for decimal floating point builtin functions.
|
||
(rs6000_expand_ternop_builtin): Add checks for the new builtin
|
||
functions that take constant arguments.
|
||
(rs6000_invalid_builtin): Add decimal floating point builtin support.
|
||
(rs6000_init_builtins): Setup long double, _Decimal64, and
|
||
_Decimal128 types for new builtin functions.
|
||
(builtin_function_type): Set the unsigned flags appropriately for
|
||
the new builtin functions.
|
||
(rs6000_opt_masks): Add support for decimal floating point builtin
|
||
functions.
|
||
|
||
* config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
|
||
floating point builtin functions.
|
||
(RS6000_BTM_COMMON): Likewise.
|
||
(RS6000_BTI_long_double): Likewise.
|
||
(RS6000_BTI_dfloat64): Likewise.
|
||
(RS6000_BTI_dfloat128): Likewise.
|
||
(long_double_type_internal_node): Likewise.
|
||
(dfloat64_type_internal_node): Likewise.
|
||
(dfloat128_type_internal_node): Likewise.
|
||
|
||
* config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
|
||
2.07 bcd arithmetic instructions.
|
||
(UNSPEC_BCDSUB): Likewise.
|
||
(UNSPEC_BCD_OVERFLOW): Likewise.
|
||
(UNSPEC_BCD_ADD_SUB): Likewise.
|
||
(bcd_add_sub): Likewise.
|
||
(BCD_TEST): Likewise.
|
||
(bcd<bcd_add_sub>): Likewise.
|
||
(bcd<bcd_add_sub>_test): Likewise.
|
||
(bcd<bcd_add_sub>_test2): Likewise.
|
||
(bcd<bcd_add_sub>_<code>): Likewise.
|
||
(peephole2 for combined bcd ops): Likewise.
|
||
|
||
* config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
|
||
decimal floating point builtin functions.
|
||
(UNSPEC_DENBCD): Likewise.
|
||
(UNSPEC_DXEX): Likewise.
|
||
(UNSPEC_DIEX): Likewise.
|
||
(UNSPEC_DSCLI): Likewise.
|
||
(UNSPEC_DSCRI): Likewise.
|
||
(D64_D128): Likewise.
|
||
(dfp_suffix): Likewise.
|
||
(dfp_ddedpd_<mode>): Likewise.
|
||
(dfp_denbcd_<mode>): Likewise.
|
||
(dfp_dxex_<mode>): Likewise.
|
||
(dfp_diex_<mode>): Likewise.
|
||
(dfp_dscli_<mode>): Likewise.
|
||
(dfp_dscri_<mode>): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
|
||
builtin functions.
|
||
(UNSPEC_CDTBCD): Likewise.
|
||
(UNSPEC_CBCDTD): Likewise.
|
||
(UNSPEC_DIVE): Add support for new extended divide builtin functions.
|
||
(UNSPEC_DIVEO): Likewise.
|
||
(UNSPEC_DIVEU): Likewise.
|
||
(UNSPEC_DIVEUO): Likewise.
|
||
(UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
|
||
pack/unpack 128-bit types.
|
||
(UNSPEC_PACK_128BIT): Likewise.
|
||
(idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
|
||
(udiv<mode>3): Use idiv_ldiv mode attribute.
|
||
(div<mode>3): Likewise.
|
||
(addg6s): Add new BCD builtin functions.
|
||
(cdtbcd): Likewise.
|
||
(cbcdtd): Likewise.
|
||
(UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
|
||
(div_extend): Likewise.
|
||
(div<div_extend>_<mode>"): Likewise.
|
||
(FP128_64): Add support for new builtin functions to pack/unpack
|
||
128-bit types.
|
||
(unpack<mode>): Likewise.
|
||
(unpacktf_0): Likewise.
|
||
(unpacktf_1): Likewise.
|
||
(unpack<mode>_dm): Likewise.
|
||
(unpack<mode>_nodm): Likewise.
|
||
(pack<mode>): Likewise.
|
||
(unpackv1ti): Likewise.
|
||
(packv1ti): Likewise.
|
||
|
||
2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
|
||
|
||
* gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
|
||
is disabled.
|
||
|
||
2014-04-24 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
|
||
* gimplify.c (omp_is_private): Change last argument's type to int.
|
||
Only diagnose lastprivate if the simd argument is 1, only diagnose
|
||
linear if the simd argument is 2.
|
||
(gimplify_omp_for): Adjust omp_is_private callers. When adding
|
||
lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
|
||
GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
|
||
create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
|
||
If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
|
||
increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
|
||
* omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
|
||
OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
|
||
* tree-nested.c (convert_nonlocal_omp_clauses,
|
||
convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
|
||
|
||
2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
|
||
|
||
PR target/60822
|
||
* config/m68k/m68k.md (extendplussidi): Don't allow memory for
|
||
operand 1.
|
||
|
||
2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
|
||
|
||
* flag-types.h (enum ivar_visibility): Add.
|
||
|
||
2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
|
||
function * argument.
|
||
|
||
2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
|
||
|
||
2014-04-24 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
|
||
* calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
|
||
reg-note.
|
||
* combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
|
||
* emit-rtl.c (try_split): Same.
|
||
|
||
2014-04-24 Radovan Obradovic <robradovic@mips.com>
|
||
Tom de Vries <tom@codesourcery.com>
|
||
|
||
* common.opt (fuse-caller-save): New option.
|
||
|
||
2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
|
||
elements for big-endian.
|
||
|
||
2014-04-24 Richard Biener <rguenther@suse.de>
|
||
|
||
* expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
|
||
during TER and instead use the sepops interface for expanding
|
||
non-GIMPLE_SINGLE_RHS.
|
||
|
||
2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
|
||
if not HAVE_AS_IX86_DIFF_SECT_DELTA.
|
||
|
||
2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
|
||
assembler 64-bit option.
|
||
* configure: Regenerate.
|
||
|
||
2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
|
||
TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
|
||
(TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
|
||
(TARGET_FLOAT): Take AARCH64_ISA_FP into account.
|
||
(TARGET_CRYPTO): Take TARGET_SIMD into account.
|
||
|
||
2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
|
||
BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
|
||
* config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
|
||
* config/aarch64/aarch64-simd-builtins.def: Define vector bswap
|
||
builtins.
|
||
* config/aarch64/iterator.md (VDQHSD): New mode iterator.
|
||
(Vrevsuff): New mode attribute.
|
||
|
||
2014-04-24 Terry Guo <terry.guo@arm.com>
|
||
|
||
* config/arm/arm.h (machine_function): Define variable
|
||
after_arm_reorg here.
|
||
* config/arm/arm.c (after_arm_reorg): Remove the definition.
|
||
(arm_split_constant): Update the way to access variable
|
||
after_arm_reorg.
|
||
(arm_reorg): Ditto.
|
||
(arm_output_function_epilogue): Remove the reset of after_arm_reorg.
|
||
|
||
2014-04-23 Tom de Vries <tom@codesourcery.com>
|
||
|
||
* target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
|
||
|
||
2014-04-23 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* is-a.h: Update comments to reflect the following changes to the
|
||
"pointerness" of the API, making the template parameter match the
|
||
return type, allowing use of is-a.h with typedefs of pointers.
|
||
(is_a_helper::cast): Return a T rather then a pointer to a T, so
|
||
that the return type matches the parameter to the is_a_helper.
|
||
(as_a): Likewise.
|
||
(dyn_cast): Likewise.
|
||
|
||
* cgraph.c (cgraph_node_for_asm): Update for removal of implicit
|
||
pointer from the is-a.h API.
|
||
|
||
* cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
|
||
(is_a_helper <cgraph_node *>::test): ...this, matching change to
|
||
is-a.h API.
|
||
(is_a_helper <varpool_node>::test): Likewise, convert to...
|
||
(is_a_helper <varpool_node *>::test): ...this.
|
||
|
||
(varpool_first_variable): Update for removal of implicit pointer
|
||
from the is-a.h API.
|
||
(varpool_next_variable): Likewise.
|
||
(varpool_first_static_initializer): Likewise.
|
||
(varpool_next_static_initializer): Likewise.
|
||
(varpool_first_defined_variable): Likewise.
|
||
(varpool_next_defined_variable): Likewise.
|
||
(cgraph_first_defined_function): Likewise.
|
||
(cgraph_next_defined_function): Likewise.
|
||
(cgraph_first_function): Likewise.
|
||
(cgraph_next_function): Likewise.
|
||
(cgraph_first_function_with_gimple_body): Likewise.
|
||
(cgraph_next_function_with_gimple_body): Likewise.
|
||
(cgraph_alias_target): Likewise.
|
||
(varpool_alias_target): Likewise.
|
||
(cgraph_function_or_thunk_node): Likewise.
|
||
(varpool_variable_node): Likewise.
|
||
(symtab_real_symbol_p): Likewise.
|
||
* cgraphunit.c (referred_to_p): Likewise.
|
||
(analyze_functions): Likewise.
|
||
(handle_alias_pairs): Likewise.
|
||
* gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
|
||
* gimple-ssa.h (gimple_vuse_op): Likewise.
|
||
(gimple_vdef_op): Likewise.
|
||
* gimple-streamer-in.c (input_gimple_stmt): Likewise.
|
||
* gimple.c (gimple_build_asm_1): Likewise.
|
||
(gimple_build_try): Likewise.
|
||
(gimple_build_resx): Likewise.
|
||
(gimple_build_eh_dispatch): Likewise.
|
||
(gimple_build_omp_for): Likewise.
|
||
(gimple_omp_for_set_clauses): Likewise.
|
||
|
||
* gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
|
||
(is_a_helper <gimple_statement_asm *>::test): ...this.
|
||
(is_a_helper <gimple_statement_bind>::test): Convert to...
|
||
(is_a_helper <gimple_statement_bind *>::test): ...this.
|
||
(is_a_helper <gimple_statement_call>::test): Convert to...
|
||
(is_a_helper <gimple_statement_call *>::test): ...this.
|
||
(is_a_helper <gimple_statement_catch>::test): Convert to...
|
||
(is_a_helper <gimple_statement_catch *>::test): ...this.
|
||
(is_a_helper <gimple_statement_resx>::test): Convert to...
|
||
(is_a_helper <gimple_statement_resx *>::test): ...this.
|
||
(is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
|
||
(is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
|
||
(is_a_helper <gimple_statement_eh_else>::test): Convert to...
|
||
(is_a_helper <gimple_statement_eh_else *>::test): ...this.
|
||
(is_a_helper <gimple_statement_eh_filter>::test): Convert to...
|
||
(is_a_helper <gimple_statement_eh_filter *>::test): ...this.
|
||
(is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
|
||
(is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_return>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_return *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_continue>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_continue *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_critical>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_critical *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_for>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_for *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_target>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_target *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_sections>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_sections *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_single>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_single *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_teams>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_teams *>::test): ...this.
|
||
(is_a_helper <gimple_statement_omp_task>::test): Convert to...
|
||
(is_a_helper <gimple_statement_omp_task *>::test): ...this.
|
||
(is_a_helper <gimple_statement_phi>::test): Convert to...
|
||
(is_a_helper <gimple_statement_phi *>::test): ...this.
|
||
(is_a_helper <gimple_statement_transaction>::test): Convert to...
|
||
(is_a_helper <gimple_statement_transaction *>::test): ...this.
|
||
(is_a_helper <gimple_statement_try>::test): Convert to...
|
||
(is_a_helper <gimple_statement_try *>::test): ...this.
|
||
(is_a_helper <gimple_statement_wce>::test): Convert to...
|
||
(is_a_helper <gimple_statement_wce *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_asm>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_asm *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_bind>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_bind *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_call>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_call *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_catch>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_catch *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_resx>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_resx *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_atomic_load>::test):
|
||
Convert to...
|
||
(is_a_helper <const gimple_statement_omp_atomic_load *>::test):
|
||
...this.
|
||
(is_a_helper <const gimple_statement_omp_atomic_store>::test):
|
||
Convert to...
|
||
(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
|
||
...this.
|
||
(is_a_helper <const gimple_statement_omp_return>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_omp_return *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_continue>::test): Convert
|
||
to...
|
||
(is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_critical>::test): Convert
|
||
to...
|
||
(is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_for>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_omp_for *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_parallel>::test): Convert
|
||
to...
|
||
(is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_target>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_omp_target *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_sections>::test): Convert
|
||
to...
|
||
(is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_single>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_omp_single *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_omp_task>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_omp_task *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_phi>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_phi *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_transaction>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_transaction *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_with_ops>::test): Convert to...
|
||
(is_a_helper <const gimple_statement_with_ops *>::test): ...this.
|
||
(is_a_helper <gimple_statement_with_ops>::test): Convert to...
|
||
(is_a_helper <gimple_statement_with_ops *>::test): ...this.
|
||
(is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
|
||
to...
|
||
(is_a_helper <const gimple_statement_with_memory_ops *>::test):
|
||
...this.
|
||
(is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
|
||
(is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
|
||
|
||
(gimple_use_ops): Update for removal of implicit pointer from the
|
||
is-a.h API.
|
||
(gimple_set_use_ops): Likewise.
|
||
(gimple_vuse): Likewise.
|
||
(gimple_vdef): Likewise.
|
||
(gimple_vuse_ptr): Likewise.
|
||
(gimple_vdef_ptr): Likewise.
|
||
(gimple_set_vuse): Likewise.
|
||
(gimple_set_vdef): Likewise.
|
||
(gimple_omp_return_set_lhs): Likewise.
|
||
(gimple_omp_return_lhs): Likewise.
|
||
(gimple_omp_return_lhs_ptr): Likewise.
|
||
(gimple_call_fntype): Likewise.
|
||
(gimple_call_set_fntype): Likewise.
|
||
(gimple_call_set_internal_fn): Likewise.
|
||
(gimple_call_use_set): Likewise.
|
||
(gimple_call_clobber_set): Likewise.
|
||
(gimple_bind_vars): Likewise.
|
||
(gimple_bind_set_vars): Likewise.
|
||
(gimple_bind_body_ptr): Likewise.
|
||
(gimple_bind_set_body): Likewise.
|
||
(gimple_bind_add_stmt): Likewise.
|
||
(gimple_bind_block): Likewise.
|
||
(gimple_bind_set_block): Likewise.
|
||
(gimple_asm_ninputs): Likewise.
|
||
(gimple_asm_noutputs): Likewise.
|
||
(gimple_asm_nclobbers): Likewise.
|
||
(gimple_asm_nlabels): Likewise.
|
||
(gimple_asm_input_op): Likewise.
|
||
(gimple_asm_input_op_ptr): Likewise.
|
||
(gimple_asm_output_op): Likewise.
|
||
(gimple_asm_output_op_ptr): Likewise.
|
||
(gimple_asm_set_output_op): Likewise.
|
||
(gimple_asm_clobber_op): Likewise.
|
||
(gimple_asm_set_clobber_op): Likewise.
|
||
(gimple_asm_label_op): Likewise.
|
||
(gimple_asm_set_label_op): Likewise.
|
||
(gimple_asm_string): Likewise.
|
||
(gimple_catch_types): Likewise.
|
||
(gimple_catch_types_ptr): Likewise.
|
||
(gimple_catch_handler_ptr): Likewise.
|
||
(gimple_catch_set_types): Likewise.
|
||
(gimple_catch_set_handler): Likewise.
|
||
(gimple_eh_filter_types): Likewise.
|
||
(gimple_eh_filter_types_ptr): Likewise.
|
||
(gimple_eh_filter_failure_ptr): Likewise.
|
||
(gimple_eh_filter_set_types): Likewise.
|
||
(gimple_eh_filter_set_failure): Likewise.
|
||
(gimple_eh_must_not_throw_fndecl): Likewise.
|
||
(gimple_eh_must_not_throw_set_fndecl): Likewise.
|
||
(gimple_eh_else_n_body_ptr): Likewise.
|
||
(gimple_eh_else_e_body_ptr): Likewise.
|
||
(gimple_eh_else_set_n_body): Likewise.
|
||
(gimple_eh_else_set_e_body): Likewise.
|
||
(gimple_try_eval_ptr): Likewise.
|
||
(gimple_try_cleanup_ptr): Likewise.
|
||
(gimple_try_set_eval): Likewise.
|
||
(gimple_try_set_cleanup): Likewise.
|
||
(gimple_wce_cleanup_ptr): Likewise.
|
||
(gimple_wce_set_cleanup): Likewise.
|
||
(gimple_phi_capacity): Likewise.
|
||
(gimple_phi_num_args): Likewise.
|
||
(gimple_phi_result): Likewise.
|
||
(gimple_phi_result_ptr): Likewise.
|
||
(gimple_phi_set_result): Likewise.
|
||
(gimple_phi_arg): Likewise.
|
||
(gimple_phi_set_arg): Likewise.
|
||
(gimple_resx_region): Likewise.
|
||
(gimple_resx_set_region): Likewise.
|
||
(gimple_eh_dispatch_region): Likewise.
|
||
(gimple_eh_dispatch_set_region): Likewise.
|
||
(gimple_omp_critical_name): Likewise.
|
||
(gimple_omp_critical_name_ptr): Likewise.
|
||
(gimple_omp_critical_set_name): Likewise.
|
||
(gimple_omp_for_clauses): Likewise.
|
||
(gimple_omp_for_clauses_ptr): Likewise.
|
||
(gimple_omp_for_set_clauses): Likewise.
|
||
(gimple_omp_for_collapse): Likewise.
|
||
(gimple_omp_for_index): Likewise.
|
||
(gimple_omp_for_index_ptr): Likewise.
|
||
(gimple_omp_for_set_index): Likewise.
|
||
(gimple_omp_for_initial): Likewise.
|
||
(gimple_omp_for_initial_ptr): Likewise.
|
||
(gimple_omp_for_set_initial): Likewise.
|
||
(gimple_omp_for_final): Likewise.
|
||
(gimple_omp_for_final_ptr): Likewise.
|
||
(gimple_omp_for_set_final): Likewise.
|
||
(gimple_omp_for_incr): Likewise.
|
||
(gimple_omp_for_incr_ptr): Likewise.
|
||
(gimple_omp_for_set_incr): Likewise.
|
||
(gimple_omp_for_pre_body_ptr): Likewise.
|
||
(gimple_omp_for_set_pre_body): Likewise.
|
||
(gimple_omp_parallel_clauses): Likewise.
|
||
(gimple_omp_parallel_clauses_ptr): Likewise.
|
||
(gimple_omp_parallel_set_clauses): Likewise.
|
||
(gimple_omp_parallel_child_fn): Likewise.
|
||
(gimple_omp_parallel_child_fn_ptr): Likewise.
|
||
(gimple_omp_parallel_set_child_fn): Likewise.
|
||
(gimple_omp_parallel_data_arg): Likewise.
|
||
(gimple_omp_parallel_data_arg_ptr): Likewise.
|
||
(gimple_omp_parallel_set_data_arg): Likewise.
|
||
(gimple_omp_task_clauses): Likewise.
|
||
(gimple_omp_task_clauses_ptr): Likewise.
|
||
(gimple_omp_task_set_clauses): Likewise.
|
||
(gimple_omp_task_child_fn): Likewise.
|
||
(gimple_omp_task_child_fn_ptr): Likewise.
|
||
(gimple_omp_task_set_child_fn): Likewise.
|
||
(gimple_omp_task_data_arg): Likewise.
|
||
(gimple_omp_task_data_arg_ptr): Likewise.
|
||
(gimple_omp_task_set_data_arg): Likewise.
|
||
(gimple_omp_taskreg_clauses): Likewise.
|
||
(gimple_omp_taskreg_clauses_ptr): Likewise.
|
||
(gimple_omp_taskreg_set_clauses): Likewise.
|
||
(gimple_omp_taskreg_child_fn): Likewise.
|
||
(gimple_omp_taskreg_child_fn_ptr): Likewise.
|
||
(gimple_omp_taskreg_set_child_fn): Likewise.
|
||
(gimple_omp_taskreg_data_arg): Likewise.
|
||
(gimple_omp_taskreg_data_arg_ptr): Likewise.
|
||
(gimple_omp_taskreg_set_data_arg): Likewise.
|
||
(gimple_omp_task_copy_fn): Likewise.
|
||
(gimple_omp_task_copy_fn_ptr): Likewise.
|
||
(gimple_omp_task_set_copy_fn): Likewise.
|
||
(gimple_omp_task_arg_size): Likewise.
|
||
(gimple_omp_task_arg_size_ptr): Likewise.
|
||
(gimple_omp_task_set_arg_size): Likewise.
|
||
(gimple_omp_task_arg_align): Likewise.
|
||
(gimple_omp_task_arg_align_ptr): Likewise.
|
||
(gimple_omp_task_set_arg_align): Likewise.
|
||
(gimple_omp_single_clauses): Likewise.
|
||
(gimple_omp_single_clauses_ptr): Likewise.
|
||
(gimple_omp_single_set_clauses): Likewise.
|
||
(gimple_omp_target_clauses): Likewise.
|
||
(gimple_omp_target_clauses_ptr): Likewise.
|
||
(gimple_omp_target_set_clauses): Likewise.
|
||
(gimple_omp_target_child_fn): Likewise.
|
||
(gimple_omp_target_child_fn_ptr): Likewise.
|
||
(gimple_omp_target_set_child_fn): Likewise.
|
||
(gimple_omp_target_data_arg): Likewise.
|
||
(gimple_omp_target_data_arg_ptr): Likewise.
|
||
(gimple_omp_target_set_data_arg): Likewise.
|
||
(gimple_omp_teams_clauses): Likewise.
|
||
(gimple_omp_teams_clauses_ptr): Likewise.
|
||
(gimple_omp_teams_set_clauses): Likewise.
|
||
(gimple_omp_sections_clauses): Likewise.
|
||
(gimple_omp_sections_clauses_ptr): Likewise.
|
||
(gimple_omp_sections_set_clauses): Likewise.
|
||
(gimple_omp_sections_control): Likewise.
|
||
(gimple_omp_sections_control_ptr): Likewise.
|
||
(gimple_omp_sections_set_control): Likewise.
|
||
(gimple_omp_for_set_cond): Likewise.
|
||
(gimple_omp_for_cond): Likewise.
|
||
(gimple_omp_atomic_store_set_val): Likewise.
|
||
(gimple_omp_atomic_store_val): Likewise.
|
||
(gimple_omp_atomic_store_val_ptr): Likewise.
|
||
(gimple_omp_atomic_load_set_lhs): Likewise.
|
||
(gimple_omp_atomic_load_lhs): Likewise.
|
||
(gimple_omp_atomic_load_lhs_ptr): Likewise.
|
||
(gimple_omp_atomic_load_set_rhs): Likewise.
|
||
(gimple_omp_atomic_load_rhs): Likewise.
|
||
(gimple_omp_atomic_load_rhs_ptr): Likewise.
|
||
(gimple_omp_continue_control_def): Likewise.
|
||
(gimple_omp_continue_control_def_ptr): Likewise.
|
||
(gimple_omp_continue_set_control_def): Likewise.
|
||
(gimple_omp_continue_control_use): Likewise.
|
||
(gimple_omp_continue_control_use_ptr): Likewise.
|
||
(gimple_omp_continue_set_control_use): Likewise.
|
||
(gimple_transaction_body_ptr): Likewise.
|
||
(gimple_transaction_label): Likewise.
|
||
(gimple_transaction_label_ptr): Likewise.
|
||
(gimple_transaction_set_body): Likewise.
|
||
(gimple_transaction_set_label): Likewise.
|
||
|
||
* ipa-devirt.c (build_type_inheritance_graph): Likewise.
|
||
* ipa-inline-analysis.c (inline_write_summary): Likewise.
|
||
* ipa-ref.c (ipa_record_reference): Likewise.
|
||
* ipa-reference.c (analyze_function): Likewise.
|
||
(ipa_reference_write_optimization_summary): Likewise.
|
||
* ipa.c (symtab_remove_unreachable_nodes): Likewise.
|
||
(address_taken_from_non_vtable_p): Likewise.
|
||
(comdat_can_be_unshared_p_1): Likewise.
|
||
* lto-cgraph.c (lto_output_ref): Likewise.
|
||
(add_references): Likewise.
|
||
(compute_ltrans_boundary): Likewise.
|
||
(output_symtab): Likewise.
|
||
(input_ref): Likewise.
|
||
(input_cgraph_1): Likewise.
|
||
(output_cgraph_opt_summary): Likewise.
|
||
* lto-streamer-out.c (lto_output): Likewise.
|
||
(output_symbol_p): Likewise.
|
||
* lto-streamer.h (lsei_next_function_in_partition): Likewise.
|
||
(lsei_start_function_in_partition): Likewise.
|
||
(lsei_next_variable_in_partition): Likewise.
|
||
(lsei_start_variable_in_partition): Likewise.
|
||
* symtab.c (insert_to_assembler_name_hash): Likewise.
|
||
(unlink_from_assembler_name_hash): Likewise.
|
||
(symtab_unregister_node): Likewise.
|
||
(symtab_remove_node): Likewise.
|
||
(dump_symtab_node): Likewise.
|
||
(verify_symtab_base): Likewise.
|
||
(verify_symtab_node): Likewise.
|
||
(symtab_make_decl_local): Likewise.
|
||
(symtab_alias_ultimate_target): Likewise.
|
||
(symtab_resolve_alias): Likewise.
|
||
(symtab_get_symbol_partitioning_class): Likewise.
|
||
* tree-phinodes.c (allocate_phi_node): Likewise.
|
||
(reserve_phi_args_for_new_edge): Likewise.
|
||
(remove_phi_args): Likewise.
|
||
* varpool.c (varpool_node_for_asm): Likewise.
|
||
(varpool_remove_unreferenced_decls): Likewise.
|
||
|
||
2014-04-23 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/60902
|
||
* tree-ssa-threadedge.c
|
||
(record_temporary_equivalences_from_stmts_at_dest): Make sure to
|
||
invalidate outputs from statements that do not produce useful
|
||
outputs for threading.
|
||
|
||
2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
|
||
|
||
* config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
|
||
(stack_protect_set_<mode>, stack_protect_test_<mode>): Add
|
||
machine descriptions for Stack Smashing Protector.
|
||
|
||
2014-04-23 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* aarch64.md (<optab>_rol<mode>3): New pattern.
|
||
(<optab>_rolsi3_uxtw): Likewise.
|
||
* aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
|
||
|
||
2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
|
||
(arm_cortex_a12_tune): Likewise.
|
||
|
||
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
|
||
|
||
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.md (arm_rev16si2): New pattern.
|
||
(arm_rev16si2_alt): Likewise.
|
||
* config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
|
||
|
||
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64.md (rev16<mode>2): New pattern.
|
||
(rev16<mode>2_alt): Likewise.
|
||
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
|
||
* config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
|
||
(aarch_rev16_shleft_mask_imm_p): Likewise.
|
||
(aarch_rev16_p_1): Likewise.
|
||
(aarch_rev16_p): Likewise.
|
||
* config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
|
||
(aarch_rev16_shright_mask_imm_p): Likewise.
|
||
(aarch_rev16_shleft_mask_imm_p): Likewise.
|
||
|
||
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
|
||
* config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
|
||
rev cost.
|
||
(cortex_a53_extra_costs): Likewise.
|
||
(cortex_a57_extra_costs): Likewise.
|
||
* config/arm/arm.c (cortexa9_extra_costs): Likewise.
|
||
(cortexa7_extra_costs): Likewise.
|
||
(cortexa8_extra_costs): Likewise.
|
||
(cortexa12_extra_costs): Likewise.
|
||
(cortexa15_extra_costs): Likewise.
|
||
(v7m_extra_costs): Likewise.
|
||
(arm_new_rtx_costs): Handle BSWAP.
|
||
|
||
2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (cortexa8_extra_costs): New table.
|
||
(arm_cortex_a8_tune): New tuning struct.
|
||
* config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
|
||
|
||
2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
|
||
|
||
2014-04-23 Richard Biener <rguenther@suse.de>
|
||
|
||
* Makefile.in (OBJS): Remove loop-unswitch.o.
|
||
* tree-pass.h (make_pass_rtl_unswitch): Remove.
|
||
* passes.def (pass_rtl_unswitch): Likewise.
|
||
* loop-init.c (gate_rtl_unswitch): Likewise.
|
||
(rtl_unswitch): Likewise.
|
||
(pass_data_rtl_unswitch): Likewise.
|
||
(pass_rtl_unswitch): Likewise.
|
||
(make_pass_rtl_unswitch): Likewise.
|
||
* rtl.h (reversed_condition): Likewise.
|
||
(compare_and_jump_seq): Likewise.
|
||
* loop-iv.c (reversed_condition): Move here from loop-unswitch.c
|
||
and make static.
|
||
* loop-unroll.c (compare_and_jump_seq): Likewise.
|
||
|
||
2014-04-23 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60903
|
||
* tree-ssa-loop-im.c (analyze_memory_references): Remove
|
||
commented code block.
|
||
(execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
|
||
loop flags to newly created BBs and edges.
|
||
|
||
2014-04-23 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/msp430/msp430.c (msp430_handle_option): Move function
|
||
to msp430-common.c
|
||
(msp430_option_override): Simplify mcu and mcpu option handling.
|
||
(msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
|
||
support for -mhwmult command line option.
|
||
(has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
|
||
-mhwmult command line option.
|
||
(msp430_hwmult_enabled): Delete.
|
||
(msp43o_output_labelref): Add support for -mhwmult command line option.
|
||
* config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
|
||
(umulsidi3): Likewise.
|
||
* config/msp430/msp430.opt (mmcu): Add Report attribute.
|
||
(mcpu, mlarge, msmall): Likewise.
|
||
(mhwmult): New option.
|
||
* config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
|
||
prototype.
|
||
(msp430_is_f5_mcu): Remove prototype.
|
||
(msp430_use_f5_series_hwmult): Add prototype.
|
||
* config/msp430/msp430-opts.h: New file.
|
||
* common/config/msp430: New directory.
|
||
* common/config/msp430/msp430-common.c: New file.
|
||
* config.gcc (msp430): Remove target_has_targetm_common.
|
||
* doc/invoke.texi: Document -mhwmult command line option.
|
||
|
||
2014-04-23 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/i386/cygwin.h (ENDFILE_SPEC): Include
|
||
default-manifest.o if it can be found in the search path.
|
||
* config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
|
||
|
||
2014-04-23 Terry Guo <terry.guo@arm.com>
|
||
|
||
* config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
|
||
|
||
2014-04-23 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60895
|
||
* tree-inline.c (declare_return_variable): Use mark_addressable.
|
||
|
||
2014-04-23 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60891
|
||
* loop-init.c (loop_optimizer_init): Make sure to apply
|
||
LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
|
||
|
||
2014-04-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/60275
|
||
* common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
|
||
New options.
|
||
* gcc.c (sanitize_spec_function): Don't return "" for "undefined"
|
||
if flag_sanitize_undefined_trap_on_error.
|
||
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
|
||
BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
|
||
BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
|
||
BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
|
||
BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
|
||
BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
|
||
BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
|
||
BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
|
||
BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
|
||
* ubsan.c (ubsan_instrument_unreachable): Return
|
||
__builtin_trap () if flag_sanitize_undefined_trap_on_error.
|
||
(ubsan_expand_null_ifn): Emit __builtin_trap ()
|
||
if flag_sanitize_undefined_trap_on_error and
|
||
__ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
|
||
(ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
|
||
instrument_bool_enum_load): Emit __builtin_trap () if
|
||
flag_sanitize_undefined_trap_on_error and
|
||
__builtin_handle_*_abort () if !flag_sanitize_recover.
|
||
* doc/invoke.texi (-fsanitize-recover,
|
||
-fsanitize-undefined-trap-on-error): Document.
|
||
|
||
2014-04-22 Christian Bruel <christian.bruel@st.com>
|
||
|
||
* config/sh/sh.md (mov<mode>): Replace movQIHI.
|
||
Force immediates to SImode.
|
||
|
||
2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* config/nios2/nios2.md (UNSPEC_ROUND): New.
|
||
(lroundsfsi2): New.
|
||
* config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
|
||
* config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
|
||
* config/nios2/nios2.c (N2F_NO_ERRNO): Define.
|
||
(nios2_fpu_insn): Add entry for round.
|
||
(N2FPU_NO_ERRNO_P): Define.
|
||
(nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
|
||
flag_errno_math.
|
||
* doc/invoke.texi (Nios II Options): Document -mcustom-round.
|
||
|
||
2014-04-22 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/aarch64/aarch64 (addti3, subti3): New expanders.
|
||
(add<GPI>3_compare0): Remove leading * from name.
|
||
(add<GPI>3_carryin): Likewise.
|
||
(sub<GPI>3_compare0): Likewise.
|
||
(sub<GPI>3_carryin): Likewise.
|
||
(<su_optab>mulditi3): New expander.
|
||
(multi3): New expander.
|
||
(madd<GPI>): Remove leading * from name.
|
||
|
||
2014-04-22 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* cgraphclones.c (cgraph_function_versioning): Copy
|
||
ipa_transforms_to_apply instead of asserting it is empty.
|
||
|
||
2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/60868
|
||
* config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
|
||
on count_exp to get mode.
|
||
|
||
2014-04-22 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
|
||
Handle TLS for ILP32.
|
||
* config/aarch64/aarch64.md (tlsie_small): Rename to ...
|
||
(tlsie_small_<mode>): this and handle PTR.
|
||
(tlsie_small_sidi): New pattern.
|
||
(tlsle_small): Change to an expand to handle ILP32.
|
||
(tlsle_small_<mode>): New pattern.
|
||
(tlsdesc_small): Rename to ...
|
||
(tlsdesc_small_<mode>): this and handle PTR.
|
||
|
||
2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
|
||
|
||
2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
|
||
(aarch64_types_signed_unsigned_qualifiers): Qualifier added.
|
||
(aarch64_types_signed_poly_qualifiers): Likewise.
|
||
(aarch64_types_unsigned_signed_qualifiers): Likewise.
|
||
(aarch64_types_poly_signed_qualifiers): Likewise.
|
||
(TYPES_REINTERP_SS): Type macro added.
|
||
(TYPES_REINTERP_SU): Likewise.
|
||
(TYPES_REINTERP_SP): Likewise.
|
||
(TYPES_REINTERP_US): Likewise.
|
||
(TYPES_REINTERP_PS): Likewise.
|
||
(aarch64_fold_builtin): New expression folding added.
|
||
* config/aarch64/aarch64-simd-builtins.def (REINTERP):
|
||
Declarations removed.
|
||
(REINTERP_SS): Declarations added.
|
||
(REINTERP_US): Likewise.
|
||
(REINTERP_PS): Likewise.
|
||
(REINTERP_SU): Likewise.
|
||
(REINTERP_SP): Likewise.
|
||
* config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
|
||
(vreinterpretq_p8_f64): Likewise.
|
||
(vreinterpret_p16_f64): Likewise.
|
||
(vreinterpretq_p16_f64): Likewise.
|
||
(vreinterpret_f32_f64): Likewise.
|
||
(vreinterpretq_f32_f64): Likewise.
|
||
(vreinterpret_f64_f32): Likewise.
|
||
(vreinterpret_f64_p8): Likewise.
|
||
(vreinterpret_f64_p16): Likewise.
|
||
(vreinterpret_f64_s8): Likewise.
|
||
(vreinterpret_f64_s16): Likewise.
|
||
(vreinterpret_f64_s32): Likewise.
|
||
(vreinterpret_f64_s64): Likewise.
|
||
(vreinterpret_f64_u8): Likewise.
|
||
(vreinterpret_f64_u16): Likewise.
|
||
(vreinterpret_f64_u32): Likewise.
|
||
(vreinterpret_f64_u64): Likewise.
|
||
(vreinterpretq_f64_f32): Likewise.
|
||
(vreinterpretq_f64_p8): Likewise.
|
||
(vreinterpretq_f64_p16): Likewise.
|
||
(vreinterpretq_f64_s8): Likewise.
|
||
(vreinterpretq_f64_s16): Likewise.
|
||
(vreinterpretq_f64_s32): Likewise.
|
||
(vreinterpretq_f64_s64): Likewise.
|
||
(vreinterpretq_f64_u8): Likewise.
|
||
(vreinterpretq_f64_u16): Likewise.
|
||
(vreinterpretq_f64_u32): Likewise.
|
||
(vreinterpretq_f64_u64): Likewise.
|
||
(vreinterpret_s64_f64): Likewise.
|
||
(vreinterpretq_s64_f64): Likewise.
|
||
(vreinterpret_u64_f64): Likewise.
|
||
(vreinterpretq_u64_f64): Likewise.
|
||
(vreinterpret_s8_f64): Likewise.
|
||
(vreinterpretq_s8_f64): Likewise.
|
||
(vreinterpret_s16_f64): Likewise.
|
||
(vreinterpretq_s16_f64): Likewise.
|
||
(vreinterpret_s32_f64): Likewise.
|
||
(vreinterpretq_s32_f64): Likewise.
|
||
(vreinterpret_u8_f64): Likewise.
|
||
(vreinterpretq_u8_f64): Likewise.
|
||
(vreinterpret_u16_f64): Likewise.
|
||
(vreinterpretq_u16_f64): Likewise.
|
||
(vreinterpret_u32_f64): Likewise.
|
||
(vreinterpretq_u32_f64): Likewise.
|
||
|
||
2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
|
||
* config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
|
||
(vreinterpret_p8_s8): Likewise.
|
||
* config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
|
||
(vreinterpret_p8_s16): Likewise.
|
||
(vreinterpret_p8_s32): Likewise.
|
||
(vreinterpret_p8_s64): Likewise.
|
||
(vreinterpret_p8_f32): Likewise.
|
||
(vreinterpret_p8_u8): Likewise.
|
||
(vreinterpret_p8_u16): Likewise.
|
||
(vreinterpret_p8_u32): Likewise.
|
||
(vreinterpret_p8_u64): Likewise.
|
||
(vreinterpret_p8_p16): Likewise.
|
||
(vreinterpretq_p8_s8): Likewise.
|
||
(vreinterpretq_p8_s16): Likewise.
|
||
(vreinterpretq_p8_s32): Likewise.
|
||
(vreinterpretq_p8_s64): Likewise.
|
||
(vreinterpretq_p8_f32): Likewise.
|
||
(vreinterpretq_p8_u8): Likewise.
|
||
(vreinterpretq_p8_u16): Likewise.
|
||
(vreinterpretq_p8_u32): Likewise.
|
||
(vreinterpretq_p8_u64): Likewise.
|
||
(vreinterpretq_p8_p16): Likewise.
|
||
(vreinterpret_p16_s8): Likewise.
|
||
(vreinterpret_p16_s16): Likewise.
|
||
(vreinterpret_p16_s32): Likewise.
|
||
(vreinterpret_p16_s64): Likewise.
|
||
(vreinterpret_p16_f32): Likewise.
|
||
(vreinterpret_p16_u8): Likewise.
|
||
(vreinterpret_p16_u16): Likewise.
|
||
(vreinterpret_p16_u32): Likewise.
|
||
(vreinterpret_p16_u64): Likewise.
|
||
(vreinterpret_p16_p8): Likewise.
|
||
(vreinterpretq_p16_s8): Likewise.
|
||
(vreinterpretq_p16_s16): Likewise.
|
||
(vreinterpretq_p16_s32): Likewise.
|
||
(vreinterpretq_p16_s64): Likewise.
|
||
(vreinterpretq_p16_f32): Likewise.
|
||
(vreinterpretq_p16_u8): Likewise.
|
||
(vreinterpretq_p16_u16): Likewise.
|
||
(vreinterpretq_p16_u32): Likewise.
|
||
(vreinterpretq_p16_u64): Likewise.
|
||
(vreinterpretq_p16_p8): Likewise.
|
||
(vreinterpret_f32_s8): Likewise.
|
||
(vreinterpret_f32_s16): Likewise.
|
||
(vreinterpret_f32_s32): Likewise.
|
||
(vreinterpret_f32_s64): Likewise.
|
||
(vreinterpret_f32_u8): Likewise.
|
||
(vreinterpret_f32_u16): Likewise.
|
||
(vreinterpret_f32_u32): Likewise.
|
||
(vreinterpret_f32_u64): Likewise.
|
||
(vreinterpret_f32_p8): Likewise.
|
||
(vreinterpret_f32_p16): Likewise.
|
||
(vreinterpretq_f32_s8): Likewise.
|
||
(vreinterpretq_f32_s16): Likewise.
|
||
(vreinterpretq_f32_s32): Likewise.
|
||
(vreinterpretq_f32_s64): Likewise.
|
||
(vreinterpretq_f32_u8): Likewise.
|
||
(vreinterpretq_f32_u16): Likewise.
|
||
(vreinterpretq_f32_u32): Likewise.
|
||
(vreinterpretq_f32_u64): Likewise.
|
||
(vreinterpretq_f32_p8): Likewise.
|
||
(vreinterpretq_f32_p16): Likewise.
|
||
(vreinterpret_s64_s8): Likewise.
|
||
(vreinterpret_s64_s16): Likewise.
|
||
(vreinterpret_s64_s32): Likewise.
|
||
(vreinterpret_s64_f32): Likewise.
|
||
(vreinterpret_s64_u8): Likewise.
|
||
(vreinterpret_s64_u16): Likewise.
|
||
(vreinterpret_s64_u32): Likewise.
|
||
(vreinterpret_s64_u64): Likewise.
|
||
(vreinterpret_s64_p8): Likewise.
|
||
(vreinterpret_s64_p16): Likewise.
|
||
(vreinterpretq_s64_s8): Likewise.
|
||
(vreinterpretq_s64_s16): Likewise.
|
||
(vreinterpretq_s64_s32): Likewise.
|
||
(vreinterpretq_s64_f32): Likewise.
|
||
(vreinterpretq_s64_u8): Likewise.
|
||
(vreinterpretq_s64_u16): Likewise.
|
||
(vreinterpretq_s64_u32): Likewise.
|
||
(vreinterpretq_s64_u64): Likewise.
|
||
(vreinterpretq_s64_p8): Likewise.
|
||
(vreinterpretq_s64_p16): Likewise.
|
||
(vreinterpret_u64_s8): Likewise.
|
||
(vreinterpret_u64_s16): Likewise.
|
||
(vreinterpret_u64_s32): Likewise.
|
||
(vreinterpret_u64_s64): Likewise.
|
||
(vreinterpret_u64_f32): Likewise.
|
||
(vreinterpret_u64_u8): Likewise.
|
||
(vreinterpret_u64_u16): Likewise.
|
||
(vreinterpret_u64_u32): Likewise.
|
||
(vreinterpret_u64_p8): Likewise.
|
||
(vreinterpret_u64_p16): Likewise.
|
||
(vreinterpretq_u64_s8): Likewise.
|
||
(vreinterpretq_u64_s16): Likewise.
|
||
(vreinterpretq_u64_s32): Likewise.
|
||
(vreinterpretq_u64_s64): Likewise.
|
||
(vreinterpretq_u64_f32): Likewise.
|
||
(vreinterpretq_u64_u8): Likewise.
|
||
(vreinterpretq_u64_u16): Likewise.
|
||
(vreinterpretq_u64_u32): Likewise.
|
||
(vreinterpretq_u64_p8): Likewise.
|
||
(vreinterpretq_u64_p16): Likewise.
|
||
(vreinterpret_s8_s16): Likewise.
|
||
(vreinterpret_s8_s32): Likewise.
|
||
(vreinterpret_s8_s64): Likewise.
|
||
(vreinterpret_s8_f32): Likewise.
|
||
(vreinterpret_s8_u8): Likewise.
|
||
(vreinterpret_s8_u16): Likewise.
|
||
(vreinterpret_s8_u32): Likewise.
|
||
(vreinterpret_s8_u64): Likewise.
|
||
(vreinterpret_s8_p8): Likewise.
|
||
(vreinterpret_s8_p16): Likewise.
|
||
(vreinterpretq_s8_s16): Likewise.
|
||
(vreinterpretq_s8_s32): Likewise.
|
||
(vreinterpretq_s8_s64): Likewise.
|
||
(vreinterpretq_s8_f32): Likewise.
|
||
(vreinterpretq_s8_u8): Likewise.
|
||
(vreinterpretq_s8_u16): Likewise.
|
||
(vreinterpretq_s8_u32): Likewise.
|
||
(vreinterpretq_s8_u64): Likewise.
|
||
(vreinterpretq_s8_p8): Likewise.
|
||
(vreinterpretq_s8_p16): Likewise.
|
||
(vreinterpret_s16_s8): Likewise.
|
||
(vreinterpret_s16_s32): Likewise.
|
||
(vreinterpret_s16_s64): Likewise.
|
||
(vreinterpret_s16_f32): Likewise.
|
||
(vreinterpret_s16_u8): Likewise.
|
||
(vreinterpret_s16_u16): Likewise.
|
||
(vreinterpret_s16_u32): Likewise.
|
||
(vreinterpret_s16_u64): Likewise.
|
||
(vreinterpret_s16_p8): Likewise.
|
||
(vreinterpret_s16_p16): Likewise.
|
||
(vreinterpretq_s16_s8): Likewise.
|
||
(vreinterpretq_s16_s32): Likewise.
|
||
(vreinterpretq_s16_s64): Likewise.
|
||
(vreinterpretq_s16_f32): Likewise.
|
||
(vreinterpretq_s16_u8): Likewise.
|
||
(vreinterpretq_s16_u16): Likewise.
|
||
(vreinterpretq_s16_u32): Likewise.
|
||
(vreinterpretq_s16_u64): Likewise.
|
||
(vreinterpretq_s16_p8): Likewise.
|
||
(vreinterpretq_s16_p16): Likewise.
|
||
(vreinterpret_s32_s8): Likewise.
|
||
(vreinterpret_s32_s16): Likewise.
|
||
(vreinterpret_s32_s64): Likewise.
|
||
(vreinterpret_s32_f32): Likewise.
|
||
(vreinterpret_s32_u8): Likewise.
|
||
(vreinterpret_s32_u16): Likewise.
|
||
(vreinterpret_s32_u32): Likewise.
|
||
(vreinterpret_s32_u64): Likewise.
|
||
(vreinterpret_s32_p8): Likewise.
|
||
(vreinterpret_s32_p16): Likewise.
|
||
(vreinterpretq_s32_s8): Likewise.
|
||
(vreinterpretq_s32_s16): Likewise.
|
||
(vreinterpretq_s32_s64): Likewise.
|
||
(vreinterpretq_s32_f32): Likewise.
|
||
(vreinterpretq_s32_u8): Likewise.
|
||
(vreinterpretq_s32_u16): Likewise.
|
||
(vreinterpretq_s32_u32): Likewise.
|
||
(vreinterpretq_s32_u64): Likewise.
|
||
(vreinterpretq_s32_p8): Likewise.
|
||
(vreinterpretq_s32_p16): Likewise.
|
||
(vreinterpret_u8_s8): Likewise.
|
||
(vreinterpret_u8_s16): Likewise.
|
||
(vreinterpret_u8_s32): Likewise.
|
||
(vreinterpret_u8_s64): Likewise.
|
||
(vreinterpret_u8_f32): Likewise.
|
||
(vreinterpret_u8_u16): Likewise.
|
||
(vreinterpret_u8_u32): Likewise.
|
||
(vreinterpret_u8_u64): Likewise.
|
||
(vreinterpret_u8_p8): Likewise.
|
||
(vreinterpret_u8_p16): Likewise.
|
||
(vreinterpretq_u8_s8): Likewise.
|
||
(vreinterpretq_u8_s16): Likewise.
|
||
(vreinterpretq_u8_s32): Likewise.
|
||
(vreinterpretq_u8_s64): Likewise.
|
||
(vreinterpretq_u8_f32): Likewise.
|
||
(vreinterpretq_u8_u16): Likewise.
|
||
(vreinterpretq_u8_u32): Likewise.
|
||
(vreinterpretq_u8_u64): Likewise.
|
||
(vreinterpretq_u8_p8): Likewise.
|
||
(vreinterpretq_u8_p16): Likewise.
|
||
(vreinterpret_u16_s8): Likewise.
|
||
(vreinterpret_u16_s16): Likewise.
|
||
(vreinterpret_u16_s32): Likewise.
|
||
(vreinterpret_u16_s64): Likewise.
|
||
(vreinterpret_u16_f32): Likewise.
|
||
(vreinterpret_u16_u8): Likewise.
|
||
(vreinterpret_u16_u32): Likewise.
|
||
(vreinterpret_u16_u64): Likewise.
|
||
(vreinterpret_u16_p8): Likewise.
|
||
(vreinterpret_u16_p16): Likewise.
|
||
(vreinterpretq_u16_s8): Likewise.
|
||
(vreinterpretq_u16_s16): Likewise.
|
||
(vreinterpretq_u16_s32): Likewise.
|
||
(vreinterpretq_u16_s64): Likewise.
|
||
(vreinterpretq_u16_f32): Likewise.
|
||
(vreinterpretq_u16_u8): Likewise.
|
||
(vreinterpretq_u16_u32): Likewise.
|
||
(vreinterpretq_u16_u64): Likewise.
|
||
(vreinterpretq_u16_p8): Likewise.
|
||
(vreinterpretq_u16_p16): Likewise.
|
||
(vreinterpret_u32_s8): Likewise.
|
||
(vreinterpret_u32_s16): Likewise.
|
||
(vreinterpret_u32_s32): Likewise.
|
||
(vreinterpret_u32_s64): Likewise.
|
||
(vreinterpret_u32_f32): Likewise.
|
||
(vreinterpret_u32_u8): Likewise.
|
||
(vreinterpret_u32_u16): Likewise.
|
||
(vreinterpret_u32_u64): Likewise.
|
||
(vreinterpret_u32_p8): Likewise.
|
||
(vreinterpret_u32_p16): Likewise.
|
||
(vreinterpretq_u32_s8): Likewise.
|
||
(vreinterpretq_u32_s16): Likewise.
|
||
(vreinterpretq_u32_s32): Likewise.
|
||
(vreinterpretq_u32_s64): Likewise.
|
||
(vreinterpretq_u32_f32): Likewise.
|
||
(vreinterpretq_u32_u8): Likewise.
|
||
(vreinterpretq_u32_u16): Likewise.
|
||
(vreinterpretq_u32_u64): Likewise.
|
||
(vreinterpretq_u32_p8): Likewise.
|
||
(vreinterpretq_u32_p16): Likewise.
|
||
|
||
2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
|
||
Pattern extended.
|
||
* config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
|
||
(sqabs): Likewise.
|
||
* config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
|
||
(vqnegd_s64): Likewise.
|
||
(vqabs_s64): Likewise.
|
||
(vqabsd_s64): Likewise.
|
||
|
||
2014-04-22 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
|
||
computation to the top of the loop.
|
||
|
||
2014-04-22 Renlin <renlin.li@arm.com>
|
||
Jiong Wang <jiong.wang@arm.com>
|
||
|
||
* config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
|
||
* config/aarch64/aarch64.c (aarch64_layout_frame)
|
||
(aarch64_initial_elimination_offset): Likewise.
|
||
|
||
2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
|
||
Fix indentation.
|
||
|
||
2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* machmode.h (bitwise_mode_for_mode): Declare.
|
||
* stor-layout.h (bitwise_type_for_mode): Likewise.
|
||
* stor-layout.c (bitwise_mode_for_mode): New function.
|
||
(bitwise_type_for_mode): Likewise.
|
||
* builtins.c (fold_builtin_memory_op): Use it instead of
|
||
int_mode_for_mode and build_nonstandard_integer_type.
|
||
|
||
2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
|
||
(*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
|
||
(*-*-solaris2*): Simplify.
|
||
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
|
||
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
|
||
*-*-solaris2.9* handling.
|
||
|
||
* configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
|
||
as bug.
|
||
(gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
|
||
(ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
|
||
handling, simplify.
|
||
(gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
|
||
* configure: Regenerate.
|
||
|
||
* config/i386/sol2-9.h: Remove.
|
||
|
||
* doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
|
||
(Specific, *-*-solaris2*): Mention Solaris 9 support removal.
|
||
Remove Solaris 9 references.
|
||
|
||
2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
|
||
|
||
* aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
|
||
(floatuns<GPI:mode><GPF:mode>2): Remove.
|
||
(<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
|
||
and floatuns conversions.
|
||
(<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
|
||
and floatuns conversions.
|
||
* iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
|
||
(w1,w2): New mode attributes for inequal width conversions.
|
||
|
||
2014-04-22 Renlin Li <Renlin.Li@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
|
||
the output asm format.
|
||
|
||
2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_cm<optab>di): Always split.
|
||
(*aarch64_cm<optab>di): New.
|
||
(aarch64_cmtstdi): Always split.
|
||
(*aarch64_cmtstdi): New.
|
||
|
||
2014-04-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/60823
|
||
* omp-low.c (ipa_simd_modify_function_body): Go through
|
||
all SSA_NAMEs and for those refering to vector arguments
|
||
which are going to be replaced adjust SSA_NAME_VAR and,
|
||
if it is a default definition, change it into a non-default
|
||
definition assigned at the beginning of function from new_decl.
|
||
(ipa_simd_modify_stmt_ops): Rewritten.
|
||
* tree-dfa.c (set_ssa_default_def): When removing default def,
|
||
check for NULL loc instead of NULL *loc.
|
||
|
||
2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
|
||
restrictions on core registers for DImode values in Thumb2.
|
||
|
||
2014-04-22 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
|
||
* config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
|
||
|
||
2014-04-22 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/arm/thumb2.md (*iordi_notdi_di): New pattern.
|
||
(*iordi_notzesidi_di): Likewise.
|
||
(*iordi_notsesidi_di): Likewise.
|
||
|
||
2014-04-22 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/arm/arm-protos.h (tune_params): New struct members.
|
||
* config/arm/arm.c: Initialise tune_params per processor.
|
||
(thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
|
||
for speed, based on new tune_params.
|
||
|
||
2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
|
||
* config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
|
||
* config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
|
||
* config/aarch64/aarch64.md (<frint_pattern>): Likewise.
|
||
* config/aarch64/arm_neon.h (vrnd_f64): Added.
|
||
(vrnda_f64): Likewise.
|
||
(vrndi_f64): Likewise.
|
||
(vrndm_f64): Likewise.
|
||
(vrndn_f64): Likewise.
|
||
(vrndp_f64): Likewise.
|
||
(vrndx_f64): Likewise.
|
||
|
||
2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
* config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
|
||
GET_MODE_SIZE argument is enum machine_mode.
|
||
|
||
2014-04-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/60910
|
||
* config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
|
||
value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
|
||
|
||
2014-04-22 Lin Zuojian <manjian2006@gmail.com>
|
||
|
||
PR middle-end/60281
|
||
* asan.c (asan_emit_stack_protection): Force the base to align to
|
||
appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
|
||
appropriate bits if STRICT_ALIGNMENT.
|
||
* cfgexpand.c (expand_stack_vars): Set base_align appropriately
|
||
when asan is on.
|
||
(expand_used_vars): Leave a space in the stack frame for alignment
|
||
if STRICT_ALIGNMENT.
|
||
|
||
2014-04-21 David Malcolm <dmalcolm@redhat.com>
|
||
|
||
* gimple.h (gimple_assign_single_p): Accept a const_gimple rather
|
||
than a gimple.
|
||
(gimple_store_p): Likewise.
|
||
(gimple_assign_load_p): Likewise.
|
||
(gimple_assign_cast_p): Likewise.
|
||
(gimple_clobber_p): Likewise.
|
||
|
||
* doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
|
||
rather than a gimple.
|
||
(gimple_assign_cast_p): Likewise.
|
||
|
||
2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/60735
|
||
* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
|
||
If mode is DDmode and TARGET_E500_DOUBLE allow move.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
|
||
more debug information for E500 if -mdebug=reg.
|
||
|
||
2014-04-21 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/60909
|
||
* config/i386/i386.c (ix86_expand_builtin)
|
||
<case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
|
||
register for target RTX.
|
||
<case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
|
||
|
||
2014-04-18 Cong Hou <congh@google.com>
|
||
|
||
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
|
||
the widen-mult pattern by handling two operands with different sizes,
|
||
and operands whose size is smaller than half of the result type.
|
||
|
||
2014-04-18 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-inline.h (INLINE_HINT_known_hot): New hint.
|
||
* ipa-inline-analysis.c (dump_inline_hints): Dump it.
|
||
(do_estimate_edge_time): Compute it.
|
||
* ipa-inline.c (want_inline_small_function_p): Bypass
|
||
INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
|
||
|
||
2014-04-18 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-inline.c (spec_rem): New static variable.
|
||
(dump_overall_stats): New function.
|
||
(dump_inline_stats): New function.
|
||
|
||
2014-04-18 Richard Henderson <rth@redhat.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
|
||
to GET_MODE_SIZE, not a reg_class_t.
|
||
|
||
2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
|
||
(vsx_xxmrglw_<mode>): Likewise.
|
||
|
||
2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/60876
|
||
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
|
||
GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
|
||
(rs6000_init_hard_regno_mode_ok): Likewise.
|
||
|
||
2014-04-17 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-inline.c (inline_small_functions): Account only non-cold
|
||
functions.
|
||
* doc/invoke.texi (inline-unit-growth): Update documentation.
|
||
|
||
2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* config/rs6000/rs6000.md (addti3, subti3): New.
|
||
|
||
2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/60863
|
||
* config/i386/i386.c (ix86_expand_clear): Remove outdated
|
||
comment. Check optimize_insn_for_size_p instead of
|
||
optimize_insn_for_speed_p.
|
||
|
||
2014-04-17 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* gimple-iterator.c (gsi_start_edge): New function.
|
||
* gimple-iterator.h (gsi_start_edge): Declare.
|
||
* tree-sra.c (single_non_eh_succ): New function.
|
||
(disqualify_ops_if_throwing_stmt): Renamed to
|
||
disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
|
||
having one non-EH successor BB.
|
||
(sra_modify_expr): If stmt ends bb, use single non-EH successor to
|
||
generate loads into replacements.
|
||
(sra_modify_assign): Likewise and and also use the simple path for
|
||
such statements.
|
||
(sra_modify_function_body): Commit statements on edges.
|
||
|
||
2014-04-17 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60849
|
||
* tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
|
||
comparison results and add clarifying comment.
|
||
|
||
2014-04-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* genmodes.c (struct mode_data): Add need_bytesize_adj field.
|
||
(blank_mode): Initialize it.
|
||
(emit_mode_size_inline, emit_mode_nunits_inline,
|
||
emit_mode_inner_inline): New functions.
|
||
(emit_insn_modes_h): Call them and surround their output with
|
||
#if GCC_VERSION >= 4001 ... #endif.
|
||
* machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
|
||
For GCC_VERSION >= 4001 use mode_*_inline routines instead of
|
||
mode_* arrays if the argument is __builtin_constant_p.
|
||
* lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
|
||
is enum machine_mode.
|
||
|
||
2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* passes.c (opt_pass::execute): Adjust.
|
||
(pass_manager::execute_pass_mode_switching): Likewise.
|
||
(early_local_passes::execute): Likewise.
|
||
(execute_one_pass): Pass cfun to the pass's execute method.
|
||
* tree-pass.h (opt_pass::execute): Add function * argument.
|
||
* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
|
||
cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
|
||
compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
|
||
config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
|
||
config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
|
||
config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
|
||
except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
|
||
gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
|
||
graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
|
||
ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
|
||
ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
|
||
lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
|
||
postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
|
||
reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
|
||
store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
|
||
tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
|
||
tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
|
||
tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
|
||
tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
|
||
tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
|
||
tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
|
||
tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
|
||
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
|
||
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
|
||
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
|
||
tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
|
||
tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
|
||
tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
|
||
tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
|
||
Adjust.
|
||
|
||
2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* passes.c (opt_pass::gate): Take function * argument.
|
||
(gate_all_early_local_passes): Merge into
|
||
(early_local_passes::gate): this.
|
||
(gate_all_early_optimizations): Merge into
|
||
(all_early_optimizations::gate): this.
|
||
(gate_all_optimizations): Mege into
|
||
(all_optimizations::gate): this.
|
||
(gate_all_optimizations_g): Merge into
|
||
(all_optimizations_g::gate): this.
|
||
(gate_rest_of_compilation): Mege into
|
||
(rest_of_compilation::gate): this.
|
||
(gate_postreload): Merge into
|
||
(postreload::gate): this.
|
||
(dump_one_pass): Pass cfun to the pass's gate method.
|
||
(execute_ipa_summary_passes): Likewise.
|
||
(execute_one_pass): Likewise.
|
||
(ipa_write_summaries_2): Likewise.
|
||
(ipa_write_optimization_summaries_1): Likewise.
|
||
(ipa_read_summaries_1): Likewise.
|
||
(ipa_read_optimization_summaries_1): Likewise.
|
||
(execute_ipa_stmt_fixups): Likewise.
|
||
* tree-pass.h (opt_pass::gate): Add function * argument.
|
||
* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
|
||
combine-stack-adj.c, combine.c, compare-elim.c,
|
||
config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
|
||
config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
|
||
config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
|
||
dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
|
||
gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
|
||
graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
|
||
ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
|
||
loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
|
||
omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
|
||
reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
|
||
store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
|
||
tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
|
||
tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
|
||
tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
|
||
tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
|
||
tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
|
||
tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
|
||
tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
|
||
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
|
||
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
|
||
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
|
||
tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
|
||
tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
|
||
tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
|
||
var-tracking.c, vtable-verify.c, web.c: Adjust.
|
||
|
||
2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* configure.ac: Check for -Woverloaded-virtual and enable it if found.
|
||
* configure: Regenerate.
|
||
|
||
2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* passes.c (dump_one_pass): don't check pass->has_gate.
|
||
(execute_ipa_summary_passes): Likewise.
|
||
(execute_one_pass): Likewise.
|
||
(ipa_write_summaries_2): Likewise.
|
||
(ipa_write_optimization_summaries_1): Likewise.
|
||
(ipa_read_optimization_summaries_1): Likewise.
|
||
(execute_ipa_stmt_fixups): Likewise.
|
||
* tree-pass.h (pass_data::has_gate): Remove.
|
||
* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
|
||
cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
|
||
compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
|
||
config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
|
||
config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
|
||
config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
|
||
config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
|
||
dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
|
||
gimple-low.c, gimple-ssa-isolate-paths.c,
|
||
gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
|
||
ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
|
||
ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
|
||
ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
|
||
modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
|
||
recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
|
||
reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
|
||
trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
|
||
tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
|
||
tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
|
||
tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
|
||
tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
|
||
tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
|
||
tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
|
||
tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
|
||
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
|
||
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
|
||
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
|
||
tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
|
||
tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
|
||
tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
|
||
tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
|
||
Adjust.
|
||
|
||
2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* pass_manager.h (pass_manager::register_dump_files_1): Remove
|
||
declaration.
|
||
* passes.c (pass_manager::register_dump_files_1): Merge into
|
||
(pass_manager::register_dump_files): this, and remove its handling of
|
||
properties since the pass always has the properties anyway.
|
||
(pass_manager::pass_manager): Adjust.
|
||
|
||
2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
|
||
|
||
* pass_manager.h (pass_manager::register_dump_files_1): Adjust.
|
||
* passes.c (pass_manager::register_dump_files_1): Remove dead code
|
||
dealing with properties.
|
||
(pass_manager::register_dump_files): Adjust.
|
||
|
||
2014-03-20 Mark Wielaard <mjw@redhat.com>
|
||
|
||
* dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
|
||
then represent the bound as normal constant value.
|
||
|
||
2014-04-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/60847
|
||
Forward port from 4.8 branch
|
||
2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
|
||
|
||
* config/i386/bmiintrin.h (_blsi_u32): New.
|
||
(_blsi_u64): Ditto.
|
||
(_blsr_u32): Ditto.
|
||
(_blsr_u64): Ditto.
|
||
(_blsmsk_u32): Ditto.
|
||
(_blsmsk_u64): Ditto.
|
||
(_tzcnt_u32): Ditto.
|
||
(_tzcnt_u64): Ditto.
|
||
|
||
2014-04-17 Kito Cheng <kito@0xlab.org>
|
||
|
||
* gcc.c (used_arg): Prevent out of bound access for multilib_options.
|
||
|
||
2014-04-17 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60849
|
||
* tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
|
||
boolean results for comparisons.
|
||
|
||
2014-04-17 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60836
|
||
* tree-vect-loop.c (vect_create_epilog_for_reduction): Force
|
||
initial PHI args to be gimple values.
|
||
|
||
2014-04-17 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60841
|
||
* tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
|
||
* tree-vect-loop.c (vect_analyze_loop_2): Pass down number
|
||
of stmts to SLP build.
|
||
* tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
|
||
(vect_analyze_slp): Likewise.
|
||
(vect_analyze_slp_instance): Likewise.
|
||
(vect_build_slp_tree): Limit overall SLP tree growth.
|
||
* tree-vectorizer.h (vect_analyze_data_refs,
|
||
vect_analyze_slp): Adjust prototypes.
|
||
|
||
2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
|
||
|
||
* config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
|
||
Silvermont.
|
||
|
||
2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
|
||
|
||
* config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
|
||
* config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
|
||
* config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
|
||
for TARGET_SLOW_PSHUFB
|
||
|
||
2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
|
||
|
||
* config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
|
||
* config/i386/i386.c (intel_cost): Ditto.
|
||
|
||
2014-04-17 Joey Ye <joey.ye@arm.com>
|
||
|
||
* opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
|
||
|
||
2014-04-16 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* opts.c (common_handle_option): Disable -fipa-reference coorectly
|
||
with -fuse-profile.
|
||
|
||
2014-04-16 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-devirt.c (odr_type_d): Add field all_derivations_known.
|
||
(type_all_derivations_known_p): New predicate.
|
||
(type_all_ctors_visible_p): New predicate.
|
||
(type_possibly_instantiated_p): New predicate.
|
||
(get_odr_type): Compute all_derivations_known.
|
||
(dump_odr_type): Dump the flag.
|
||
(maybe_record_type): Cleanup.
|
||
(record_target_from_binfo): Add bases_to_consider array;
|
||
record bases for types w/o instances and skip CXX destructor.
|
||
(possible_polymorphic_call_targets_1): Add bases_to_consider
|
||
and consider_construction parameters; check if type may have instance.
|
||
(get_polymorphic_call_info): Set maybe_in_construction to true
|
||
when we know nothing.
|
||
(record_targets_from_bases): Skip CXX destructors; they are
|
||
never called for types in construction.
|
||
(possible_polymorphic_call_targets): Do not record target when
|
||
type may not have instance.
|
||
|
||
2014-04-16 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/60854
|
||
* ipa.c (symtab_remove_unreachable_nodes): Mark targets of
|
||
external aliases alive, too.
|
||
|
||
2014-04-16 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
|
||
definition.
|
||
|
||
2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* final.c (compute_alignments): Do not apply loop alignment to a block
|
||
falling through to the exit.
|
||
|
||
2014-04-16 Catherine Moore <clm@codesourcery.com>
|
||
|
||
* mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
|
||
Adjust constraints for microMIPS store patterns.
|
||
|
||
2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
|
||
|
||
* config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
|
||
|
||
2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
|
||
(append_use): Run at -O0.
|
||
(append_vdef): Likewise.
|
||
* tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
|
||
* tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
|
||
|
||
2014-04-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/60844
|
||
* tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
|
||
(propagate_op_to_single_use, remove_visited_stmt_chain,
|
||
linearize_expr, repropagate_negates, reassociate_bb): Use it
|
||
instead of gsi_remove.
|
||
|
||
2014-04-16 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* cgraphclones.c (cgraph_create_virtual_clone): Duplicate
|
||
ipa_transforms_to_apply.
|
||
(cgraph_function_versioning): Assert that old_node has empty
|
||
ipa_transforms_to_apply.
|
||
* trans-mem.c (ipa_tm_create_version): Likewise.
|
||
* tree-inline.c (tree_function_versioning): Do not duplicate
|
||
ipa_transforms_to_apply.
|
||
|
||
2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
PR target/60817
|
||
* configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
|
||
x86_64-*-* cases.
|
||
Pass necessary as flags on 64-bit Solaris/x86.
|
||
Use lowercase relocs for x86_64-*-*.
|
||
* configure: Regenerate.
|
||
|
||
2014-04-15 Jan Hubicka <jh@suse.cz>
|
||
|
||
* ipa-devirt.c (referenced_from_vtable_p): New predicate.
|
||
(maybe_record_node, likely_target_p): Use it.
|
||
|
||
2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
PR target/60839
|
||
Revert following patch
|
||
|
||
2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/60735
|
||
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
|
||
software floating point or no floating point registers, do not
|
||
allow any type in the FPRs. Eliminate a test for SPE SIMD types
|
||
in GPRs that occurs after we tested for GPRs that would never be
|
||
true.
|
||
|
||
* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
|
||
Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
|
||
since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
|
||
specifically allow DDmode, since that does not use the SPE SIMD
|
||
instructions.
|
||
|
||
2014-03-21 Mark Wielaard <mjw@redhat.com>
|
||
|
||
* dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
|
||
as unsigned or int depending on type and value used.
|
||
|
||
2014-04-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/56965
|
||
* alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
|
||
* tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
|
||
... here.
|
||
* alias.c (true_dependence_1): Do not call
|
||
nonoverlapping_component_refs_p.
|
||
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
|
||
nonoverlapping_component_refs_p.
|
||
(indirect_refs_may_alias_p): Likewise.
|
||
|
||
2014-04-15 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* cfg.c (dump_bb_info): Fix flags check.
|
||
* tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
|
||
|
||
2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
PR rtl-optimization/60663
|
||
* config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
|
||
avoid 0 cost.
|
||
|
||
2014-04-15 Richard Biener <rguenther@suse.de>
|
||
|
||
* lto-streamer.h (LTO_major_version): Bump to 4.
|
||
|
||
2014-04-15 Richard Biener <rguenther@suse.de>
|
||
|
||
* common.opt (lto_partition_model): New enum.
|
||
(flto-partition=): Merge separate options with a single with argument,
|
||
add -flto-partition=one support.
|
||
* flag-types.h (enum lto_partition_model): Declare.
|
||
* opts.c (finish_options): Remove duplicate -flto-partition=
|
||
option check.
|
||
* lto-wrapper.c (run_gcc): Adjust.
|
||
|
||
2014-04-15 Richard Biener <rguenther@suse.de>
|
||
|
||
* alias.c (ncr_compar): New function.
|
||
(nonoverlapping_component_refs_p): Re-implement in O (n log n).
|
||
|
||
2014-04-15 Richard Biener <rguenther@suse.de>
|
||
|
||
* alias.c (record_component_aliases): Do not walk BINFOs.
|
||
|
||
2014-04-15 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
|
||
Add struct function argument and adjust.
|
||
(find_func_aliases_for_call): Likewise.
|
||
(find_func_aliases): Likewise.
|
||
(find_func_clobbers): Likewise.
|
||
(intra_create_variable_infos): Likewise.
|
||
(compute_points_to_sets): Likewise.
|
||
(ipa_pta_execute): Adjust. Do not push/pop cfun.
|
||
|
||
2014-04-15 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree.c (iterative_hash_expr): Use enum tree_code_class
|
||
to store TREE_CODE_CLASS.
|
||
(tree_block): Likewise.
|
||
(tree_set_block): Likewise.
|
||
* tree.h (fold_build_pointer_plus_loc): Use
|
||
convert_to_ptrofftype_loc.
|
||
|
||
2014-04-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR plugins/59335
|
||
* Makefile.in (PLUGIN_HEADERS): Add various headers that have been
|
||
added in 4.9.
|
||
|
||
2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* cfgloop.h (struct loop): Move force_vectorize down.
|
||
* gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
|
||
(gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
|
||
* lto-streamer-in.c (input_cfg): Read dont_vectorize field.
|
||
* lto-streamer-out.c (output_cfg): Write dont_vectorize field.
|
||
* tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
|
||
* tree-core.h (enum annot_expr_kind): Add new kind values.
|
||
* tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
|
||
* tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
|
||
kinds.
|
||
* tree.def (ANNOTATE_EXPR): Tweak comment.
|
||
|
||
2014-04-14 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
|
||
cxa_pure_virtual).
|
||
|
||
2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* tree.h (TYPE_IDENTIFIER): Declare.
|
||
* tree.c (subrange_type_for_debug_p): Use it.
|
||
* godump.c (go_format_type): Likewise.
|
||
* dwarf2out.c (is_cxx_auto, modified_type_die,
|
||
gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
|
||
* dbxout.c (dbxout_type, dbxout_symbol): Likewise.
|
||
|
||
2014-04-14 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR lto/60820
|
||
* varpool.c (varpool_remove_node): Do not alter decls when streaming.
|
||
|
||
2014-04-14 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (examine_argument): Return bool. Return true if
|
||
parameter should be passed in memory.
|
||
<case X86_64_COMPLEX_X87_CLASS>: Adjust.
|
||
(construct_container): Update calls to examine_argument.
|
||
(function_arg_advance_64): Ditto.
|
||
(return_in_memory_32): Merge with ix86_return_in_memory.
|
||
(return_in_memory_64): Ditto.
|
||
(return_in_memory_ms_64): Ditto.
|
||
|
||
2014-04-14 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-utils.c (ipa_merge_profiles): Merge profile_id.
|
||
* coverage.c (coverage_compute_profile_id): Handle externally visible
|
||
symbols.
|
||
|
||
2014-04-14 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* tree-sra.c (ipa_sra_preliminary_function_checks): Skip
|
||
DECL_DISREGARD_INLINE_LIMITS functions.
|
||
|
||
2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/60827
|
||
* config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
|
||
|
||
2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/60827
|
||
* config/i386/i386.md (*fixuns_trunc<mode>_1): Check
|
||
optimize_insn_for_speed_p instead of
|
||
optimize_function_for_speed_p.
|
||
|
||
2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
|
||
|
||
* doc/invoke.texi (free): Document AArch64.
|
||
|
||
2014-04-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60042
|
||
* tree-ssa-pre.c (inhibit_phi_insertion): Remove.
|
||
(insert_into_preds_of_block): Do not prevent PHI insertion
|
||
for REFERENCE exprs here ...
|
||
(eliminate_dom_walker::before_dom_children): ... but prevent
|
||
their use here under similar conditions when applied to the
|
||
IL after PRE optimizations.
|
||
|
||
2014-04-14 Richard Biener <rguenther@suse.de>
|
||
|
||
* passes.def: Move early points-to after early SRA.
|
||
|
||
2014-04-14 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
|
||
check for which sign-changes we allow when forwarding
|
||
a converted value into a switch.
|
||
|
||
2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* stor-layout.c (place_field): Finalize non-constant offset for the
|
||
field, if any.
|
||
|
||
2014-04-14 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-switch-conversion.c (lshift_cheap_p): Get speed_p
|
||
as argument.
|
||
(expand_switch_using_bit_tests_p): Likewise.
|
||
(process_switch): Compute and pass on speed_p based on the
|
||
switch stmt.
|
||
* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
|
||
optimize_bb_for_speed_p.
|
||
|
||
2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* cfgloop.h (struct loop): Rename force_vect into force_vectorize.
|
||
* function.h (struct function): Rename has_force_vect_loops into
|
||
has_force_vectorize_loops.
|
||
* lto-streamer-in.c (input_cfg): Adjust for renaming.
|
||
(input_struct_function_base): Likewise.
|
||
* lto-streamer-out.c (output_cfg): Likewise.
|
||
(output_struct_function_base): Likewise.
|
||
* omp-low.c (expand_omp_simd): Likewise.
|
||
* tree-cfg.c (move_sese_region_to_fn): Likewise.
|
||
* tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
|
||
(version_loop_for_if_conversion): Likewise.
|
||
(tree_if_conversion): Likewise.
|
||
(main_tree_if_conversion): Likewise.
|
||
(gate_tree_if_conversion): Likewise.
|
||
* tree-inline.c (copy_loops): Likewise.
|
||
* tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
|
||
* tree-ssa-loop.c (tree_loop_vectorize): Likewise.
|
||
* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
|
||
* tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
|
||
* tree-vectorizer.c (vectorize_loops): Likewise.
|
||
* tree-vectorizer.h (unlimited_cost_model): Likewise.
|
||
|
||
2014-04-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/60720
|
||
* lto-streamer-out.c (wrap_refs): New function.
|
||
(lto_output): Wrap symbol references in global initializes in
|
||
type-preserving MEM_REFs.
|
||
|
||
2014-04-14 Christian Bruel <christian.bruel@st.com>
|
||
|
||
* config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
|
||
|
||
2014-04-14 Christian Bruel <christian.bruel@st.com>
|
||
|
||
* config/sh/sh.md (setmemqi): New expand pattern.
|
||
* config/sh/sh.h (CLEAR_RATIO): Define.
|
||
* config/sh/sh-mem.cc (sh_expand_setmem): Define.
|
||
* config/sh/sh-protos.h (sh_expand_setmem): Declare.
|
||
|
||
2014-04-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/55022
|
||
* fold-const.c (negate_expr_p): Don't negate directional rounding
|
||
division.
|
||
(fold_negate_expr): Likewise.
|
||
|
||
2014-04-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/59817
|
||
PR tree-optimization/60453
|
||
* graphite-scop-detection.c (graphite_can_represent_scev): Complete
|
||
recursion to catch all CHRECs in the scalar evolution and restrict
|
||
the predicate for the remains appropriately.
|
||
|
||
2014-04-12 Catherine Moore <clm@codesourcery.com>
|
||
|
||
* config/mips/constraints.md: Add new register constraint "kb".
|
||
* config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
|
||
(*movhi_internal): Likewise.
|
||
(*movqi_internal): Likewise.
|
||
* config/mips/mips.h (M16_STORE_REGS): New register class.
|
||
(REG_CLASS_NAMES): Add M16_STORE_REGS.
|
||
(REG_CLASS_CONTENTS): Likewise.
|
||
* config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
|
||
|
||
2014-04-11 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR c/60194
|
||
* doc/invoke.texi (-Wformat-signedness): Document it.
|
||
(Wformat=2): Mention that this enables -Wformat-signedness.
|
||
|
||
2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* common/config/epiphany/epiphany-common.c
|
||
(epiphany_option_optimization_table): Enable section anchors by
|
||
default at -O1 or higher.
|
||
* config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
|
||
(TARGET_MIN_ANCHOR_OFFSET): Likewise.
|
||
(epiphany_rtx_costs) <SET>: For binary operators, the set as such
|
||
carries no extra cost.
|
||
(epiphany_legitimate_address_p): For BLKmode, apply SImode check.
|
||
* config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
|
||
* config/epiphany/predicates.md (memclob_operand): New predicate.
|
||
* config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
|
||
Use memclob_operand predicate and X constraint for operand 3.
|
||
|
||
2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
|
||
with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
|
||
its operands.
|
||
|
||
2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR rtl-optimization/60651
|
||
* mode-switching.c (optimize_mode_switching): Make sure to emit
|
||
sets of a lower numbered entity before sets of a higher numbered
|
||
entity to a mode of the same or lower priority.
|
||
When creating a seginfo for a basic block that starts with a code
|
||
label, move the insertion point past the code label.
|
||
(new_seginfo): Document and enforce requirement that
|
||
NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
|
||
* doc/tm.texi.in: Document ordering constraint for emitted mode sets.
|
||
* doc/tm.texi: Regenerate.
|
||
|
||
2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
PR target/60811
|
||
* config/arc/arc.c (arc_save_restore): Fix assert typo.
|
||
|
||
2013-04-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* BASE-VER: Set to 4.10.0.
|
||
|
||
2014-04-11 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR other/59055
|
||
* doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
|
||
* doc/gcc.texi (Service): Update description in the @menu
|
||
* doc/invoke.texi (Option Summary): Remove misplaced and
|
||
duplicated @menu.
|
||
|
||
2014-04-11 Steve Ellcey <sellcey@mips.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/60556
|
||
* expr.c (convert_move): Use emit_store_flag_force instead of
|
||
emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
|
||
argument to it.
|
||
|
||
2014-04-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60797
|
||
* varasm.c (assemble_alias): Avoid endless error reporting
|
||
recursion by setting TREE_ASM_WRITTEN.
|
||
|
||
2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.md: Add a splitter for NOT rtx.
|
||
|
||
2014-04-11 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/60663
|
||
* cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
|
||
|
||
2014-04-10 Jan Hubicka <hubicka@ucw.cz>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR lto/60567
|
||
* ipa.c (function_and_variable_visibility): Copy forced_by_abi
|
||
flag from decl_node to node.
|
||
|
||
2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
PR debug/60655
|
||
* config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
|
||
(arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
|
||
ameliorating the cases where it can be.
|
||
|
||
2014-04-09 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
Revert
|
||
2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* config/rs6000/sync.md (AINT mode_iterator): Move definition.
|
||
(loadsync_<mode>): Change mode.
|
||
(load_quadpti, store_quadpti): New.
|
||
(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
|
||
* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
|
||
* config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
|
||
|
||
2014-04-09 Cong Hou <congh@google.com>
|
||
|
||
PR testsuite/60773
|
||
* doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
|
||
documentation.
|
||
|
||
2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
|
||
instead of vnor to exploit possible fusion opportunity in the
|
||
future.
|
||
(altivec_expand_vec_perm_const_le): Likewise.
|
||
|
||
2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* config/rs6000/sync.md (AINT mode_iterator): Move definition.
|
||
(loadsync_<mode>): Change mode.
|
||
(load_quadpti, store_quadpti): New.
|
||
(atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
|
||
* config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
|
||
|
||
2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR target/60763
|
||
* config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
|
||
* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
|
||
Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
|
||
|
||
2014-04-08 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60706
|
||
* tree-pretty-print.c (pp_double_int): For HWI32 hosts with
|
||
a 64bit widest int print double-int similar to on HWI64 hosts.
|
||
|
||
2014-04-08 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60785
|
||
* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
|
||
default defs properly.
|
||
|
||
2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* doc/invoke (Wnon-virtual-dtor): Update to match implementation.
|
||
(Weffc++): Likewise.
|
||
|
||
2014-04-07 Jan Hubicka <hubcika@ucw.cz>
|
||
|
||
* ipa-devirt.c (maybe_record_node): When node is not recorded,
|
||
set completep to false rather than true.
|
||
|
||
2014-04-07 Douglas B Rupp <rupp@adacore.com>
|
||
|
||
PR target/60504
|
||
* config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
|
||
ARM_TARGET2_DWARF_FORMAT.
|
||
|
||
2014-04-07 Charles Baylis <charles.baylis@linaro.org>
|
||
|
||
PR target/60609
|
||
* config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
|
||
(LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
|
||
ADDR_DIFF_VEC.
|
||
|
||
2014-04-07 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60766
|
||
* tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
|
||
(may_eliminate_iv): Convert cand_value_at result to desired type.
|
||
|
||
2014-04-07 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/60731
|
||
* common.opt (-fno-gnu-unique): Add.
|
||
* config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
|
||
|
||
2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* haifa-sched.c: Fix outdated function reference and minor
|
||
grammar errors in introductory comment.
|
||
|
||
2014-04-07 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60750
|
||
* tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
|
||
for noreturn calls.
|
||
* tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
|
||
|
||
2014-04-06 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
PR debug/55794
|
||
* config/pa/pa.c (pa_output_function_epilogue): Skip address and code
|
||
size accounting for thunks.
|
||
(pa_asm_output_mi_thunk): Use final_start_function() and
|
||
final_end_function() to output function start and end directives.
|
||
|
||
2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
|
||
|
||
* config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
|
||
device specific ISA/ feature information. Remove short_sp and
|
||
errata_skip ds. Add avr_device_specific_features enum to have device
|
||
specific info.
|
||
* config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
|
||
errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
|
||
* config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
|
||
updated device specific info.
|
||
* config/avr/avr-mcus.def: Merge device specific details to
|
||
dev_attribute field.
|
||
* config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
|
||
errata_skip.
|
||
* config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
|
||
* config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
|
||
assembler if RMW isa supported by current device.
|
||
* config/avr/genmultilib.awk: Update as device info structure changed.
|
||
* doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
|
||
|
||
2014-04-04 Cong Hou <congh@google.com>
|
||
|
||
PR tree-optimization/60656
|
||
* tree-vect-stmts.c (supportable_widening_operation):
|
||
Fix a bug that elements in a vector with vect_used_by_reduction
|
||
property are incorrectly reordered when the operation on it is not
|
||
consistant with the one in reduction operation.
|
||
|
||
2014-04-04 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
PR rtl-optimization/60155
|
||
* gcse.c (record_set_data): New function.
|
||
(single_set_gcse): New function.
|
||
(gcse_emit_move_after): Use single_set_gcse instead of single_set.
|
||
(hoist_code): Likewise.
|
||
(get_pressure_class_and_nregs): Likewise.
|
||
|
||
2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* explow.c (probe_stack_range): Emit a final optimization blockage.
|
||
|
||
2014-04-04 Anthony Green <green@moxielogic.com>
|
||
|
||
* config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
|
||
typos.
|
||
|
||
2014-04-04 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/59626
|
||
* lto-cgraph.c (input_overwrite_node): Check that partitioning
|
||
flags are set only during streaming.
|
||
* ipa.c (process_references, walk_polymorphic_call_targets,
|
||
symtab_remove_unreachable_nodes): Drop bodies of always inline
|
||
after early inlining.
|
||
(symtab_remove_unreachable_nodes): Remove always_inline attribute.
|
||
|
||
2014-04-04 Jakub Jelinek <jakub@redhat.com>
|
||
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
PR debug/60655
|
||
* dwarf2out.c (const_ok_for_output_1): Reject expressions
|
||
containing a NOT.
|
||
|
||
2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
PR bootstrap/60743
|
||
* config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
|
||
duration.
|
||
(cortex_a53_fdivd): Likewise.
|
||
|
||
2014-04-04 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/60640
|
||
* cgraph.h (cgraph_clone_node): New parameter added to declaration.
|
||
Adjust all callers.
|
||
* cgraph.c (clone_of_p): Also return true if thunks match.
|
||
(verify_edge_corresponds_to_fndecl): Removed extraneous call to
|
||
cgraph_function_or_thunk_node and an obsolete comment.
|
||
* cgraphclones.c (build_function_type_skip_args): Moved upwards in the
|
||
file.
|
||
(build_function_decl_skip_args): Likewise.
|
||
(set_new_clone_decl_and_node_flags): New function.
|
||
(duplicate_thunk_for_node): Likewise.
|
||
(redirect_edge_duplicating_thunks): Likewise.
|
||
(cgraph_clone_node): New parameter args_to_skip, pass it to
|
||
redirect_edge_duplicating_thunks which is called instead of
|
||
cgraph_redirect_edge_callee.
|
||
(cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
|
||
moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
|
||
|
||
2014-04-04 Jeff Law <law@redhat.com>
|
||
|
||
PR target/60657
|
||
* config/arm/predicates.md (const_int_I_operand): New predicate.
|
||
(const_int_M_operand): Similarly.
|
||
* config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
|
||
const_int_operand.
|
||
(insv_t2, extv_reg, extzv_t2): Likewise.
|
||
(load_multiple_with_writeback): Similarly for const_int_I_operand.
|
||
(pop_multiple_with_writeback_and_return): Likewise.
|
||
(vfp_pop_multiple_with_writeback): Likewise
|
||
|
||
2014-04-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/60746
|
||
* tree-ssanames.c (make_ssa_name_fn): Fix assert.
|
||
* gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
|
||
non-GIMPLE_LABELs.
|
||
* gimplify.h (gimple_add_tmp_var_fn): Declare.
|
||
* gimplify.c (gimple_add_tmp_var_fn): New function.
|
||
* gimple-expr.h (create_tmp_reg_fn): Declare.
|
||
* gimple-expr.c (create_tmp_reg_fn): New function.
|
||
* gimple-low.c (record_vars_into): Don't change cfun.
|
||
* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
|
||
code generation without cfun.
|
||
|
||
2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
PR bootstrap/60719
|
||
* Makefile.in (install-driver): Fix shell scripting.
|
||
|
||
2014-04-03 Cong Hou <congh@google.com>
|
||
|
||
PR tree-optimization/60505
|
||
* tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
|
||
threshold of number of iterations below which no vectorization
|
||
will be done.
|
||
* tree-vect-loop.c (new_loop_vec_info):
|
||
Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
|
||
* tree-vect-loop.c (vect_analyze_loop_operations):
|
||
Set LOOP_VINFO_COST_MODEL_THRESHOLD.
|
||
* tree-vect-loop.c (vect_transform_loop):
|
||
Use LOOP_VINFO_COST_MODEL_THRESHOLD.
|
||
* tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
|
||
of iterations of the loop and see if we should build the epilogue.
|
||
|
||
2014-04-03 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
|
||
(streamer_tree_cache_create): Adjust.
|
||
* tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
|
||
to allow optional nodes array.
|
||
(streamer_tree_cache_insert_1): Use next_idx to assign idx.
|
||
(streamer_tree_cache_append): Likewise.
|
||
(streamer_tree_cache_create): Create nodes array optionally
|
||
as specified by parameter.
|
||
* lto-streamer-out.c (create_output_block): Avoid maintaining
|
||
the node array in the writer cache.
|
||
(DFS_write_tree): Remove assertion.
|
||
(produce_asm_for_decls): Free the out decl state hash table early.
|
||
* lto-streamer-in.c (lto_data_in_create): Adjust for
|
||
streamer_tree_cache_create prototype change.
|
||
|
||
2014-04-03 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-streamer-out.c (streamer_write_chain): Do not temporarily
|
||
set TREE_CHAIN to NULL_TREE.
|
||
|
||
2014-04-03 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60740
|
||
* graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
|
||
over all GIMPLE_COND operands.
|
||
|
||
2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
|
||
|
||
* doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
|
||
(Weffc++): Remove Scott's numbering, merge lists and reference
|
||
Wnon-virtual-dtor.
|
||
|
||
2014-04-03 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
|
||
properly.
|
||
|
||
2014-04-03 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
|
||
mention gcc_unreachable before failing.
|
||
* ipa.c (symtab_remove_unreachable_nodes): Also print order of
|
||
removed symbols.
|
||
|
||
2014-04-02 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/60659
|
||
* ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
|
||
inconsistent code and instead mark the context inconsistent.
|
||
(possible_polymorphic_call_targets): For inconsistent contexts
|
||
return empty complete list.
|
||
|
||
2014-04-02 Anthony Green <green@moxielogic.com>
|
||
|
||
* config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
|
||
(extendqisi2, extendhisi2): Define.
|
||
* config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
|
||
(WCHAR_TYPE): Change to unsigned int.
|
||
|
||
2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
PR tree-optimization/60733
|
||
* gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
|
||
insertion point for PHI candidates to be the end of the feeding
|
||
block for the PHI argument.
|
||
|
||
2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/60650
|
||
* lra-constraints.c (process_alt_operands): Decrease reject for
|
||
earlyclobber matching.
|
||
|
||
2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
|
||
|
||
2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
||
|
||
* config/spu/spu.c (pad_bb): Do not crash when the last
|
||
insn is CODE_FOR_blockage.
|
||
|
||
2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
||
|
||
* config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
|
||
lies outside the target mode.
|
||
|
||
2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/60735
|
||
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
|
||
software floating point or no floating point registers, do not
|
||
allow any type in the FPRs. Eliminate a test for SPE SIMD types
|
||
in GPRs that occurs after we tested for GPRs that would never be
|
||
true.
|
||
|
||
* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
|
||
Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
|
||
since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
|
||
specifically allow DDmode, since that does not use the SPE SIMD
|
||
instructions.
|
||
|
||
2014-04-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60729
|
||
* optabs.c (expand_abs_nojump): Honor flag_trapv only for
|
||
MODE_INTs. Properly use negv_optab.
|
||
(expand_abs): Likewise.
|
||
|
||
2014-04-02 Richard Biener <rguenther@suse.de>
|
||
|
||
PR bootstrap/60719
|
||
* Makefile.in (install-driver): Guard extra installs with special
|
||
names properly.
|
||
|
||
2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
|
||
Document vec_vgbbd.
|
||
|
||
2014-04-01 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/60704
|
||
* config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
|
||
alternative enabled before register allocation.
|
||
|
||
2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
|
||
|
||
* config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
|
||
* config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
|
||
typo.
|
||
(nios2_large_got_address): Remove unneeded 'sym' parameter.
|
||
(nios2_got_address): Update nios2_large_got_address call site.
|
||
(nios2_delegitimize_address): New function.
|
||
(TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
|
||
* config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
|
||
(LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
|
||
|
||
2014-04-01 Martin Husemann <martin@duskware.de>
|
||
|
||
* config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
|
||
for -mabi=32.
|
||
|
||
2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR rtl-optimization/60604
|
||
* recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
|
||
check from register_operand.
|
||
(register_operand): Redefine in terms of general_operand.
|
||
(nonmemory_operand): Use register_operand for the non-constant cases.
|
||
|
||
2014-04-01 Richard Biener <rguenther@suse.de>
|
||
|
||
* gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
|
||
|
||
2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
* doc/invoke.texi (mapp-regs): Clarify.
|
||
|
||
2014-03-31 Ulrich Drepper <drepper@gmail.com>
|
||
|
||
* config/i386/avx512fintrin.h (__v32hi): Define type.
|
||
(__v64qi): Likewise.
|
||
(_mm512_set1_epi8): Define.
|
||
(_mm512_set1_epi16): Define.
|
||
(_mm512_set4_epi32): Define.
|
||
(_mm512_set4_epi64): Define.
|
||
(_mm512_set4_pd): Define.
|
||
(_mm512_set4_ps): Define.
|
||
(_mm512_setr4_epi64): Define.
|
||
(_mm512_setr4_epi32): Define.
|
||
(_mm512_setr4_pd): Define.
|
||
(_mm512_setr4_ps): Define.
|
||
(_mm512_setzero_epi32): Define.
|
||
|
||
2014-03-31 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR middle-end/60647
|
||
* tree-sra.c (callsite_has_enough_arguments_p): Renamed to
|
||
callsite_arguments_match_p. Updated all callers. Also check types of
|
||
corresponding formal parameters and actual arguments.
|
||
(not_all_callers_have_enough_arguments_p) Renamed to
|
||
some_callers_have_mismatched_arguments_p.
|
||
|
||
2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
|
||
|
||
* tree-inline.c (copy_loops): Add missed copy of 'safelen'.
|
||
|
||
2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
|
||
|
||
PR target/60034
|
||
* aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
|
||
section anchor.
|
||
|
||
2014-03-30 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
|
||
(<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
|
||
Split out
|
||
<sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
|
||
Use FMAMODE_NOVF512 mode iterator.
|
||
(<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
|
||
(<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
|
||
(<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
|
||
(<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
|
||
Split out
|
||
<sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
|
||
Use VF_128_256 mode iterator.
|
||
(<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
|
||
Ditto.
|
||
|
||
2014-03-28 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
|
||
static chain if needed.
|
||
|
||
2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/60697
|
||
* lra-constraints.c (index_part_to_reg): New.
|
||
(process_address): Use it.
|
||
|
||
2014-03-27 Jeff Law <law@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/60648
|
||
* expr.c (do_tablejump): Use simplify_gen_binary rather than
|
||
gen_rtx_{PLUS,MULT} to build up the address expression.
|
||
|
||
* i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
|
||
creating non-canonical RTL.
|
||
|
||
2014-03-28 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/60243
|
||
* ipa-inline.c (want_inline_small_function_p): Short circuit large
|
||
functions; reorganize to make cheap checks first.
|
||
(inline_small_functions): Do not estimate growth when dumping;
|
||
it is expensive.
|
||
* ipa-inline.h (inline_summary): Add min_size.
|
||
(growth_likely_positive): New function.
|
||
* ipa-inline-analysis.c (dump_inline_summary): Add min_size.
|
||
(set_cond_stmt_execution_predicate): Cleanup.
|
||
(estimate_edge_size_and_time): Compute min_size.
|
||
(estimate_calls_size_and_time): Likewise.
|
||
(estimate_node_size_and_time): Likewise.
|
||
(inline_update_overall_summary): Update min_size.
|
||
(do_estimate_edge_time): Likewise.
|
||
(do_estimate_edge_size): Update.
|
||
(do_estimate_edge_hints): Update.
|
||
(growth_likely_positive): New function.
|
||
|
||
2014-03-28 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/60693
|
||
* config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
|
||
also if addr has VOIDmode.
|
||
|
||
2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
|
||
* config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
|
||
Declare extern.
|
||
* config/arm/cortex-a53.md: Add reservations and bypass for crypto
|
||
instructions as well as AdvancedSIMD loads.
|
||
|
||
2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
|
||
Use crypto_aese type.
|
||
(aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
|
||
* config/arm/arm.md (is_neon_type): Replace crypto_aes with
|
||
crypto_aese, crypto_aesmc. Move to types.md.
|
||
* config/arm/types.md (crypto_aes): Split into crypto_aese,
|
||
crypto_aesmc.
|
||
* config/arm/iterators.md (crypto_type): Likewise.
|
||
|
||
2014-03-28 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* cgraph.c: Include expr.h and tree-dfa.h.
|
||
(cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
|
||
remove LHS.
|
||
|
||
2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/60675
|
||
* lra-assigns.c (find_hard_regno_for): Remove unavailable hard
|
||
regs from checking multi-reg pseudos.
|
||
|
||
2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
|
||
|
||
2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
|
||
if it would clobber the stack pointer, even temporarily.
|
||
|
||
2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* mode-switching.c: Make small adjustments to the top comment.
|
||
|
||
2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/constraints.md (wD constraint): New constraint to
|
||
match the constant integer to get the top DImode/DFmode out of a
|
||
vector in a VSX register.
|
||
|
||
* config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
|
||
match the constant integer to get the top DImode/DFmode out of a
|
||
vector in a VSX register.
|
||
|
||
* config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
|
||
for ISA 2.07.
|
||
|
||
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
|
||
vbpermq builtins.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_debug_reg_global): If
|
||
-mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
|
||
|
||
* config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
|
||
Optimize vec_extract of 64-bit values, where the value being
|
||
extracted is in the top word, where we can use scalar
|
||
instructions. Add direct move and store support. Combine the big
|
||
endian/little endian vector select load support into a single insn.
|
||
(vsx_extract_<mode>_internal1): Likewise.
|
||
(vsx_extract_<mode>_internal2): Likewise.
|
||
(vsx_extract_<mode>_load): Likewise.
|
||
(vsx_extract_<mode>_store): Likewise.
|
||
(vsx_extract_<mode>_zero): Delete, big and little endian insns are
|
||
combined into vsx_extract_<mode>_load.
|
||
(vsx_extract_<mode>_one_le): Likewise.
|
||
|
||
* config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
|
||
define the top 64-bit vector element.
|
||
|
||
* doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
|
||
constraint.
|
||
|
||
* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
|
||
Document vec_vbpermq builtin.
|
||
|
||
PR target/60672
|
||
* config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
|
||
enable use of xxsldwi and xxpermdi builtin functions.
|
||
(vec_xxpermdi): Likewise.
|
||
|
||
* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
|
||
Document use of vec_xxsldwi and vec_xxpermdi builtins.
|
||
|
||
2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/60650
|
||
* lra-assign.c (find_hard_regno_for, spill_for): Add parameter
|
||
first_p. Use it.
|
||
(find_spills_for): New.
|
||
(assign_by_spills): Pass the new parameter to find_hard_regno_for.
|
||
Spill all pseudos on the second iteration.
|
||
|
||
2014-03-27 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/50347
|
||
* doc/extend.texi (ffs Builtins): Change unsigned types to signed
|
||
types.
|
||
|
||
2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_can_use_return_insn): Check for
|
||
call-saved FPRs on 31 bit.
|
||
|
||
2014-03-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/60682
|
||
* omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
|
||
if they need regimplification, just drop them instead of
|
||
calling gimple_regimplify_operands on them.
|
||
|
||
2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
PR target/60580
|
||
* config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
|
||
(aarch64_frame_pointer_required): Adjust logic.
|
||
(aarch64_can_eliminate): Adjust logic.
|
||
(aarch64_override_options_after_change): Adjust logic.
|
||
|
||
2014-03-27 Dehao Chen <dehao@google.com>
|
||
|
||
* ipa-inline.c (early_inliner): Update node's inline info.
|
||
|
||
2014-03-26 Dehao Chen <dehao@google.com>
|
||
|
||
* dojump.c (do_compare_rtx_and_jump): Sets correct probability for
|
||
compiler inserted conditional jumps for NAN float check.
|
||
|
||
2014-03-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* ubsan.h (ubsan_create_data): Change second argument's type
|
||
to const location_t *.
|
||
* ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
|
||
_("<unknown>").
|
||
(ubsan_create_data): Change second argument to const location_t *PLOC.
|
||
Create Loc field whenever PLOC is non-NULL.
|
||
(ubsan_instrument_unreachable, ubsan_expand_null_ifn,
|
||
ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
|
||
callers.
|
||
|
||
PR other/59545
|
||
* real.c (real_to_integer2): Change type of low to UHWI.
|
||
|
||
2014-03-26 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
|
||
(CILK_SELF_SPECS): New define.
|
||
(driver_self_specs): Use it.
|
||
|
||
2014-03-26 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-pretty-print.c (percent_K_format): Implement special
|
||
case for LTO and its stripped down BLOCK tree.
|
||
|
||
2014-03-26 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/60636
|
||
* ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
|
||
|
||
* tree-vrp.c (simplify_internal_call_using_ranges): If only
|
||
one range is range_int_cst_p, but not both, at least optimize
|
||
addition/subtraction of 0 and multiplication by 0 or 1.
|
||
* gimple-fold.c (gimple_fold_call): Fold
|
||
IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
|
||
(gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
|
||
INTEGER_CSTs, try to fold at least x * 0 and y - y.
|
||
|
||
2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR rtl-optimization/60452
|
||
* rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
|
||
<case REG>: Return 1 for invalid offsets from the frame pointer.
|
||
|
||
2014-03-26 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/37428
|
||
* doc/extend.texi (C Extensions): Mention variable-length arrays in
|
||
a structure/union.
|
||
|
||
2014-03-26 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/39525
|
||
* doc/extend.texi (Designated Inits): Describe what happens to omitted
|
||
field members.
|
||
|
||
2014-03-26 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR other/59545
|
||
* ira-color.c (update_conflict_hard_regno_costs): Perform the
|
||
multiplication in unsigned type.
|
||
|
||
2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
|
||
|
||
* doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
|
||
|
||
2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
|
||
|
||
* doc/contrib.texi: Add myself as Andes nds32 port contributor.
|
||
|
||
2014-03-25 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/60315
|
||
* cif-code.def (UNREACHABLE) New code.
|
||
* ipa-inline.c (inline_small_functions): Skip edges to
|
||
__builtlin_unreachable.
|
||
(estimate_edge_growth): Allow edges to __builtlin_unreachable.
|
||
* ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
|
||
predicate to __bulitin_unreachable.
|
||
(set_cond_stmt_execution_predicate): Fix issue when
|
||
invert_tree_comparison returns ERROR_MARK.
|
||
* ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
|
||
propagate to inline clones.
|
||
* cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
|
||
to unreachable.
|
||
* ipa-cp.c (create_specialized_node): Be ready for new node to appear.
|
||
* cgraphclones.c (cgraph_clone_node): If call destination is already
|
||
ureachable, do not redirect it back.
|
||
* tree-inline.c (fold_marked_statements): Hanlde calls becoming
|
||
unreachable.
|
||
|
||
2014-03-25 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
|
||
Do not modify inline clones.
|
||
|
||
2014-03-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.md (general_sext_operand): New mode attr.
|
||
(addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
|
||
don't generate (sign_extend (const_int)).
|
||
(*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
|
||
operands[2]. Use We constraint instead of <i> and
|
||
<general_sext_operand> predicate instead of <general_operand>.
|
||
(*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
|
||
* config/i386/constraints.md (We): New constraint.
|
||
* config/i386/predicates.md (x86_64_sext_operand,
|
||
sext_operand): New predicates.
|
||
|
||
2014-03-25 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/60600
|
||
* ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
|
||
inconsistent devirtualizations to __builtin_unreachable.
|
||
|
||
2014-03-25 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/35449
|
||
* doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
|
||
|
||
2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
|
||
order of elements for big-endian.
|
||
|
||
2014-03-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60635
|
||
* gimplify-me.c (gimple_regimplify_operands): Update the
|
||
re-gimplifed stmt.
|
||
|
||
2014-03-25 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/59176
|
||
* lto-cgraph.c (lto_output_node): Stream body_removed flag.
|
||
(lto_output_varpool_node): Likewise.
|
||
(input_overwrite_node): Likewise.
|
||
(input_varpool_node): Likewise.
|
||
|
||
2014-03-25 Richard Biener <rguenther@suse.de>
|
||
|
||
* lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
|
||
(run_gcc): Likewise.
|
||
|
||
2014-03-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* combine.c (simplify_compare_const): Add MODE argument.
|
||
Handle mode_width 0 as very large mode_width.
|
||
(try_combine, simplify_comparison): Adjust callers.
|
||
|
||
* cselib.c (cselib_hash_rtx): Perform addition in unsigned
|
||
type to avoid signed integer overflow.
|
||
* explow.c (plus_constant): Likewise.
|
||
|
||
2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
|
||
|
||
* doc/generic.texi: Correct typos.
|
||
|
||
2014-03-24 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* doc/invoke.texi (-flto): Expand section about
|
||
using static libraries with LTO.
|
||
|
||
2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
PR rtl-optimization/60501
|
||
* optabs.def (addptr3_optab): New optab.
|
||
* optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
|
||
* doc/md.texi ("addptrm3"): Document new RTL standard expander.
|
||
* expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
|
||
|
||
* lra.c (emit_add3_insn): Use the addptr pattern if available.
|
||
|
||
* config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
|
||
|
||
2014-03-24 Ulrich Drepper <drepper@gmail.com>
|
||
|
||
* config/i386/avx512fintrin.h: Define _mm512_set1_ps and
|
||
_mm512_set1_pd.
|
||
|
||
* config/i386/avxintrin.h (_mm256_undefined_si256): Define.
|
||
(_mm256_undefined_ps): Define.
|
||
(_mm256_undefined_pd): Define.
|
||
* config/i386/emmintrin.h (_mm_undefined_si128): Define.
|
||
(_mm_undefined_pd): Define.
|
||
* config/i386/xmmintrin.h (_mm_undefined_ps): Define.
|
||
* config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
|
||
(_mm512_undefined_ps): Define.
|
||
(_mm512_undefined_pd): Define.
|
||
Use _mm*_undefined_*.
|
||
* config/i386/avx2intrin.h: Use _mm*_undefined_*.
|
||
|
||
2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
|
||
(lshr_simd): DI mode added.
|
||
* config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
|
||
(aarch64_ushr_simddi): Likewise.
|
||
* config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
|
||
* config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
|
||
(vshrd_n_u64): Likewise.
|
||
|
||
2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* Makefile.in (s-macro_list): Depend on cc1.
|
||
|
||
2014-03-23 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* ipa-utils.c (ipa_print_order): Use specified dump file.
|
||
|
||
2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR rtl-optimization/60601
|
||
* bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
|
||
|
||
* gcc.c (eval_spec_function): Initialize save_growing_value.
|
||
|
||
2014-03-22 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/60613
|
||
* internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
|
||
code == MINUS_EXPR, never swap op0 with op1.
|
||
|
||
* toplev.c (init_local_tick): Avoid signed integer multiplication
|
||
overflow.
|
||
* genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
|
||
shift by first operand's bitsize.
|
||
|
||
2014-03-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/60610
|
||
* config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
|
||
redefine to 1 or 0.
|
||
* config/i386/darwin.h (TARGET_64BIT_P): Redefine to
|
||
TARGET_ISA_64BIT_P(x).
|
||
|
||
2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
|
||
pattern for vector nor instead of subtract from splat(-1).
|
||
(altivec_expand_vec_perm_const_le): Likewise.
|
||
|
||
2014-03-21 Richard Henderson <rth@twiddle.net>
|
||
|
||
PR target/60598
|
||
* ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
|
||
related insns after epilogue_completed.
|
||
|
||
2014-03-21 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/59176
|
||
* cgraph.h (symtab_node): New flag body_removed.
|
||
* ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
|
||
when removing bodies.
|
||
* symtab.c (dump_symtab_base): Dump body_removed flag.
|
||
* cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
|
||
had their bodies removed.
|
||
|
||
2014-03-21 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/60419
|
||
* ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
|
||
in the border.
|
||
|
||
2014-03-21 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60577
|
||
* tree-core.h (struct tree_base): Document nothrow_flag use
|
||
in DECL_NONALIASED.
|
||
* tree.h (DECL_NONALIASED): New.
|
||
(may_be_aliased): Adjust.
|
||
* coverage.c (build_var): Set DECL_NONALIASED.
|
||
|
||
2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* expr.c (expand_expr_real_1): Remove outdated comment.
|
||
|
||
2014-03-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/60597
|
||
* ira.c (adjust_cleared_regs): Call copy_rtx on
|
||
*reg_equiv[REGNO (loc)].src_p before passing it to
|
||
simplify_replace_fn_rtx.
|
||
|
||
PR target/60568
|
||
* config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
|
||
into CONST, put pic register as first operand of PLUS. Use
|
||
gen_const_mem for both 32-bit and 64-bit PIC got loads.
|
||
|
||
2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
|
||
|
||
2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
|
||
around for store forwarding issue in the FPU on the UT699.
|
||
* config/sparc/sparc.md (in_branch_delay): Return false for single FP
|
||
loads and operations if -mfix-ut699 is specified.
|
||
(divtf3_hq): Tweak attribute.
|
||
(sqrttf2_hq): Likewise.
|
||
|
||
2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* calls.c (store_one_arg): Remove incorrect const qualification on the
|
||
type of the temporary.
|
||
* cfgexpand.c (expand_return): Likewise.
|
||
* expr.c (expand_constructor): Likewise.
|
||
(expand_expr_real_1): Likewise.
|
||
|
||
2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||
|
||
* config/arm/arm.c (arm_dwarf_register_span): Update the element number
|
||
of parts.
|
||
|
||
2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
|
||
|
||
PR target/60039
|
||
* config/sh/sh.md (udivsi3_i1): Clobber R1 register.
|
||
|
||
2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/arm/aarch-common-protos.h
|
||
(alu_cost_table): Fix spelling of "extend".
|
||
* config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
|
||
|
||
2014-03-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60553
|
||
* tree-core.h (tree_type_common): Re-order pointer members
|
||
to reduce recursion depth during GC walks.
|
||
|
||
2014-03-19 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR sanitizer/60569
|
||
* ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
|
||
before accessing it.
|
||
|
||
2014-03-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/59543
|
||
* lto-streamer-in.c (input_function): In WPA stage do not drop
|
||
debug stmts.
|
||
|
||
2014-03-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/60559
|
||
* vectorizable_mask_load_store): Replace scalar MASK_LOAD
|
||
with build_zero_cst assignment.
|
||
|
||
2014-03-18 Kai Tietz <ktietz@redhat.com>
|
||
|
||
PR rtl-optimization/56356
|
||
* sdbout.c (sdbout_parms): Verify that parms'
|
||
incoming argument is valid.
|
||
(sdbout_reg_parms): Likewise.
|
||
|
||
2014-03-18 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/60562
|
||
* config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
|
||
be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
|
||
(*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
|
||
|
||
2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
|
||
|
||
* plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
|
||
* doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
|
||
Italicize plugin event names in description. Explain that
|
||
PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
|
||
Remind that no GCC functions should be called after PLUGIN_FINISH.
|
||
Explain what pragmas with expansion are.
|
||
|
||
2014-03-18 Martin Liska <mliska@suse.cz>
|
||
|
||
* cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
|
||
gimple call statement is update.
|
||
* gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
|
||
GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
|
||
|
||
2014-03-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/60557
|
||
* ubsan.c (ubsan_instrument_unreachable): Call
|
||
initialize_sanitizer_builtins.
|
||
(ubsan_pass): Likewise.
|
||
|
||
PR sanitizer/60535
|
||
* ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
|
||
varpool_finalize_decl instead of rest_of_decl_compilation.
|
||
|
||
2014-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
|
||
by using bitmap_and_compl instead of bitmap_and_compl_into.
|
||
(df_rd_transfer_function): Likewise.
|
||
|
||
2014-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/lto.texi (fresolution): Fix typo.
|
||
|
||
2014-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/invoke.texi (flto): Update for changes in 4.9.
|
||
|
||
2014-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/loop.texi: Remove section on the removed lambda framework.
|
||
Update loop docs with recent changes in preserving loop structure.
|
||
|
||
2014-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/lto.texi (-fresolution): Document.
|
||
|
||
2014-03-18 Richard Biener <rguenther@suse.de>
|
||
|
||
* doc/contrib.texi: Adjust my name.
|
||
|
||
2014-03-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR ipa/58721
|
||
* internal-fn.c: Include diagnostic-core.h.
|
||
(expand_BUILTIN_EXPECT): New function.
|
||
* gimplify.c (gimplify_call_expr): Use false instead of FALSE.
|
||
(gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
|
||
IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
|
||
* ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
|
||
IFN_BUILTIN_EXPECT.
|
||
* predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
|
||
Revert 3 argument __builtin_expect code.
|
||
(strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
|
||
* gimple-fold.c (gimple_fold_call): Likewise.
|
||
* tree.h (fold_builtin_expect): New prototype.
|
||
* builtins.c (build_builtin_expect_predicate): Add predictor
|
||
argument, if non-NULL, create 3 argument __builtin_expect.
|
||
(fold_builtin_expect): No longer static. Add ARG2 argument,
|
||
pass it through to build_builtin_expect_predicate.
|
||
(fold_builtin_2): Adjust caller.
|
||
(fold_builtin_3): Handle BUILT_IN_EXPECT.
|
||
* internal-fn.def (BUILTIN_EXPECT): New.
|
||
|
||
2014-03-18 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR ipa/58721
|
||
* predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
|
||
PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
|
||
PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
|
||
|
||
2014-03-18 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/58721
|
||
* predict.c (combine_predictions_for_bb): Fix up formatting.
|
||
(expr_expected_value_1, expr_expected_value): Add predictor argument,
|
||
fill what it points to if non-NULL.
|
||
(tree_predict_by_opcode): Adjust caller, use the predictor.
|
||
* predict.def (PRED_COMPARE_AND_SWAP): Add.
|
||
|
||
2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
|
||
proper constant for the store mode.
|
||
|
||
2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
|
||
|
||
* symtab.c (change_decl_assembler_name): Fix transparent alias
|
||
chain construction.
|
||
|
||
2014-03-16 Renlin Li <Renlin.Li@arm.com>
|
||
|
||
* config/aarch64/aarch64.c: Correct the comments about the
|
||
aarch64 stack layout.
|
||
|
||
2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
|
||
check for GF_OMP_FOR_KIND_FOR.
|
||
|
||
2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
|
||
|
||
* config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
|
||
ymm and zmm register names.
|
||
|
||
2014-03-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/60516
|
||
* config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
|
||
note creation for the 2010-08-31 changes.
|
||
|
||
2014-03-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR middle-end/60534
|
||
* omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
|
||
as -fno-tree-loop-vectorize.
|
||
(expand_omp_simd): Likewise.
|
||
|
||
2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/sparc/sparc-protos.h (tls_call_delay): Delete.
|
||
(eligible_for_call_delay): New prototype.
|
||
* config/sparc/sparc.c (tls_call_delay): Rename into...
|
||
(eligible_for_call_delay): ...this. Return false if the instruction
|
||
cannot be put in the delay slot of a branch.
|
||
(eligible_for_restore_insn): Simplify.
|
||
(eligible_for_return_delay): Return false if the instruction cannot be
|
||
put in the delay slot of a branch and simplify.
|
||
(eligible_for_sibcall_delay): Return false if the instruction cannot be
|
||
put in the delay slot of a branch.
|
||
* config/sparc/sparc.md (fix_ut699): New attribute.
|
||
(tls_call_delay): Delete.
|
||
(in_call_delay): Reimplement.
|
||
(eligible_for_sibcall_delay): Rename into...
|
||
(in_sibcall_delay): ...this.
|
||
(eligible_for_return_delay): Rename into...
|
||
(in_return_delay): ...this.
|
||
(in_branch_delay): Reimplement.
|
||
(in_uncond_branch_delay): Delete.
|
||
(in_annul_branch_delay): Delete.
|
||
|
||
2014-03-14 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/60525
|
||
* config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
|
||
define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
|
||
(*floathi<X87MODEF>2_i387_with_temp): Remove.
|
||
(floathi splitters): Remove.
|
||
(float<SWI48x>xf2): New pattern.
|
||
(float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
|
||
code that tried to handle DImode for 32-bit, but which was excluded
|
||
by the pattern's condition. Drop allocation of stack temporary.
|
||
(*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
|
||
(*float<SWI48><MODEF>2_mixed_with_temp): Remove.
|
||
(*float<SWI48><MODEF>2_mixed_interunit): Remove.
|
||
(*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
|
||
(*floatsi<MODEF>2_vector_sse_with_temp): Remove.
|
||
(*float<SWI48><MODEF>2_sse_with_temp): Remove.
|
||
(*float<SWI48><MODEF>2_sse_interunit): Remove.
|
||
(*float<SWI48><MODEF>2_sse_nointerunit): Remove.
|
||
(*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
|
||
(*float<SWI48x><X87MODEF>2_i387): Remove.
|
||
(all float _with_temp splitters): Remove.
|
||
(*float<SWI48x><MODEF>2_i387): New pattern.
|
||
(*float<SWI48><MODEF>2_sse): New pattern.
|
||
(float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
|
||
(float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
|
||
|
||
2014-03-14 Jakub Jelinek <jakub@redhat.com>
|
||
Marek Polacek <polacek@redhat.com>
|
||
|
||
PR middle-end/60484
|
||
* common.opt (dump_base_name_prefixed): New Variable.
|
||
* opts.c (finish_options): Don't prepend directory to x_dump_base_name
|
||
if x_dump_base_name_prefixed is already set, set it at the end.
|
||
|
||
2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/60508
|
||
* lra-constraints.c (get_reload_reg): Add new parameter
|
||
in_subreg_p.
|
||
(process_addr_reg, simplify_operand_subreg, curr_insn_transform):
|
||
Pass the new parameter values.
|
||
|
||
2014-03-14 Richard Biener <rguenther@suse.de>
|
||
|
||
* common.opt: Revert unintented changes from r205065.
|
||
* opts.c: Likewise.
|
||
|
||
2014-03-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60518
|
||
* cfghooks.c (split_block): Properly adjust all loops the
|
||
block was a latch of.
|
||
|
||
2014-03-14 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR lto/60461
|
||
* ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
|
||
and simplify it.
|
||
|
||
2014-03-14 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/59396
|
||
* config/avr/avr.c (avr_set_current_function): Pass function name
|
||
through default_strip_name_encoding before sanity checking instead
|
||
of skipping the first char of the assembler name.
|
||
|
||
2014-03-13 Richard Henderson <rth@redhat.com>
|
||
|
||
PR debug/60438
|
||
* config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
|
||
(ix86_force_to_memory, ix86_free_from_memory): Remove.
|
||
* config/i386/i386-protos.h: Likewise.
|
||
* config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
|
||
in the expander instead of a splitter.
|
||
(float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
|
||
any possibility of requiring a memory.
|
||
(*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
|
||
(*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
|
||
(fp branch splitters): Update for ix86_split_fp_branch.
|
||
(*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
|
||
(*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
|
||
(splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
|
||
(*fop_<MODEF>_2_i387): Remove f/r alternative.
|
||
(*fop_<MODEF>_3_i387): Likewise.
|
||
(*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
|
||
(splitters for the fop_* register patterns): Remove.
|
||
(fscalexf4_i387): Rename from *fscalexf4_i387.
|
||
(ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
|
||
|
||
2014-03-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/59779
|
||
* tree-dfa.c (get_ref_base_and_extent): Use double_int
|
||
type for bitsize and maxsize instead of HOST_WIDE_INT.
|
||
|
||
2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
|
||
|
||
PR rtl-optimization/57320
|
||
* function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
|
||
the CFG after thread_prologue_and_epilogue_insns.
|
||
|
||
2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/57189
|
||
* lra-constraints.c (process_alt_operands): Disfavor spilling
|
||
vector pseudos.
|
||
|
||
2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
|
||
|
||
* lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
|
||
|
||
2014-03-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/59025
|
||
PR middle-end/60418
|
||
* tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
|
||
same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
|
||
|
||
2014-03-13 Georg-Johann Lay <avr@gjlay.de>
|
||
|
||
PR target/60486
|
||
* config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
|
||
calls of avr_out_plus_1.
|
||
|
||
2014-03-13 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
|
||
BB's single pred and update the father loop's latch info later.
|
||
|
||
2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
|
||
(VEC_M): Likewise.
|
||
(VEC_N): Likewise.
|
||
(VEC_R): Likewise.
|
||
(VEC_base): Likewise.
|
||
(mov<MODE>, VEC_M modes): If we are loading TImode into VSX
|
||
registers, we need to swap double words in little endian mode.
|
||
|
||
* config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
|
||
to be a container mode for 128-bit integer operations added in ISA
|
||
2.07. Unlike TImode and PTImode, the preferred register set is
|
||
the Altivec/VMX registers for the 128-bit operations.
|
||
|
||
* config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
|
||
declarations.
|
||
(rs6000_split_128bit_ok_p): Likewise.
|
||
|
||
* config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
|
||
macros for creating ISA 2.07 normal and overloaded builtin
|
||
functions with 3 arguments.
|
||
(BU_P8V_OVERLOAD_3): Likewise.
|
||
(VPERM_1T): Add support for V1TImode in 128-bit vector operations
|
||
for use as overloaded functions.
|
||
(VPERM_1TI_UNS): Likewise.
|
||
(VSEL_1TI): Likewise.
|
||
(VSEL_1TI_UNS): Likewise.
|
||
(ST_INTERNAL_1ti): Likewise.
|
||
(LD_INTERNAL_1ti): Likewise.
|
||
(XXSEL_1TI): Likewise.
|
||
(XXSEL_1TI_UNS): Likewise.
|
||
(VPERM_1TI): Likewise.
|
||
(VPERM_1TI_UNS): Likewise.
|
||
(XXPERMDI_1TI): Likewise.
|
||
(SET_1TI): Likewise.
|
||
(LXVD2X_V1TI): Likewise.
|
||
(STXVD2X_V1TI): Likewise.
|
||
(VEC_INIT_V1TI): Likewise.
|
||
(VEC_SET_V1TI): Likewise.
|
||
(VEC_EXT_V1TI): Likewise.
|
||
(EQV_V1TI): Likewise.
|
||
(NAND_V1TI): Likewise.
|
||
(ORC_V1TI): Likewise.
|
||
(VADDCUQ): Add support for 128-bit integer arithmetic instructions
|
||
added in ISA 2.07. Add both normal 'altivec' builtins, and the
|
||
overloaded builtin.
|
||
(VADDUQM): Likewise.
|
||
(VSUBCUQ): Likewise.
|
||
(VADDEUQM): Likewise.
|
||
(VADDECUQ): Likewise.
|
||
(VSUBEUQM): Likewise.
|
||
(VSUBECUQ): Likewise.
|
||
|
||
* config/rs6000/rs6000-c.c (__int128_type): New static to hold
|
||
__int128_t and __uint128_t types.
|
||
(__uint128_type): Likewise.
|
||
(altivec_categorize_keyword): Add support for vector __int128_t,
|
||
vector __uint128_t, vector __int128, and vector unsigned __int128
|
||
as a container type for TImode operations that need to be done in
|
||
VSX/Altivec registers.
|
||
(rs6000_macro_to_expand): Likewise.
|
||
(altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
|
||
to support 128-bit integer instructions vaddcuq, vadduqm,
|
||
vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
|
||
(altivec_resolve_overloaded_builtin): Add support for V1TImode.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
|
||
for V1TImode, and set up preferences to use VSX/Altivec registers.
|
||
Setup VSX reload handlers.
|
||
(rs6000_debug_reg_global): Likewise.
|
||
(rs6000_init_hard_regno_mode_ok): Likewise.
|
||
(rs6000_preferred_simd_mode): Likewise.
|
||
(vspltis_constant): Do not allow V1TImode as easy altivec constants.
|
||
(easy_altivec_constant): Likewise.
|
||
(output_vec_const_move): Likewise.
|
||
(rs6000_expand_vector_set): Convert V1TImode set and extract to
|
||
simple move.
|
||
(rs6000_expand_vector_extract): Likewise.
|
||
(reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
|
||
addressing.
|
||
(rs6000_const_vec): Add support for V1TImode.
|
||
(rs6000_emit_le_vsx_load): Swap double words when loading or
|
||
storing TImode/V1TImode.
|
||
(rs6000_emit_le_vsx_store): Likewise.
|
||
(rs6000_emit_le_vsx_move): Likewise.
|
||
(rs6000_emit_move): Add support for V1TImode.
|
||
(altivec_expand_ld_builtin): Likewise.
|
||
(altivec_expand_st_builtin): Likewise.
|
||
(altivec_expand_vec_init_builtin): Likewise.
|
||
(altivec_expand_builtin): Likewise.
|
||
(rs6000_init_builtins): Add support for V1TImode type. Add
|
||
support for ISA 2.07 128-bit integer builtins. Define type names
|
||
for the VSX/Altivec vector types.
|
||
(altivec_init_builtins): Add support for overloaded vector
|
||
functions with V1TImode type.
|
||
(rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
|
||
(rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
|
||
external function.
|
||
(rs6000_split_128bit_ok_p): Likewise.
|
||
(rs6000_handle_altivec_attribute): Create V1TImode from vector
|
||
__int128_t and vector __uint128_t.
|
||
|
||
* config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
|
||
and mode attributes.
|
||
(VSX_M): Likewise.
|
||
(VSX_M2): Likewise.
|
||
(VSm): Likewise.
|
||
(VSs): Likewise.
|
||
(VSr): Likewise.
|
||
(VSv): Likewise.
|
||
(VS_scalar): Likewise.
|
||
(VS_double): Likewise.
|
||
(vsx_set_v1ti): New builtin function to create V1TImode from TImode.
|
||
|
||
* config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
|
||
we support the ISA 2.07 128-bit integer arithmetic instructions.
|
||
(ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
|
||
(enum rs6000_builtin_type_index): Add fields to hold V1TImode
|
||
and TImode types for use with the builtin functions.
|
||
(V1TI_type_node): Likewise.
|
||
(unsigned_V1TI_type_node): Likewise.
|
||
(intTI_type_internal_node): Likewise.
|
||
(uintTI_type_internal_node): Likewise.
|
||
|
||
* config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
|
||
128-bit builtin functions.
|
||
(UNSPEC_VADDEUQM): Likewise.
|
||
(UNSPEC_VADDECUQ): Likewise.
|
||
(UNSPEC_VSUBCUQ): Likewise.
|
||
(UNSPEC_VSUBEUQM): Likewise.
|
||
(UNSPEC_VSUBECUQ): Likewise.
|
||
(VM): Add V1TImode to vector mode iterators.
|
||
(VM2): Likewise.
|
||
(VI_unit): Likewise.
|
||
(altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
|
||
(altivec_vaddcuq): Likewise.
|
||
(altivec_vsubuqm): Likewise.
|
||
(altivec_vsubcuq): Likewise.
|
||
(altivec_vaddeuqm): Likewise.
|
||
(altivec_vaddecuq): Likewise.
|
||
(altivec_vsubeuqm): Likewise.
|
||
(altivec_vsubecuq): Likewise.
|
||
|
||
* config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
|
||
mode iterators.
|
||
(BOOL_128): Likewise.
|
||
(BOOL_REGS_OUTPUT): Likewise.
|
||
(BOOL_REGS_OP1): Likewise.
|
||
(BOOL_REGS_OP2): Likewise.
|
||
(BOOL_REGS_UNARY): Likewise.
|
||
(BOOL_REGS_AND_CR0): Likewise.
|
||
|
||
* config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
|
||
128-bit integer builtin support.
|
||
(vec_vadduqm): Likewise.
|
||
(vec_vaddecuq): Likewise.
|
||
(vec_vaddeuqm): Likewise.
|
||
(vec_vsubecuq): Likewise.
|
||
(vec_vsubeuqm): Likewise.
|
||
(vec_vsubcuq): Likewise.
|
||
(vec_vsubuqm): Likewise.
|
||
|
||
* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
|
||
Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
|
||
vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
|
||
128-bit integer add/subtract to ISA 2.07.
|
||
|
||
2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/arc/arc.c (arc_predicate_delay_insns):
|
||
Fix third argument passed to conditionalize_nonjump.
|
||
|
||
2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
|
||
|
||
* config/aarch64/aarch64-builtins.c
|
||
(aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
|
||
BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
|
||
* config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
|
||
instead of __builtin_lfloor.
|
||
(vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
|
||
|
||
2014-03-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-ssa-ifcombine.c (forwarder_block_to): New function.
|
||
(tree_ssa_ifcombine_bb_1): New function.
|
||
(tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
|
||
is an empty forwarder block to then_bb or vice versa and then_bb
|
||
and else_bb are effectively swapped.
|
||
|
||
2014-03-12 Christian Bruel <christian.bruel@st.com>
|
||
|
||
PR target/60264
|
||
* config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
|
||
REG_CFA_DEF_CFA note.
|
||
(arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
|
||
(arm_unwind_emit): Allow REG_CFA_DEF_CFA.
|
||
|
||
2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||
|
||
PR tree-optimization/60454
|
||
* tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
|
||
|
||
2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
|
||
Do not define target_cpu_default2 to generic.
|
||
* config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
|
||
* config/aarch64/aarch64.c (aarch64_override_options): Update comment.
|
||
* config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
|
||
|
||
2014-03-12 Jakub Jelinek <jakub@redhat.com>
|
||
Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR tree-optimization/60502
|
||
* tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
|
||
instead of build_low_bits_mask.
|
||
|
||
2014-03-12 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/60482
|
||
* tree-vrp.c (register_edge_assert_for_1): Don't add assert
|
||
if there are multiple uses, but op doesn't live on E edge.
|
||
* tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
|
||
clobber stmts before __builtin_unreachable.
|
||
|
||
2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* builtins.c (expand_builtin_setjmp_receiver): Use and clobber
|
||
hard_frame_pointer_rtx.
|
||
* cse.c (cse_insn): Remove volatile check.
|
||
* cselib.c (cselib_process_insn): Likewise.
|
||
* dse.c (scan_insn): Likewise.
|
||
|
||
2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/arc/arc.c (conditionalize_nonjump): New function,
|
||
broken out of ...
|
||
(arc_ifcvt): ... this.
|
||
(arc_predicate_delay_insns): Use it.
|
||
|
||
2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/arc/predicates.md (extend_operand): During/after reload,
|
||
allow const_int_operand.
|
||
* config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
|
||
(umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
|
||
(mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
|
||
to "i".
|
||
(umulsi3_highpart_i): Likewise.
|
||
|
||
2014-03-11 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa-structalias.c (get_constraint_for_ptr_offset):
|
||
Add asserts to guard possible wrong-code bugs.
|
||
|
||
2014-03-11 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60429
|
||
PR tree-optimization/60485
|
||
* tree-ssa-structalias.c (set_union_with_increment): Properly
|
||
take into account all fields that overlap the shifted vars.
|
||
(do_sd_constraint): Likewise.
|
||
(do_ds_constraint): Likewise.
|
||
(get_constraint_for_ptr_offset): Likewise.
|
||
|
||
2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
|
||
|
||
* config/nios2/nios2.c (machine_function): Add fp_save_offset field.
|
||
(nios2_compute_frame_layout):
|
||
Add calculation of cfun->machine->fp_save_offset.
|
||
(nios2_expand_prologue): Correct setting of frame pointer register
|
||
in prologue.
|
||
(nios2_expand_epilogue): Update recovery of stack pointer from
|
||
frame pointer accordingly.
|
||
(nios2_initial_elimination_offset): Update calculation of offset
|
||
for eliminating to HARD_FRAME_POINTER_REGNUM.
|
||
|
||
2014-03-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR ipa/60457
|
||
* ipa.c (symtab_remove_unreachable_nodes): Don't call
|
||
cgraph_get_create_node on VAR_DECLs.
|
||
|
||
2014-03-10 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60474
|
||
* tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
|
||
|
||
2014-03-08 Douglas B Rupp <rupp@gnat.com>
|
||
|
||
* config/vms/vms.opt (vms_float_format): New variable.
|
||
|
||
2014-03-08 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* doc/invoke.texi (-fcilkplus): Update implementation status.
|
||
|
||
2014-03-08 Paulo Matos <paulo@matos-sorge.com>
|
||
Richard Biener <rguenther@suse.de>
|
||
|
||
* lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
|
||
consistently accross all TUs.
|
||
(run_gcc): Enable -fshort-double automatically at link at link-time
|
||
and disallow override.
|
||
|
||
2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR target/58271
|
||
* config/mips/mips.c (mips_option_override): Promote -mpaired-single
|
||
warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
|
||
if they can't be used.
|
||
|
||
2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
|
||
for Solaris 11/x86 ld.
|
||
* configure: Regenerate.
|
||
|
||
2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
* configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
|
||
(LIB_TLS_SPEC): Save as ld_tls_libs.
|
||
(HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
|
||
(HAVE_AS_IX86_TLSLDM): New test.
|
||
* configure, config.in: Regenerate.
|
||
* config/i386/i386.c (legitimize_tls_address): Fall back to
|
||
TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
|
||
cannot support TLS_MODEL_LOCAL_DYNAMIC.
|
||
* config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
|
||
instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
|
||
|
||
2014-03-07 Paulo Matos <paulo@matos-sorge.com>
|
||
|
||
* common.opt (fira-loop-pressure): Mark as optimization.
|
||
|
||
2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
|
||
an OpenMP mappable type.
|
||
|
||
2014-03-06 Matthias Klose <doko@ubuntu.com>
|
||
|
||
* Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
|
||
MULTILIB_OSDIRNAMES is not defined.
|
||
|
||
2014-03-06 Jakub Jelinek <jakub@redhat.com>
|
||
Meador Inge <meadori@codesourcery.com>
|
||
|
||
PR target/58595
|
||
* config/arm/arm.c (arm_tls_symbol_p): Remove.
|
||
(arm_legitimize_address): Call legitimize_tls_address for any
|
||
arm_tls_referenced_p expression, handle constant addend. Call it
|
||
before testing for !TARGET_ARM.
|
||
(thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
|
||
|
||
2014-03-06 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60445
|
||
PR lto/60424
|
||
PR lto/60427
|
||
Revert
|
||
2014-03-04 Paulo Matos <paulo@matos-sorge.com>
|
||
|
||
* tree-streamer.c (record_common_node): Assert we don't record
|
||
nodes with type double.
|
||
(preload_common_node): Skip type double, complex double and double
|
||
pointer since it is now frontend dependent due to fshort-double option.
|
||
|
||
2014-03-06 Richard Biener <rguenther@suse.de>
|
||
|
||
* gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
|
||
or -fno-lto is specified and the linker has full plugin support.
|
||
* collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
|
||
(main): Remove -flto processing, adjust lto_mode using use_plugin late.
|
||
* lto-wrapper.c (merge_and_complain): Merge compile-time
|
||
optimization levels.
|
||
(run_gcc): And pass it through to the link options.
|
||
|
||
2014-03-06 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR debug/60381
|
||
Revert:
|
||
2014-02-28 Alexandre Oliva <aoliva@redhat.com>
|
||
PR debug/59992
|
||
* cselib.c (remove_useless_values): Skip to avoid quadratic
|
||
behavior if the condition moved from...
|
||
(cselib_process_insn): ... here holds.
|
||
|
||
2014-03-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR plugins/59335
|
||
* Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
|
||
ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
|
||
|
||
PR plugins/59335
|
||
* config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
|
||
(TM_H): Add x86-tune.def.
|
||
|
||
2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (generic_tunings):
|
||
Use cortexa57_extra_costs.
|
||
|
||
2014-03-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR lto/60404
|
||
* cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
|
||
of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
|
||
* tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
|
||
cost for in_lto_p.
|
||
|
||
2014-03-04 Heiher <r@hev.cc>
|
||
|
||
* config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
|
||
* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
|
||
|
||
2014-03-04 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/predicates.md (const2356_operand): Change to ...
|
||
(const2367_operand): ... this.
|
||
* config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
|
||
const2367_operand.
|
||
(*avx512pf_scatterpf<mode>sf_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>sf): Ditto.
|
||
(avx512pf_scatterpf<mode>df): Ditto.
|
||
(*avx512pf_scatterpf<mode>df_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>df): Ditto.
|
||
* config/i386/i386.c (ix86_expand_builtin): Update
|
||
incorrect hint operand error message.
|
||
|
||
2014-03-04 Richard Biener <rguenther@suse.de>
|
||
|
||
* lto-section-in.c (lto_get_section_data): Fix const cast.
|
||
|
||
2014-03-04 Paulo Matos <paulo@matos-sorge.com>
|
||
|
||
* tree-streamer.c (record_common_node): Assert we don't record
|
||
nodes with type double.
|
||
(preload_common_node): Skip type double, complex double and double
|
||
pointer since it is now frontend dependent due to fshort-double option.
|
||
|
||
2014-03-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/60405
|
||
* lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
|
||
(lto_input_toplevel_asms): Likewise.
|
||
* lto-section-in.c (lto_get_section_data): Instead do it here
|
||
for every section.
|
||
|
||
2014-03-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60382
|
||
* tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
|
||
dead PHIs a reduction.
|
||
|
||
2014-03-03 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
|
||
hint value.
|
||
(_mm_prefetch): Move out of GCC target("sse") pragma.
|
||
* config/i386/prfchwintrin.h (_m_prefetchw): Move out of
|
||
GCC target("prfchw") pragma.
|
||
* config/i386/i386.md (prefetch): Emit prefetchwt1 only
|
||
for locality <= 2.
|
||
* config/i386/i386.c (ix86_option_override_internal): Enable
|
||
-mprfchw with -mprefetchwt1.
|
||
|
||
2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/arc/arc.md (casesi_load) <length attribute alternative 0>:
|
||
Mark as varying.
|
||
|
||
2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* opts.h (CL_PCH_IGNORE): Define.
|
||
* targhooks.c (option_affects_pch_p):
|
||
Return false for options that have CL_PCH_IGNORE set.
|
||
* opt-functions.awk: Process PchIgnore.
|
||
* doc/options.texi: Document PchIgnore.
|
||
|
||
* config/arc/arc.opt (misize): Add PchIgnore property.
|
||
|
||
2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
|
||
reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
|
||
constraint on constants to permit them being loaded into
|
||
GENERAL_REGS or BASE_REGS.
|
||
|
||
2014-03-03 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
|
||
anti-cacnonical alternatives.
|
||
(negandhi3_real): New pattern.
|
||
* config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
|
||
|
||
2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
||
|
||
* config/avr/avr-mcus.def: Remove atxmega16x1.
|
||
* config/avr/avr-tables.opt: Regenerate.
|
||
* config/avr/t-multilib: Regenerate.
|
||
* doc/avr-mmcu.texi: Regenerate.
|
||
|
||
2014-03-03 Tobias Grosser <tobias@grosser.es>
|
||
Mircea Namolaru <mircea.namolaru@inria.fr>
|
||
|
||
PR tree-optimization/58028
|
||
* graphite-clast-to-gimple.c (set_cloog_options): Don't remove
|
||
scalar dimensions.
|
||
|
||
2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||
|
||
* config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
|
||
not handled by recognizers.
|
||
|
||
2014-03-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/60175
|
||
* function.c (expand_function_end): Don't emit
|
||
clobber_return_register sequence if clobber_after is a BARRIER.
|
||
* cfgexpand.c (construct_exit_block): Append instructions before
|
||
return_label to prev_bb.
|
||
|
||
2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/constraints.md: Document reserved use of "wc".
|
||
|
||
2014-03-02 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/60150
|
||
* ipa.c (function_and_variable_visibility): When dissolving comdat
|
||
group, also set all symbols to local.
|
||
|
||
2014-03-02 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/60306
|
||
|
||
Revert:
|
||
2013-12-14 Jan Hubicka <jh@suse.cz>
|
||
PR middle-end/58477
|
||
* ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
|
||
|
||
2014-03-02 Jon Beniston <jon@beniston.com>
|
||
|
||
PR bootstrap/48230
|
||
PR bootstrap/50927
|
||
PR bootstrap/52466
|
||
PR target/46898
|
||
* config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
|
||
(TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
|
||
* config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
|
||
(simple_return, *simple_return): New patterns
|
||
* config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
|
||
* configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
|
||
|
||
2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
* dwarf2out.c (gen_subprogram_die): Tidy.
|
||
|
||
2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
|
||
|
||
PR target/60071
|
||
* config/sh/sh.md (*mov_t_msb_neg): Split into ...
|
||
(*mov_t_msb_neg_negc): ... this new insn.
|
||
|
||
2014-02-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/58678
|
||
* ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
|
||
function.
|
||
|
||
2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/60314
|
||
* dwarf2out.c (decltype_auto_die): New static.
|
||
(gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
|
||
(gen_type_die_with_usage): Handle 'decltype(auto)'.
|
||
(is_cxx_auto): Likewise.
|
||
|
||
2014-02-28 Ian Bolton <ian.bolton@arm.com>
|
||
|
||
* config/aarch64/aarch64.h: Define __ARM_NEON by default if
|
||
we are not using general regs only.
|
||
|
||
2014-02-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR target/60280
|
||
* tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
|
||
previous fix and only allow to remove trivial pre-headers
|
||
and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
|
||
(remove_forwarder_block): Properly update the latch of a loop.
|
||
|
||
2014-02-28 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR debug/59992
|
||
* cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
|
||
(cselib_preserved_hash_table): New.
|
||
(preserve_constants_and_equivs): Move preserved vals to it.
|
||
(cselib_find_slot): Look it up first.
|
||
(cselib_init): Initialize it.
|
||
(cselib_finish): Release it.
|
||
(dump_cselib_table): Dump it.
|
||
|
||
2014-02-28 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR debug/59992
|
||
* cselib.c (remove_useless_values): Skip to avoid quadratic
|
||
behavior if the condition moved from...
|
||
(cselib_process_insn): ... here holds.
|
||
|
||
2014-02-28 Alexandre Oliva <aoliva@redhat.com>
|
||
|
||
PR debug/57232
|
||
* var-tracking.c (vt_initialize): Apply the same condition to
|
||
preserve the CFA base value.
|
||
|
||
2014-02-28 Joey Ye <joey.ye@arm.com>
|
||
|
||
PR target/PR60169
|
||
* config/arm/arm.c (thumb_far_jump_used_p): Don't change
|
||
if reload in progress or completed.
|
||
|
||
2014-02-28 Tobias Burnus <burnus@net-b.de>
|
||
|
||
PR middle-end/60147
|
||
* tree-pretty-print.c (dump_generic_node, print_declaration): Handle
|
||
NAMELIST_DECL.
|
||
|
||
2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* doc/tm.texi.in (Condition Code Status): Update documention for
|
||
relative locations of cc0-setter and cc0-user.
|
||
|
||
2014-02-27 Jeff Law <law@redhat.com>
|
||
|
||
PR rtl-optimization/52714
|
||
* combine.c (try_combine): When splitting an unrecognized PARALLEL
|
||
into two independent simple sets, if I3 is a jump, ensure the
|
||
pattern we place into I3 is a (set (pc) ...).
|
||
|
||
2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
|
||
Jeff Law <law@redhat.com>
|
||
|
||
PR rtl-optimization/49847
|
||
* cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
|
||
are in different blocks.
|
||
* doc/tm.texi (Condition Code Status): Update documention for
|
||
relative locations of cc0-setter and cc0-user.
|
||
|
||
2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/59222
|
||
* lra.c (lra_emit_add): Check SUBREG too.
|
||
|
||
2014-02-27 Andreas Schwab <schwab@suse.de>
|
||
|
||
* config/m68k/m68k.c (m68k_option_override): Disable
|
||
-flive-range-shrinkage for classic m68k.
|
||
(m68k_override_options_after_change): Likewise.
|
||
|
||
2014-02-27 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR middle-end/59223
|
||
* tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
|
||
-Wmaybe-uninitialized.
|
||
|
||
2014-02-27 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/57936
|
||
* reload1.c (emit_input_reload_insns): When reload_override_in,
|
||
set old to rl->in_reg when rl->in_reg is a subreg.
|
||
|
||
2014-02-26 Richard Biener <rguenther@suse.de>
|
||
|
||
PR bootstrap/60343
|
||
* lra-assigns.c (spill_for): Avoid mixed-sign comparison.
|
||
|
||
2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* common/config/i386/predicates.md (const1256_operand): Remove.
|
||
(const2356_operand): New.
|
||
(const_1_to_2_operand): Remove.
|
||
* config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
|
||
(*avx512pf_gatherpf<mode>sf_mask): Ditto.
|
||
(*avx512pf_gatherpf<mode>sf): Ditto.
|
||
(avx512pf_gatherpf<mode>df): Ditto.
|
||
(*avx512pf_gatherpf<mode>df_mask): Ditto.
|
||
(*avx512pf_gatherpf<mode>df): Ditto.
|
||
(avx512pf_scatterpf<mode>sf): Ditto.
|
||
(*avx512pf_scatterpf<mode>sf_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>sf): Ditto.
|
||
(avx512pf_scatterpf<mode>df): Ditto.
|
||
(*avx512pf_scatterpf<mode>df_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>df): Ditto.
|
||
* common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
|
||
|
||
2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
|
||
(_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
|
||
(_mm512_mask_testn_epi64_mask): Move to ...
|
||
* config/i386/avx512cdintrin.h: Here.
|
||
* config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
|
||
* config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
|
||
(avx512f_scalef<mode><mask_name><round_name>): Ditto.
|
||
(avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
|
||
TARGET_AVX512F from TARGET_AVX512CD.
|
||
|
||
2014-02-26 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/60327
|
||
* ipa.c (walk_polymorphic_call_targets): Properly guard
|
||
call to inline_update_overall_summary.
|
||
|
||
2014-02-26 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
PR target/60280
|
||
* tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
|
||
and latches only if requested. Fix latch if it is removed.
|
||
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
|
||
LOOPS_HAVE_PREHEADERS.
|
||
|
||
2014-02-25 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* builtins.c (expand_builtin_thread_pointer): Create a new target
|
||
when the target is NULL.
|
||
|
||
2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/60317
|
||
* params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
|
||
* params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
|
||
* lra-assigns.c: Include params.h.
|
||
(spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
|
||
other reload pseudos considerations.
|
||
|
||
2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/vector.md (*vector_unordered<mode>): Change split
|
||
to use canonical form for nor<mode>3.
|
||
|
||
2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
PR target/55426
|
||
* config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
|
||
conversions.
|
||
|
||
2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
|
||
(OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
|
||
(ix86_handle_option): Handle OPT_mprefetchwt1.
|
||
* config/i386/cpuid.h (bit_PREFETCHWT1): New.
|
||
* config/i386/driver-i386.c (host_detect_local_cpu): Detect
|
||
PREFETCHWT1 CPUID.
|
||
* config/i386/i386-c.c (ix86_target_macros_internal): Handle
|
||
OPTION_MASK_ISA_PREFETCHWT1.
|
||
* config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
|
||
(PTA_PREFETCHWT1): New.
|
||
(ix86_option_override_internal): Handle PTA_PREFETCHWT1.
|
||
(ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
|
||
* config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
|
||
* config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
|
||
(*prefetch_avx512pf_<mode>_: Change into ...
|
||
(*prefetch_prefetchwt1_<mode>: This.
|
||
* config/i386/i386.opt (mprefetchwt1): New.
|
||
* config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
|
||
(_mm_prefetch): Handle intent to write.
|
||
* doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
|
||
|
||
2014-02-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60291
|
||
* emit-rtl.c (mem_attrs_htab): Remove.
|
||
(mem_attrs_htab_hash): Likewise.
|
||
(mem_attrs_htab_eq): Likewise.
|
||
(set_mem_attrs): Always allocate new mem-attrs when something changed.
|
||
(init_emit_once): Do not allocate mem_attrs_htab.
|
||
|
||
2014-02-25 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/60319
|
||
* lto-opts.c (lto_write_options): Output non-explicit conservative
|
||
-fwrapv, -fno-trapv and -fno-strict-overflow.
|
||
* lto-wrapper.c (merge_and_complain): Handle merging those options.
|
||
(run_gcc): And pass them through.
|
||
|
||
2014-02-25 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
* sel-sched.c (calculate_new_fences): New parameter ptime.
|
||
Calculate it as a maximum over all fence cycles.
|
||
(sel_sched_region_2): Adjust the call to calculate_new_fences.
|
||
Print the final schedule timing when sched_verbose.
|
||
|
||
2014-02-25 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
PR rtl-optimization/60292
|
||
* sel-sched.c (fill_vec_av_set): Do not reset target availability
|
||
bit fot the fence instruction.
|
||
|
||
2014-02-24 Alangi Derick <alangiderick@gmail.com>
|
||
|
||
* calls.h: Fix typo in comment.
|
||
|
||
2014-02-24 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
* config/pa/pa.c (pa_output_move_double): Don't valididate when
|
||
adjusting offsetable addresses.
|
||
|
||
2014-02-24 Guozhi Wei <carrot@google.com>
|
||
|
||
* sparseset.h (sparseset_pop): Fix the wrong index.
|
||
|
||
2014-02-24 Walter Lee <walt@tilera.com>
|
||
|
||
* config.gcc (tilepro-*-*): Change to tilepro*-*-*.
|
||
(tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
|
||
triplet.
|
||
* common/config/tilegx/tilegx-common.c
|
||
(TARGET_DEFAULT_TARGET_FLAGS): Define.
|
||
* config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
|
||
(LINK_SPEC): Ditto.
|
||
* config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
|
||
* config/tilegx/tilegx.c (tilegx_return_in_msb): New.
|
||
(tilegx_gimplify_va_arg_expr): Handle big endian.
|
||
(tilegx_expand_unaligned_load): Ditto.
|
||
(tilegx_expand_unaligned_store): Ditto.
|
||
(TARGET_RETURN_IN_MSB): New.
|
||
* config/tilegx/tilegx.h (TARGET_DEFAULT): New.
|
||
(TARGET_ENDIAN_DEFAULT): New.
|
||
(TARGET_BIG_ENDIAN): Handle big endian.
|
||
(BYTES_BIG_ENDIAN): Ditto.
|
||
(WORDS_BIG_ENDIAN): Ditto.
|
||
(FLOAT_WORDS_BIG_ENDIAN): Ditto.
|
||
(ENDIAN_SPEC): New.
|
||
(EXTRA_SPECS): New.
|
||
* config/tilegx/tilegx.md (extv): Handle big endian.
|
||
(extzv): Ditto.
|
||
(insn_st<n>): Ditto.
|
||
(insn_st<n>_add<bitsuffix>): Ditto.
|
||
(insn_stnt<n>): Ditto.
|
||
(insn_stnt<n>_add<bitsuffix>):Ditto.
|
||
(vec_interleave_highv8qi): Handle big endian.
|
||
(vec_interleave_highv8qi_be): New.
|
||
(vec_interleave_highv8qi_le): New.
|
||
(insn_v1int_h): Handle big endian.
|
||
(vec_interleave_lowv8qi): Handle big endian.
|
||
(vec_interleave_lowv8qi_be): New.
|
||
(vec_interleave_lowv8qi_le): New.
|
||
(insn_v1int_l): Handle big endian.
|
||
(vec_interleave_highv4hi): Handle big endian.
|
||
(vec_interleave_highv4hi_be): New.
|
||
(vec_interleave_highv4hi_le): New.
|
||
(insn_v2int_h): Handle big endian.
|
||
(vec_interleave_lowv4hi): Handle big endian.
|
||
(vec_interleave_lowv4hi_be): New.
|
||
(vec_interleave_lowv4hi_le): New.
|
||
(insn_v2int_l): Handle big endian.
|
||
(vec_interleave_highv2si): Handle big endian.
|
||
(vec_interleave_highv2si_be): New.
|
||
(vec_interleave_highv2si_le): New.
|
||
(insn_v4int_h): Handle big endian.
|
||
(vec_interleave_lowv2si): Handle big endian.
|
||
(vec_interleave_lowv2si_be): New.
|
||
(vec_interleave_lowv2si_le): New.
|
||
(insn_v4int_l): Handle big endian.
|
||
* config/tilegx/tilegx.opt (mbig-endian): New option.
|
||
(mlittle-endian): New option.
|
||
* doc/install.texi: Document tilegxbe-linux.
|
||
* doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
|
||
|
||
2014-02-24 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/60266
|
||
* ipa-cp.c (propagate_constants_accross_call): Bail out early if
|
||
there are no parameter descriptors.
|
||
|
||
2014-02-24 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
PR rtl-optimization/60268
|
||
* sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
|
||
initialization to ...
|
||
(sched_rgn_init): ... here.
|
||
(schedule_region): Check for SCHED_PRESSURE_NONE earlier.
|
||
|
||
2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
|
||
names.
|
||
|
||
2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
|
||
definition.
|
||
|
||
2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
|
||
define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
|
||
|
||
2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* config/microblaze/predicates.md: Add cmp_op predicate.
|
||
* config/microblaze/microblaze.md: Add branch_compare instruction
|
||
which uses cmp_op predicate and emits cmp insn before branch.
|
||
* config/microblaze/microblaze.c (microblaze_emit_compare): Rename
|
||
to microblaze_expand_conditional_branch and consolidate logic.
|
||
(microblaze_expand_conditional_branch): emit branch_compare
|
||
insn instead of handling cmp op separate from branch insn.
|
||
|
||
2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
|
||
to permit subregs.
|
||
|
||
2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
|
||
define_insn with define_expand and new define_insn
|
||
*altivec_lve<VI_char>x_internal.
|
||
(altivec_stve<VI_char>x): Replace define_insn with define_expand
|
||
and new define_insn *altivec_stve<VI_char>x_internal.
|
||
* config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
|
||
prototype.
|
||
* config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
|
||
lve*x built-ins.
|
||
(altivec_expand_stvex_be): New function.
|
||
|
||
2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
|
||
|
||
* config/avr/avr.c (avr_can_eliminate): Allow elimination from
|
||
ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
|
||
* config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
|
||
ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
|
||
|
||
2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/60298
|
||
* lra-constraints.c (inherit_reload_reg): Use lra_emit_move
|
||
instead of emit_move_insn.
|
||
|
||
2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/altivec.md (altivec_vsumsws): Replace second
|
||
vspltw with vsldoi.
|
||
(reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
|
||
gen_altivec_vsumsws.
|
||
|
||
2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/altivec.md (altivec_lvxl): Rename as
|
||
*altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
|
||
(altivec_lvxl_<mode>): New define_expand incorporating
|
||
-maltivec=be semantics where needed.
|
||
(altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
|
||
(altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
|
||
semantics where needed.
|
||
(altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
|
||
(altivec_stvx_<mode>): New define_expand incorporating
|
||
-maltivec=be semantics where needed.
|
||
(altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
|
||
VM2 iterator instead of V4SI.
|
||
(altivec_stvxl_<mode>): New define_expand incorporating
|
||
-maltivec=be semantics where needed.
|
||
* config/rs6000/rs6000-builtin.def: Add new built-in definitions
|
||
LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
|
||
LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
|
||
STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
|
||
STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
|
||
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
|
||
ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
|
||
similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
|
||
ALTIVEC_BUILTIN_STVXL.
|
||
* config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
|
||
(altivec_expand_stvx_be): Likewise.
|
||
* config/rs6000/rs6000.c (swap_selector_for_mode): New function.
|
||
(altivec_expand_lvx_be): Likewise.
|
||
(altivec_expand_stvx_be): Likewise.
|
||
(altivec_expand_builtin): Add cases for
|
||
ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
|
||
ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
|
||
(altivec_init_builtins): Add definitions for
|
||
__builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
|
||
__builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
|
||
|
||
2014-02-21 Catherine Moore <clm@codesourcery.com>
|
||
|
||
* doc/invoke.texi (mvirt, mno-virt): Document.
|
||
* config/mips/mips.opt (mvirt): New option.
|
||
* config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
|
||
|
||
2014-02-21 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60276
|
||
* tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
|
||
(STMT_VINFO_MIN_NEG_DIST): New macro.
|
||
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
|
||
STMT_VINFO_MIN_NEG_DIST.
|
||
* tree-vect-stmts.c (vectorizable_load): Verify if assumptions
|
||
made for negative dependence distances still hold.
|
||
|
||
2014-02-21 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60291
|
||
* tree-ssa-live.c (mark_all_vars_used_1): Do not walk
|
||
DECL_INITIAL for globals not in the current function context.
|
||
|
||
2014-02-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/56490
|
||
* params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
|
||
* tree-ssa-uninit.c: Include params.h.
|
||
(compute_control_dep_chain): Add num_calls argument, return false
|
||
if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
|
||
num_calls to recursive call.
|
||
(find_predicates): Change dep_chain into normal array,
|
||
cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
|
||
variable and adjust compute_control_dep_chain caller.
|
||
(find_def_preds): Likewise.
|
||
|
||
2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
|
||
<case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
|
||
|
||
2014-02-21 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
|
||
(pushhi1): Likewise.
|
||
(popqi1): Add mode to pre_dec.
|
||
(pophi1): Likewise.
|
||
|
||
2014-02-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
|
||
mode for mask of V8SFmode permutation.
|
||
|
||
2014-02-20 Richard Henderson <rth@redhat.com>
|
||
|
||
PR c++/60272
|
||
* builtins.c (expand_builtin_atomic_compare_exchange): Always make
|
||
a new pseudo for OLDVAL.
|
||
|
||
2014-02-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/57896
|
||
* config/i386/i386.c (expand_vec_perm_interleave2): Don't call
|
||
gen_reg_rtx if d->testing_p.
|
||
(expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
|
||
if d->testing_p and we will certainly return true.
|
||
(expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
|
||
if d->testing_p.
|
||
|
||
2014-02-20 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* emit-rtl.c (gen_reg_rtx): Assert that
|
||
crtl->emit.regno_pointer_align_length is non-zero.
|
||
|
||
2014-02-20 Richard Henderson <rth@redhat.com>
|
||
|
||
PR c++/60272
|
||
* builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
|
||
on failure the store back into EXPECT.
|
||
|
||
2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
|
||
Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
|
||
* config/nios2/nios2.c (nios2_function_profiler): Add
|
||
-fPIC (flag_pic == 2) support.
|
||
(nios2_handle_custom_fpu_cfg): Fix warning parameter.
|
||
(nios2_large_offset_p): New function.
|
||
(nios2_unspec_reloc_p): Move up position, update to use
|
||
nios2_large_offset_p.
|
||
(nios2_unspec_address): Remove function.
|
||
(nios2_unspec_offset): New function.
|
||
(nios2_large_got_address): New function.
|
||
(nios2_got_address): Add large offset support.
|
||
(nios2_legitimize_tls_address): Update usage of removed and new
|
||
functions.
|
||
(nios2_symbol_binds_local_p): New function.
|
||
(nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
|
||
(nios2_legitimize_address): Update to use nios2_large_offset_p.
|
||
(nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
|
||
(nios2_print_operand): Merge H/L processing, add hiadj/lo
|
||
processing for (const (unspec ...)).
|
||
(nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
|
||
|
||
2014-02-20 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-cfg.c (replace_uses_by): Mark altered BBs before
|
||
doing the substitution.
|
||
(verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
|
||
|
||
2014-02-20 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/55260
|
||
* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
|
||
info when checking whether lattices are bottom.
|
||
|
||
2014-02-20 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60221
|
||
* tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
|
||
regions at -O0.
|
||
|
||
2014-02-20 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/58555
|
||
* ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
|
||
parameter specifying the scaling.
|
||
(inline_call): Update.
|
||
(want_inline_recursively): Guard division by zero.
|
||
(recursive_inlining): Update.
|
||
* ipa-inline.h (clone_inlined_nodes): Update.
|
||
|
||
2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
PR target/60204
|
||
* config/i386/i386.c (classify_argument): Pass structures of size
|
||
64 bytes or less in register.
|
||
|
||
2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
|
||
Kirill Yukhin <kirill.yukhin@intel.com>
|
||
|
||
* config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
|
||
(_mm_rcp28_round_ss): Ditto.
|
||
(_mm_rsqrt28_round_sd): Ditto.
|
||
(_mm_rsqrt28_round_ss): Ditto.
|
||
* config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
|
||
(_mm_rcp14_round_ss): Ditto.
|
||
(_mm_rsqrt14_round_sd): Ditto.
|
||
(_mm_rsqrt14_round_ss): Ditto.
|
||
* config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
|
||
the first input operand, get rid of match_dup.
|
||
(avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
|
||
attribute to sse.
|
||
(<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
|
||
Ditto.
|
||
(avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
|
||
operand as the first input operand, set type attribute.
|
||
(<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
|
||
Set type attribute.
|
||
(avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
|
||
operand as the first input operand, set type attribute.
|
||
|
||
2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (vspltis_constant): Fix most significant
|
||
bit of zero.
|
||
|
||
2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/60207
|
||
* config/i386/i386.c (construct_container): Remove TFmode check
|
||
for X86_64_INTEGER_CLASS.
|
||
|
||
2014-02-19 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/59794
|
||
* config/i386/i386.c (type_natural_mode): Warn for ABI changes
|
||
only when -Wpsabi is enabled.
|
||
|
||
2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
|
||
|
||
PR target/59799
|
||
* config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
|
||
passing arrays in registers are the same as for structs, so remove the
|
||
special case for them.
|
||
|
||
2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
|
||
destination type, extract only the valid bits if the source type is not
|
||
integral and has a different mode.
|
||
|
||
2014-02-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/60243
|
||
* tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
|
||
for all calls.
|
||
|
||
2014-02-19 Richard Biener <rguenther@suse.de>
|
||
|
||
PR ipa/60243
|
||
* ipa-prop.c: Include stringpool.h and tree-ssanames.h.
|
||
(ipa_modify_call_arguments): Emit an argument load explicitely and
|
||
preserve virtual SSA form there and for the replacement call.
|
||
Do not update SSA form nor free dominance info.
|
||
|
||
2014-02-18 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa.c (function_and_variable_visibility): Also clear WEAK
|
||
flag when disolving COMDAT_GROUP.
|
||
|
||
2014-02-18 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
|
||
* ipa-prop.c (ipa_set_jf_known_type): Return early when
|
||
not devirtualizing.
|
||
(ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
|
||
do more sanity checks.
|
||
(detect_type_change): Return true when giving up early.
|
||
(compute_complex_assign_jump_func): Fix type parameter of
|
||
ipa_set_ancestor_jf.
|
||
(compute_complex_ancestor_jump_func): Likewise.
|
||
(update_jump_functions_after_inlining): Fix updating of
|
||
ancestor function.
|
||
* ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
|
||
|
||
2014-02-18 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
|
||
inline clones when edge disappears.
|
||
|
||
2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/60203
|
||
* config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
|
||
Split 64-bit moves into 2 patterns. Do not allow the use of
|
||
direct move for TDmode in little endian, since the decimal value
|
||
has little endian bytes within a word, but the 64-bit pieces are
|
||
ordered in a big endian fashion, and normal subreg's of TDmode are
|
||
not allowed.
|
||
(mov<mode>_64bit_dm): Likewise.
|
||
(movtd_64bit_nodm): Likewise.
|
||
|
||
2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR tree-optimization/60174
|
||
* tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
|
||
statement of an SSA_NAME that occurs in an abnormal PHI node.
|
||
|
||
2014-02-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR sanitizer/60142
|
||
* final.c (SEEN_BB): Remove.
|
||
(SEEN_NOTE, SEEN_EMITTED): Renumber.
|
||
(final_scan_insn): Don't force_source_line on second
|
||
NOTE_INSN_BASIC_BLOCK.
|
||
|
||
2014-02-18 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/60205
|
||
* config/i386/i386.h (struct ix86_args): Add warn_avx512f.
|
||
* config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
|
||
(type_natural_mode): Warn ABI change when %zmm register is not
|
||
available for AVX512F vector value passing.
|
||
|
||
2014-02-18 Kai Tietz <ktietz@redhat.com>
|
||
|
||
PR target/60193
|
||
* config/i386/i386.c (ix86_expand_prologue): Use value in
|
||
rax register as displacement when restoring %r10 or %rax.
|
||
Fix wrong offset when restoring both registers.
|
||
|
||
2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
|
||
assertion with conditional return.
|
||
|
||
2014-02-18 Jakub Jelinek <jakub@redhat.com>
|
||
Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR driver/60233
|
||
* config/i386/driver-i386.c (host_detect_local_cpu): If
|
||
YMM state is not saved by the OS, also clear has_f16c. Move
|
||
CPUID 0x80000001 handling before YMM state saving checking.
|
||
|
||
2014-02-18 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
PR rtl-optimization/58960
|
||
* haifa-sched.c (alloc_global_sched_pressure_data): New,
|
||
factored out from ...
|
||
(sched_init): ... here.
|
||
(free_global_sched_pressure_data): New, factored out from ...
|
||
(sched_finish): ... here.
|
||
* sched-int.h (free_global_sched_pressure_data): Declare.
|
||
* sched-rgn.c (nr_regions_initial): New static global.
|
||
(haifa_find_rgns): Initialize it.
|
||
(schedule_region): Disable sched-pressure for the newly
|
||
generated regions.
|
||
|
||
2014-02-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
|
||
release SSA defs of pattern stmts.
|
||
|
||
2014-02-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-inline.c (expand_call_inline): Release the virtual
|
||
operand defined by the call we are about to inline.
|
||
|
||
2014-02-17 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
|
||
|
||
2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
|
||
Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
|
||
arguments order in builtin.
|
||
(_mm512_permutexvar_epi64): Ditto.
|
||
(_mm512_mask_permutexvar_epi64): Ditto
|
||
(_mm512_maskz_permutexvar_epi32): Ditto
|
||
(_mm512_permutexvar_epi32): Ditto
|
||
(_mm512_mask_permutexvar_epi32): Ditto
|
||
|
||
2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
|
||
(p8_vmrgow): Likewise.
|
||
|
||
2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
|
||
endian targets.
|
||
|
||
2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/60203
|
||
* config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
|
||
(mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
|
||
into 64-bit and 32-bit moves. On 64-bit moves, add support for
|
||
using direct move instructions on ISA 2.07. Also adjust
|
||
instruction length for 64-bit.
|
||
(mov<mode>_64bit, TFmode/TDmode): Likewise.
|
||
(mov<mode>_32bit, TFmode/TDmode): Likewise.
|
||
|
||
2014-02-15 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/58675
|
||
PR target/57935
|
||
* config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
|
||
find_replacement on parts of insn rtl that might be reloaded.
|
||
|
||
2014-02-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60183
|
||
* tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
|
||
(tree_ssa_phiprop): Calculate and free post-dominators.
|
||
|
||
2014-02-14 Jeff Law <law@redhat.com>
|
||
|
||
PR rtl-optimization/60131
|
||
* ree.c (get_extended_src_reg): New function.
|
||
(combine_reaching_defs): Use it rather than assuming location of REG.
|
||
(find_and_remove_re): Verify first operand of extension is
|
||
a REG before adding the insns to the copy list.
|
||
|
||
2014-02-14 Roland McGrath <mcgrathr@google.com>
|
||
|
||
* configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
|
||
* configure: Regenerated.
|
||
* config.in: Regenerated.
|
||
* config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
|
||
instead of ASM_SHORT.
|
||
|
||
2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
|
||
Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
PR rtl-optimization/59535
|
||
* lra-constraints.c (process_alt_operands): Encourage alternative
|
||
when unassigned pseudo class is superset of the alternative class.
|
||
(inherit_reload_reg): Don't inherit when optimizing for code size.
|
||
* config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
|
||
returning CORE_REGS for anything but Thumb1 and BASE_REGS for
|
||
modes not less than 4 for Thumb1.
|
||
|
||
2014-02-14 Kyle McMartin <kyle@redhat.com>
|
||
|
||
PR pch/60010
|
||
* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
|
||
|
||
2014-02-14 Richard Biener <rguenther@suse.de>
|
||
|
||
* cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
|
||
(get_frame_arg): Drop the assert with langhook types_compatible_p.
|
||
Do not strip INDIRECT_REFs.
|
||
|
||
2014-02-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/60179
|
||
* lto-streamer-out.c (DFS_write_tree_body): Do not follow
|
||
DECL_FUNCTION_SPECIFIC_TARGET.
|
||
(hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
|
||
* tree-streamer-out.c (pack_ts_target_option): Remove.
|
||
(streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
|
||
(write_ts_function_decl_tree_pointers): Do not stream
|
||
DECL_FUNCTION_SPECIFIC_TARGET.
|
||
* tree-streamer-in.c (unpack_ts_target_option): Remove.
|
||
(unpack_value_fields): Do not stream TS_TARGET_OPTION.
|
||
(lto_input_ts_function_decl_tree_pointers): Do not stream
|
||
DECL_FUNCTION_SPECIFIC_TARGET.
|
||
|
||
2014-02-14 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
|
||
(get_initial_def_for_induction, vectorizable_induction): Ignore
|
||
debug stmts when looking for exit_phi.
|
||
(vectorizable_live_operation): Fix up condition.
|
||
|
||
2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
|
||
|
||
* config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
|
||
nreverse() because it changes the content of original tree list.
|
||
|
||
2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
|
||
|
||
* config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
|
||
* config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
|
||
|
||
2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
|
||
|
||
* config/nds32/nds32.c (nds32_naked_function_p): Follow the
|
||
GNU coding standards.
|
||
|
||
2014-02-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/60152
|
||
* dwarf2out.c (gen_subprogram_die): Don't call
|
||
add_calling_convention_attribute if subr_die is old_die.
|
||
|
||
2014-02-13 Sharad Singhai <singhai@google.com>
|
||
|
||
* doc/optinfo.texi: Fix order of nodes.
|
||
|
||
2014-02-13 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
|
||
operands[2], not operands[3].
|
||
|
||
2014-02-13 Richard Biener <rguenther@suse.de>
|
||
|
||
PR bootstrap/59878
|
||
* doc/install.texi (ISL): Update recommended version to 0.12.2,
|
||
mention the possibility of an in-tree build.
|
||
(CLooG): Update recommended version to 0.18.1, mention the
|
||
possibility of an in-tree build and clarify that the ISL
|
||
bundled with CLooG does not work.
|
||
|
||
2014-02-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/43546
|
||
* expr.c (compress_float_constant): If x is a hard register,
|
||
extend into a pseudo and then move to x.
|
||
|
||
2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_asm_output_function_label): Fix crash
|
||
caused by bad second argument to warning_at() with -mhotpatch and
|
||
nested functions (e.g. with gfortran).
|
||
|
||
2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* opts.c (option_name): Remove "enabled by default" rider.
|
||
|
||
2014-02-12 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
* config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
|
||
|
||
2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
|
||
Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/60151
|
||
* configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
|
||
* configure: Regenerated.
|
||
|
||
2014-02-12 Richard Biener <rguenther@suse.de>
|
||
|
||
* vec.c (vec_prefix::calculate_allocation): Move as
|
||
inline variant to vec.h.
|
||
(vec_prefix::calculate_allocation_1): New out-of-line version.
|
||
* vec.h (vec_prefix::calculate_allocation_1): Declare.
|
||
(vec_prefix::m_has_auto_buf): Rename to ...
|
||
(vec_prefix::m_using_auto_storage): ... this.
|
||
(vec_prefix::calculate_allocation): Inline the easy cases
|
||
and dispatch to calculate_allocation_1 which doesn't need the
|
||
prefix address.
|
||
(va_heap::reserve): Use gcc_checking_assert.
|
||
(vec<T, A, vl_embed>::embedded_init): Add argument to initialize
|
||
m_using_auto_storage.
|
||
(auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
|
||
member and adjust.
|
||
(vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
|
||
(vec<T, va_heap, vl_ptr>::release): Avoid casting.
|
||
(vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
|
||
|
||
2014-02-12 Richard Biener <rguenther@suse.de>
|
||
|
||
* gcse.c (compute_transp): break from loop over canon_modify_mem_list
|
||
when we found a dependence.
|
||
|
||
2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
|
||
common code...
|
||
(maybe_fold_stmt): ... into this new function.
|
||
* omp-low.c (lower_omp): Update comment.
|
||
|
||
* omp-low.c (lower_omp_target): Add clobber for sizes array, after
|
||
last use.
|
||
|
||
* omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
|
||
dereference.
|
||
|
||
2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
|
||
identifiers in comments.
|
||
(cortexa53_extra_costs): Likewise.
|
||
* config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
|
||
(cortexa7_extra_costs): Likewise.
|
||
(cortexa12_extra_costs): Likewise.
|
||
(cortexa15_extra_costs): Likewise.
|
||
(v7m_extra_costs): Likewise.
|
||
|
||
2014-02-12 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60092
|
||
* gimple-low.c (lower_builtin_posix_memalign): Lower conditional
|
||
of posix_memalign being successful.
|
||
(lower_stmt): Restrict lowering of posix_memalign to when
|
||
-ftree-bit-ccp is enabled.
|
||
|
||
2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
||
|
||
* config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
|
||
arg_loc.
|
||
* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
|
||
|
||
2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR rtl-optimization/60116
|
||
* combine.c (try_combine): Also remove dangling REG_DEAD notes on the
|
||
other_insn once the combination has been validated.
|
||
|
||
2014-02-11 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR lto/59468
|
||
* ipa-utils.h (possible_polymorphic_call_targets): Update prototype
|
||
and wrapper.
|
||
* ipa-devirt.c: Include demangle.h
|
||
(odr_violation_reported): New static variable.
|
||
(add_type_duplicate): Update odr_violations.
|
||
(maybe_record_node): Add completep parameter; update it.
|
||
(record_target_from_binfo): Add COMPLETEP parameter;
|
||
update it as needed.
|
||
(possible_polymorphic_call_targets_1): Likewise.
|
||
(struct polymorphic_call_target_d): Add nonconstruction_targets;
|
||
rename FINAL to COMPLETE.
|
||
(record_targets_from_bases): Sanity check we found the binfo;
|
||
fix COMPLETEP updating.
|
||
(possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
|
||
parameter, fix computing of COMPLETEP.
|
||
(dump_possible_polymorphic_call_targets): Imrove readability of dump;
|
||
at LTO time do demangling.
|
||
(ipa_devirt): Use nonconstruction_targets; Improve dumps.
|
||
* gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
|
||
parameter.
|
||
(gimple_get_virt_method_for_binfo): Likewise.
|
||
* gimple-fold.h (gimple_get_virt_method_for_binfo,
|
||
gimple_get_virt_method_for_vtable): Update prototypes.
|
||
|
||
2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/49008
|
||
* genautomata.c (add_presence_absence): Fix typo with
|
||
{final_}presence_list.
|
||
|
||
2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/60137
|
||
* config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
|
||
for VSX/Altivec vectors that land in GPR registers.
|
||
|
||
2014-02-11 Richard Henderson <rth@redhat.com>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR debug/59776
|
||
* tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
|
||
around drhs if type conversion to lacc->type is not useless.
|
||
|
||
2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
|
||
tuning struct.
|
||
(cortex-a57.cortex-a53): Likewise.
|
||
* config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
|
||
|
||
2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
|
||
arm_restrict_it.
|
||
|
||
2014-02-11 Renlin Li <Renlin.Li@arm.com>
|
||
|
||
* doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
|
||
add_options_for_arm_vfp3.
|
||
|
||
2014-02-11 Jeff Law <law@redhat.com>
|
||
|
||
PR middle-end/54041
|
||
* expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
|
||
object with an undesirable mode.
|
||
|
||
2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
PR libgomp/60107
|
||
* config/i386/sol2-9.h: New file.
|
||
* config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
|
||
*-*-solaris2.9*): Use it.
|
||
|
||
2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
|
||
* config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
|
||
|
||
2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.c: Extend mcpu version format
|
||
|
||
2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
|
||
|
||
2014-02-10 Richard Henderson <rth@redhat.com>
|
||
|
||
PR target/59927
|
||
* calls.c (expand_call): Don't double-push for reg_parm_stack_space.
|
||
* config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
|
||
ms-abi vs -mno-accumulate-outgoing-args.
|
||
(ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
|
||
* config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
|
||
respect to ms-abi.
|
||
|
||
2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
PR middle-end/60080
|
||
* cfgexpand.c (expand_asm_operands): Attach source location to
|
||
ASM_INPUT rtx objects.
|
||
* print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
|
||
|
||
2014-02-10 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/mn10300/mn10300.c (popcount): New function.
|
||
(mn10300_expand_prologue): Include saved registers in stack usage
|
||
count.
|
||
|
||
2014-02-10 Jeff Law <law@redhat.com>
|
||
|
||
PR middle-end/52306
|
||
* reload1.c (emit_input_reload_insns): Do not create invalid RTL
|
||
when changing the SET_DEST of a prior insn to avoid an input reload.
|
||
|
||
2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
|
||
|
||
* config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
|
||
big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
|
||
-mcall-openbsd, or -mcall-linux.
|
||
(CC1_ENDIAN_BIG_SPEC): Remove.
|
||
(CC1_ENDIAN_LITTLE_SPEC): Remove.
|
||
(CC1_ENDIAN_DEFAULT_SPEC): Remove.
|
||
(CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
|
||
(SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
|
||
and %cc1_endian_default.
|
||
* config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
|
||
|
||
2014-02-10 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60115
|
||
* tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
|
||
MEM_REF handling. Properly verify that the accesses are not
|
||
out of the objects bound.
|
||
|
||
2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
|
||
coretex to cortex.
|
||
|
||
2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
|
||
proper constants and fix formatting.
|
||
(possible_polymorphic_call_targets): Fix formatting.
|
||
|
||
2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
|
||
Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
|
||
(_mm512_loadu_epi32): Renamed into...
|
||
(_mm512_loadu_si512): This.
|
||
(_mm512_storeu_epi32): Renamed into...
|
||
(_mm512_storeu_si512): This.
|
||
(_mm512_maskz_ceil_ps): Removed.
|
||
(_mm512_maskz_ceil_pd): Ditto.
|
||
(_mm512_maskz_floor_ps): Ditto.
|
||
(_mm512_maskz_floor_pd): Ditto.
|
||
(_mm512_floor_round_ps): Ditto.
|
||
(_mm512_floor_round_pd): Ditto.
|
||
(_mm512_ceil_round_ps): Ditto.
|
||
(_mm512_ceil_round_pd): Ditto.
|
||
(_mm512_mask_floor_round_ps): Ditto.
|
||
(_mm512_mask_floor_round_pd): Ditto.
|
||
(_mm512_mask_ceil_round_ps): Ditto.
|
||
(_mm512_mask_ceil_round_pd): Ditto.
|
||
(_mm512_maskz_floor_round_ps): Ditto.
|
||
(_mm512_maskz_floor_round_pd): Ditto.
|
||
(_mm512_maskz_ceil_round_ps): Ditto.
|
||
(_mm512_maskz_ceil_round_pd): Ditto.
|
||
(_mm512_expand_pd): Ditto.
|
||
(_mm512_expand_ps): Ditto.
|
||
* config/i386/i386.c (ix86_builtins): Remove
|
||
IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
|
||
(bdesc_args): Ditto.
|
||
* config/i386/predicates.md (const1256_operand): New.
|
||
(const_1_to_2_operand): Ditto.
|
||
* config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
|
||
(*avx512pf_gatherpf<mode>sf_mask): Ditto.
|
||
(*avx512pf_gatherpf<mode>sf): Ditto.
|
||
(avx512pf_gatherpf<mode>df): Ditto.
|
||
(*avx512pf_gatherpf<mode>df_mask): Ditto.
|
||
(*avx512pf_gatherpf<mode>df): Ditto.
|
||
(avx512pf_scatterpf<mode>sf): Ditto.
|
||
(*avx512pf_scatterpf<mode>sf_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>sf): Ditto.
|
||
(avx512pf_scatterpf<mode>df): Ditto.
|
||
(*avx512pf_scatterpf<mode>df_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>df): Ditto.
|
||
(avx512f_expand<mode>): Removed.
|
||
(<shift_insn><mode>3<mask_name>): Change predicate type.
|
||
|
||
2014-02-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
|
||
not at the end of datarefs vector use ordered_remove to avoid
|
||
reordering datarefs vector.
|
||
|
||
PR c/59984
|
||
* gimplify.c (gimplify_bind_expr): In ORT_SIMD region
|
||
mark local addressable non-static vars as GOVD_PRIVATE
|
||
instead of GOVD_LOCAL.
|
||
* omp-low.c (lower_omp_for): Move gimple_bind_vars
|
||
and BLOCK_VARS of gimple_bind_block to new_stmt rather
|
||
than copying them.
|
||
|
||
PR middle-end/60092
|
||
* tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
|
||
if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
|
||
assume_aligned or alloc_align attributes.
|
||
(bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
|
||
arguments. Handle also assume_aligned and alloc_align attributes.
|
||
(evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
|
||
calls to functions with assume_aligned or alloc_align attributes.
|
||
* doc/extend.texi: Document assume_aligned and alloc_align attributes.
|
||
|
||
2014-02-08 Terry Guo <terry.guo@arm.com>
|
||
|
||
* doc/invoke.texi: Document ARM -march=armv7e-m.
|
||
|
||
2014-02-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
|
||
flag on __cilkrts_rethrow builtin.
|
||
|
||
PR ipa/60026
|
||
* ipa-cp.c (determine_versionability): Fail at -O0
|
||
or __attribute__((optimize (0))) or -fno-ipa-cp functions.
|
||
* tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
|
||
|
||
Revert:
|
||
2014-02-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR ipa/60026
|
||
* tree-inline.c (copy_forbidden): Fail for
|
||
__attribute__((optimize (0))) functions.
|
||
|
||
2014-02-07 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* varpool.c: Include pointer-set.h.
|
||
(varpool_remove_unreferenced_decls): Variables in other partitions
|
||
will not be output; be however careful to not lose information
|
||
about partitioning.
|
||
|
||
2014-02-07 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
|
||
lookup in the vtable constructor.
|
||
|
||
2014-02-07 Jeff Law <law@redhat.com>
|
||
|
||
PR target/40977
|
||
* config/m68k/m68k.md (ashldi_extsi): Turn into a
|
||
define_insn_and_split.
|
||
|
||
* ipa-inline.c (inline_small_functions): Fix typos.
|
||
|
||
2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
* config/s390/s390-protos.h (s390_can_use_simple_return_insn)
|
||
(s390_can_use_return_insn): Declare.
|
||
* config/s390/s390.h (EPILOGUE_USES): Define.
|
||
* config/s390/s390.c (s390_mainpool_start): Allow two main_pool
|
||
instructions.
|
||
(s390_chunkify_start): Handle return JUMP_LABELs.
|
||
(s390_early_mach): Emit a main_pool instruction on the entry edge.
|
||
(s300_set_up_by_prologue, s390_can_use_simple_return_insn)
|
||
(s390_can_use_return_insn): New functions.
|
||
(s390_fix_long_loop_prediction): Handle conditional returns.
|
||
(TARGET_SET_UP_BY_PROLOGUE): Define.
|
||
* config/s390/s390.md (ANY_RETURN): New code iterator.
|
||
(*creturn, *csimple_return, return, simple_return): New patterns.
|
||
|
||
2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
|
||
notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
|
||
(s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
|
||
REG_CFA_RESTORE list when deciding not to restore a register.
|
||
|
||
2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
* config/s390/s390.c: Include tree-pass.h and context.h.
|
||
(s390_early_mach): New function, split out from...
|
||
(s390_emit_prologue): ...here.
|
||
(pass_data_s390_early_mach): New pass structure.
|
||
(pass_s390_early_mach): New class.
|
||
(s390_option_override): Create and register early_mach pass.
|
||
Move to end of file.
|
||
|
||
2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
* var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
|
||
to match for the exit block.
|
||
|
||
2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
|
||
("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
|
||
Reject misaligned operands.
|
||
|
||
2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
|
||
|
||
2014-02-07 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60092
|
||
* gimple-low.c (lower_builtin_posix_memalign): New function.
|
||
(lower_stmt): Call it to lower posix_memalign in a way
|
||
to make alignment info accessible.
|
||
|
||
2014-02-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR c++/60082
|
||
* tree.c (build_common_builtin_nodes): Set ECF_LEAF for
|
||
__builtin_setjmp_receiver.
|
||
|
||
2014-02-07 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/60092
|
||
* builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
|
||
* builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
|
||
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
|
||
Handle BUILT_IN_POSIX_MEMALIGN.
|
||
(find_func_clobbers): Likewise.
|
||
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
|
||
(call_may_clobber_ref_p_1): Likewise.
|
||
|
||
2014-02-06 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/59918
|
||
* ipa-devirt.c (record_target_from_binfo): Remove overactive
|
||
sanity check.
|
||
|
||
2014-02-06 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/59469
|
||
* lto-cgraph.c (lto_output_node): Use
|
||
symtab_get_symbol_partitioning_class.
|
||
(lto_output_varpool_node): likewise.
|
||
(symtab_get_symbol_partitioning_class): Move here from
|
||
lto/lto-partition.c
|
||
* cgraph.h (symbol_partitioning_class): Likewise.
|
||
(symtab_get_symbol_partitioning_class): Declare.
|
||
|
||
2014-02-06 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ggc.h (ggc_internal_cleared_alloc): New macro.
|
||
* vec.h (vec_safe_copy): Handle memory stats.
|
||
* omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
|
||
* target-globals.c (save_target_globals): Likewise.
|
||
|
||
2014-02-06 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR target/60077
|
||
* expr.c (emit_move_resolve_push): Export; be bit more selective
|
||
on when to clear alias set.
|
||
* expr.h (emit_move_resolve_push): Declare.
|
||
* function.h (struct function): Add tail_call_marked.
|
||
* tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
|
||
* config/i386/i386-protos.h (ix86_expand_push): Remove.
|
||
* config/i386/i386.md (TImode move expander): De not call
|
||
ix86_expand_push.
|
||
(FP push expanders): Preserve memory attributes.
|
||
* config/i386/sse.md (push<mode>1): Remove.
|
||
* config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
|
||
(ix86_expand_push): Remove.
|
||
* config/i386/mmx.md (push<mode>1): Remove.
|
||
|
||
2014-02-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/60030
|
||
* internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
|
||
lopart with paradoxical subreg before shifting it up by hprec.
|
||
|
||
2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
|
||
Remove extra newline at end of file.
|
||
* config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
|
||
(arm_issue_rate): Handle cortexa57.
|
||
* config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
|
||
(cortex-a57.cortex-a53): Likewise.
|
||
|
||
2014-02-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/59575
|
||
* config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
|
||
don't record in REG_FRAME_RELATED_EXPR registers not set in that
|
||
bitmask.
|
||
(arm_expand_prologue): Adjust all callers.
|
||
(arm_unwind_emit_sequence): Allow saved, but not important for unwind
|
||
info, registers also at the lowest numbered registers side. Use
|
||
gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
|
||
XEXP.
|
||
|
||
PR debug/59992
|
||
* var-tracking.c (adjust_mems): Before adding a SET to
|
||
amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
|
||
|
||
2014-02-06 Alan Modra <amodra@gmail.com>
|
||
|
||
PR target/60032
|
||
* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
|
||
change SDmode to DDmode when lra_in_progress.
|
||
|
||
2014-02-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/59150
|
||
* tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
|
||
free_data_ref on the dr first, and before goto again also set dr
|
||
to the next dr. For simd_lane_access, free old datarefs[i] before
|
||
overwriting it. For get_vectype_for_scalar_type failure, don't
|
||
free_data_ref if simd_lane_access.
|
||
|
||
* Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
|
||
|
||
PR target/60062
|
||
* tree.h (opts_for_fn): New inline function.
|
||
(opt_for_fn): Define.
|
||
* config/i386/i386.c (ix86_function_regparm): Use
|
||
opt_for_fn (decl, optimize) instead of optimize.
|
||
|
||
2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
|
||
for SYMBOL_REF in large memory model.
|
||
|
||
2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
|
||
and crypto support.
|
||
(cortex-a57): Likewise.
|
||
(cortex-a57.cortex-a53): Likewise.
|
||
|
||
2014-02-06 Yury Gribov <y.gribov@samsung.com>
|
||
Kugan Vivekanandarajah <kuganv@linaro.org>
|
||
|
||
* config/arm/arm.c (arm_vector_alignment_reachable): Check
|
||
unaligned_access.
|
||
* config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
|
||
|
||
2014-02-06 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
|
||
set_loop_copy and initialize_original_copy_tables.
|
||
|
||
2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_ashr_simddi): Change QI to SI.
|
||
|
||
2014-02-05 Jan Hubicka <hubicka@ucw.cz>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/60013
|
||
* ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
|
||
of the dataflow.
|
||
|
||
2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
|
||
CODE_FOR_altivec_vpku[hw]um to
|
||
CODE_FOR_altivec_vpku[hw]um_direct.
|
||
* config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
|
||
UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
|
||
(vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
|
||
UNSPEC_VUNPACK_LO_SIGN_DIRECT.
|
||
|
||
2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
|
||
generation for -maltivec=be.
|
||
(altivec_vsumsws): Simplify redundant test.
|
||
|
||
2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
|
||
(UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
|
||
(UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
|
||
(mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
|
||
gen_altivec_vpkuwum.
|
||
(altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
|
||
BYTES_BIG_ENDIAN.
|
||
(altivec_vpks<VI_char>ss): Likewise.
|
||
(altivec_vpks<VI_char>us): Likewise.
|
||
(altivec_vpku<VI_char>us): Likewise.
|
||
(altivec_vpku<VI_char>um): Likewise.
|
||
(altivec_vpku<VI_char>um_direct): New (copy of
|
||
altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
|
||
internal use).
|
||
(altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
|
||
target is little endian and -maltivec=be is not specified.
|
||
(*altivec_vupkhs<VU_char>_direct): New (copy of
|
||
altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
|
||
(altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
|
||
target is little endian and -maltivec=be is not specified.
|
||
(*altivec_vupkls<VU_char>_direct): New (copy of
|
||
altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
|
||
(altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
|
||
little endian and -maltivec=be is not specified.
|
||
(altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
|
||
little endian and -maltivec=be is not specified.
|
||
|
||
2014-02-05 Richard Henderson <rth@redhat.com>
|
||
|
||
PR debug/52727
|
||
* combine-stack-adj.c: Revert r206943.
|
||
* sched-int.h (struct deps_desc): Add last_args_size.
|
||
* sched-deps.c (init_deps): Initialize it.
|
||
(sched_analyze_insn): Add OUTPUT dependencies between insns that
|
||
contain REG_ARGS_SIZE notes.
|
||
|
||
2014-02-05 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* lto-cgraph.c (asm_nodes_output): Make global.
|
||
* lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
|
||
* gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
|
||
(driver_handle_option): Handle OPT_fwpa.
|
||
|
||
2014-02-05 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR ipa/59947
|
||
* ipa-devirt.c (possible_polymorphic_call_targets): Fix
|
||
a comment typo and formatting issue. If odr_hash hasn't been
|
||
created, return vNULL and set *completep to false.
|
||
|
||
PR middle-end/57499
|
||
* tree-eh.c (cleanup_empty_eh): Bail out on totally empty
|
||
bb with no successors.
|
||
|
||
2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
PR target/59718
|
||
* doc/invoke.texi (-march): Clarify documentation for ARM.
|
||
(-mtune): Likewise.
|
||
(-mcpu): Likewise.
|
||
|
||
2014-02-05 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-vect-loop.c (vect_analyze_loop_2): Be more informative
|
||
when not vectorizing because of too many alias checks.
|
||
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
|
||
Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
|
||
|
||
2014-02-05 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
|
||
accept extended registers in any mode when compiling for the MN10300.
|
||
|
||
2014-02-05 Yury Gribov <y.gribov@samsung.com>
|
||
|
||
* cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
|
||
* ipa-inline.c (report_inline_failed_reason): Handle mismatched
|
||
sanitization attributes.
|
||
(can_inline_edge_p): Likewise.
|
||
(sanitize_attrs_match_for_inline_p): New function.
|
||
|
||
2014-02-04 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-prop.c (detect_type_change): Shor circuit testing of
|
||
type changes on THIS pointer.
|
||
|
||
2014-02-04 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
PR target/59777
|
||
* config/pa/pa.c (legitimize_tls_address): Return original address
|
||
if not passed a SYMBOL_REF rtx.
|
||
(hppa_legitimize_address): Call legitimize_tls_address for all TLS
|
||
addresses.
|
||
(pa_emit_move_sequence): Simplify TLS source operands.
|
||
(pa_legitimate_constant_p): Reject all TLS constants.
|
||
* config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
|
||
(CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
|
||
|
||
2014-02-04 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
|
||
groups when we know they are controlled by LTO.
|
||
* varasm.c (default_binds_local_p_1): If object is in other partition,
|
||
it will be resolved locally.
|
||
|
||
2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
* config/host-linux.c (linux_gt_pch_use_address): Don't
|
||
use SSIZE_MAX because it is not always defined.
|
||
|
||
2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR bootstrap/59913
|
||
* lra-constraints.c (need_for_split_p): Use more 3 reloads as
|
||
threshold for pseudo splitting.
|
||
(update_ebb_live_info): Process call argument hard registers and
|
||
hard registers from insn definition too.
|
||
(max_small_class_regs_num): New constant.
|
||
(inherit_in_ebb): Update live hard regs through EBBs. Update
|
||
reloads_num only for small register classes. Don't split for
|
||
outputs of jumps.
|
||
|
||
2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
|
||
|
||
PR ipa/60058
|
||
* ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
|
||
is non-null.
|
||
|
||
2014-02-04 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* gimple-fold.c (can_refer_decl_in_current_unit_p): Default
|
||
visibility is safe.
|
||
|
||
2014-02-04 Marek Polacek <polacek@redhat.com>
|
||
|
||
* gdbinit.in (pel): Define.
|
||
|
||
2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
* doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
|
||
behavior.
|
||
|
||
2014-02-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR lto/59723
|
||
* lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
|
||
in function context local.
|
||
(lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
|
||
* lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
|
||
similar to LTO_imported_decl_ref.
|
||
|
||
2014-02-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/60002
|
||
* cgraphclones.c (build_function_decl_skip_args): Clear
|
||
DECL_LANG_SPECIFIC.
|
||
|
||
PR tree-optimization/60023
|
||
* tree-if-conv.c (predicate_mem_writes): Pass true instead of
|
||
false to gsi_replace.
|
||
* tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
|
||
has been in some EH region and vec_stmt could throw, add
|
||
vec_stmt into the same EH region.
|
||
* tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
|
||
has no lhs, ignore it.
|
||
* internal-fn.c (expand_MASK_LOAD): Likewise.
|
||
|
||
PR ipa/60026
|
||
* tree-inline.c (copy_forbidden): Fail for
|
||
__attribute__((optimize (0))) functions.
|
||
|
||
PR other/58712
|
||
* omp-low.c (simd_clone_struct_copy): If from->inbranch
|
||
is set, copy one less argument.
|
||
(expand_simd_clones): Don't subtract clone_info->inbranch
|
||
from simd_clone_struct_alloc argument.
|
||
|
||
PR rtl-optimization/57915
|
||
* recog.c (simplify_while_replacing): If all unary/binary/relational
|
||
operation arguments are constant, attempt to simplify those.
|
||
|
||
PR middle-end/59261
|
||
* expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
|
||
if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
|
||
|
||
2014-02-04 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/60012
|
||
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
|
||
TBAA disambiguation to all DDRs.
|
||
|
||
2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
PR target/59788
|
||
* config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
|
||
(LINK_SPEC): Use it for -shared, -shared-libgcc.
|
||
|
||
2014-02-03 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/59882
|
||
* tree.c (get_binfo_at_offset): Do not get confused by empty classes;
|
||
|
||
2014-02-03 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
|
||
* gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
|
||
|
||
2014-02-03 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/59831
|
||
* ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
|
||
to figure out targets of polymorphic calls with known decl.
|
||
* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
|
||
* ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
|
||
* ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
|
||
(get_polymorphic_call_info): ... here.
|
||
(get_polymorphic_call_info_from_invariant): New function.
|
||
|
||
2014-02-03 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
|
||
lookup via vtable pointer; check for type consistency
|
||
and turn inconsitent facts into UNREACHABLE.
|
||
* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
|
||
* gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
|
||
type inconsistent querries; return UNREACHABLE instead.
|
||
|
||
2014-02-03 Richard Henderson <rth@twiddle.net>
|
||
|
||
PR tree-opt/59924
|
||
* tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
|
||
already processed this node.
|
||
(normalize_one_pred_1): Pass along mark_set.
|
||
(normalize_one_pred): Create and destroy a pointer_set_t.
|
||
(normalize_one_pred_chain): Likewise.
|
||
|
||
2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
|
||
|
||
PR gcov-profile/58602
|
||
* gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
|
||
|
||
2014-02-03 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/59831
|
||
* ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
|
||
-fno-devirtualize; try to devirtualize by the knowledge of
|
||
virtual table pointer given by aggregate propagation.
|
||
* ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
|
||
(ipa_print_node_jump_functions): Dump also offset that
|
||
is relevant for polymorphic calls.
|
||
(determine_known_aggregate_parts): Add arg_type parameter; use it
|
||
instead of determining the type from pointer type.
|
||
(ipa_compute_jump_functions_for_edge): Update call of
|
||
determine_known_aggregate_parts.
|
||
* gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
|
||
(gimple_get_virt_method_for_binfo): ... here; simplify using
|
||
vtable_pointer_value_to_vtable.
|
||
* gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
|
||
* ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
|
||
to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
|
||
(vtable_pointer_value_to_vtable): Break out from ...; handle also
|
||
POINTER_PLUS_EXPR.
|
||
(vtable_pointer_value_to_binfo): ... here.
|
||
* ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
|
||
|
||
2014-02-03 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
|
||
redef of outer loop index variable.
|
||
|
||
2014-02-03 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
PR c++/53017
|
||
PR c++/59211
|
||
* doc/extend.texi (Function Attributes): Typo.
|
||
|
||
2014-02-03 Cong Hou <congh@google.com>
|
||
|
||
PR tree-optimization/60000
|
||
* tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
|
||
if the vectorized statement is a store. A store statement can only
|
||
appear at the end of pattern statements.
|
||
|
||
2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.c (flag_opts): Add -mlong-double-128.
|
||
(ix86_option_override_internal): Default long double to 64-bit for
|
||
32-bit Bionic and to 128-bit for 64-bit Bionic.
|
||
|
||
* config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
|
||
TARGET_LONG_DOUBLE_128 is true.
|
||
(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
|
||
|
||
* config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
|
||
(mlong-double-64): Negate -mlong-double-128.
|
||
(mlong-double-128): New option.
|
||
|
||
* config/i386/i386-c.c (ix86_target_macros): Define
|
||
__LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
|
||
|
||
* doc/invoke.texi: Document -mlong-double-128.
|
||
|
||
2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR rtl-optimization/60024
|
||
* sel-sched.c (init_regs_for_mode): Check if mode is OK first.
|
||
|
||
2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
|
||
|
||
* doc/invoke.texi (fprofile-reorder-functions): Fix typo.
|
||
|
||
2014-02-03 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
PR rtl-optimization/57662
|
||
* sel-sched.c (code_motion_path_driver): Do not mark already not
|
||
existing blocks in the visiting bitmap.
|
||
|
||
2014-02-03 Andrey Belevantsev <abel@ispras.ru>
|
||
|
||
* sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
|
||
on the insn being emitted.
|
||
|
||
2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Will Deacon <will.deacon@arm.com>
|
||
|
||
* doc/gimple.texi (gimple_asm_clear_volatile): Remove.
|
||
|
||
2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm-tables.opt: Regenerate.
|
||
|
||
2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
|
||
for vector types other than V16QImode.
|
||
* config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
|
||
define_expand, and call altivec_expand_vec_perm_le when producing
|
||
code with little endian element order.
|
||
(*altivec_vperm_<mode>_internal): New insn having previous
|
||
behavior of altivec_vperm_<mode>.
|
||
(altivec_vperm_<mode>_uns): Change to a define_expand, and call
|
||
altivec_expand_vec_perm_le when producing code with little endian
|
||
element order.
|
||
(*altivec_vperm_<mode>_uns_internal): New insn having previous
|
||
behavior of altivec_vperm_<mode>_uns.
|
||
|
||
2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
|
||
(altivec_vsumsws): Add handling for -maltivec=be with a little
|
||
endian target.
|
||
(altivec_vsumsws_direct): New.
|
||
(reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
|
||
gen_altivec_vsumsws.
|
||
|
||
2014-02-02 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-devirt.c (subbinfo_with_vtable_at_offset,
|
||
vtable_pointer_value_to_binfo): New functions.
|
||
* ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
|
||
* ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
|
||
|
||
2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
|
||
|
||
* config/nios2/nios2.md (load_got_register): Initialize GOT
|
||
pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
|
||
* config/nios2/nios2.c (nios2_function_profiler): Likewise.
|
||
|
||
2014-02-02 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-prop.c (update_jump_functions_after_inlining): When type is not
|
||
preserverd by passthrough, do not propagate the type.
|
||
|
||
2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
|
||
(mips_atomic_assign_expand_fenv): New function.
|
||
(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
|
||
|
||
2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* doc/extend.texi (__builtin_mips_get_fcsr): Document.
|
||
(__builtin_mips_set_fcsr): Likewise.
|
||
* config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
|
||
MIPS_USI_FTYPE_VOID.
|
||
* config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
|
||
(mips16_expand_set_fcsr): Likewise.
|
||
* config/mips/mips.c (mips16_get_fcsr_stub): New variable.
|
||
(mips16_set_fcsr_stub): Likewise.
|
||
(mips16_get_fcsr_one_only_stub): New class.
|
||
(mips16_set_fcsr_one_only_stub): Likewise.
|
||
(mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
|
||
(mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
|
||
(BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
|
||
(hard_float): New availability predicate.
|
||
(mips_builtins): Add get_fcsr and set_fcsr.
|
||
(mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
|
||
* config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
|
||
(GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
|
||
(mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
|
||
(mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
|
||
patterns.
|
||
|
||
2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.c (mips_one_only_stub): New class.
|
||
(mips_need_mips16_rdhwr_p): Replace with...
|
||
(mips16_rdhwr_stub): ...this new variable.
|
||
(mips16_stub_call_address): New function.
|
||
(mips16_rdhwr_one_only_stub): New class.
|
||
(mips_expand_thread_pointer): Use mips16_stub_call_address.
|
||
(mips_output_mips16_rdhwr): Delete.
|
||
(mips_finish_stub): New function.
|
||
(mips_code_end): Use it to handle rdhwr stubs.
|
||
|
||
2014-02-02 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/60017
|
||
* config/i386/i386.c (classify_argument): Fix handling of bit_offset
|
||
when calculating size of integer atomic types.
|
||
|
||
2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
|
||
|
||
2014-02-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/60003
|
||
* gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
|
||
* profile.c (branch_prob): Use gimple_call_builtin_p
|
||
to check for BUILT_IN_SETJMP_RECEIVER.
|
||
* tree-inline.c (copy_bb): Call notice_special_calls.
|
||
|
||
2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR bootstrap/59985
|
||
* lra-constraints.c (process_alt_operands): Update reload_sum only
|
||
on the first pass.
|
||
|
||
2014-01-31 Richard Henderson <rth@redhat.com>
|
||
|
||
PR middle-end/60004
|
||
* tree-eh.c (lower_try_finally_switch): Delay lowering finally block
|
||
until after else_eh is processed.
|
||
|
||
2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
|
||
(_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
|
||
(_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
|
||
in smmintrin.h, remove them.
|
||
(_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
|
||
* config/i386/i386.c (ix86_print_operand): Split sae and rounding.
|
||
* config/i386/i386.md (ROUND_SAE): Fix value.
|
||
* config/i386/predicates.md (const_4_or_8_to_11_operand): New.
|
||
(const48_operand): New.
|
||
* config/i386/subst.md (round), (round_expand): Use
|
||
const_4_or_8_to_11_operand.
|
||
(round_saeonly), (round_saeonly_expand): Use const48_operand.
|
||
|
||
2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* config/i386/constraints.md (Yk): Swap meaning with k.
|
||
* config/i386/i386.md (movhi_internal): Change Yk to k.
|
||
(movqi_internal): Ditto.
|
||
(*k<logic><mode>): Ditto.
|
||
(*andhi_1): Ditto.
|
||
(*andqi_1): Ditto.
|
||
(kandn<mode>): Ditto.
|
||
(*<code>hi_1): Ditto.
|
||
(*<code>qi_1): Ditto.
|
||
(kxnor<mode>): Ditto.
|
||
(kortestzhi): Ditto.
|
||
(kortestchi): Ditto.
|
||
(kunpckhi): Ditto.
|
||
(*one_cmplhi2_1): Ditto.
|
||
(*one_cmplqi2_1): Ditto.
|
||
* config/i386/sse.md (): Change k to Yk.
|
||
(avx512f_load<mode>_mask): Ditto.
|
||
(avx512f_blendm<mode>): Ditto.
|
||
(avx512f_store<mode>_mask): Ditto.
|
||
(avx512f_storeu<ssemodesuffix>512_mask): Ditto.
|
||
(avx512f_storedqu<mode>_mask): Ditto.
|
||
(avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
|
||
Ditto.
|
||
(avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
|
||
(avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
|
||
(avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
|
||
(avx512f_maskcmp<mode>3): Ditto.
|
||
(avx512f_fmadd_<mode>_mask<round_name>): Ditto.
|
||
(avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
|
||
(avx512f_fmsub_<mode>_mask<round_name>): Ditto.
|
||
(avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
|
||
(avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
|
||
(avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
|
||
(avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
|
||
(avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
|
||
(avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
|
||
(avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
|
||
(avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
|
||
(avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
|
||
(avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
|
||
(vec_extract_lo_<mode>_maskm): Ditto.
|
||
(vec_extract_hi_<mode>_maskm): Ditto.
|
||
(avx512f_vternlog<mode>_mask): Ditto.
|
||
(avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
|
||
(avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
|
||
(avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
|
||
(avx512f_<code>v8div16qi2_mask): Ditto.
|
||
(avx512f_<code>v8div16qi2_mask_store): Ditto.
|
||
(avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
|
||
(avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
|
||
(avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
|
||
(avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
|
||
(*avx512pf_gatherpf<mode>sf_mask): Ditto.
|
||
(*avx512pf_gatherpf<mode>df_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>sf_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>df_mask): Ditto.
|
||
(avx512cd_maskb_vec_dupv8di): Ditto.
|
||
(avx512cd_maskw_vec_dupv16si): Ditto.
|
||
(avx512f_vpermi2var<mode>3_maskz): Ditto.
|
||
(avx512f_vpermi2var<mode>3_mask): Ditto.
|
||
(avx512f_vpermi2var<mode>3_mask): Ditto.
|
||
(avx512f_vpermt2var<mode>3_maskz): Ditto.
|
||
(*avx512f_gathersi<mode>): Ditto.
|
||
(*avx512f_gathersi<mode>_2): Ditto.
|
||
(*avx512f_gatherdi<mode>): Ditto.
|
||
(*avx512f_gatherdi<mode>_2): Ditto.
|
||
(*avx512f_scattersi<mode>): Ditto.
|
||
(*avx512f_scatterdi<mode>): Ditto.
|
||
(avx512f_compress<mode>_mask): Ditto.
|
||
(avx512f_compressstore<mode>_mask): Ditto.
|
||
(avx512f_expand<mode>_mask): Ditto.
|
||
* config/i386/subst.md (mask): Change k to Yk.
|
||
(mask_scalar_merge): Ditto.
|
||
(sd): Ditto.
|
||
|
||
2014-01-31 Marc Glisse <marc.glisse@inria.fr>
|
||
|
||
* doc/extend.texi (Vector Extensions): Document ?: in C++.
|
||
|
||
2014-01-31 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/59990
|
||
* builtins.c (fold_builtin_memory_op): Make sure to not
|
||
use a floating-point mode or a boolean or enumeral type for
|
||
the copy operation.
|
||
|
||
2014-01-30 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/msp430/msp430.h (LIB_SPEC): Add -lcrt
|
||
* config/msp430/msp430.md (msp430_refsym_need_exit): New.
|
||
* config/msp430/msp430.c (msp430_expand_epilogue): Call it
|
||
whenever main() has an epilogue.
|
||
|
||
2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
|
||
unused variable "field".
|
||
* config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
|
||
(vsx_mergeh_<mode>): Likewise.
|
||
* config/rs6000/altivec.md (altivec_vmrghb): Likewise.
|
||
(altivec_vmrghh): Likewise.
|
||
(altivec_vmrghw): Likewise.
|
||
(altivec_vmrglb): Likewise.
|
||
(altivec_vmrglh): Likewise.
|
||
(altivec_vmrglw): Likewise.
|
||
(altivec_vspltb): Add missing uses.
|
||
(altivec_vsplth): Likewise.
|
||
(altivec_vspltw): Likewise.
|
||
(altivec_vspltsf): Likewise.
|
||
|
||
2014-01-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/59923
|
||
* ifcvt.c (cond_exec_process_insns): Don't conditionalize
|
||
frame related instructions.
|
||
|
||
2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/59959
|
||
* lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
|
||
any reload of register whose subreg is invalid.
|
||
|
||
2014-01-30 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
|
||
* config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
|
||
Add missing return type - void.
|
||
|
||
2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
|
||
gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
|
||
remove element index adjustment for endian (now handled in vsx.md
|
||
and altivec.md).
|
||
(altivec_expand_vec_perm_const): Use
|
||
gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
|
||
* gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
|
||
(vsx_xxspltw_<mode>): Adjust element index for little endian.
|
||
* gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
|
||
define_expand and a new define_insn *altivec_vspltb_internal;
|
||
adjust for -maltivec=be on a little endian target.
|
||
(altivec_vspltb_direct): New.
|
||
(altivec_vsplth): Divide into a define_expand and a new
|
||
define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
|
||
little endian target.
|
||
(altivec_vsplth_direct): New.
|
||
(altivec_vspltw): Divide into a define_expand and a new
|
||
define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
|
||
little endian target.
|
||
(altivec_vspltw_direct): New.
|
||
(altivec_vspltsf): Divide into a define_expand and a new
|
||
define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
|
||
a little endian target.
|
||
|
||
2014-01-30 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/59993
|
||
* tree-ssa-forwprop.c (associate_pointerplus): Check we
|
||
can propagate form the earlier stmt and avoid the transform
|
||
when the intermediate result is needed.
|
||
|
||
2014-01-30 Alangi Derick <alangiderick@gmail.com>
|
||
|
||
* README.Portability: Fix typo.
|
||
|
||
2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
|
||
comparison_operator with ordered_comparison_operator.
|
||
|
||
2014-01-30 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
|
||
Rename to mn10300_store_multiple_regs.
|
||
* config/mn10300/mn10300.c: Likewise.
|
||
* config/mn10300/mn10300.md (store_movm): Fix typo: call
|
||
store_multiple_regs.
|
||
* config/mn10300/predicates.md (mn10300_store_multiple_operation):
|
||
Call mn10300_store_multiple_regs.
|
||
|
||
2014-01-30 Nick Clifton <nickc@redhat.com>
|
||
DJ Delorie <dj@redhat.com>
|
||
|
||
* config/rl78/rl78.c (register_sizes): Make the "upper half" of
|
||
%fp 2 to keep registers after it properly word-aligned.
|
||
(rl78_alloc_physical_registers_umul): Handle the case where both
|
||
input operands are the same.
|
||
|
||
2014-01-30 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/59903
|
||
* tree-vect-loop.c (vect_transform_loop): Guard multiple-types
|
||
check properly.
|
||
|
||
2014-01-30 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/59633
|
||
* tree.c (walk_type_fields): Handle VECTOR_TYPE.
|
||
|
||
PR c++/59645
|
||
* cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
|
||
|
||
2014-01-30 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/59951
|
||
* tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
|
||
|
||
2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
|
||
|
||
PR target/59784
|
||
* config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
|
||
SFmode to DFmode case.
|
||
|
||
2014-01-29 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/msp430/msp430.opt (-minrt): New.
|
||
* config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
|
||
if -minrt given.
|
||
(ENDFILE_SPEC): Likewise.
|
||
|
||
2014-01-29 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
|
||
(estimate_function_body_sizes): Use it.
|
||
|
||
2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
|
||
|
||
PR c++/58561
|
||
* dwarf2out.c (is_cxx_auto): New.
|
||
(is_base_type): Use it.
|
||
(gen_type_die_with_usage): Likewise.
|
||
|
||
2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
|
||
CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
|
||
* config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
|
||
-maltivec=be with LE targets.
|
||
(vsx_mergeh_<mode>): Likewise.
|
||
* config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
|
||
(mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
|
||
(altivec_vmrghb): Replace with define_expand and new
|
||
*altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
|
||
(altivec_vmrghb_direct): New define_insn.
|
||
(altivec_vmrghh): Replace with define_expand and new
|
||
*altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
|
||
(altivec_vmrghh_direct): New define_insn.
|
||
(altivec_vmrghw): Replace with define_expand and new
|
||
*altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
|
||
(altivec_vmrghw_direct): New define_insn.
|
||
(*altivec_vmrghsf): Adjust for endianness.
|
||
(altivec_vmrglb): Replace with define_expand and new
|
||
*altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
|
||
(altivec_vmrglb_direct): New define_insn.
|
||
(altivec_vmrglh): Replace with define_expand and new
|
||
*altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
|
||
(altivec_vmrglh_direct): New define_insn.
|
||
(altivec_vmrglw): Replace with define_expand and new
|
||
*altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
|
||
(altivec_vmrglw_direct): New define_insn.
|
||
(*altivec_vmrglsf): Adjust for endianness.
|
||
(vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
|
||
(vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
|
||
(vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
|
||
(vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
|
||
(vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
|
||
(vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
|
||
(vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
|
||
(vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
|
||
|
||
2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
|
||
(aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
|
||
whitespace.
|
||
|
||
2014-01-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/58742
|
||
* tree-ssa-forwprop.c (associate_pointerplus): Rename to
|
||
associate_pointerplus_align.
|
||
(associate_pointerplus_diff): New function.
|
||
(associate_pointerplus): Likewise. Call associate_pointerplus_align
|
||
and associate_pointerplus_diff.
|
||
|
||
2014-01-29 Richard Biener <rguenther@suse.de>
|
||
|
||
* lto-streamer.h (LTO_major_version): Bump to 3.
|
||
(LTO_minor_version): Reset to 0.
|
||
|
||
2014-01-29 Renlin Li <Renlin.Li@arm.com>
|
||
|
||
* config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
|
||
* config/arm/arm.c (FL_FOR_ARCH7VE): New.
|
||
(arm_file_start): Generate correct asm header for armv7ve.
|
||
* config/arm/bpabi.h: Add multilib support for armv7ve.
|
||
* config/arm/driver-arm.c: Change the architectures of cortex-a7
|
||
and cortex-a15 to armv7ve.
|
||
* config/arm/t-aprofile: Add multilib support for armv7ve.
|
||
* doc/invoke.texi: Document -march=armv7ve.
|
||
|
||
2014-01-29 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/58742
|
||
* tree-ssa-forwprop.c (associate_plusminus): Return true
|
||
if we changed sth, defer EH cleanup to ...
|
||
(ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
|
||
(simplify_mult): New function.
|
||
|
||
2014-01-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/59917
|
||
PR tree-optimization/59920
|
||
* tree.c (build_common_builtin_nodes): Remove
|
||
__builtin_setjmp_dispatcher initialization.
|
||
* omp-low.h (make_gimple_omp_edges): Add a new int * argument.
|
||
* profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
|
||
instead of gsi_after_labels + manually skipping debug stmts.
|
||
Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
|
||
ignore bbs with IFN_ABNORMAL_DISPATCHER.
|
||
* tree-inline.c (copy_edges_for_bb): Remove
|
||
can_make_abnormal_goto argument, instead add abnormal_goto_dest
|
||
argument. Ignore computed_goto_p stmts. Don't call
|
||
make_abnormal_goto_edges. If a call might need abnormal edges
|
||
for non-local gotos, see if it already has an edge to
|
||
IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
|
||
with true argument, don't do anything then, otherwise add
|
||
EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
|
||
(copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
|
||
caller.
|
||
* gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
|
||
(lower_function_body): Don't emit __builtin_setjmp_dispatcher.
|
||
(lower_stmt): Don't set data->calls_builtin_setjmp.
|
||
(lower_builtin_setjmp): Adjust comment.
|
||
* builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
|
||
* tree-cfg.c (found_computed_goto): Remove.
|
||
(factor_computed_gotos): Remove.
|
||
(make_goto_expr_edges): Return bool, true for computed gotos.
|
||
Don't call make_abnormal_goto_edges.
|
||
(build_gimple_cfg): Don't set found_computed_goto, don't call
|
||
factor_computed_gotos.
|
||
(computed_goto_p): No longer static.
|
||
(make_blocks): Don't set found_computed_goto.
|
||
(get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
|
||
(make_edges): If make_goto_expr_edges returns true, push bb
|
||
into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
|
||
instead of calling make_abnormal_goto_edges push bb into ab_edge_call
|
||
vector. Record mapping between bbs and OpenMP regions if there
|
||
are any, adjust make_gimple_omp_edges caller. Call
|
||
handle_abnormal_edges.
|
||
(make_abnormal_goto_edges): Remove.
|
||
* tree-cfg.h (make_abnormal_goto_edges): Remove.
|
||
(computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
|
||
* internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
|
||
* builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
|
||
* internal-fn.def (ABNORMAL_DISPATCHER): New.
|
||
* omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
|
||
filling *region also set *region_idx to (*region)->entry->index.
|
||
|
||
PR other/58712
|
||
* read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
|
||
For REGs set ORIGINAL_REGNO.
|
||
|
||
2014-01-29 Bingfeng Mei <bmei@broadcom.com>
|
||
|
||
* doc/md.texi: Mention that a target shouldn't implement
|
||
vec_widen_(s|u)mul_even/odd pair if it is less efficient
|
||
than hi/lo pair.
|
||
|
||
2014-01-29 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/59594
|
||
* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
|
||
a copy of the datarefs vector rather than the vector itself.
|
||
|
||
2014-01-28 Jason Merrill <jason@redhat.com>
|
||
|
||
PR c++/53756
|
||
* dwarf2out.c (auto_die): New static.
|
||
(gen_type_die_with_usage): Handle C++1y 'auto'.
|
||
(gen_subprogram_die): If in-class DIE had 'auto', emit type again
|
||
on definition.
|
||
|
||
2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/59672
|
||
* config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
|
||
(SPEC_X32): Likewise.
|
||
(SPEC_64): Likewise.
|
||
* config/i386/i386.c (ix86_option_override_internal): Turn off
|
||
OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
|
||
for TARGET_16BIT.
|
||
(x86_file_start): Output .code16gcc for TARGET_16BIT.
|
||
* config/i386/i386.h (TARGET_16BIT): New macro.
|
||
(TARGET_16BIT_P): Likewise.
|
||
* config/i386/i386.opt: Add m16.
|
||
* doc/invoke.texi: Document -m16.
|
||
|
||
2014-01-28 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR preprocessor/59935
|
||
* input.c (location_get_source_line): Bail out on when line number
|
||
is zero, and test the return value of lookup_or_add_file_to_cache_tab.
|
||
|
||
2014-01-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/58742
|
||
* tree-ssa-forwprop.c (associate_plusminus): Handle
|
||
pointer subtraction of the form (T)(P + A) - (T)P.
|
||
|
||
2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
|
||
at const_int_cost.
|
||
|
||
2014-01-28 Richard Biener <rguenther@suse.de>
|
||
|
||
Revert
|
||
2014-01-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/45364
|
||
PR rtl-optimization/59890
|
||
* var-tracking.c (local_get_addr_clear_given_value): Handle
|
||
already cleared slot.
|
||
(val_reset): Handle not allocated local_get_addr_cache.
|
||
(vt_find_locations): Use post-order on the inverted CFG.
|
||
|
||
2014-01-28 Richard Biener <rguenther@suse.de>
|
||
|
||
* tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
|
||
|
||
2014-01-28 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/45364
|
||
PR rtl-optimization/59890
|
||
* var-tracking.c (local_get_addr_clear_given_value): Handle
|
||
already cleared slot.
|
||
(val_reset): Handle not allocated local_get_addr_cache.
|
||
(vt_find_locations): Use post-order on the inverted CFG.
|
||
|
||
2014-01-28 Alan Modra <amodra@gmail.com>
|
||
|
||
* Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
|
||
* configure.ac <recursive call for build != host>: Define
|
||
GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
|
||
and LD_FOR_BUILD too.
|
||
* configure: Regenerate.
|
||
|
||
2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
|
||
|
||
* config/i386/i386.c (get_builtin_code_for_version): Separate
|
||
Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
|
||
Broadwell from Haswell.
|
||
|
||
2014-01-27 Steve Ellcey <sellcey@mips.com>
|
||
|
||
* common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
|
||
Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
|
||
* config/mips/mips.c (mips_option_override): Change setting
|
||
of TARGET_DSP.
|
||
* config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
|
||
* config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
|
||
Change from Mask to Var.
|
||
|
||
2014-01-27 Jeff Law <law@redhat.com>
|
||
|
||
* ipa-inline.c (inline_small_functions): Fix typo.
|
||
|
||
2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
|
||
(_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
|
||
(_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
|
||
(_mm512_mask_cvtepi32_storeu_epi16): Ditto.
|
||
(_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
|
||
(_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
|
||
(_mm512_mask_cvtepi64_storeu_epi32): Ditto.
|
||
(_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
|
||
(_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
|
||
(_mm512_mask_cvtepi64_storeu_epi16): Ditto.
|
||
(_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
|
||
(_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
|
||
(_mm512_mask_cvtepi64_storeu_epi8): Ditto.
|
||
(_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
|
||
(_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
|
||
(_mm512_storeu_epi64): Ditto.
|
||
(_mm512_cmpge_epi32_mask): Ditto.
|
||
(_mm512_cmpge_epu32_mask): Ditto.
|
||
(_mm512_cmpge_epi64_mask): Ditto.
|
||
(_mm512_cmpge_epu64_mask): Ditto.
|
||
(_mm512_cmple_epi32_mask): Ditto.
|
||
(_mm512_cmple_epu32_mask): Ditto.
|
||
(_mm512_cmple_epi64_mask): Ditto.
|
||
(_mm512_cmple_epu64_mask): Ditto.
|
||
(_mm512_cmplt_epi32_mask): Ditto.
|
||
(_mm512_cmplt_epu32_mask): Ditto.
|
||
(_mm512_cmplt_epi64_mask): Ditto.
|
||
(_mm512_cmplt_epu64_mask): Ditto.
|
||
(_mm512_cmpneq_epi32_mask): Ditto.
|
||
(_mm512_cmpneq_epu32_mask): Ditto.
|
||
(_mm512_cmpneq_epi64_mask): Ditto.
|
||
(_mm512_cmpneq_epu64_mask): Ditto.
|
||
(_mm512_expand_pd): Ditto.
|
||
(_mm512_expand_ps): Ditto.
|
||
* config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
|
||
VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
|
||
VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
|
||
* config/i386/i386.c (ix86_builtins): Add
|
||
IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
|
||
IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
|
||
IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
|
||
IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
|
||
IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
|
||
IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
|
||
IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
|
||
IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
|
||
IX86_BUILTIN_PMOVUSQW512_MEM.
|
||
(bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
|
||
__builtin_ia32_pmovsqd512mem_mask,
|
||
__builtin_ia32_pmovqd512mem_mask,
|
||
__builtin_ia32_pmovusqw512mem_mask,
|
||
__builtin_ia32_pmovsqw512mem_mask,
|
||
__builtin_ia32_pmovqw512mem_mask,
|
||
__builtin_ia32_pmovusdw512mem_mask,
|
||
__builtin_ia32_pmovsdw512mem_mask,
|
||
__builtin_ia32_pmovdw512mem_mask,
|
||
__builtin_ia32_pmovqb512mem_mask,
|
||
__builtin_ia32_pmovusqb512mem_mask,
|
||
__builtin_ia32_pmovsqb512mem_mask,
|
||
__builtin_ia32_pmovusdb512mem_mask,
|
||
__builtin_ia32_pmovsdb512mem_mask,
|
||
__builtin_ia32_pmovdb512mem_mask.
|
||
(bdesc_args): Add __builtin_ia32_expanddf512,
|
||
__builtin_ia32_expandsf512.
|
||
(ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
|
||
VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
|
||
VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
|
||
* config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
|
||
(avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
|
||
(*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
|
||
(avx512f_<code>v8div16qi2_mask_store): This.
|
||
(avx512f_expand<mode>): New.
|
||
|
||
2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
|
||
|
||
* config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
|
||
New.
|
||
(_mm512_mask_prefetch_i64gather_pd): Ditto.
|
||
(_mm512_prefetch_i32scatter_pd): Ditto.
|
||
(_mm512_mask_prefetch_i32scatter_pd): Ditto.
|
||
(_mm512_prefetch_i64scatter_pd): Ditto.
|
||
(_mm512_mask_prefetch_i64scatter_pd): Ditto.
|
||
(_mm512_mask_prefetch_i32gather_ps): Fix operand type.
|
||
(_mm512_mask_prefetch_i64gather_ps): Ditto.
|
||
(_mm512_prefetch_i32scatter_ps): Ditto.
|
||
(_mm512_mask_prefetch_i32scatter_ps): Ditto.
|
||
(_mm512_prefetch_i64scatter_ps): Ditto.
|
||
(_mm512_mask_prefetch_i64scatter_ps): Ditto.
|
||
* config/i386/i386-builtin-types.def: Define
|
||
VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
|
||
and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
|
||
* config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
|
||
IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
|
||
IX86_BUILTIN_SCATTERPFQPD.
|
||
(ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
|
||
__builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
|
||
__builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
|
||
__builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
|
||
__builtin_ia32_scatterpfqps.
|
||
(ix86_expand_builtin): Expand new built-ins.
|
||
* config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
|
||
fix memory access data type.
|
||
(*avx512pf_gatherpf<mode>_mask): Ditto.
|
||
(*avx512pf_gatherpf<mode>): Ditto.
|
||
(avx512pf_scatterpf<mode>): Ditto.
|
||
(*avx512pf_scatterpf<mode>_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>): Ditto.
|
||
(GATHER_SCATTER_SF_MEM_MODE): New.
|
||
(avx512pf_gatherpf<mode>df): Ditto.
|
||
(*avx512pf_gatherpf<mode>df_mask): Ditto.
|
||
(*avx512pf_scatterpf<mode>df): Ditto.
|
||
|
||
2014-01-27 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR bootstrap/59934
|
||
* expmed.h (expmed_mode_index): Rework so that analysis and optimziers
|
||
know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
|
||
reached.
|
||
|
||
2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* common/config/arm/arm-common.c
|
||
(arm_rewrite_mcpu): Handle multiple names.
|
||
* config/arm/arm.h
|
||
(BIG_LITTLE_SPEC): Do not discard mcpu switches.
|
||
|
||
2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* gimple-builder.h (create_gimple_tmp): Delete.
|
||
|
||
2014-01-27 Christian Bruel <christian.bruel@st.com>
|
||
|
||
* config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
|
||
words comparisons.
|
||
|
||
2014-01-26 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
* config/pa/pa.md (call): Generate indirect long calls to non-local
|
||
functions when outputing 32-bit code.
|
||
(call_value): Likewise except for special call to buggy powf function.
|
||
|
||
* config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
|
||
portable runtime and PIC indirect calls.
|
||
(pa_output_indirect_call): Remove unnecessary nop from portable runtime
|
||
and PIC call sequences. Use ldo instead of blr to set return register
|
||
in PIC call sequence.
|
||
|
||
2014-01-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
|
||
avoid clobbering a live register.
|
||
|
||
2014-01-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
|
||
Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
|
||
* config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
|
||
Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
|
||
|
||
2014-01-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
|
||
arguments on even registers.
|
||
(tilegx_gimplify_va_arg_expr): Align 16-byte var args to
|
||
STACK_BOUNDARY.
|
||
* config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
|
||
(BIGGEST_ALIGNMENT): Ditto.
|
||
(BIGGEST_FIELD_ALIGNMENT): Ditto.
|
||
|
||
2014-01-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
|
||
insns before bundling.
|
||
* config/tilegx/tilegx.md (tile_network_barrier): Update comment.
|
||
|
||
2014-01-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.c (tilegx_expand_builtin): Set
|
||
PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
|
||
* config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
|
||
|
||
2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/constraints.md (kl): Delete.
|
||
* config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
|
||
define expands, using...
|
||
(divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
|
||
instructions for MIPS16.
|
||
(*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
|
||
non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
|
||
|
||
2014-01-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
|
||
(clzdi2): Ditto.
|
||
(ffsdi2): Ditto.
|
||
|
||
2014-01-25 Walter Lee <walt@tilera.com>
|
||
|
||
* config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
|
||
(TARGET_EXPAND_TO_RTL_HOOK): Define.
|
||
|
||
2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* rtlanal.c (canonicalize_condition): Split out duplicated mode check.
|
||
Handle XOR.
|
||
|
||
2014-01-25 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* print-rtl.c (in_call_function_usage): New var.
|
||
(print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
|
||
EXPR_LIST mode as mode and not as reg note name.
|
||
|
||
PR middle-end/59561
|
||
* cfgloopmanip.c (copy_loop_info): If
|
||
loop->warned_aggressive_loop_optimizations, make sure
|
||
the flag is set in target loop too.
|
||
|
||
2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
|
||
|
||
* builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
|
||
flag_cilkplus.
|
||
* builtins.def: Likewise.
|
||
* cilk.h (fn_contains_cilk_spawn_p): Likewise.
|
||
* cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
|
||
* ira.c (ira_setup_eliminable_regset): Likewise.
|
||
* omp-low.c (gate_expand_omp): Likewise.
|
||
(execute_lower_omp): Likewise.
|
||
(diagnose_sb_0): Likewise.
|
||
(gate_diagnose_omp_blocks): Likewise.
|
||
(simd_clone_clauses_extract): Likewise.
|
||
(gate): Likewise.
|
||
|
||
2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
|
||
correction for little endian...
|
||
* config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
|
||
here.
|
||
|
||
2014-01-24 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/59919
|
||
* tree-vrp.c (find_assert_locations_1): Do not register asserts
|
||
for non-returning calls.
|
||
|
||
2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* common/config/aarch64/aarch64-common.c
|
||
(aarch64_rewrite_mcpu): Handle multiple names.
|
||
* config/aarch64/aarch64.h
|
||
(BIG_LITTLE_SPEC): Do not discard mcpu switches.
|
||
|
||
2014-01-24 Dodji Seketeli <dodji@redhat.com>
|
||
|
||
* input.c (add_file_to_cache_tab): Handle the case where fopen
|
||
returns NULL.
|
||
|
||
2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/59929
|
||
* config/i386/i386.md (pushsf splitter): Get stack adjustment
|
||
from push operand if code of push isn't PRE_DEC.
|
||
|
||
2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/59909
|
||
* doc/invoke.texi (RS/6000 and PowerPC Options): Document
|
||
-mquad-memory-atomic. Update -mquad-memory documentation to say
|
||
it is only used for non-atomic loads/stores.
|
||
|
||
* config/rs6000/predicates.md (quad_int_reg_operand): Allow either
|
||
-mquad-memory or -mquad-memory-atomic switches.
|
||
|
||
* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
|
||
-mquad-memory-atomic to ISA 2.07 support.
|
||
|
||
* config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
|
||
to separate support of normal quad word memory operations (ldq, stq)
|
||
from the atomic quad word memory operations.
|
||
|
||
* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
|
||
support to separate non-atomic quad word operations from atomic
|
||
quad word operations. Disable non-atomic quad word operations in
|
||
little endian mode so that we don't have to swap words after the
|
||
load and before the store.
|
||
(quad_load_store_p): Add comment about atomic quad word support.
|
||
(rs6000_opt_masks): Add -mquad-memory-atomic to the list of
|
||
options printed with -mdebug=reg.
|
||
|
||
* config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
|
||
-mquad-memory-atomic as the test for whether we have quad word
|
||
atomic instructions.
|
||
(TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
|
||
or -mp8-vector are used, allow byte/half-word atomic operations.
|
||
|
||
* config/rs6000/sync.md (load_lockedti): Insure that the address
|
||
is a proper indexed or indirect address for the lqarx instruction.
|
||
On little endian systems, swap the hi/lo registers after the lqarx
|
||
instruction.
|
||
(load_lockedpti): Use indexed_or_indirect_operand predicate to
|
||
insure the address is valid for the lqarx instruction.
|
||
(store_conditionalti): Insure that the address is a proper indexed
|
||
or indirect address for the stqcrx. instruction. On little endian
|
||
systems, swap the hi/lo registers before doing the stqcrx.
|
||
instruction.
|
||
(store_conditionalpti): Use indexed_or_indirect_operand predicate to
|
||
insure the address is valid for the stqcrx. instruction.
|
||
|
||
* gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
|
||
Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
|
||
type of quad memory support is available.
|
||
|
||
2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR regression/59915
|
||
* lra-constraints.c (simplify_operand_subreg): Spill pseudo if
|
||
there is a danger of looping.
|
||
|
||
2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
|
||
force flag_ira_loop_pressure if set via command line.
|
||
|
||
2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
|
||
(ashr_simd): New builtin handling DI mode.
|
||
* config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
|
||
(aarch64_sshr_simddi): New match pattern.
|
||
* config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
|
||
(vshrd_n_s64): Likewise.
|
||
* config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
|
||
|
||
2014-01-23 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
|
||
(LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
|
||
favour of mcu specific scripts.
|
||
* config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
|
||
430x multilibs.
|
||
|
||
2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
|
||
Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
|
||
(vaddv_s16): Likewise.
|
||
(vaddv_s32): Likewise.
|
||
(vaddv_u8): Likewise.
|
||
(vaddv_u16): Likewise.
|
||
(vaddv_u32): Likewise.
|
||
(vaddvq_s8): Likewise.
|
||
(vaddvq_s16): Likewise.
|
||
(vaddvq_s32): Likewise.
|
||
(vaddvq_s64): Likewise.
|
||
(vaddvq_u8): Likewise.
|
||
(vaddvq_u16): Likewise.
|
||
(vaddvq_u32): Likewise.
|
||
(vaddvq_u64): Likewise.
|
||
(vaddv_f32): Likewise.
|
||
(vaddvq_f32): Likewise.
|
||
(vaddvq_f64): Likewise.
|
||
(vmaxv_f32): Likewise.
|
||
(vmaxv_s8): Likewise.
|
||
(vmaxv_s16): Likewise.
|
||
(vmaxv_s32): Likewise.
|
||
(vmaxv_u8): Likewise.
|
||
(vmaxv_u16): Likewise.
|
||
(vmaxv_u32): Likewise.
|
||
(vmaxvq_f32): Likewise.
|
||
(vmaxvq_f64): Likewise.
|
||
(vmaxvq_s8): Likewise.
|
||
(vmaxvq_s16): Likewise.
|
||
(vmaxvq_s32): Likewise.
|
||
(vmaxvq_u8): Likewise.
|
||
(vmaxvq_u16): Likewise.
|
||
(vmaxvq_u32): Likewise.
|
||
(vmaxnmv_f32): Likewise.
|
||
(vmaxnmvq_f32): Likewise.
|
||
(vmaxnmvq_f64): Likewise.
|
||
(vminv_f32): Likewise.
|
||
(vminv_s8): Likewise.
|
||
(vminv_s16): Likewise.
|
||
(vminv_s32): Likewise.
|
||
(vminv_u8): Likewise.
|
||
(vminv_u16): Likewise.
|
||
(vminv_u32): Likewise.
|
||
(vminvq_f32): Likewise.
|
||
(vminvq_f64): Likewise.
|
||
(vminvq_s8): Likewise.
|
||
(vminvq_s16): Likewise.
|
||
(vminvq_s32): Likewise.
|
||
(vminvq_u8): Likewise.
|
||
(vminvq_u16): Likewise.
|
||
(vminvq_u32): Likewise.
|
||
(vminnmv_f32): Likewise.
|
||
(vminnmvq_f32): Likewise.
|
||
(vminnmvq_f64): Likewise.
|
||
|
||
2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_dup_lane<mode>): Correct lane number on big-endian.
|
||
(aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
|
||
(*aarch64_mul3_elt<mode>): Likewise.
|
||
(*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
|
||
(*aarch64_mul3_elt_to_64v2df): Likewise.
|
||
(*aarch64_mla_elt<mode>): Likewise.
|
||
(*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
|
||
(*aarch64_mls_elt<mode>): Likewise.
|
||
(*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
|
||
(*aarch64_fma4_elt<mode>): Likewise.
|
||
(*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
|
||
(*aarch64_fma4_elt_to_64v2df): Likewise.
|
||
(*aarch64_fnma4_elt<mode>): Likewise.
|
||
(*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
|
||
(*aarch64_fnma4_elt_to_64v2df): Likewise.
|
||
(aarch64_sq<r>dmulh_lane<mode>): Likewise.
|
||
(aarch64_sq<r>dmulh_laneq<mode>): Likewise.
|
||
(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
|
||
(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
|
||
(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
|
||
(aarch64_sqdmull_lane<mode>_internal): Likewise.
|
||
(aarch64_sqdmull2_lane<mode>_internal): Likewise.
|
||
|
||
2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md
|
||
(aarch64_be_checked_get_lane<mode>): New define_expand.
|
||
* config/aarch64/aarch64-simd-builtins.def
|
||
(BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
|
||
New builtin definition.
|
||
* config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
|
||
Use new safe be builtin.
|
||
|
||
2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
|
||
New define_insn.
|
||
(aarch64_be_st1<mode>): Likewise.
|
||
(aarch_ld1<VALL:mode>): Define_expand modified.
|
||
(aarch_st1<VALL:mode>): Likewise.
|
||
* config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
|
||
(UNSPEC_ST1): Likewise.
|
||
|
||
2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.md: Add trap insn and attribute
|
||
|
||
2014-01-23 Dodji Seketeli <dodji@redhat.com>
|
||
|
||
PR preprocessor/58580
|
||
* input.h (location_get_source_line): Take an additional line_size
|
||
parameter.
|
||
(void diagnostics_file_cache_fini): Declare new function.
|
||
* input.c (struct fcache): New type.
|
||
(fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
|
||
New static constants.
|
||
(diagnostic_file_cache_init, total_lines_num)
|
||
(lookup_file_in_cache_tab, evicted_cache_tab_entry)
|
||
(add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
|
||
(needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
|
||
(get_next_line, read_next_line, goto_next_line, read_line_num):
|
||
New static function definitions.
|
||
(diagnostic_file_cache_fini): New function.
|
||
(location_get_source_line): Take an additional output line_len
|
||
parameter. Re-write using lookup_or_add_file_to_cache_tab and
|
||
read_line_num.
|
||
* diagnostic.c (diagnostic_finish): Call
|
||
diagnostic_file_cache_fini.
|
||
(adjust_line): Take an additional input parameter for the length
|
||
of the line, rather than calculating it with strlen.
|
||
(diagnostic_show_locus): Adjust the use of
|
||
location_get_source_line and adjust_line with respect to their new
|
||
signature. While displaying a line now, do not stop at the first
|
||
null byte. Rather, display the zero byte as a space and keep
|
||
going until we reach the size of the line.
|
||
* Makefile.in: Add vec.o to OBJS-libcommon
|
||
|
||
2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
|
||
Ilya Tocar <ilya.tocar@intel.com>
|
||
|
||
* config/i386/avx512fintrin.h (_mm512_kmov): New.
|
||
* config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
|
||
(__builtin_ia32_kmov16): Ditto.
|
||
* config/i386/i386.md (UNSPEC_KMOV): New.
|
||
(kmovw): Ditto.
|
||
|
||
2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
|
||
|
||
* config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
|
||
(_mm512_storeu_si512): Ditto.
|
||
|
||
2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR target/52125
|
||
* rtl.h (get_referenced_operands): Declare.
|
||
* recog.c (get_referenced_operands): New function.
|
||
* config/mips/mips.c (mips_reorg_process_insns): Check which asm
|
||
operands have been referenced when recording LO_SUM references.
|
||
|
||
2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
|
||
|
||
* config/microblaze/microblaze.md: Correct bswaphi2 insn.
|
||
|
||
2014-01-22 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
|
||
Enable for generic and recent AMD targets.
|
||
|
||
2014-01-22 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
|
||
ARG_SIZE note when adjustment was eliminated.
|
||
|
||
2014-01-22 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/59597
|
||
* tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
|
||
in file. Accept new argument REGISTERING and use it to modify
|
||
dump output appropriately.
|
||
(register_jump_thread): Corresponding changes.
|
||
(mark_threaded_blocks): Reinstate code to cancel unprofitable
|
||
thread paths involving joiner blocks. Add code to dump cancelled
|
||
jump threading paths.
|
||
|
||
2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/59477
|
||
* lra-constraints.c (inherit_in_ebb): Process call for living hard
|
||
regs. Update reloads_num and potential_reload_hard_regs for all insns.
|
||
|
||
2014-01-22 Tom Tromey <tromey@redhat.com>
|
||
|
||
* config/i386/i386-interix.h (i386_pe_unique_section): Don't use
|
||
PARAMS.
|
||
* config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
|
||
|
||
2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/59896
|
||
* lra-constraints.c (process_alt_operands): Check unused note for
|
||
matched operands of insn with no output reloads.
|
||
|
||
2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
|
||
(mips_move_from_gpr_cost): Likewise.
|
||
|
||
2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/59858
|
||
* lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
|
||
ira_class_hard_regs_num.
|
||
(process_alt_operands): Increase reject for dying matched operand.
|
||
|
||
2014-01-21 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/59003
|
||
* config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
|
||
smaller than size, perform several stores or loads and stores
|
||
at dst + count - size to store or copy all of size bytes, rather
|
||
than just last modesize bytes.
|
||
|
||
2014-01-20 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/rl78/rl78.c (rl78_propogate_register_origins): Verify
|
||
that CLOBBERs are REGs before propogating their values.
|
||
|
||
2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR middle-end/59789
|
||
* cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
|
||
(cgraph_inline_failed_type): New function.
|
||
* cgraph.h (DEFCIFCODE): Add type.
|
||
(cgraph_inline_failed_type_t): New enum.
|
||
(cgraph_inline_failed_type): New prototype.
|
||
* cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
|
||
FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
|
||
FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
|
||
LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
|
||
MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
|
||
RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
|
||
OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
|
||
INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
|
||
Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
|
||
FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
|
||
EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
|
||
OPTIMIZATION_MISMATCH.
|
||
* tree-inline.c (expand_call_inline): Emit errors during
|
||
early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
|
||
|
||
2014-01-20 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
PR target/59685
|
||
* config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
|
||
mode attribute in insn output.
|
||
|
||
2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* output.h (output_constant): Delete.
|
||
* varasm.c (output_constant): Make private.
|
||
|
||
2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
|
||
|
||
* config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
|
||
|
||
2014-01-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/59860
|
||
* tree.h (fold_builtin_strcat): New prototype.
|
||
* builtins.c (fold_builtin_strcat): No longer static. Add len
|
||
argument, if non-NULL, don't call c_strlen. Optimize
|
||
directly into __builtin_memcpy instead of __builtin_strcpy.
|
||
(fold_builtin_2): Adjust fold_builtin_strcat caller.
|
||
* gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
|
||
|
||
2014-01-20 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
|
||
for SImode_address_operand operands, having only a REG argument.
|
||
|
||
2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
|
||
|
||
* config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
|
||
loader name using mbig-endian.
|
||
(LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
|
||
|
||
2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* doc/invoke.texi (-march): Clarify documentation for AArch64.
|
||
(-mtune): Likewise.
|
||
(-mcpu): Likewise.
|
||
|
||
2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
|
||
|
||
* config/aarch64/aarch64-protos.h
|
||
(aarch64_cannot_change_mode_class_ptr): Declare.
|
||
* config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
|
||
aarch64_cannot_change_mode_class_ptr): New.
|
||
* config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
|
||
backend hook aarch64_cannot_change_mode_class.
|
||
|
||
2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* common/config/aarch64/aarch64-common.c
|
||
(aarch64_handle_option): Don't handle any option order logic here.
|
||
* config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
|
||
selected_cpu, warn on architecture version mismatch.
|
||
(aarch64_override_options): Fix parsing order for option strings.
|
||
|
||
2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
Iain Sandoe <iain@codesourcery.com>
|
||
|
||
PR bootstrap/59496
|
||
* config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
|
||
warning. Amend comment to reflect current functionality.
|
||
|
||
2014-01-20 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/59860
|
||
* builtins.c (fold_builtin_strcat): Remove case better handled
|
||
by tree-ssa-strlen.c.
|
||
|
||
2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/aarch64/aarch64.opt
|
||
(mcpu, march, mtune): Make case-insensitive.
|
||
|
||
2014-01-20 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/59880
|
||
* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
|
||
if operands[1] is a REG or ZERO_EXTEND of a REG.
|
||
|
||
2014-01-19 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
* varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
|
||
|
||
2014-01-19 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
* config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
|
||
long non-pic millicode calls.
|
||
|
||
2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
|
||
|
||
2014-01-19 Kito Cheng <kito@0xlab.org>
|
||
|
||
* builtins.c (expand_movstr): Check movstr expand done or fail.
|
||
|
||
2014-01-18 Uros Bizjak <ubizjak@gmail.com>
|
||
H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/59379
|
||
* config/i386/i386.md (*lea<mode>): Zero-extend return register
|
||
to DImode for zero-extended addresses.
|
||
|
||
2014-01-19 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/57763
|
||
* bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
|
||
on the new indirect jump_insn and increment LABEL_NUSES (label).
|
||
|
||
2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR bootstrap/59580
|
||
PR bootstrap/59583
|
||
* config.gcc (x86_archs): New variable.
|
||
(x86_64_archs): Likewise.
|
||
(x86_cpus): Likewise.
|
||
Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
|
||
--with-arch/--with-cpu= options.
|
||
Support --with-arch=/--with-cpu={nehalem,westmere,
|
||
sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
|
||
|
||
2014-01-18 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
|
||
and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
|
||
|
||
2014-01-18 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
|
||
|
||
2014-01-18 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/58944
|
||
* config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
|
||
clear cpp_get_options (parse_in)->warn_unused_macros for
|
||
ix86_target_macros_internal with cpp_define.
|
||
|
||
2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* jump.c (delete_related_insns): Keep (use (insn))s.
|
||
* reorg.c (redundant_insn): Check for barriers too.
|
||
|
||
2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
|
||
|
||
2014-01-17 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
* config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
|
||
call to $$dyncall when TARGET_LONG_CALLS is true.
|
||
|
||
2014-01-17 Jeff Law <law@redhat.com>
|
||
|
||
* ree.c (combine_set_extension): Temporarily disable test for
|
||
changing number of hard registers.
|
||
|
||
2014-01-17 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR middle-end/58125
|
||
* ipa-inline-analysis.c (inline_free_summary):
|
||
Do not free summary of aliases.
|
||
|
||
2014-01-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/59706
|
||
* gimplify.c (gimplify_expr): Use create_tmp_var
|
||
instead of create_tmp_var_raw. If cond doesn't have
|
||
integral type, don't add the IFN_ANNOTATE builtin at all.
|
||
|
||
2014-01-17 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/59736
|
||
* ipa-cp.c (prev_edge_clone): New variable.
|
||
(grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
|
||
Also resize prev_edge_clone vector.
|
||
(ipcp_edge_duplication_hook): Also update prev_edge_clone.
|
||
(ipcp_edge_removal_hook): New function.
|
||
(ipcp_driver): Register ipcp_edge_removal_hook.
|
||
|
||
2014-01-17 Andrew Pinski <apinski@cavium.com>
|
||
Steve Ellcey <sellcey@mips.com>
|
||
|
||
PR target/59462
|
||
* config/mips/mips.c (mips_print_operand): Check operand mode instead
|
||
of operator mode.
|
||
|
||
2014-01-17 Jeff Law <law@redhat.com>
|
||
|
||
PR middle-end/57904
|
||
* passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
|
||
so that pass_ccp runs first.
|
||
|
||
2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
|
||
(ix86_adjust_cost): Use !TARGET_XXX.
|
||
(do_reorder_for_imul): Likewise.
|
||
(swap_top_of_ready_list): Likewise.
|
||
(ix86_sched_reorder): Likewise.
|
||
|
||
2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386-c.c (ix86_target_macros_internal): Handle
|
||
PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
|
||
* config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
|
||
(intel_memset): New. Duplicate slm_memset.
|
||
(intel_cost): New. Duplicate slm_cost.
|
||
(m_INTEL): New macro.
|
||
(processor_target_table): Add "intel".
|
||
(ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
|
||
with PROCESSOR_INTEL for "intel".
|
||
(ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
|
||
PROCESSOR_SILVERMONT.
|
||
(ix86_issue_rate): Likewise.
|
||
(ix86_adjust_cost): Likewise.
|
||
(ia32_multipass_dfa_lookahead): Likewise.
|
||
(swap_top_of_ready_list): Likewise.
|
||
(ix86_sched_reorder): Likewise.
|
||
(ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
|
||
instead of TARGET_OPT_AGU.
|
||
* config/i386/i386.h (TARGET_INTEL): New.
|
||
(TARGET_AVOID_LEA_FOR_ADDR): Likewise.
|
||
(processor_type): Add PROCESSOR_INTEL.
|
||
* config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
|
||
Add X86_TUNE_AVOID_LEA_FOR_ADDR.
|
||
|
||
2014-01-17 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/58346
|
||
* gimple-fold.c (fold_array_ctor_reference): Don't fold if element
|
||
size is zero.
|
||
|
||
2014-01-17 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/46590
|
||
* opts.c (default_options_table): Add entries for
|
||
OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
|
||
all enabled at -O1 but not for -Og.
|
||
* common.opt (fbranch-count-reg): Remove Init(1).
|
||
(fmove-loop-invariants): Likewise.
|
||
(ftree-pta): Likewise.
|
||
|
||
2014-01-17 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/i386.c (ix86_data_alignment): For compatibility with
|
||
(incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
|
||
decls to at least the GCC 4.8 used alignments.
|
||
|
||
PR fortran/59440
|
||
* tree-nested.c (convert_nonlocal_reference_stmt,
|
||
convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
|
||
of GIMPLE_BIND stmts, adjust associated decls.
|
||
|
||
2014-01-17 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/46590
|
||
* vec.h (vec<>::bseach): New member function implementing
|
||
binary search according to C89 bsearch.
|
||
(vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
|
||
* tree-ssa-loop-im.c (struct mem_ref): Make stored member a
|
||
bitmap pointer again. Make accesses_in_loop a flat array.
|
||
(mem_ref_obstack): New global.
|
||
(outermost_indep_loop): Adjust for mem_ref->stored changes.
|
||
(mark_ref_stored): Likewise.
|
||
(ref_indep_loop_p_2): Likewise.
|
||
(set_ref_stored_in_loop): New helper function.
|
||
(mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
|
||
(memref_free): Adjust.
|
||
(record_mem_ref_loc): Simplify.
|
||
(gather_mem_refs_stmt): Adjust.
|
||
(sort_locs_in_loop_postorder_cmp): New function.
|
||
(analyze_memory_references): Sort accesses_in_loop after
|
||
loop postorder number.
|
||
(find_ref_loc_in_loop_cmp): New function.
|
||
(for_all_locs_in_loop): Find relevant cluster of locs in
|
||
accesses_in_loop and iterate without recursion.
|
||
(execute_sm): Avoid uninit warning.
|
||
(struct ref_always_accessed): Simplify.
|
||
(ref_always_accessed::operator ()): Likewise.
|
||
(ref_always_accessed_p): Likewise.
|
||
(tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
|
||
loop postorder numbers here.
|
||
(tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
|
||
numbers.
|
||
|
||
2014-01-17 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR c++/57945
|
||
* passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
|
||
on decls for which assemble_alias has been called.
|
||
|
||
2014-01-17 Nick Clifton <nickc@redhat.com>
|
||
|
||
* config/msp430/msp430.opt: (mcpu): New option.
|
||
* config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
|
||
(msp430_option_override): Parse target_cpu. If the MCU name
|
||
matches a generic string, clear target_mcu.
|
||
(msp430_attr): Allow numeric interrupt values up to 63.
|
||
(msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
|
||
* config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
|
||
option.
|
||
* config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
|
||
Add mcpu matches.
|
||
* config/msp430/msp430.md (popm): Use %J rather than %I.
|
||
(addsi3): Use msp430_nonimmediate_operand for operand 2.
|
||
(addhi_cy_i): Use immediate_operand for operand 2.
|
||
* doc/invoke.texi: Document -mcpu option.
|
||
|
||
2014-01-17 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/38518
|
||
* df.h (df_analyze_loop): Declare.
|
||
* df-core.c: Include cfgloop.h.
|
||
(df_analyze_1): Split out main part of df_analyze.
|
||
(df_analyze): Adjust.
|
||
(loop_inverted_post_order_compute): New function.
|
||
(loop_post_order_compute): Likewise.
|
||
(df_analyze_loop): New function avoiding whole-function
|
||
postorder computes.
|
||
* loop-invariant.c (find_defs): Use df_analyze_loop.
|
||
(find_invariants): Adjust.
|
||
* loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
|
||
|
||
2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
|
||
|
||
* config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
|
||
(thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
|
||
|
||
2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
|
||
|
||
* ipa-ref.c (ipa_remove_stmt_references): Fix references
|
||
traversal when removing references.
|
||
|
||
2014-01-16 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/59775
|
||
* tree.c (get_binfo_at_offset): Look harder for virtual bases.
|
||
|
||
2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
|
||
|
||
PR middle-end/56791
|
||
* reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
|
||
pushing a reload for an autoinc when we had previously reloaded an
|
||
inner part of the address.
|
||
|
||
2014-01-16 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
|
||
field.
|
||
(LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
|
||
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
|
||
when not giving up or versioning for alias only because of
|
||
loop->safelen.
|
||
(vect_analyze_data_ref_dependences): Set to true.
|
||
* tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
|
||
is a GIMPLE_PHI.
|
||
(vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
|
||
LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
|
||
to the condition.
|
||
|
||
PR middle-end/58344
|
||
* expr.c (expand_expr_real_1): Handle init == NULL_TREE.
|
||
|
||
PR target/59839
|
||
* config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
|
||
operand 0 predicate for gathers, use a new pseudo as subtarget.
|
||
|
||
2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR middle-end/59609
|
||
* lra-constraints.c (process_alt_operands): Add printing debug info.
|
||
Check absence of input/output reloads for matched operands too.
|
||
|
||
2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/59835
|
||
* ira.c (ira_init_register_move_cost): Increase cost for
|
||
impossible modes.
|
||
|
||
2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
|
||
|
||
* config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
|
||
|
||
2014-01-16 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
PR target/59780
|
||
* aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
|
||
non-register objects. Use gen_(high/low)part more consistently.
|
||
Fix assertions.
|
||
|
||
2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR target/59844
|
||
* config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
|
||
endian support, remove tests for WORDS_BIG_ENDIAN.
|
||
(p8_mfvsrd_3_<mode>): Likewise.
|
||
(reload_gpr_from_vsx<mode>): Likewise.
|
||
(reload_gpr_from_vsxsf): Likewise.
|
||
(p8_mfvsrd_4_disf): Likewise.
|
||
|
||
2014-01-16 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/46590
|
||
* lcm.c (compute_antinout_edge): Use postorder iteration.
|
||
(compute_laterin): Use inverted postorder iteration.
|
||
|
||
2014-01-16 Nick Clifton <nickc@redhat.com>
|
||
|
||
PR middle-end/28865
|
||
* varasm.c (output_constant): Return the number of bytes actually
|
||
emitted.
|
||
(output_constructor_array_range): Update the field size with the
|
||
number of bytes emitted by output_constant.
|
||
(output_constructor_regular_field): Likewise. Also do not
|
||
complain if the total number of bytes emitted is now greater
|
||
than the expected fieldpos.
|
||
* output.h (output_constant): Update prototype and descriptive comment.
|
||
|
||
2014-01-16 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR middle-end/59827
|
||
* cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
|
||
it is error_mark_node.
|
||
|
||
2014-01-15 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_hard_regno_mode_ok): Use
|
||
VALID_AVX256_REG_OR_OI_MODE.
|
||
|
||
2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
|
||
current procedure should be profiled.
|
||
|
||
2014-01-15 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
|
||
of moving from/to the STACK_REG register class.
|
||
|
||
2014-01-15 Richard Henderson <rth@redhat.com>
|
||
|
||
PR debug/54694
|
||
* reginfo.c (global_regs_decl): Globalize.
|
||
* rtl.h (global_regs_decl): Declare.
|
||
* ira.c (do_reload): Diagnose frame_pointer_needed and it
|
||
reserved via global_regs.
|
||
|
||
2014-01-15 Teresa Johnson <tejohnson@google.com>
|
||
|
||
* tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
|
||
|
||
2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
|
||
|
||
* config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
|
||
and vmulosh rather than call gen_vec_widen_smult_*.
|
||
(vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
|
||
than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
|
||
(vec_widen_smult_even_v16qi): Likewise.
|
||
(vec_widen_umult_even_v8hi): Likewise.
|
||
(vec_widen_smult_even_v8hi): Likewise.
|
||
(vec_widen_umult_odd_v16qi): Likewise.
|
||
(vec_widen_smult_odd_v16qi): Likewise.
|
||
(vec_widen_umult_odd_v8hi): Likewise.
|
||
(vec_widen_smult_odd_v8hi): Likewise.
|
||
(vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
|
||
vmuloub rather than call gen_vec_widen_umult_*.
|
||
(vec_widen_umult_lo_v16qi): Likewise.
|
||
(vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
|
||
vmulosb rather than call gen_vec_widen_smult_*.
|
||
(vec_widen_smult_lo_v16qi): Likewise.
|
||
(vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
|
||
rather than call gen_vec_widen_umult_*.
|
||
(vec_widen_umult_lo_v8hi): Likewise.
|
||
(vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
|
||
rather than call gen_vec_widen_smult_*.
|
||
(vec_widen_smult_lo_v8hi): Likewise.
|
||
|
||
2014-01-15 Jeff Law <law@redhat.com>
|
||
|
||
PR tree-optimization/59747
|
||
* ree.c (find_and_remove_re): Properly handle case where a second
|
||
eliminated extension requires widening a copy created for elimination
|
||
of a prior extension.
|
||
(combine_set_extension): Ensure that the number of hard regs needed
|
||
for a destination register does not change when we widen it.
|
||
|
||
2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||
|
||
* config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
|
||
(arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
|
||
(arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
|
||
(arm*-*-rtems*): Use t-rtems from existing tmake_file.
|
||
(avr-*-rtems*): Likewise.
|
||
(bfin*-rtems*): Likewise.
|
||
(moxie-*-rtems*): Likewise.
|
||
(h8300-*-rtems*): Likewise.
|
||
(i[34567]86-*-rtems*): Likewise.
|
||
(lm32-*-rtems*): Likewise.
|
||
(m32r-*-rtems*): Likewise.
|
||
(m68k-*-rtems*): Likewise.
|
||
(microblaze*-*-rtems*): Likewise.
|
||
(mips*-*-rtems*): Likewise.
|
||
(powerpc-*-rtems*): Likewise.
|
||
(sh-*-rtems*): Likewise.
|
||
(sparc-*-rtems*): Likewise.
|
||
(sparc64-*-rtems*): Likewise.
|
||
(v850-*-rtems*): Likewise.
|
||
(m32c-*-rtems*): Likewise.
|
||
|
||
2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR rtl-optimization/59511
|
||
* ira.c (ira_init_register_move_cost): Use memory costs for some
|
||
cases of register move cost calculations.
|
||
* lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
|
||
instead of BB frequency.
|
||
* lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
|
||
* lra-assigns.c (find_hard_regno_for): Ditto.
|
||
|
||
2014-01-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/59822
|
||
* tree-vect-stmts.c (hoist_defs_of_uses): New function.
|
||
(vectorizable_load): Use it to hoist defs of uses of invariant
|
||
loads out of the loop.
|
||
|
||
2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
|
||
Kugan Vivekanandarajah <kuganv@linaro.org>
|
||
|
||
PR target/59695
|
||
* config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
|
||
truncation.
|
||
|
||
2014-01-15 Richard Biener <rguenther@suse.de>
|
||
|
||
PR rtl-optimization/59802
|
||
* lcm.c (compute_available): Use inverted postorder to seed
|
||
the initial worklist.
|
||
|
||
2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
PR target/59803
|
||
* config/s390/s390.c (s390_preferred_reload_class): Don't return
|
||
ADDR_REGS for invalid symrefs in non-PIC code.
|
||
|
||
2014-01-15 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR other/58712
|
||
* builtins.c (determine_block_size): Initialize *probable_max_size
|
||
even if len_rtx is CONST_INT.
|
||
|
||
2014-01-14 Andrew Pinski <apinski@cavium.com>
|
||
|
||
* config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
|
||
* config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
|
||
(cortexa53_tunings): Likewise.
|
||
(aarch64_sched_issue_rate): New function.
|
||
(TARGET_SCHED_ISSUE_RATE): Define.
|
||
|
||
2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
* ira-costs.c (find_costs_and_classes): Add missed
|
||
ira_init_register_move_cost_if_necessary.
|
||
|
||
2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
|
||
|
||
PR target/59787
|
||
* config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
|
||
|
||
2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
PR target/59794
|
||
* config/i386/i386.c (type_natural_mode): Add a bool parameter
|
||
to indicate if type is used for function return value. Warn ABI
|
||
change if the vector mode isn't available for function return value.
|
||
(ix86_function_arg_advance): Pass false to type_natural_mode.
|
||
(ix86_function_arg): Likewise.
|
||
(ix86_gimplify_va_arg): Likewise.
|
||
(function_arg_32): Don't warn ABI change.
|
||
(ix86_function_value): Pass true to type_natural_mode.
|
||
(ix86_return_in_memory): Likewise.
|
||
(ix86_struct_value_rtx): Removed.
|
||
(TARGET_STRUCT_VALUE_RTX): Likewise.
|
||
|
||
2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
|
||
|
||
* jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
|
||
converting a conditional jump into a conditional return.
|
||
|
||
2014-01-14 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/58921
|
||
PR tree-optimization/59006
|
||
* tree-vect-loop-manip.c (vect_loop_versioning): Remove code
|
||
hoisting invariant stmts.
|
||
* tree-vect-stmts.c (vectorizable_load): Insert the splat of
|
||
invariant loads on the preheader edge if possible.
|
||
|
||
2014-01-14 Joey Ye <joey.ye@arm.com>
|
||
|
||
* doc/plugin.texi (Building GCC plugins): Update to C++.
|
||
|
||
2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
|
||
|
||
* config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
|
||
(_mm_rcp28_round_ss): Ditto.
|
||
(_mm_rsqrt28_round_sd): Ditto.
|
||
(_mm_rsqrt28_round_ss): Ditto.
|
||
(_mm_rcp28_sd): Ditto.
|
||
(_mm_rcp28_ss): Ditto.
|
||
(_mm_rsqrt28_sd): Ditto.
|
||
(_mm_rsqrt28_ss): Ditto.
|
||
* config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
|
||
* config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
|
||
* config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
|
||
(IX86_BUILTIN_RCP28SD): Ditto.
|
||
(IX86_BUILTIN_RCP28SS): Ditto.
|
||
(IX86_BUILTIN_RSQRT28SD): Ditto.
|
||
(IX86_BUILTIN_RSQRT28SS): Ditto.
|
||
(bdesc_special_args): Define __builtin_ia32_movntdqa512,
|
||
__builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
|
||
__builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
|
||
(ix86_expand_special_args_builtin): Expand new FTYPE.
|
||
* config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
|
||
(srcp14<mode>): Make insn unary.
|
||
(avx512f_vmscalef<mode><round_name>): Use substed predicate.
|
||
(avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
|
||
(avx512f_rndscale<mode><round_saeonly_name>): Ditto.
|
||
(<sse4_1_avx2>_movntdqa): Extend to 512 bits.
|
||
(avx512er_exp2<mode><mask_name><round_saeonly_name>):
|
||
Fix rounding: make it SAE only.
|
||
(<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
|
||
Ditto.
|
||
(<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
|
||
Ditto.
|
||
(avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
|
||
(avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
|
||
(avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
|
||
* config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
|
||
(round_saeonly_mask_scalar_operand4): Ditto.
|
||
(round_saeonly_mask_scalar_op3): Ditto.
|
||
(round_saeonly_mask_scalar_op4): Ditto.
|
||
|
||
2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
|
||
Implement -maltivec=be for vec_insert and vec_extract.
|
||
|
||
2014-01-10 DJ Delorie <dj@redhat.com>
|
||
|
||
* config/msp430/msp430.md (call_internal): Don't allow memory
|
||
references with SP as the base register.
|
||
(call_value_internal): Likewise.
|
||
* config/msp430/constraints.md (Yc): New. For memory references
|
||
that don't use SP as a base register.
|
||
|
||
* config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
|
||
"an integer without a # prefix"
|
||
* config/msp430/msp430.md (epilogue_helper): Use it.
|
||
|
||
2014-01-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/59617
|
||
* config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
|
||
AVX512F gather builtins.
|
||
* tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
|
||
on gather decls with INTEGER_TYPE masktype.
|
||
(vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
|
||
directly into the builtin rather than hoisting it before loop.
|
||
|
||
PR tree-optimization/59387
|
||
* tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
|
||
(scev_const_prop): If folded_casts and type has undefined overflow,
|
||
use force_gimple_operand instead of force_gimple_operand_gsi and
|
||
for each added stmt if it is assign with
|
||
arith_code_with_undefined_signed_overflow, call
|
||
rewrite_to_defined_overflow.
|
||
* tree-ssa-loop-im.c: Don't include gimplify-me.h, include
|
||
gimple-fold.h instead.
|
||
(arith_code_with_undefined_signed_overflow,
|
||
rewrite_to_defined_overflow): Moved to ...
|
||
* gimple-fold.c (arith_code_with_undefined_signed_overflow,
|
||
rewrite_to_defined_overflow): ... here. No longer static.
|
||
Include gimplify-me.h.
|
||
* gimple-fold.h (arith_code_with_undefined_signed_overflow,
|
||
rewrite_to_defined_overflow): New prototypes.
|
||
|
||
2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
|
||
|
||
2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* builtins.c (get_object_alignment_2): Minor tweak.
|
||
* tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
|
||
|
||
2014-01-13 Christian Bruel <christian.bruel@st.com>
|
||
|
||
* config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
|
||
optimized non constant lengths.
|
||
|
||
2014-01-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR libgomp/59194
|
||
* omp-low.c (expand_omp_atomic_pipeline): Expand the initial
|
||
load as __atomic_load_N if possible.
|
||
|
||
2014-01-11 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
* config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
|
||
target parameter.
|
||
(rs6000_expand_builtin): Adjust call.
|
||
|
||
2014-01-11 David Edelsohn <dje.gcc@gmail.com>
|
||
|
||
PR target/58115
|
||
* config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
|
||
* config/rs6000/rs6000.c: Include target-globals.h.
|
||
(rs6000_set_current_function): Instead of doing target_reinit
|
||
unconditionally, use save_target_globals_default_opts and
|
||
restore_target_globals.
|
||
|
||
* config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
|
||
FPSCR.
|
||
* config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
|
||
(rs6000_expand_builtin): Handle mffs and mtfsf.
|
||
(rs6000_init_builtins): Define mffs and mtfsf.
|
||
* config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
|
||
(rs6000_mffs): New pattern.
|
||
(rs6000_mtfsf): New pattern.
|
||
|
||
2014-01-11 Bin Cheng <bin.cheng@arm.com>
|
||
|
||
* tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
|
||
Start narrowing with START. Apply candidate-use pair
|
||
and check overall cost in narrowing.
|
||
(iv_ca_prune): Pass new argument.
|
||
|
||
2014-01-10 Jeff Law <law@redhat.com>
|
||
|
||
PR middle-end/59743
|
||
* ree.c (combine_reaching_defs): Ensure the defining statement
|
||
occurs before the extension when optimizing extensions with
|
||
different source and destination hard registers.
|
||
|
||
2014-01-10 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/58585
|
||
* ipa-devirt.c (build_type_inheritance_graph): Also add types of
|
||
vtables into the type inheritance graph.
|
||
|
||
2014-01-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/59754
|
||
* ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
|
||
modes in the REGNO != REGNO case.
|
||
|
||
2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
|
||
|
||
2014-01-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/59745
|
||
* tree-predcom.c (tree_predictive_commoning_loop): Call
|
||
free_affine_expand_cache if giving up because components is NULL.
|
||
|
||
* target-globals.c (save_target_globals): Allocate < 4KB structs using
|
||
GC in payload of target_globals struct instead of allocating them on
|
||
the heap and the larger structs separately using GC.
|
||
* target-globals.h (struct target_globals): Make regs, hard_regs,
|
||
reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
|
||
of GTY((skip)) and change type to void *.
|
||
(reset_target_globals): Cast loads from those fields to corresponding
|
||
types.
|
||
|
||
2014-01-10 Steve Ellcey <sellcey@mips.com>
|
||
|
||
PR plugins/59335
|
||
* Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
|
||
gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
|
||
tree-ssanames.h, print-tree.h, varasm.h, and context.h.
|
||
|
||
2014-01-10 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
PR target/59744
|
||
* aarch64-modes.def (CC_Zmode): New flags mode.
|
||
* aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
|
||
represents an equality.
|
||
(aarch64_get_condition_code): Handle CC_Zmode.
|
||
* aarch64.md (compare_neg<mode>): Restrict to equality operations.
|
||
|
||
2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||
|
||
* config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
|
||
extraction in good case.
|
||
|
||
2014-01-10 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/59374
|
||
* tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
|
||
checking after SLP discovery. Mark stmts not participating
|
||
in any SLP instance properly.
|
||
|
||
2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (arm_new_rtx_costs): Use destination mode
|
||
when handling a SET rtx.
|
||
|
||
2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
|
||
(cortex-a57): Likewise.
|
||
(cortex-a57.cortex-a53): Likewise. Remove redundant flags.
|
||
|
||
2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||
|
||
* config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
|
||
non-iwmmxt builtins.
|
||
|
||
2014-01-10 Jan Hubicka <hubicka@ucw.cz>
|
||
|
||
PR ipa/58252
|
||
PR ipa/59226
|
||
* ipa-devirt.c record_target_from_binfo): Take as argument
|
||
stack of binfos and lookup matching one for virtual inheritance.
|
||
(possible_polymorphic_call_targets_1): Update.
|
||
|
||
2014-01-10 Huacai Chen <chenhc@lemote.com>
|
||
|
||
* config/mips/driver-native.c (host_detect_local_cpu): Handle new
|
||
kernel strings for Loongson-2E/2F/3A.
|
||
|
||
2014-01-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/59670
|
||
* tree-vect-data-refs.c (vect_analyze_data_refs): Check
|
||
is_gimple_call before calling gimple_call_internal_p.
|
||
|
||
2014-01-09 Steve Ellcey <sellcey@mips.com>
|
||
|
||
* Makefile.in (TREE_FLOW_H): Remove.
|
||
(TREE_SSA_H): Add file names from tree-flow.h.
|
||
* doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
|
||
* tree.h: Remove tree-flow.h reference.
|
||
* hash-table.h: Remove tree-flow.h reference.
|
||
* tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
|
||
reference with tree-ssa-loop.h.
|
||
|
||
2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* doc/invoke.texi: Add -maltivec={be,le} options, and document
|
||
default element-order behavior for -maltivec.
|
||
* config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
|
||
* config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
|
||
that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
|
||
when targeting big endian, at least for now.
|
||
* config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
|
||
|
||
2014-01-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR middle-end/47735
|
||
* cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
|
||
var satisfies use_register_for_decl, just take into account type
|
||
alignment, rather than decl alignment.
|
||
|
||
PR tree-optimization/59622
|
||
* gimple-fold.c (gimple_fold_call): Fix a typo in message. For
|
||
__builtin_unreachable replace the OBJ_TYPE_REF call with a call to
|
||
__builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
|
||
Don't devirtualize for inplace at all. For targets.length () == 1,
|
||
if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
|
||
|
||
2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* config/i386/i386.md (cpu): Remove the unused btver1.
|
||
|
||
2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
|
||
|
||
* gdbasan.in: Put a breakpoint on __sanitizer::Report.
|
||
|
||
2014-01-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/58115
|
||
* tree-core.h (struct target_globals): New forward declaration.
|
||
(struct tree_target_option): Add globals field.
|
||
* tree.h (TREE_TARGET_GLOBALS): Define.
|
||
(prepare_target_option_nodes_for_pch): New prototype.
|
||
* target-globals.h (struct target_globals): Define even if
|
||
!SWITCHABLE_TARGET.
|
||
* tree.c (prepare_target_option_node_for_pch,
|
||
prepare_target_option_nodes_for_pch): New functions.
|
||
* config/i386/i386.h (SWITCHABLE_TARGET): Define.
|
||
* config/i386/i386.c: Include target-globals.h.
|
||
(ix86_set_current_function): Instead of doing target_reinit
|
||
unconditionally, use save_target_globals_default_opts and
|
||
restore_target_globals.
|
||
|
||
2014-01-09 Richard Biener <rguenther@suse.de>
|
||
|
||
PR tree-optimization/59715
|
||
* tree-cfg.h (split_critical_edges): Declare.
|
||
* tree-cfg.c (split_critical_edges): Export.
|
||
* tree-ssa-sink.c (execute_sink_code): Split critical edges.
|
||
|
||
2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
|
||
|
||
* cfgexpand.c (expand_stack_vars): Optionally disable
|
||
asan stack protection.
|
||
(expand_used_vars): Likewise.
|
||
(partition_stack_vars): Likewise.
|
||
* asan.c (asan_emit_stack_protection): Optionally disable
|
||
after return stack usage.
|
||
(instrument_derefs): Optionally disable memory access instrumentation.
|
||
(instrument_builtin_call): Likewise.
|
||
(instrument_strlen_call): Likewise.
|
||
(asan_protect_global): Optionally disable global variables protection.
|
||
* doc/invoke.texi: Added doc for new options.
|
||
* params.def: Added new options.
|
||
* params.h: Likewise.
|
||
|
||
2014-01-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/59724
|
||
* ifcvt.c (cond_exec_process_if_block): Don't call
|
||
flow_find_head_matching_sequence with 0 longest_match.
|
||
* cfgcleanup.c (flow_find_head_matching_sequence): Count even
|
||
non-active insns if !stop_after.
|
||
(try_head_merge_bb): Revert 2014-01-07 changes.
|
||
|
||
2014-01-08 Jeff Law <law@redhat.com>
|
||
|
||
* ree.c (get_sub_rtx): New function, extracted from...
|
||
(merge_def_and_ext): Here.
|
||
(combine_reaching_defs): Use get_sub_rtx.
|
||
|
||
2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* cgraph.h (varpool_variable_node): Do not choke on null node.
|
||
|
||
2014-01-08 Catherine Moore <clm@codesourcery.com>
|
||
|
||
* config/mips/mips.md (simple_return): Attempt to use JRC
|
||
for microMIPS.
|
||
* config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
|
||
|
||
2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR rtl-optimization/59137
|
||
* reorg.c (steal_delay_list_from_target): Call update_block for
|
||
elided insns.
|
||
(steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
|
||
|
||
2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||
|
||
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
|
||
two duplicate entries.
|
||
|
||
2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
Revert:
|
||
2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.c (mips_truncated_op_cost): New function.
|
||
(mips_rtx_costs): Adjust test for BADDU.
|
||
* config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
|
||
|
||
2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
|
||
(*baddu_si): ...this new pattern.
|
||
|
||
2014-01-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR ipa/59722
|
||
* ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
|
||
|
||
2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||
|
||
PR middle-end/57748
|
||
* expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
|
||
inner_reference_p.
|
||
(expand_expr, expand_normal): Adjust.
|
||
* expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
|
||
inner_reference_p. Use inner_reference_p to expand inner references.
|
||
(store_expr): Adjust.
|
||
* cfgexpand.c (expand_call_stmt): Adjust.
|
||
|
||
2014-01-08 Rong Xu <xur@google.com>
|
||
|
||
* gcov-io.c (gcov_var): Move from gcov-io.h.
|
||
(gcov_position): Ditto.
|
||
(gcov_is_error): Ditto.
|
||
(gcov_rewrite): Ditto.
|
||
* gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
|
||
only part to libgcc/libgcov.h.
|
||
|
||
2014-01-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR middle-end/59669
|
||
* omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
|
||
|
||
2014-01-08 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR sanitizer/59667
|
||
* ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
|
||
|
||
2014-01-08 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/59649
|
||
* stor-layout.c (get_mode_bounds): For BImode return
|
||
0 and STORE_FLAG_VALUE.
|
||
|
||
2014-01-08 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/59630
|
||
* gimple.h (is_gimple_builtin_call): Remove.
|
||
(gimple_builtin_call_types_compatible_p): New.
|
||
(gimple_call_builtin_p): New overload.
|
||
* gimple.c (is_gimple_builtin_call): Remove.
|
||
(validate_call): Rename to ...
|
||
(gimple_builtin_call_types_compatible_p): ... this and export. Also
|
||
check return types.
|
||
(validate_type): New static function.
|
||
(gimple_call_builtin_p): New overload and adjust.
|
||
* gimple-fold.c (gimple_fold_builtin): Fold the return value.
|
||
(gimple_fold_call): Likewise. Use gimple_call_builtin_p.
|
||
(gimple_fold_stmt_to_constant_1): Likewise.
|
||
* tsan.c (instrument_gimple): Use gimple_call_builtin_p.
|
||
|
||
2014-01-08 Richard Biener <rguenther@suse.de>
|
||
|
||
PR middle-end/59471
|
||
* gimplify.c (gimplify_expr): Gimplify register-register type
|
||
VIEW_CONVERT_EXPRs to separate stmts.
|
||
|
||
2014-01-07 Jeff Law <law@redhat.com>
|
||
|
||
PR middle-end/53623
|
||
* ree.c (combine_set_extension): Handle case where source
|
||
and destination registers in an extension insn are different.
|
||
(combine_reaching_defs): Allow source and destination registers
|
||
in extension to be different under limited circumstances.
|
||
(add_removable_extension): Remove restriction that the
|
||
source and destination registers in the extension are the same.
|
||
(find_and_remove_re): Emit a copy from the extension's
|
||
destination to its source after the defining insn if
|
||
the source and destination registers are different.
|
||
|
||
PR middle-end/59285
|
||
* ifcvt.c (merge_if_block): If we are merging a block with more than
|
||
one successor with a block with no successors, remove any BARRIER
|
||
after the second block.
|
||
|
||
2014-01-07 Dan Xio Qiang <ziyan01@163.com>
|
||
|
||
* hw-doloop.c (reorg_loops): Release the bitmap obstack.
|
||
|
||
2014-01-07 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
PR target/59652
|
||
* config/pa/pa.c (pa_legitimate_address_p): Return false before reload
|
||
for 14-bit register offsets when INT14_OK_STRICT is false.
|
||
|
||
2014-01-07 Roland Stigge <stigge@antcom.de>
|
||
Michael Meissner <meissner@linux.vnet.ibm.com>
|
||
|
||
PR 57386/target
|
||
* config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
|
||
Only check TFmode for SPE constants. Don't check TImode or TDmode.
|
||
|
||
2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
|
||
|
||
* config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
|
||
-mcpu.
|
||
|
||
2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
|
||
|
||
* config/arm/arm.c (arm_expand_neon_args): Call expand_expr
|
||
with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
|
||
rtx is const0_rtx or not.
|
||
|
||
2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
PR target/58115
|
||
* target-globals.c (save_target_globals): Remove this_fn_optab
|
||
handling.
|
||
* toplev.c: Include optabs.h.
|
||
(target_reinit): Temporarily restore the global options if another
|
||
set of options are in force.
|
||
|
||
2014-01-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR rtl-optimization/58668
|
||
* cfgcleanup.c (flow_find_cross_jump): Don't count
|
||
any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
|
||
to determine what is counted.
|
||
(flow_find_head_matching_sequence): Use active_insn_p to determine
|
||
what is counted.
|
||
(try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
|
||
counting change.
|
||
* ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
|
||
determine what is counted.
|
||
|
||
PR tree-optimization/59643
|
||
* tree-predcom.c (split_data_refs_to_components): If one dr is
|
||
read and one write, determine_offset fails and the write isn't
|
||
in the bad component, just put the read into the bad component.
|
||
|
||
2014-01-07 Mike Stump <mikestump@comcast.net>
|
||
Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR pch/59436
|
||
* tree-core.h (struct tree_optimization_option): Change optabs
|
||
type from unsigned char * to void *.
|
||
* optabs.c (init_tree_optimization_optabs): Adjust
|
||
TREE_OPTIMIZATION_OPTABS initialization.
|
||
|
||
2014-01-06 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/59644
|
||
* config/i386/i386.h (struct machine_function): Add
|
||
no_drap_save_restore field.
|
||
* config/i386/i386.c (ix86_save_reg): Use
|
||
!cfun->machine->no_drap_save_restore instead of
|
||
crtl->stack_realign_needed.
|
||
(ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
|
||
this function clears frame_pointer_needed. Set
|
||
cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
|
||
and DRAP reg is needed.
|
||
|
||
2014-01-06 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR c/57773
|
||
* doc/implement-c.texi: Mention that other integer types are
|
||
permitted as bit-field types in strictly conforming mode.
|
||
|
||
2014-01-06 Felix Yang <fei.yang0953@gmail.com>
|
||
|
||
* modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
|
||
is newly allocated.
|
||
|
||
2014-01-06 Richard Earnshaw <rearnsha@arm.com>
|
||
|
||
* aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
|
||
|
||
2014-01-06 Martin Jambor <mjambor@suse.cz>
|
||
|
||
PR ipa/59008
|
||
* ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
|
||
to int.
|
||
* ipa-prop.c (ipa_print_node_params): Fix indentation.
|
||
|
||
2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR debug/59350
|
||
PR debug/59510
|
||
* var-tracking.c (add_stores): Preserve the value of the source even if
|
||
we don't record the store.
|
||
|
||
2014-01-06 Terry Guo <terry.guo@arm.com>
|
||
|
||
* config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
|
||
|
||
2014-01-05 Iain Sandoe <iain@codesourcery.com>
|
||
|
||
PR bootstrap/59541
|
||
* config/darwin.c (darwin_function_section): Adjust return values to
|
||
correspond to optimisation changes made in r206070.
|
||
|
||
2014-01-05 Uros Bizjak <ubizjak@gmail.com>
|
||
|
||
* config/i386/i386.c (ix86_data_alignment): Calculate max_align
|
||
from prefetch_block tune setting.
|
||
(nocona_cost): Correct size of prefetch block to 64.
|
||
|
||
2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
* config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
|
||
(arm_expand_epilogue_apcs_frame): Take into account the number of bytes
|
||
used to save the static chain register in the computation of the offset
|
||
from which the FP registers need to be restored.
|
||
|
||
2014-01-04 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR tree-optimization/59519
|
||
* tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
|
||
ICE if get_current_def (current_new_name) is already non-NULL, as long
|
||
as it is a phi result of some other phi in *new_exit_bb that has
|
||
the same argument.
|
||
|
||
* config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
|
||
or vmovdqu* for misaligned_operand.
|
||
(<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
|
||
<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
|
||
* config/i386/i386.c (ix86_expand_special_args_builtin): Set
|
||
aligned_mem for AVX512F masked aligned load and store builtins and for
|
||
non-temporal moves.
|
||
|
||
2014-01-03 Bingfeng Mei <bmei@broadcom.com>
|
||
|
||
PR tree-optimization/59651
|
||
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
|
||
Address range for negative step should be added by TYPE_SIZE_UNIT.
|
||
|
||
2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
|
||
|
||
* config/m68k/m68k.c (handle_move_double): Handle pushes with
|
||
overlapping registers also for registers other than the stack pointer.
|
||
|
||
2014-01-03 Marek Polacek <polacek@redhat.com>
|
||
|
||
PR other/59661
|
||
* doc/extend.texi: Fix the return value of __builtin_FUNCTION and
|
||
__builtin_FILE.
|
||
|
||
2014-01-03 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
PR target/59625
|
||
* config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
|
||
asm goto as jump.
|
||
|
||
* config/i386/i386.md (MODE_SIZE): New mode attribute.
|
||
(push splitter): Use <P:MODE_SIZE> instead of
|
||
GET_MODE_SIZE (<P:MODE>mode).
|
||
(lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
|
||
(mov -1, reg peephole2): Likewise.
|
||
* config/i386/sse.md (*mov<mode>_internal,
|
||
<sse>_storeu<ssemodesuffix><avxsizesuffix>,
|
||
<sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
|
||
*<code><mode>3, *andnot<mode>3<mask_name>,
|
||
<mask_codefor><code><mode>3<mask_name>): Likewise.
|
||
* config/i386/subst.md (mask_mode512bit_condition,
|
||
sd_mask_mode512bit_condition): Likewise.
|
||
|
||
2014-01-02 Xinliang David Li <davidxl@google.com>
|
||
|
||
PR tree-optimization/59303
|
||
* tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
|
||
(dump_predicates): Better output format.
|
||
(pred_equal_p): New function.
|
||
(is_neq_relop_p): Ditto.
|
||
(is_neq_zero_form_p): Ditto.
|
||
(pred_expr_equal_p): Ditto.
|
||
(pred_neg_p): Ditto.
|
||
(simplify_pred): Ditto.
|
||
(simplify_preds_2): Ditto.
|
||
(simplify_preds_3): Ditto.
|
||
(simplify_preds_4): Ditto.
|
||
(simplify_preds): Ditto.
|
||
(push_pred): Ditto.
|
||
(push_to_worklist): Ditto.
|
||
(get_pred_info_from_cmp): Ditto.
|
||
(is_degenerated_phi): Ditto.
|
||
(normalize_one_pred_1): Ditto.
|
||
(normalize_one_pred): Ditto.
|
||
(normalize_one_pred_chain): Ditto.
|
||
(normalize_preds): Ditto.
|
||
(normalize_cond_1): Remove function.
|
||
(normalize_cond): Ditto.
|
||
(is_gcond_subset_of): Ditto.
|
||
(is_subset_of_any): Ditto.
|
||
(is_or_set_subset_of): Ditto.
|
||
(is_and_set_subset_of): Ditto.
|
||
(is_norm_cond_subset_of): Ditto.
|
||
(pred_chain_length_cmp): Ditto.
|
||
(convert_control_dep_chain_into_preds): Type change.
|
||
(find_predicates): Ditto.
|
||
(find_def_preds): Ditto.
|
||
(destroy_predicates_vecs): Ditto.
|
||
(find_matching_predicates_in_rest_chains): Ditto.
|
||
(use_pred_not_overlap_with_undef_path_pred): Ditto.
|
||
(is_pred_expr_subset): Ditto.
|
||
(is_pred_chain_subset_of): Ditto.
|
||
(is_included_in): Ditto.
|
||
(is_superset_of): Ditto.
|
||
|
||
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
Update copyright years.
|
||
|
||
2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
|
||
|
||
* common/config/arc/arc-common.c, config/arc/arc-modes.def,
|
||
config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
|
||
config/arc/arc.md, config/arc/arc.opt,
|
||
config/arm/arm_neon_builtins.def, config/arm/crypto.def,
|
||
config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
|
||
config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
|
||
config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
|
||
config/linux-protos.h, config/linux.c, config/winnt-c.c,
|
||
diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
|
||
vtable-verify.c, vtable-verify.h: Use the standard form for the
|
||
copyright notice.
|
||
|
||
2014-01-02 Tobias Burnus <burnus@net-b.de>
|
||
|
||
* gcc.c (process_command): Update copyright notice dates.
|
||
* gcov-dump.c: Ditto.
|
||
* gcov.c: Ditto.
|
||
* doc/cpp.texi: Bump @copying's copyright year.
|
||
* doc/cppinternals.texi: Ditto.
|
||
* doc/gcc.texi: Ditto.
|
||
* doc/gccint.texi: Ditto.
|
||
* doc/gcov.texi: Ditto.
|
||
* doc/install.texi: Ditto.
|
||
* doc/invoke.texi: Ditto.
|
||
|
||
2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
|
||
|
||
* config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
|
||
|
||
2014-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* config/i386/sse.md (*mov<mode>_internal): Guard
|
||
EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
|
||
|
||
PR rtl-optimization/59647
|
||
* cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
|
||
new_rtx into UNSIGNED_FLOAT rtxes.
|
||
|
||
Copyright (C) 2014 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|