mpolacek [Mon, 23 Jun 2014 16:38:48 +0000 (16:38 +0000)]
* c-typeck.c (parser_build_binary_op): Don't call
warn_logical_not_parentheses if the RHS is TRUTH_NOT_EXPR.
* c-c++-common/pr49706-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211902
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Mon, 23 Jun 2014 16:28:36 +0000 (16:28 +0000)]
Assume x86-64 if a 32-bit processor supports SSE2 and 64-bit
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211901
138bc75d-0d04-0410-961f-
82ee72b054a4
ktietz [Mon, 23 Jun 2014 16:20:31 +0000 (16:20 +0000)]
PR libgcc/61585
* unwind-seh.c (_Unwind_GetGR): Check for proper
index range.
(_Unwind_SetGR): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211900
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 23 Jun 2014 16:00:02 +0000 (16:00 +0000)]
Re: [AArch64] Implement ADD in vector registers for 32-bit scalar values.
gcc/
* config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
"yes" where needed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211899
138bc75d-0d04-0410-961f-
82ee72b054a4
amodra [Mon, 23 Jun 2014 15:08:30 +0000 (15:08 +0000)]
gcc/
PR bootstrap/61583
* tree-vrp.c (remove_range_assertions): Do not set is_unreachable
to zero on debug statements.
gcc/testsuite/
* gcc.dg/pr61583.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211897
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Mon, 23 Jun 2014 14:07:42 +0000 (14:07 +0000)]
PR/60825 Make {int,uint}64x1_t in arm_neon.h a proper vector type
gcc/ChangeLog:
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.
gcc/testsuite/ChangeLog:
* g++.dg/abi/mangle-neon-aarch64.C (f22, f23): New tests of
[u]int64x1_t.
* gcc.target/aarch64/aapcs64/func-ret-64x1_1.c: Add {u,}int64x1 cases.
* gcc.target/aarch64/aapcs64/test_64x1_1.c: Likewise.
* gcc.target/aarch64/scalar_intrinsics.c (test_vaddd_u64,
test_vaddd_s64, test_vceqd_s64, test_vceqzd_s64, test_vcged_s64,
test_vcled_s64, test_vcgezd_s64, test_vcged_u64, test_vcgtd_s64,
test_vcltd_s64, test_vcgtzd_s64, test_vcgtd_u64, test_vclezd_s64,
test_vcltzd_s64, test_vqaddd_u64, test_vqaddd_s64, test_vqdmlals_s32,
test_vqdmlsls_s32, test_vqdmulls_s32, test_vuqaddd_s64,
test_vsqaddd_u64, test_vqmovund_s64, test_vqmovnd_s64,
test_vqmovnd_u64, test_vsubd_u64, test_vsubd_s64, test_vqsubd_u64,
test_vqsubd_s64, test_vshld_s64, test_vshld_u64, test_vrshld_s64,
test_vrshld_u64, test_vshrd_n_s64, test_vshrd_n_u64, test_vsrad_n_s64,
test_vsrad_n_u64, test_vrshrd_n_s64, test_vrshrd_n_u64,
test_vrsrad_n_s64, test_vrsrad_n_u64, test_vqrshld_s64,
test_vqrshld_u64, test_vqshlud_n_s64, test_vqshld_s64, test_vqshld_u64,
test_vqshld_n_u64, test_vqshrund_n_s64, test_vqrshrund_n_s64,
test_vqshrnd_n_s64, test_vqshrnd_n_u64, test_vqrshrnd_n_s64,
test_vqrshrnd_n_u64, test_vshld_n_s64, test_vshdl_n_u64,
test_vslid_n_s64, test_vslid_n_u64, test_vsrid_n_s64,
test_vsrid_n_u64): Fix signature to match intrinsic.
(test_vabs_s64): Remove.
(test_vaddd_s64_2, test_vsubd_s64_2): Use force_simd.
(test_vdupd_lane_s64): Rename to...
(test_vdupd_laneq_s64): ...and remove a call to force_simd.
(test_vdupd_lane_u64): Rename to...
(test_vdupd_laneq_u64): ...and remove a call to force_simd.
(test_vtst_s64): Rename to...
(test_vtstd_s64): ...and change int64x1_t to int64_t.
(test_vtst_u64): Rename to...
(test_vtstd_u64): ...and change uint64x1_t to uint64_t.
* gcc.target/aarch64/singleton_intrinsics_1.c: New file.
* gcc.target/aarch64/vdup_lane_1.c, gcc.target/aarch64/vdup_lane_2.c:
Remove out-of-bounds tests.
* gcc.target/aarch64/vneg_s.c (INDEX*, RUN_TEST): Remove INDEX macro.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211894
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Mon, 23 Jun 2014 12:46:52 +0000 (12:46 +0000)]
PR/60825 Make float64x1_t in arm_neon.h a proper vector type
gcc/ChangeLog:
PR target/60825
* config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
V1DFmode.
* config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
add V1DFmode
(BUILTIN_VD1): New.
(BUILTIN_VD_RE): Remove.
(aarch64_init_simd_builtins): Add V1DF to modes/modenames.
(aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
* config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
variant but not df.
(vreinterpretv1df*, vreinterpret*v1df): New.
(vreinterpretdf*, vreinterpret*df): Remove.
* config/aarch64/aarch64-simd.md (aarch64_create, aarch64_reinterpret*):
Generate V1DFmode pattern not DFmode.
* config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
(VD1): New.
* config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
(vcreate_f64): Remove cast, use v1df builtin.
(vcombine_f64): Remove cast, get elements with gcc vector extensions.
(vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
vmov_n_f64, vst1_f64): Use gcc vector extensions.
(vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
add range check using __builtin_aarch64_im_lane_boundsi.
(vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
type signature, use gcc vector extensions.
(vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
vreinterpret_u64_f64): Use v1df builtin not df.
gcc/testsuite/ChangeLog:
* g++.dg/abi/mangle-neon-aarch64.C: Also test mangling of float64x1_t.
* gcc.target/aarch64/aapcs/test_64x1_1.c: New test.
* gcc.target/aarch64/aapcs/func-ret-64x1_1.c: New test.
* gcc.target/aarch64/simd/ext_f64_1.c (main): Compare vector elements.
* gcc.target/aarch64/vadd_f64.c: Rewrite with macro to use vector types.
* gcc.target/aarch64/vsub_f64.c: Likewise.
* gcc.target/aarch64/vdiv_f.c (INDEX*, RUN_TEST): Remove indexing scheme
as now the same for all variants.
* gcc.target/aarch64/vrnd_f64_1.c (compare_f64): Return float64_t not
float64x1_t.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211892
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Mon, 23 Jun 2014 11:30:32 +0000 (11:30 +0000)]
* include/bits/parse_numbers.h (_Number_help): Fix divide-by-zero.
* include/std/chrono (_Checked_integral_constant): Allow zero.
* testsuite/20_util/duration/literals/values.cc: Test non-positive
values and digit separators.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211890
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 23 Jun 2014 09:04:40 +0000 (09:04 +0000)]
[AArch64] Implement ADD in vector registers for 32-bit scalar values.
gcc/
* config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
vector registers.
gcc/testsuite/
* gcc.target/aarch64/scalar_shift_1.c: Fix expected assembler.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211887
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Mon, 23 Jun 2014 06:33:35 +0000 (06:33 +0000)]
* lto-cgraph.c (lto_output_node, input_node): Set/get init/fini priority
directly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211886
138bc75d-0d04-0410-961f-
82ee72b054a4
zqchen [Mon, 23 Jun 2014 02:47:54 +0000 (02:47 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211885
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Mon, 23 Jun 2014 00:16:31 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211884
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Sun, 22 Jun 2014 19:32:57 +0000 (19:32 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211881
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Sun, 22 Jun 2014 17:21:08 +0000 (17:21 +0000)]
rs6000: Merge the var_shift yes/no alternatives
All instructions that are "var_shift" for some alternative have the shift
amount as operands[2].
This patch introduces an attribute "maybe_var_shift". If that is set to
"yes", the default value of "var_shift" is set based on the operands[2]
value.
With that, we can merge the var_shift yes/no cases everywhere. Do so.
Also change some more "i" to "n".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211880
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Sun, 22 Jun 2014 17:18:05 +0000 (17:18 +0000)]
rs6000: Merge ashrsi3 and ashrdi3
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211879
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Sun, 22 Jun 2014 17:16:03 +0000 (17:16 +0000)]
rs6000: Merge rotlsi3 and rotldi3
This uses the rotl* extended mnemonics instead of the rlw*nm and rld*cl
mnemonics, because they are shorter and more importantly they look the
same for 32-bit and 64-bit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211878
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Sun, 22 Jun 2014 17:14:02 +0000 (17:14 +0000)]
Merge ashlsi3 and ashldi3
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211877
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Sun, 22 Jun 2014 17:11:55 +0000 (17:11 +0000)]
rs6000: Merge lshrsi3 and lshrdi3
For this create a new mode_attr "hH".
Also change "i" constraints on the shift amount to "n", which better
describes what it really is (GCC takes the integer value of these
operands and does arithmetic on them; symbolic constants will not work
here).
Also merge the "dot" insns with the corresponding splitters. To do
this, don't allow the dot insns for CBE non-microcode mode at all
(it previously would just split it back always).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211876
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Sun, 22 Jun 2014 17:09:24 +0000 (17:09 +0000)]
rs6000: Remove "O" alternative from lshrsi3
Nothing will ever generate RTL matching this alternative. Maybe long
ago this was needed, but not anymore.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211875
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Sun, 22 Jun 2014 09:57:02 +0000 (09:57 +0000)]
gcc/
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211874
138bc75d-0d04-0410-961f-
82ee72b054a4
glisse [Sun, 22 Jun 2014 09:16:35 +0000 (09:16 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211873
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 22 Jun 2014 00:16:45 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211872
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sat, 21 Jun 2014 23:01:41 +0000 (23:01 +0000)]
* gcc.dg/localalias.c: Fix broken commit.
* gcc.dg/globalalias.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211869
138bc75d-0d04-0410-961f-
82ee72b054a4
jbglaw [Sat, 21 Jun 2014 21:52:02 +0000 (21:52 +0000)]
2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
gcc/
* config/nios2/nios2.c: Include "builtins.h".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211868
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sat, 21 Jun 2014 02:46:34 +0000 (02:46 +0000)]
* 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.
* lto-symtab.c (lto_varpool_replace_node): Report TLS model conflicts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211865
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sat, 21 Jun 2014 02:39:49 +0000 (02:39 +0000)]
* gcc.dg/localalias.c: New testcase.
* gcc.dg/localalias-2.c: New testcase.
* gcc.dg/globalalias.c: New testcase.
* gcc.dg/globalalias-2.c: New testcase.
* ipa-visibility.c (function_and_variable_visibility): Disable
temporarily local aliases for some targets.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211864
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 21 Jun 2014 00:16:40 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211863
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 20 Jun 2014 21:21:34 +0000 (21:21 +0000)]
* gcc.target/arm/lto/lto.exp: Exit immediately if not arm*-*-* target.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211860
138bc75d-0d04-0410-961f-
82ee72b054a4
mpolacek [Fri, 20 Jun 2014 21:20:51 +0000 (21:20 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211859
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Fri, 20 Jun 2014 20:11:30 +0000 (20:11 +0000)]
PR fortran/33363
* invoke.texi: Don't mention nonexisting -fcase-lower option.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211858
138bc75d-0d04-0410-961f-
82ee72b054a4
macro [Fri, 20 Jun 2014 19:42:22 +0000 (19:42 +0000)]
* config/rs6000/rs6000.md: Append `DONE' to preparation
statements of `bswap' pattern splitters.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211857
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Fri, 20 Jun 2014 18:32:35 +0000 (18:32 +0000)]
PR c++/59296
* call.c (add_function_candidate): Avoid special 'this' handling
if we have a ref-qualifier.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211854
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Fri, 20 Jun 2014 18:31:53 +0000 (18:31 +0000)]
PR c++/61556
* call.c (build_over_call): Call build_this in template path.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211853
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Fri, 20 Jun 2014 18:28:12 +0000 (18:28 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211852
138bc75d-0d04-0410-961f-
82ee72b054a4
yufeng [Fri, 20 Jun 2014 16:52:29 +0000 (16:52 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211851
138bc75d-0d04-0410-961f-
82ee72b054a4
chefmax [Fri, 20 Jun 2014 13:33:28 +0000 (13:33 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211849
138bc75d-0d04-0410-961f-
82ee72b054a4
jamborm [Fri, 20 Jun 2014 11:19:46 +0000 (11:19 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211847
138bc75d-0d04-0410-961f-
82ee72b054a4
chefmax [Fri, 20 Jun 2014 10:26:55 +0000 (10:26 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211846
138bc75d-0d04-0410-961f-
82ee72b054a4
jamborm [Fri, 20 Jun 2014 09:54:39 +0000 (09:54 +0000)]
2014-06-20 Martin Jambor <mjambor@suse.cz>
PR ipa/61211
* cgraph.c (clone_of_p): Allow skipped_branch to deal with
expanded clones.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211844
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Fri, 20 Jun 2014 08:51:34 +0000 (08:51 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211842
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Fri, 20 Jun 2014 08:02:02 +0000 (08:02 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211841
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Fri, 20 Jun 2014 08:01:52 +0000 (08:01 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211840
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Fri, 20 Jun 2014 08:01:41 +0000 (08:01 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211839
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Fri, 20 Jun 2014 07:09:27 +0000 (07:09 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211838
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 20 Jun 2014 06:30:19 +0000 (06:30 +0000)]
* tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
0xff to uint64_t before shifting it up.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211837
138bc75d-0d04-0410-961f-
82ee72b054a4
cltang [Fri, 20 Jun 2014 05:38:40 +0000 (05:38 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211834
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Fri, 20 Jun 2014 05:24:09 +0000 (05:24 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211833
138bc75d-0d04-0410-961f-
82ee72b054a4
zqchen [Fri, 20 Jun 2014 04:52:11 +0000 (04:52 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211832
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 20 Jun 2014 00:16:54 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211831
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Thu, 19 Jun 2014 12:21:13 +0000 (12:21 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211823
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Thu, 19 Jun 2014 11:58:55 +0000 (11:58 +0000)]
PR fortran/61454
* expr.c (scalarize_intrinsic_call): Take care of optional
arguments.
* gfortran.dg/pr61454.f90: New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211822
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 19 Jun 2014 09:36:09 +0000 (09:36 +0000)]
PR c++/59296
* call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211821
138bc75d-0d04-0410-961f-
82ee72b054a4
zqchen [Thu, 19 Jun 2014 09:04:58 +0000 (09:04 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211818
138bc75d-0d04-0410-961f-
82ee72b054a4
xguo [Thu, 19 Jun 2014 07:50:48 +0000 (07:50 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211817
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Thu, 19 Jun 2014 07:16:34 +0000 (07:16 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211816
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Thu, 19 Jun 2014 00:47:18 +0000 (00:47 +0000)]
Ignore gcc_update output
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211815
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Thu, 19 Jun 2014 00:16:43 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211814
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Wed, 18 Jun 2014 23:13:40 +0000 (23:13 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211811
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 18 Jun 2014 22:13:51 +0000 (22:13 +0000)]
PR c++/59296
* call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
ref-qualifier handling.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211809
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Wed, 18 Jun 2014 22:13:40 +0000 (22:13 +0000)]
PR c++/61507
* pt.c (resolve_overloaded_unification): Preserve
ARGUMENT_PACK_EXPLICIT_ARGS.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211808
138bc75d-0d04-0410-961f-
82ee72b054a4
kkojima [Wed, 18 Jun 2014 22:11:55 +0000 (22:11 +0000)]
PR target/61550
* config/sh/sh.c (prepare_move_operands): Don't process TLS
addresses here if reload in progress or completed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211807
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Wed, 18 Jun 2014 20:57:19 +0000 (20:57 +0000)]
2014-06-18 Tobias Burnus <burnus@net-b.de>
* gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
* intrinsic.texi (OpenMP Modules): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211806
138bc75d-0d04-0410-961f-
82ee72b054a4
mpf [Wed, 18 Jun 2014 20:40:34 +0000 (20:40 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211805
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Wed, 18 Jun 2014 20:14:08 +0000 (20:14 +0000)]
* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Fix invalid entry.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211804
138bc75d-0d04-0410-961f-
82ee72b054a4
mpf [Wed, 18 Jun 2014 19:50:00 +0000 (19:50 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211802
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Wed, 18 Jun 2014 16:09:01 +0000 (16:09 +0000)]
-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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211799
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Wed, 18 Jun 2014 15:50:59 +0000 (15:50 +0000)]
-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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211798
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 15:44:45 +0000 (15:44 +0000)]
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211797
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 15:44:10 +0000 (15:44 +0000)]
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
__udivmoddi4.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211796
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 15:43:35 +0000 (15:43 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211795
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 15:42:53 +0000 (15:42 +0000)]
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
__udivmoddi4, and fixups for negative operands.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211794
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 15:42:21 +0000 (15:42 +0000)]
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211793
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 15:41:27 +0000 (15:41 +0000)]
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
to __udivmoddi4.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211792
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 15:40:31 +0000 (15:40 +0000)]
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
manipulation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211791
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 15:39:56 +0000 (15:39 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211790
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 15:38:48 +0000 (15:38 +0000)]
2014-06-18 Charles Baylis <charles.baylis@linaro.org>
* config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
(__aeabi_ldivmod): Fix whitespace.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211789
138bc75d-0d04-0410-961f-
82ee72b054a4
schwab [Wed, 18 Jun 2014 15:01:32 +0000 (15:01 +0000)]
* doc/md.texi (Standard Names): Use @itemx for grouped items.
Remove blank line after @item.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211788
138bc75d-0d04-0410-961f-
82ee72b054a4
rth [Wed, 18 Jun 2014 14:27:55 +0000 (14:27 +0000)]
PR target/61545
* config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211785
138bc75d-0d04-0410-961f-
82ee72b054a4
cbaylis [Wed, 18 Jun 2014 13:42:44 +0000 (13:42 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211783
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 18 Jun 2014 12:30:41 +0000 (12:30 +0000)]
2014-06-18 Richard Biener <rguenther@suse.de>
* tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211782
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 18 Jun 2014 11:45:17 +0000 (11:45 +0000)]
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.
* gcc.dg/vect/vect.exp: Remove dump-tree-dceloop-* processing.
* gcc.dg/vect/dump-tree-dceloop-pr26359.c: Rename to ...
* gcc.dg/vect/pr26359.c: ... this and adjust appropriately.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211781
138bc75d-0d04-0410-961f-
82ee72b054a4
kyukhin [Wed, 18 Jun 2014 11:40:59 +0000 (11:40 +0000)]
PR tree-optimization/61518
gcc/
* tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
reduction var is used in reduction stmt or phi-function only.
gcc/testsuite/
* gcc.dg/torture/pr61518.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211780
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Wed, 18 Jun 2014 10:56:34 +0000 (10:56 +0000)]
[ARM] Fix check for __FAST_MATH in arm_neon.h
* config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211779
138bc75d-0d04-0410-961f-
82ee72b054a4
thopre01 [Wed, 18 Jun 2014 10:43:50 +0000 (10:43 +0000)]
2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
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.
gcc/testsuite/
* gcc.c-torture/execute/bswap-2.c (incorrect_read_le32): New.
(incorrect_read_be32): Likewise.
(main): Call incorrect_read_* to test stmt replacement is made by
bswap at the right place.
* gcc.c-torture/execute/pr61517.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211778
138bc75d-0d04-0410-961f-
82ee72b054a4
schwab [Wed, 18 Jun 2014 10:37:14 +0000 (10:37 +0000)]
Use strict_low_part for loading a constant only if it is cheaper
PR rtl-optimization/54555
* postreload.c (move2add_use_add2_insn): Substitute
STRICT_LOW_PART only if it is cheaper.
testsuite/:
PR rtl-optimization/54555
* gcc.target/m68k/pr54555.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211777
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Wed, 18 Jun 2014 10:32:15 +0000 (10:32 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211776
138bc75d-0d04-0410-961f-
82ee72b054a4
xguo [Wed, 18 Jun 2014 10:11:08 +0000 (10:11 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211775
138bc75d-0d04-0410-961f-
82ee72b054a4
ramana [Wed, 18 Jun 2014 09:44:15 +0000 (09:44 +0000)]
Fix libstdc++/61536 - Export out of line typeinfo comparison operators
2014-06-18 Paolo Carlini <paolo.carlini@oracle.com>
Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR libstdc++/61536
* config/abi/pre/gnu.ver: Adjust for out of line comparisons.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211774
138bc75d-0d04-0410-961f-
82ee72b054a4
hainque [Wed, 18 Jun 2014 09:00:22 +0000 (09:00 +0000)]
2014-06-18 Olivier Hainque <hainque@adacore.com>
improve sloc assignment on bind_expr entry/exit code
gcc/
* 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.
testsuite/
* gnat.dg/blocklocs.adb: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211773
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 18 Jun 2014 08:33:44 +0000 (08:33 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211772
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Wed, 18 Jun 2014 08:07:16 +0000 (08:07 +0000)]
[genattrtab] Fix memory corruption, allocate enough memory for all bypassed reservations
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211771
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 18 Jun 2014 07:58:36 +0000 (07:58 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211770
138bc75d-0d04-0410-961f-
82ee72b054a4
kyukhin [Wed, 18 Jun 2014 07:46:18 +0000 (07:46 +0000)]
gcc/
* 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.
gcc/testsuite/
PR tree-optimization/52252
* gcc.target/i386/pr52252-atom.c: Test on loads group of size 3.
* gcc.target/i386/pr52252-core.c: Ditto.
PR tree-optimization/61403
* gcc.target/i386/pr61403.c: Test on loads and stores group of size 3.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211769
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 18 Jun 2014 07:16:12 +0000 (07:16 +0000)]
* gimplify.c (omp_notice_variable): If n is non-NULL
and no flags change 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.
gcc/cp/
* cp-gimplify.c (cxx_omp_finish_clause): Add a gimple_seq *
argument.
* cp-tree.h (cxx_omp_finish_clause): Adjust prototype.
gcc/fortran/
* cpp.c (cpp_define_builtins): Change _OPENMP macro to
201307.
* dump-parse-tree.c (show_omp_namelist): Add list_type
argument. Adjust for rop being u.reduction_op now,
handle depend_op or map_op.
(show_omp_node): Adjust callers. Print some new
OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
becoming a single OMP_LIST_DEPEND.
* f95-lang.c (gfc_handle_omp_declare_target_attribute): New
function.
(gfc_attribute_table): New variable.
(LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
* frontend-passes.c (gfc_code_walker): Handle new OpenMP target
EXEC_OMP_* codes and new clauses.
* gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
(symbol_attribute): Add omp_declare_target field.
(gfc_omp_depend_op, gfc_omp_map_op): New enums.
(gfc_omp_namelist): Replace rop field with union
containing reduction_op, depend_op and map_op.
(OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
(OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
(gfc_omp_clauses): Add num_teams, device, thread_limit,
dist_sched_kind, dist_chunk_size fields.
(gfc_common_head): Add omp_declare_target field.
(gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
EXEC_OMP_TARGET_UPDATE.
(gfc_add_omp_declare_target): New prototype.
* match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
gfc_match_omp_distribute_parallel_do,
gfc_match_omp_distribute_parallel_do_simd,
gfc_match_omp_distribute_simd, gfc_match_omp_target,
gfc_match_omp_target_data, gfc_match_omp_target_teams,
gfc_match_omp_target_teams_distribute,
gfc_match_omp_target_teams_distribute_parallel_do,
gfc_match_omp_target_teams_distribute_parallel_do_simd,
gfc_match_omp_target_teams_distribute_simd,
gfc_match_omp_target_update, gfc_match_omp_teams,
gfc_match_omp_teams_distribute,
gfc_match_omp_teams_distribute_parallel_do,
gfc_match_omp_teams_distribute_parallel_do_simd,
gfc_match_omp_teams_distribute_simd): New prototypes.
* module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
(attr_bits): Likewise.
(mio_symbol_attribute): Handle omp_declare_target attribute.
(gfc_free_omp_clauses): Free num_teams, device, thread_limit
and dist_chunk_size expressions.
(OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
(OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
OMP_CLAUSE_DIST_SCHEDULE): Define.
(gfc_match_omp_clauses): Change mask parameter to unsigned int.
Adjust for rop becoming u.reduction_op. Disallow inbranch with
notinbranch. For depend clause, always create OMP_LIST_DEPEND
and fill in u.depend_op. Handle num_teams, device, map,
to, from, thread_limit and dist_schedule clauses.
(OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
OMP_CLAUSE_NOTINBRANCH.
(OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
OMP_DISTRIBUTE_CLAUSES): Define.
(match_omp): New function.
(gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
gfc_match_omp_task): Rewritten using match_omp.
(gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
Diagnose if the directives are followed by unexpected junk.
(gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
gfc_match_omp_distribute_parallel_do_simd,
gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
gfc_match_omp_target, gfc_match_omp_target_data,
gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
gfc_match_omp_target_teams_distribute_parallel_do,
gfc_match_omp_target_teams_distribute_parallel_do_simd,
gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
gfc_match_omp_teams, gfc_match_omp_teams_distribute,
gfc_match_omp_teams_distribute_parallel_do,
gfc_match_omp_teams_distribute_parallel_do_simd,
gfc_match_omp_teams_distrbute_simd): New functions.
* openmp.c (resolve_omp_clauses): Adjust for
OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND. Handle
OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
dist_chunk_size and thread_limit.
(gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
ctx.sharing_clauses. Call gfc_resolve_omp_do_blocks for various
new EXEC_OMP_* codes.
(resolve_omp_do): Handle various new EXEC_OMP_* codes.
(gfc_resolve_omp_directive): Likewise.
(gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
* parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
offloading related directives.
(case_executable): Add ST_OMP_TARGET_UPDATE.
(case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
ST_OMP_DISTRIBUTE*.
(case_decl): Add ST_OMP_DECLARE_TARGET.
(gfc_ascii_statement): Handle new ST_OMP_* codes.
(parse_omp_do): Handle various new ST_OMP_* codes.
(parse_executable): Likewise.
* resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
codes.
(resolve_code): Likewise.
(resolve_symbol): Change that !$OMP DECLARE TARGET variables
are saved.
* st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
* symbol.c (check_conflict): Check omp_declare_target conflicts.
(gfc_add_omp_declare_target): New function.
(gfc_copy_attr): Copy omp_declare_target.
* trans.c (trans_code): Handle various new EXEC_OMP_* codes.
* trans-common.c (build_common_decl): Add "omp declare target"
attribute if needed.
* trans-decl.c (add_attributes_to_decl): Likewise.
* trans.h (gfc_omp_finish_clause): New prototype.
* trans-openmp.c (gfc_omp_finish_clause): New function.
(gfc_trans_omp_reduction_list): Adjust for rop being renamed
to u.reduction_op.
(gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
change to OMP_LIST_DEPEND and fix up depend handling.
Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
thread_limit, device, dist_chunk_size and dist_sched_kind.
(gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
(GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
(gfc_split_omp_clauses): Handle splitting of clauses for new
EXEC_OMP_* codes.
(gfc_trans_omp_do_simd): Add pblock argument, adjust for being
callable for combined constructs.
(gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
(gfc_trans_omp_distribute, gfc_trans_omp_teams,
gfc_trans_omp_target, gfc_trans_omp_target_data,
gfc_trans_omp_target_update): New functions.
(gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
new EXEC_OMP_* codes.
gcc/testsuite/
* gfortran.dg/gomp/declare-simd-1.f90: New test.
* gfortran.dg/gomp/depend-1.f90: New test.
* gfortran.dg/gomp/target1.f90: New test.
* gfortran.dg/gomp/target2.f90: New test.
* gfortran.dg/gomp/target3.f90: New test.
* gfortran.dg/gomp/udr4.f90: Adjust expected diagnostics.
* gfortran.dg/openmp-define-3.f90: Expect _OPENMP 201307 instead of
201107.
libgomp/
* omp_lib.f90.in (openmp_version): Set to 201307.
* omp_lib.h.in (openmp_version): Likewise.
* testsuite/libgomp.c/target-8.c: New test.
* testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
and inbranch clauses.
* testsuite/libgomp.fortran/depend-3.f90: New test.
* testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
openmp_version.
* testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
* testsuite/libgomp.fortran/target1.f90: New test.
* testsuite/libgomp.fortran/target2.f90: New test.
* testsuite/libgomp.fortran/target3.f90: New test.
* testsuite/libgomp.fortran/target4.f90: New test.
* testsuite/libgomp.fortran/target5.f90: New test.
* testsuite/libgomp.fortran/target6.f90: New test.
* testsuite/libgomp.fortran/target7.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211768
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Wed, 18 Jun 2014 06:22:11 +0000 (06:22 +0000)]
2014-06-18 Tobias Burnus <burnus@net-b.de>
PR fortran/61126
* invoke.texi (-Wunused-parameter): Make clearer when
-Wextra implies this option.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211767
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Wed, 18 Jun 2014 06:09:28 +0000 (06:09 +0000)]
2014-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/61126
* options.c (gfc_handle_option): Remove call to
handle_generated_option.
2014-06-18 Dominique d'Humieres <dominiq@lps.ens.fr>
PR fortran/61126
* gfortran.dg/wextra_1.f: Add -Wall to dg-options.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211766
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 18 Jun 2014 00:16:50 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211764
138bc75d-0d04-0410-961f-
82ee72b054a4
amacleod [Tue, 17 Jun 2014 23:20:30 +0000 (23:20 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211757
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 17 Jun 2014 23:09:20 +0000 (23:09 +0000)]
PR c++/60605
* pt.c (check_default_tmpl_args): Check DECL_LOCAL_FUNCTION_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211754
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Tue, 17 Jun 2014 20:54:14 +0000 (20:54 +0000)]
gcc/fortran/
2014-06-17 Tobias Burnus <burnus@net-b.de>
* check.c (gfc_check_atomic, gfc_check_atomic_def):
Use argument for GFC_ISYM_CAF_GET.
* resolve.c (resolve_variable): Enable CAF_GET insertion.
(resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
(resolve_ordinary_assign): Enable CAF_SEND insertion.
* trans-const.c (gfc_build_string_const,
gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
* trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
gfor_fndecl_caf_sendget): New global variables.
(gfc_build_builtin_function_decls): Initialize them;
update co_min/max/sum initialization.
* trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
get_tree_for_caf_expr and removed static.
(gfc_conv_procedure_call): Update call.
* trans-intrinsic.c (caf_get_image_index,
conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
get_caf_token_offset, gfc_conv_intrinsic_caf_get,
conv_caf_send): New.
(gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
(conv_co_minmaxsum): Update call for remove unused vector
subscript.
(conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
Skip a CAF_GET of the argument.
* trans-types.c (gfc_get_caf_vector_type): New.
* trans-types.h (gfc_get_caf_vector_type): New.
* trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
gfor_fndecl_caf_sendget): New global variables.
(gfc_get_tree_for_caf_expr): New prototypes.
libgfortran/
2014-06-17 Tobias Burnus <burnus@net-b.de>
* caf/libcaf.h (gfc_descriptor_t): New typedef.
(caf_vector_t): Update.
(_gfortran_caf_co_sum, _gfortran_caf_co_max, _gfortran_caf_co_min):
Remove vector-subscript argument.
(_gfortran_caf_co_send, _gfortran_caf_co_get,
_gfortran_caf_co_sendget): New.
* caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
_gfortran_caf_co_min): Remove vector-subscript argument.
(_gfortran_caf_co_send, _gfortran_caf_co_get,
_gfortran_caf_co_sendget): New.
gcc/testsuite/
2014-06-17 Tobias Burnus <burnus@net-b.de>
Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com>
* gfortran.dg/coarray/send_array.f90: New.
* gfortran.dg/coarray/get_array.f90: New.
* gfortran.dg/coarray/sendget_array.f90: New.
* gfortran.dg/coarray/collectives_1.f90: Correct subroutine
names.
* gfortran.dg/coarray/collectives_2.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211748
138bc75d-0d04-0410-961f-
82ee72b054a4