Marek Polacek
0e37a2f33d
asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
...
* 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-20 21:20:51 +00:00
Francois-Xavier Coudert
87681fb550
re PR fortran/33363 (gfortran is missing -fcase-preserve option)
...
PR fortran/33363
* invoke.texi: Don't mention nonexisting -fcase-lower option.
From-SVN: r211858
2014-06-20 20:11:30 +00:00
Maciej W. Rozycki
9674047260
rs6000.md: Append DONE' to preparation statements of
bswap' pattern splitters.
...
* config/rs6000/rs6000.md: Append `DONE' to preparation
statements of `bswap' pattern splitters.
From-SVN: r211857
2014-06-20 19:42:22 +00:00
Jason Merrill
caa40bc0fc
re PR c++/59296 ([c++11] ref-qualified member function is ambiguous)
...
PR c++/59296
* call.c (add_function_candidate): Avoid special 'this' handling
if we have a ref-qualifier.
From-SVN: r211854
2014-06-20 14:32:35 -04:00
Jason Merrill
e2498d54f0
re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ is not a constant expression with valid code)
...
PR c++/61556
* call.c (build_over_call): Call build_this in template path.
From-SVN: r211853
2014-06-20 14:31:53 -04:00
Tom de Vries
73b3e61bca
Update definition of call_fusage_contains_non_callee_clobbers
...
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-20 18:28:12 +00:00
Yufeng Zhang
676d89dd0f
Make the tests big-endian friendly.
...
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-20 16:52:29 +00:00
Yury Gribov
0cbf438b11
asan.c (instrument_strlen_call): Fixed instrumentation of trailing byte.
...
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-20 16:33:28 +03:00
Martin Jambor
bec81025ed
re PR ipa/61540 (internal compiler error in try_make_edge_direct_virtual_call)
...
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-20 13:19:46 +02:00
Yury Gribov
bf613c022e
re PR sanitizer/61530 (segfault with asan)
...
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-20 13:26:55 +03:00
Martin Jambor
803d0ab0e8
re PR ipa/61211 (ICE: verify_cgraph_node failed: edge points to wrong declaration with -O3 -fno-inline)
...
2014-06-20 Martin Jambor <mjambor@suse.cz>
PR ipa/61211
* cgraph.c (clone_of_p): Allow skipped_branch to deal with
expanded clones.
From-SVN: r211844
2014-06-20 11:54:39 +02:00
Kyrylo Tkachov
278821f265
[AArch64] Fix some saturating math NEON intrinsics types.
...
[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-20 08:51:34 +00:00
Tom de Vries
6621ab6860
Fix finding reg-sets of call insn
...
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-20 08:02:02 +00:00
Tom de Vries
5fea818693
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): Don't save function_used_regs if
it contains all call_used_regs.
From-SVN: r211840
2014-06-20 08:01:52 +00:00
Tom de Vries
53f2f6c1c4
Use function_used_regs variable in collect_fn_hard_reg_usage
...
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-20 08:01:41 +00:00
Jan Hubicka
569b1784fe
cgraph.h (struct symtab_node): Add field in_init_priority_hash (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-20 07:09:27 +00:00
Jakub Jelinek
88f5cfcd2b
tree-ssa-math-opts.c (do_shift_rotate, [...]): Cast 0xff to uint64_t before 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-20 08:30:19 +02:00
Julian Brown
6d45574aa2
arm.c (arm_output_mi_thunk): Fix offset for TARGET_THUMB1_ONLY.
...
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-20 05:38:40 +00:00
Tobias Burnus
27a4e2d0fe
re PR testsuite/61567 (gfortran.dg/coarray_collectives_{5,6}.f90 failure)
...
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-20 07:24:09 +02:00
Hale Wang
dd6fe7d4a2
re PR lto/61123 (With LTO, -fno-short-enums is ignored, resulting in ABI 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-20 04:52:11 +00:00
GCC Administrator
9981da24c0
Daily bump.
...
From-SVN: r211831
2014-06-20 00:16:54 +00:00
Tom de Vries
d07a3fed35
Fix aarch64_emit_call_insn return type
...
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-19 12:21:13 +00:00
Francois-Xavier Coudert
c8d599e1dd
re PR fortran/61454 (ICE in simplification of initialization expression with 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-19 11:58:55 +00:00
Jason Merrill
c7744b8eea
re PR c++/59296 ([c++11] ref-qualified member function is ambiguous)
...
PR c++/59296
* call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
From-SVN: r211821
2014-06-19 05:36:09 -04:00
Zhenqiang Chen
61fc05c74a
loop-invariant.c (get_inv_cost): Skip invariants, which are marked as "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-19 09:04:58 +00:00
Terry Guo
dbb73879ff
thumb1.md (define_split): Split 64bit constant in earlier stage.
...
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-19 07:50:48 +00:00
Tobias Burnus
7f6c4159bf
trans-intrinsic.c (conv_co_minmaxsum): Fix argument passing.
...
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-19 09:16:34 +02:00
Richard Henderson
29d0a43c96
Ignore gcc_update output
...
From-SVN: r211815
2014-06-18 17:47:18 -07:00
GCC Administrator
684bcf090f
Daily bump.
...
From-SVN: r211814
2014-06-19 00:16:43 +00:00
Segher Boessenkool
36bd0c3e42
rs6000: Make cr5 allocatable
...
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-19 01:13:40 +02:00
Jason Merrill
74f4bbb732
re PR c++/59296 ([c++11] ref-qualified member function is ambiguous)
...
PR c++/59296
* call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
ref-qualifier handling.
From-SVN: r211809
2014-06-18 18:13:51 -04:00
Jason Merrill
e3dc80be5e
re PR c++/61507 (GCC does not compile function with parameter pack.)
...
PR c++/61507
* pt.c (resolve_overloaded_unification): Preserve
ARGUMENT_PACK_EXPLICIT_ARGS.
From-SVN: r211808
2014-06-18 18:13:40 -04:00
Kaz Kojima
be6b0becc0
re PR target/61550 ([SH] build failure with ICE in gen_reg_rtx, at 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-18 22:11:55 +00:00
Tobias Burnus
0b4cb601c1
gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
...
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-18 22:57:19 +02:00
Robert Suchanek
a78cc31452
Enable LRA for MIPS
...
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-18 20:40:34 +00:00
Uros Bizjak
30256befe1
ChangeLog: Fix whitespace.
...
* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Fix invalid entry.
From-SVN: r211804
2014-06-18 22:14:08 +02:00
Robert Suchanek
c31d2d11a9
Add support for reloading a frame address with an invalid base
...
gcc/
* lra-constraints.c (base_to_reg): New function.
(process_address): Use new function.
From-SVN: r211802
2014-06-18 19:50:00 +00:00
Tom de Vries
786077082e
-fuse-caller-save - Enable for AArch64
...
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 16:09:01 +00:00
Radovan Obradovic
7a32d6c491
-fuse-caller-save - Enable for ARM
...
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-18 15:50:59 +00:00
Charles Baylis
4b9fcb37ba
bpabi.c (__gnu_uldivmod_helper): Remove.
...
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
From-SVN: r211797
2014-06-18 15:44:45 +00:00
Charles Baylis
a7a7d3c8f0
bpabi-v6m.S (__aeabi_uldivmod): Perform division using __udivmoddi4.
...
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-18 15:44:10 +00:00
Charles Baylis
158ef346fd
bpabi.S (__aeabi_ldivmod, [...]): Use .cfi_* directives for DWARF annotations.
...
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-18 15:43:35 +00:00
Charles Baylis
1338118928
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): Perform division using
__udivmoddi4, and fixups for negative operands.
From-SVN: r211794
2014-06-18 15:42:53 +00:00
Charles Baylis
f493def153
bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
...
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
From-SVN: r211793
2014-06-18 15:42:21 +00:00
Charles Baylis
0b227df4e5
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): Perform division using call
to __udivmoddi4.
From-SVN: r211792
2014-06-18 15:41:27 +00:00
Charles Baylis
c9dae335f5
bpabi.S (__aeabi_uldivmod): Optimise stack pointer manipulation.
...
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
manipulation.
From-SVN: r211791
2014-06-18 15:40:31 +00:00
Charles Baylis
6857b807c2
bpabi.S (__aeabi_uldivmod, [...]): 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, __aeabi_ldivmod): Add comment
describing register usage on function entry and exit.
From-SVN: r211790
2014-06-18 15:39:56 +00:00
Charles Baylis
f21d8faab0
bpabi.S (__aeabi_uldivmod): Fix whitespace.
...
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-18 15:38:48 +00:00
Andreas Schwab
544aee0d66
md.texi (Standard Names): Use @itemx for grouped items.
...
* doc/md.texi (Standard Names): Use @itemx for grouped items.
Remove blank line after @item.
From-SVN: r211788
2014-06-18 15:01:32 +00:00
Richard Henderson
0bc117145a
re PR target/61545 (Miscompilation in libcap-ng)
...
PR target/61545
* config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
From-SVN: r211785
2014-06-18 07:27:55 -07:00