aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2014-06-20asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.Marek Polacek28-48/+877
* asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS. * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it into SANITIZE_UNDEFINED. * doc/invoke.texi: Describe -fsanitize=bounds. * gimplify.c (gimplify_call_expr): Add gimplification of internal functions created in the FEs. * internal-fn.c: Move "internal-fn.h" after "tree.h". (expand_UBSAN_BOUNDS): New function. * internal-fn.def (UBSAN_BOUNDS): New internal function. * internal-fn.h: Don't define internal functions here. * opts.c (common_handle_option): Add -fsanitize=bounds. * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS, BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add. * tree-core.h: Define internal functions here. (struct tree_base): Add ifn field. * tree-pretty-print.c: Include "internal-fn.h". (dump_generic_node): Handle functions without CALL_EXPR_FN. * tree.c (get_callee_fndecl): Likewise. (build_call_expr_internal_loc): New function. * tree.def (CALL_EXPR): Update description. * tree.h (CALL_EXPR_IFN): Define. (build_call_expr_internal_loc): Declare. * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic types. (ubsan_type_descriptor): Change bool parameter to enum ubsan_print_style. Adjust the code. Add handling of UBSAN_PRINT_ARRAY. (ubsan_expand_bounds_ifn): New function. (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call. (ubsan_build_overflow_builtin): Likewise. (instrument_bool_enum_load): Likewise. (ubsan_instrument_float_cast): Likewise. * ubsan.h (enum ubsan_print_style): New enum. (ubsan_expand_bounds_ifn): Declare. (ubsan_type_descriptor): Adjust declaration. Use a default parameter. c-family/ * c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h". (ubsan_walk_array_refs_r): New function. (c_genericize): Instrument array bounds. * c-ubsan.c: Include "internal-fn.h". (ubsan_instrument_division): Mark instrumented arrays as having side effects. Adjust ubsan_type_descriptor call. (ubsan_instrument_shift): Likewise. (ubsan_instrument_vla): Adjust ubsan_type_descriptor call. (ubsan_instrument_bounds): New function. (ubsan_array_ref_instrumented_p): New function. (ubsan_maybe_instrument_array_ref): New function. * c-ubsan.h (ubsan_instrument_bounds): Declare. (ubsan_array_ref_instrumented_p): Declare. (ubsan_maybe_instrument_array_ref): Declare. testsuite/ * c-c++-common/ubsan/bounds-1.c: New test. * c-c++-common/ubsan/bounds-2.c: New test. * c-c++-common/ubsan/bounds-3.c: New test. * c-c++-common/ubsan/bounds-4.c: New test. * c-c++-common/ubsan/bounds-5.c: New test. * c-c++-common/ubsan/bounds-6.c: New test. From-SVN: r211859
2014-06-20re PR fortran/33363 (gfortran is missing -fcase-preserve option)Francois-Xavier Coudert2-4/+8
PR fortran/33363 * invoke.texi: Don't mention nonexisting -fcase-lower option. From-SVN: r211858
2014-06-20rs6000.md: Append `DONE' to preparation statements of `bswap' pattern splitters.Maciej W. Rozycki2-0/+11
* config/rs6000/rs6000.md: Append `DONE' to preparation statements of `bswap' pattern splitters. From-SVN: r211857
2014-06-20re PR c++/59296 ([c++11] ref-qualified member function is ambiguous)Jason Merrill2-7/+12
PR c++/59296 * call.c (add_function_candidate): Avoid special 'this' handling if we have a ref-qualifier. From-SVN: r211854
2014-06-20re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ ↵Jason Merrill3-1/+38
is not a constant expression with valid code) PR c++/61556 * call.c (build_over_call): Call build_this in template path. From-SVN: r211853
2014-06-20Update definition of call_fusage_contains_non_callee_clobbersTom de Vries3-18/+24
2014-06-20 Tom de Vries <tom@codesourcery.com> * target.def (call_fusage_contains_non_callee_clobbers): Update definition. * doc/tm.texi: Regenerate. From-SVN: r211852
2014-06-20Make the tests big-endian friendly.Yufeng Zhang10-27/+74
gcc/testsuite/ Make the tests big-endian friendly. * gcc.target/aarch64/aapcs64/test_25.c: Update. * gcc.target/aarch64/aapcs64/va_arg-1.c: Ditto. * gcc.target/aarch64/aapcs64/va_arg-12.c: Ditto. * gcc.target/aarch64/aapcs64/va_arg-2.c: Ditto. * gcc.target/aarch64/aapcs64/va_arg-3.c: Ditto. * gcc.target/aarch64/aapcs64/va_arg-4.c: Ditto. * gcc.target/aarch64/aapcs64/va_arg-5.c: Ditto. * gcc.target/aarch64/aapcs64/va_arg-6.c: Ditto. * gcc.target/aarch64/aapcs64/va_arg-7.c: Ditto. From-SVN: r211851
2014-06-20asan.c (instrument_strlen_call): Fixed instrumentation of trailing byte.Yury Gribov4-10/+52
2014-06-18 Yury Gribov <y.gribov@samsung.com> gcc/ * asan.c (instrument_strlen_call): Fixed instrumentation of trailing byte. gcc/testsuite/ * c-c++-common/asan/strlen-overflow-1.c: New test. Co-Authored-By: Max Ostapenko <m.ostapenko@partner.samsung.com> From-SVN: r211849
2014-06-20re PR ipa/61540 (internal compiler error in try_make_edge_direct_virtual_call)Martin Jambor4-17/+80
2014-06-20 Martin Jambor <mjambor@suse.cz> PR ipa/61540 * ipa-prop.c (impossible_devirt_target): New function. (try_make_edge_direct_virtual_call): Use it, also instead of asserting. testsuite/ * g++.dg/ipa/pr61540.C: New test. From-SVN: r211847
2014-06-20re PR sanitizer/61530 (segfault with asan)Yury Gribov4-0/+30
2014-06-18 Yury Gribov <y.gribov@samsung.com> gcc/ PR sanitizer/61530 * asan.c (build_check_stmt): Add condition. gcc/testsuite/ * c-c++-common/asan/pr61530.c: New test. Co-Authored-By: Max Ostapenko <m.ostapenko@partner.samsung.com> From-SVN: r211846
2014-06-20re PR ipa/61211 (ICE: verify_cgraph_node failed: edge points to wrong ↵Martin Jambor2-5/+16
declaration with -O3 -fno-inline) 2014-06-20 Martin Jambor <mjambor@suse.cz> PR ipa/61211 * cgraph.c (clone_of_p): Allow skipped_branch to deal with expanded clones. From-SVN: r211844
2014-06-20[AArch64] Fix some saturating math NEON intrinsics types.Kyrylo Tkachov48-116/+1066
[gcc/] * config/aarch64/iterators.md (VCOND): Handle SI and HI modes. Update comments. (VCONQ): Make comment more helpful. (VCON): Delete. * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>): Use VCOND for operands 2. Update lane checking and flipping logic. (aarch64_sqrdmulh_lane<mode>): Likewise. (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise. (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator. (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode attribute of operand 3 to VCOND. (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise. (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise. (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise. (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise. (aarch64_sqdmull2_lane<mode>_internal): Likewise. (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New define_insn. (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise. (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise. (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise. (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise. (aarch64_sqdmull2_laneq<mode>_internal): Likewise. (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate operand to VCOND. Update lane flipping and bounds checking logic. (aarch64_sqdmlal2_lane<mode>): Likewise. (aarch64_sqdmlsl_lane<mode>): Likewise. (aarch64_sqdmull_lane<mode>): Likewise. (aarch64_sqdmull2_lane<mode>): Likewise. (aarch64_sqdmlal_laneq<mode>): Replace VCON usage with VCONQ. Emit aarch64_sqdmlal_laneq<mode>_internal insn. (aarch64_sqdmlal2_laneq<mode>): Emit aarch64_sqdmlal2_laneq<mode>_internal insn. Replace VCON with VCONQ. (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ. (aarch64_sqdmlsl2_laneq<mode>): Likewise. (aarch64_sqdmull_laneq<mode>): Emit aarch64_sqdmull_laneq<mode>_internal insn. Replace VCON with VCONQ. (aarch64_sqdmull2_laneq<mode>): Emit aarch64_sqdmull2_laneq<mode>_internal insn. (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ. * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type of 3rd argument to int16x4_t. (vqdmlalh_lane_s16): Likewise. (vqdmlslh_lane_s16): Likewise. (vqdmull_high_lane_s16): Likewise. (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t. (vqdmlal_lane_s16): Don't create temporary int16x8_t value. (vqdmlsl_lane_s16): Likewise. (vqdmull_lane_s16): Don't create temporary int16x8_t value. (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t. (vqdmlals_lane_s32): Likewise. (vqdmlsls_lane_s32): Likewise. (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t. (vqdmulls_lane_s32): Likewise. (vqdmlal_lane_s32): Don't create temporary int32x4_t value. (vqdmlsl_lane_s32): Likewise. (vqdmull_lane_s32): Don't create temporary int32x4_t value. (vqdmulhh_lane_s16): Change type of second argument to int16x4_t. (vqrdmulhh_lane_s16): Likewise. (vqdmlsl_high_lane_s16): Likewise. (vqdmulhs_lane_s32): Change type of second argument to int32x2_t. (vqdmlsl_high_lane_s32): Likewise. (vqrdmulhs_lane_s32): Likewise. [gcc/testsuite] * gcc.target/aarch64/simd/vqdmulhh_lane_s16.c: New test. * gcc.target/aarch64/simd/vqdmulhs_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhh_lane_s16.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhs_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_high_lane_s16.c: New test. * gcc.target/aarch64/simd/vqdmlal_high_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_high_laneq_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_high_laneq_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_lane_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_laneq_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmlal_laneq_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlalh_lane_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmlals_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_high_lane_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_high_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_high_laneq_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_high_laneq_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_lane_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlsl_laneq_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmlslh_lane_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmlsls_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmulh_laneq_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmulh_laneq_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmulhq_laneq_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmulhq_laneq_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmull_high_lane_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmull_high_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmull_high_laneq_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmull_high_laneq_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmull_lane_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmull_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmull_laneq_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmull_laneq_s32.c: Likewise. * gcc.target/aarch64/simd/vqdmullh_lane_s16.c: Likewise. * gcc.target/aarch64/simd/vqdmulls_lane_s32.c: Likewise. * gcc.target/aarch64/simd/vqrdmulh_laneq_s16.c: Likewise. * gcc.target/aarch64/simd/vqrdmulh_laneq_s32.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhq_laneq_s16.c: Likewise. * gcc.target/aarch64/simd/vqrdmulhq_laneq_s32.c: Likewise. * gcc.target/aarch64/vector_intrinsics.c: Simplify arm_neon.h include. (test_vqdmlal_high_lane_s16): Fix parameter type. (test_vqdmlal_high_lane_s32): Likewise. (test_vqdmull_high_lane_s16): Likewise. (test_vqdmull_high_lane_s32): Likewise. (test_vqdmlsl_high_lane_s32): Likewise. (test_vqdmlsl_high_lane_s16): Likewise. * gcc.target/aarch64/scalar_intrinsics.c (test_vqdmlalh_lane_s16): Fix argument type. (test_vqdmlals_lane_s32): Likewise. (test_vqdmlslh_lane_s16): Likewise. (test_vqdmlsls_lane_s32): Likewise. (test_vqdmulhh_lane_s16): Likewise. (test_vqdmulhs_lane_s32): Likewise. (test_vqdmullh_lane_s16): Likewise. (test_vqdmulls_lane_s32): Likewise. (test_vqrdmulhh_lane_s16): Likewise. (test_vqrdmulhs_lane_s32): Likewise. From-SVN: r211842
2014-06-20Fix finding reg-sets of call insnTom de Vries2-4/+13
2014-06-20 Tom de Vries <tom@codesourcery.com> * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for get_call_reg_set_usage. From-SVN: r211841
2014-06-20Don't save function_used_regs if it contains all call_used_regsTom de Vries2-0/+10
2014-06-20 Tom de Vries <tom@codesourcery.com> * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if it contains all call_used_regs. From-SVN: r211840
2014-06-20Use function_used_regs variable in collect_fn_hard_reg_usageTom de Vries2-9/+15
2014-06-20 Tom de Vries <tom@codesourcery.com> * final.c (collect_fn_hard_reg_usage): Add and use variable function_used_regs. From-SVN: r211839
2014-06-20cgraph.h (struct symtab_node): Add field in_init_priority_hash ↵Jan Hubicka12-89/+220
(set_init_priority... * cgraph.h (struct symtab_node): Add field in_init_priority_hash (set_init_priority, get_init_priority, set_fini_priority, get_fini_priority): New methods. * tree.c (init_priority_for_decl): Remove. (init_ttree): Do not initialize init priority. (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite. (decl_priority_info): Remove. (decl_init_priority_insert): Rewrite. (decl_fini_priority_insert): Rewrite. * tree.h (tree_priority_map_eq, tree_priority_map_hash, tree_priority_map_marked_p): Remove. * lto-cgraph.c (lto_output_node, input_node): Stream init priorities. * lto-streamer-out.c (hash_tree): Do not hash priorities. * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do not output priorities. (pack_ts_function_decl_value_fields): Likewise. * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do not input priorities. (unpack_ts_function_decl_value_fields): Likewise. * symtab.c (symbol_priority_map): Declare. (init_priority_hash): Declare. (symtab_unregister_node): Unregister from priority hash, too. (symtab_node::get_init_priority, cgraph_node::get_fini_priority): New methods. (symbol_priority_map_eq, symbol_priority_map_hash): New functions. (symbol_priority_info): New function. (symtab_node::set_init_priority, cgraph_node::set_fini_priority): New methods. * tree-core.h (tree_priority_map): Remove. * lto.c (compare_tree_sccs_1): Do not compare priorities. From-SVN: r211838
2014-06-20tree-ssa-math-opts.c (do_shift_rotate, [...]): Cast 0xff to uint64_t before ↵Jakub Jelinek2-2/+8
shifting it up. * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast 0xff to uint64_t before shifting it up. From-SVN: r211837
2014-06-20arm.c (arm_output_mi_thunk): Fix offset for TARGET_THUMB1_ONLY.Julian Brown2-2/+12
2014-06-20 Julian Brown <julian@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> * config/arm/arm.c (arm_output_mi_thunk): Fix offset for TARGET_THUMB1_ONLY. Add comments. Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com> From-SVN: r211834
2014-06-20re PR testsuite/61567 (gfortran.dg/coarray_collectives_{5,6}.f90 failure)Tobias Burnus3-6/+13
2014-06-20 Tobias Burnus <burnus@net-b.de> PR testsuite/61567 * gfortran.dg/coarray_collectives_5.f90: Update dg-final scan-tree-dump-times. * gfortran.dg/coarray_collectives_6.f90: Ditto. From-SVN: r211833
2014-06-20re PR lto/61123 (With LTO, -fno-short-enums is ignored, resulting in ABI ↵Hale Wang7-2/+181
mis-matching in linking.) c-family/ChangeLog 2014-06-20 Hale Wang <hale.wang@arm.com> PR lto/61123 * c.opt (fshort-enums): Add to LTO. * c.opt (fshort-wchar): Likewise. testsuite/ChangeLog 2014-06-20 Hale Wang <hale.wang@arm.com> * gcc.target/arm/lto/: New folder to verify the LTO option. * gcc.target/arm/lto/pr61123-enum-size_0.c: New test case. * gcc.target/arm/lto/pr61123-enum-size_1.c: Likewise. * gcc.target/arm/lto/lto.exp: New exp file used to test LTO option. * lib/lto.exp (object-readelf): New procedure. From-SVN: r211832
2014-06-20Daily bump.GCC Administrator1-1/+1
From-SVN: r211831
2014-06-19Fix aarch64_emit_call_insn return typeTom de Vries3-2/+8
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. From-SVN: r211823
2014-06-19re PR fortran/61454 (ICE in simplification of initialization expression with ↵Francois-Xavier Coudert4-1/+26
array) PR fortran/61454 * expr.c (scalarize_intrinsic_call): Take care of optional arguments. * gfortran.dg/pr61454.f90: New file. From-SVN: r211822
2014-06-19re PR c++/59296 ([c++11] ref-qualified member function is ambiguous)Jason Merrill2-1/+7
PR c++/59296 * call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND. From-SVN: r211821
2014-06-19loop-invariant.c (get_inv_cost): Skip invariants, which are marked as ↵Zhenqiang Chen2-0/+9
"move", from depends_on. 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. From-SVN: r211818
2014-06-19thumb1.md (define_split): Split 64bit constant in earlier stage.Terry Guo6-0/+72
gcc/ChangeLog: 2014-06-19 Terry Guo <terry.guo@arm.com> * config/arm/thumb1.md (define_split): Split 64bit constant in earlier stage. gcc/testsuite/ChangeLog: 2014-06-19 Terry Guo <terry.guo@arm.com> * gcc.target/arm/thumb1-load-64bit-constant-1.c: New test. * gcc.target/arm/thumb1-load-64bit-constant-2.c: Ditto. * gcc.target/arm/thumb1-load-64bit-constant-3.c: Ditto. From-SVN: r211817
2014-06-19trans-intrinsic.c (conv_co_minmaxsum): Fix argument passing.Tobias Burnus4-13/+38
gcc/fortran/ 2014-06-19 Tobias Burnus <burnus@net-b.de> * trans-intrinsic.c (conv_co_minmaxsum): Fix argument passing. gcc/testsuite/ 2014-06-19 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray/collectives_2.f90: Extend and make valid. libgfortran/ 2014-06-19 Tobias Burnus <burnus@net-b.de> * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min): Fix stat setting. From-SVN: r211816
2014-06-19Daily bump.GCC Administrator1-1/+1
From-SVN: r211814
2014-06-19rs6000: Make cr5 allocatableSegher Boessenkool2-7/+12
A comment in rs6000.h says "cr5 is not supposed to be used". I checked all ABIs, going as far back as PowerOpen (1994), and found no mention of this. Also document cr6 is used by some vector instructions. From-SVN: r211811
2014-06-18re PR c++/59296 ([c++11] ref-qualified member function is ambiguous)Jason Merrill3-0/+19
PR c++/59296 * call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for ref-qualifier handling. From-SVN: r211809
2014-06-18re PR c++/61507 (GCC does not compile function with parameter pack.)Jason Merrill3-1/+30
PR c++/61507 * pt.c (resolve_overloaded_unification): Preserve ARGUMENT_PACK_EXPLICIT_ARGS. From-SVN: r211808
2014-06-18re PR target/61550 ([SH] build failure with ICE in gen_reg_rtx, at ↵Kaz Kojima2-1/+8
emit-rtl.c:943) PR target/61550 * config/sh/sh.c (prepare_move_operands): Don't process TLS addresses here if reload in progress or completed. From-SVN: r211807
2014-06-18gfortran.texi (OpenMP): Update refs to OpenMP 4.0.Tobias Burnus3-5/+9
2014-06-18 Tobias Burnus <burnus@net-b.de> * gfortran.texi (OpenMP): Update refs to OpenMP 4.0. * intrinsic.texi (OpenMP Modules): Ditto. From-SVN: r211806
2014-06-18Enable LRA for MIPSRobert Suchanek6-42/+142
gcc/ * 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. From-SVN: r211805
2014-06-18ChangeLog: Fix whitespace.Uros Bizjak2-20/+4
* ChangeLog: Fix whitespace. * testsuite/ChangeLog: Fix invalid entry. From-SVN: r211804
2014-06-18Add support for reloading a frame address with an invalid baseRobert Suchanek2-2/+47
gcc/ * lra-constraints.c (base_to_reg): New function. (process_address): Use new function. From-SVN: r211802
2014-06-18-fuse-caller-save - Enable for AArch64Tom de Vries6-3/+110
2014-05-30 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. * gcc.target/aarch64/fuse-caller-save.c: New test. From-SVN: r211799
2014-06-18-fuse-caller-save - Enable for ARMRadovan Obradovic6-4/+90
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. * gcc.target/arm/fuse-caller-save.c: New test. Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r211798
2014-06-18bpabi.c (__gnu_uldivmod_helper): Remove.Charles Baylis1-0/+4
2014-06-18 Charles Baylis <charles.baylis@linaro.org> * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove. From-SVN: r211797
2014-06-18bpabi-v6m.S (__aeabi_uldivmod): Perform division using __udivmoddi4.Charles Baylis1-0/+5
2014-06-18 Charles Baylis <charles.baylis@linaro.org> * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using __udivmoddi4. From-SVN: r211796
2014-06-18bpabi.S (__aeabi_ldivmod, [...]): Use .cfi_* directives for DWARF annotations.Charles Baylis1-0/+6
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. From-SVN: r211795
2014-06-18bpabi.S (__aeabi_ldivmod): Perform division using __udivmoddi4, and fixups ↵Charles Baylis1-0/+5
for negative operands. 2014-06-18 Charles Baylis <charles.baylis@linaro.org> * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using __udivmoddi4, and fixups for negative operands. From-SVN: r211794
2014-06-18bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.Charles Baylis1-0/+4
2014-06-18 Charles Baylis <charles.baylis@linaro.org> * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation. From-SVN: r211793
2014-06-18bpabi.S (__aeabi_uldivmod): Perform division using call to __udivmoddi4.Charles Baylis1-0/+5
2014-06-18 Charles Baylis <charles.baylis@linaro.org> * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call to __udivmoddi4. From-SVN: r211792
2014-06-18bpabi.S (__aeabi_uldivmod): Optimise stack pointer manipulation.Charles Baylis1-0/+5
2014-06-18 Charles Baylis <charles.baylis@linaro.org> * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer manipulation. From-SVN: r211791
2014-06-18bpabi.S (__aeabi_uldivmod, [...]): Add comment describing register usage on ↵Charles Baylis1-0/+5
function entry and exit. 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. From-SVN: r211790
2014-06-18bpabi.S (__aeabi_uldivmod): Fix whitespace.Charles Baylis1-0/+5
2014-06-18 Charles Baylis <charles.baylis@linaro.org> * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace. (__aeabi_ldivmod): Fix whitespace. From-SVN: r211789
2014-06-18md.texi (Standard Names): Use @itemx for grouped items.Andreas Schwab2-18/+7
* doc/md.texi (Standard Names): Use @itemx for grouped items. Remove blank line after @item. From-SVN: r211788
2014-06-18re PR target/61545 (Miscompilation in libcap-ng)Richard Henderson2-0/+6
PR target/61545 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM. From-SVN: r211785
2014-06-18arm.c (neon_vector_mem_operand): Allow register POST_MODIFY for neon loads ↵Charles Baylis2-1/+20
and stores. 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. From-SVN: r211783