rsandifo [Wed, 5 Aug 2015 14:21:11 +0000 (14:21 +0000)]
gcc/
* target-insns.def (can_extend): Delete.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226631
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 14:16:51 +0000 (14:16 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/67121
* tree-if-conv.c (combine_blocks): Clear range-info produced
by stmts no longer executed conditionally.
* gcc.dg/torture/pr67121.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226630
138bc75d-0d04-0410-961f-
82ee72b054a4
nickc [Wed, 5 Aug 2015 13:09:43 +0000 (13:09 +0000)]
gcc * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
to allow identical far pointers to remain.
tests * gcc.target/rl78: New directory.
* gcc.target/rl78/rl78.exp: New file: Test driver.
* gcc.target/rl78/test_addm3.c: New file: Test adds.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226624
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 12:47:59 +0000 (12:47 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR middle-end/67120
* match.pd: Compare address bases with == if they are decls
or SSA names, not operand_equal_p. Otherwise fail.
* gcc.dg/torture/pr67120.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226623
138bc75d-0d04-0410-961f-
82ee72b054a4
pault [Wed, 5 Aug 2015 12:06:25 +0000 (12:06 +0000)]
2015-08-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/52846
* module.c (check_access): Return true if new static flag
'dump_smod' is true..
(gfc_dump_module): Rename original 'dump_module' and call from
new version. Use 'dump_smod' rather than the stack state to
determine if a submodule is being processed. The new version of
this procedure sets 'dump_smod' depending on the stack state and
then writes both the mod and smod files if a module is being
processed or just the smod for a submodule.
(gfc_use_module): Eliminate the check for module_name and
submodule_name being the same.
* trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array,
get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use
the conditions to set DECL_VISIBILITY as hidden and to set as
true DECL_VISIBILITY_SPECIFIED.
2015-08-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/52846
* lib/fortran-modules.exp: Call cleanup-submodules from
cleanup-modules.
* gfortran.dg/public_private_module_2.f90: Add two XFAILS to
cover the cases where private entities are no longer optimized
away.
* gfortran.dg/public_private_module_6.f90: Add an XFAIL for the
same reason.
* gfortran.dg/submodule_1.f08: Change cleanup module names.
* gfortran.dg/submodule_5.f08: The same.
* gfortran.dg/submodule_9.f08: The same.
* gfortran.dg/submodule_10.f08: New test
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226622
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Wed, 5 Aug 2015 10:07:57 +0000 (10:07 +0000)]
2015-08-05 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66595
* g++.dg/cpp1y/var-templ35.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226617
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 10:01:12 +0000 (10:01 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/67055
* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
NULL gimple_block.
* g++.dg/torture/pr67055.C: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226616
138bc75d-0d04-0410-961f-
82ee72b054a4
kyukhin [Wed, 5 Aug 2015 08:01:19 +0000 (08:01 +0000)]
Disable AVX-512VL insns for scalar mode operands on -march=knl.
gcc/
* config/i386/i386.md (define_attr "isa"): Addd avx512vl and
noavx512vl.
(define_attr "enabled"): Handle avx521vl and noavx512vl.
* config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
AVX-512 alternative out of SSE.
(define_insn "*vec_concatv2df"): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226612
138bc75d-0d04-0410-961f-
82ee72b054a4
kyukhin [Wed, 5 Aug 2015 07:58:54 +0000 (07:58 +0000)]
Merge SSE and AVX ptest patterns.
gcc/
* config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
CODE_FOR_avx_ptestv4di.
* config/i386/sse.md (define_mode_iterator V_AVX): New.
(define_mode_attr sse4_1): Extend to other 128/256-bit modes.
(define_insn "avx_ptest256"): Merge this ...
(define_insn "sse4_1_ptest"): And this ...
(define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226611
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 07:48:34 +0000 (07:48 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/67109
* tree-vect-data-refs.c (vect_analyze_group_access_1): Check
against too big groups. Print whether this is a load or store
group. Rename from ...
(vect_analyze_group_access): ... this which is now a wrapper
dissolving an invalid group.
(vect_analyze_data_ref_accesses): Print whether this is a load
or store group.
* gcc.dg/torture/pr67109.c: New testcase.
* gcc.dg/vect/vect-119.c: Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226610
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Wed, 5 Aug 2015 07:42:54 +0000 (07:42 +0000)]
2015-08-05 Richard Biener <rguenther@suse.de>
PR middle-end/67107
* match.pd: Guard const_binop result checking against NULL_TREE
result.
* gcc.dg/pr67107.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226609
138bc75d-0d04-0410-961f-
82ee72b054a4
kugan [Wed, 5 Aug 2015 01:08:49 +0000 (01:08 +0000)]
gcc/ChangeLog:
2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
* cse.c (cse_insn): Restoring old behaviour for src_eqv
when dest and value in the REG_EQUAL are same and dest
is STRICT_LOW_PART.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226606
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 5 Aug 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226601
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Tue, 4 Aug 2015 23:46:09 +0000 (23:46 +0000)]
compiler: Verify pointer type's underlying type.
Fixes golang/go#11547.
Reviewed-on: https://go-review.googlesource.com/13031
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226598
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Tue, 4 Aug 2015 22:27:48 +0000 (22:27 +0000)]
compiler: Use context to determine types of complex expressions.
When determining the type of a complex expression, it is important
to recognize cases where a complex value can be represented as a
real number.
Fixes golang/go#11572.
Reviewed-on: https://go-review.googlesource.com/12541
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226596
138bc75d-0d04-0410-961f-
82ee72b054a4
aesok [Tue, 4 Aug 2015 19:51:28 +0000 (19:51 +0000)]
[MOXIE] Hookize PRINT_OPERAND and PRINT_OPERAND_ADDRESS
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226594
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Tue, 4 Aug 2015 17:22:05 +0000 (17:22 +0000)]
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66197
* g++.dg/cpp1z/abbrev2.C: New.
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp1z/static_assert-nomsg.C: Fix DejaGnu directive.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226591
138bc75d-0d04-0410-961f-
82ee72b054a4
nsz [Tue, 4 Aug 2015 16:22:32 +0000 (16:22 +0000)]
[AArch64] PR target/66731 Fix fnmul insn with -frounding-math (rtx costs)
2015-08-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
PR target/66731
* config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
(aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226586
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Tue, 4 Aug 2015 16:15:45 +0000 (16:15 +0000)]
* texi2pod.pl: Escape braces in regexp involving @strong{...}.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226585
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 4 Aug 2015 15:18:45 +0000 (15:18 +0000)]
* pt.c (lookup_template_class_1): Clear elt.spec.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226581
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 4 Aug 2015 15:18:40 +0000 (15:18 +0000)]
* tree.c (build_target_expr): Copy the location from value.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226580
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Tue, 4 Aug 2015 14:54:07 +0000 (14:54 +0000)]
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66392
* g++.dg/init/explicit4.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226579
138bc75d-0d04-0410-961f-
82ee72b054a4
wschmidt [Tue, 4 Aug 2015 14:09:23 +0000 (14:09 +0000)]
2015-08-04 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
* gcc.target/powerpc/vec-cmp-sel.c: Avoid test failure on machines
without VSX an Power8 vector support.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226578
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 4 Aug 2015 13:55:26 +0000 (13:55 +0000)]
2015-08-04 Richard Biener <rguenther@suse.de>
* genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
generated code.
(dt_operand::gen_gimple_expr): Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226577
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 4 Aug 2015 13:51:50 +0000 (13:51 +0000)]
2015-08-04 Richard Biener <rguenther@suse.de>
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
bool compares on RHS.
* match.pd: Add X ==/!= !X is false/true pattern.
* gcc.dg/tree-ssa/ssa-ccp-38.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226576
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Tue, 4 Aug 2015 13:44:41 +0000 (13:44 +0000)]
gcc/
2015-08-04 Pawel Kupidura <pawel.kupidura@arm.com>
* config/aarch64/aarch64.c: Change inner loop statement cost
to be consistent with other targets.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226575
138bc75d-0d04-0410-961f-
82ee72b054a4
clyon [Tue, 4 Aug 2015 13:24:26 +0000 (13:24 +0000)]
2015-08-04 Christophe Lyon <christophe.lyon@linaro.org>
* config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
targets.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226574
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Tue, 4 Aug 2015 13:14:14 +0000 (13:14 +0000)]
* config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
(machine_function): Remove pseudos field.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226573
138bc75d-0d04-0410-961f-
82ee72b054a4
bje [Tue, 4 Aug 2015 12:59:57 +0000 (12:59 +0000)]
Fix incorrect date in 2015-07-28 change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226572
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Tue, 4 Aug 2015 11:54:20 +0000 (11:54 +0000)]
Compile IAMCU tests with -fno-pie -no-pie
Since IAMCU tests clear all scratch integer registers with:
asm __volatile__ ("xor %%eax, %%eax\n\t" \
"xor %%edx, %%edx\n\t" \
"xor %%ecx, %%ecx\n\t" \
::: "eax", "edx", "ecx");
PIC register may be trashed between setting PIC register and using it.
This patch compiles AMCU tests with -fno-pie -no-pie.
PR target/67110
* gcc.target/i386/iamcu/abi-iamcu.exp (additional_flags): Add
-fno-pie -no-pie.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226570
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Tue, 4 Aug 2015 11:05:02 +0000 (11:05 +0000)]
2015-08-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/66427
* g++.dg/cpp1y/var-templ34.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226568
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:45:48 +0000 (10:45 +0000)]
[AArch64][14/14] Reuse target_option_current_node when passing pragma string to target attribute
* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
Exit early and use target_option_current_node if processing current
pragma.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226567
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:43:15 +0000 (10:43 +0000)]
[doc][13/14] Document AArch64 target attributes and pragmas
* doc/extend.texi (AArch64 Function Attributes): New node.
(AArch64 Pragmas): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226566
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:41:31 +0000 (10:41 +0000)]
[AArch64][12/14] Target attributes and target pragmas tests
* gcc.target/aarch64/pragma_cpp_predefs_1.c: New test.
* gcc.target/aarch64/target_attr_1.c: Likewise.
* gcc.target/aarch64/target_attr_2.c: Likewise.
* gcc.target/aarch64/target_attr_3.c: Likewise.
* gcc.target/aarch64/target_attr_4.c: Likewise.
* gcc.target/aarch64/target_attr_5.c: Likewise.
* gcc.target/aarch64/target_attr_6.c: Likewise.
* gcc.target/aarch64/target_attr_7.c: Likewise.
* gcc.target/aarch64/target_attr_8.c: Likewise.
* gcc.target/aarch64/target_attr_9.c: Likewise.
* gcc.target/aarch64/target_attr_10.c: Likewise.
* gcc.target/aarch64/target_attr_11.c: Likewise.
* gcc.target/aarch64/target_attr_12.c: Likewise.
* gcc.target/aarch64/target_attr_13.c: Likewise.
* gcc.target/aarch64/target_attr_14.c: Likewise.
* gcc.target/aarch64/target_attr_15.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226565
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:39:42 +0000 (10:39 +0000)]
[AArch64][11/14] Re-layout SIMD builtin types on builtin expansion
* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
Initialize simd builtins if TARGET_SIMD.
* config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
Make sure that the builtins are initialized only once no matter how
many times the function is called.
(aarch64_init_builtins): Unconditionally initialize crc builtins.
(aarch64_relayout_simd_param): New function.
(aarch64_simd_expand_args): Use above during argument expansion.
* config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
simd builtins if TARGET_SIMD.
* config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
prototype.
(aarch64_relayout_simd_types): Likewise.
* gcc.target/aarch64/target_attr_crypto_ice_1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226564
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:35:16 +0000 (10:35 +0000)]
[AArch64][10/14] Implement target pragmas
* config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
* config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
(TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
static keyword.
(aarch64_reset_previous_fndecl): New function.
(aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
the string.
* config/aarch64/aarch64-c.c: New file.
* config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
Push and pop options at beginning and end. Remove ifdef
__ARM_FEATURE_CRC32.
* config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
Add pragma +nothing+simd and +nothing+crypto where appropriate.
* config/aarch64/t-aarch64 (aarch64-c.o): New rule.
* config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
Define prototype.
(aarch64_register_pragmas): Likewise.
(aarch64_reset_previous_fndecl): Likewise.
(aarch64_process_target_attr): Likewise.
(aarch64_override_options_internal): Likewise.
* gcc.target/aarch64/arm_neon-nosimd-error.c: Delete.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226563
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:17:13 +0000 (10:17 +0000)]
[AArch64][9/14] Implement TARGET_CAN_INLINE_P
* config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
New function.
(aarch64_can_inline_p): Likewise.
(TARGET_CAN_INLINE_P): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226561
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:14:00 +0000 (10:14 +0000)]
[AArch64][8/14] Implement TARGET_OPTION_VALID_ATTRIBUTE_P
* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
Remove static. Handle OPT_mgeneral_regs_only,
OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
OPT_momit_leaf_frame_pointer.
* config/aarch64/aarch64.c: Include opts.h and diagnostic.h
(aarch64_attr_opt_type): New enum.
(aarch64_attribute_info): New struct.
(aarch64_handle_attr_arch): New function.
(aarch64_handle_attr_cpu): Likewise.
(aarch64_handle_attr_tune): Likewise.
(aarch64_handle_attr_isa_flags): Likewise.
(aarch64_attributes): New table.
(aarch64_process_one_target_attr): New function.
(num_occurences_in_str): Likewise.
(aarch64_process_target_attr): Likewise.
(aarch64_option_valid_attribute_p): Likewise.
(TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
* config/aarch64/aarch64-protos.h: Include input.h
(aarch64_handle_option): Declare prototype.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226560
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:10:28 +0000 (10:10 +0000)]
[AArch64][7/14] Implement TARGET_SET_CURRENT_FUNCTION
* config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
* config/aarch64/aarch64.c: Include target-globals.h
(aarch64_previous_fndecl): New variable.
(aarch64_set_current_function): New function.
(TARGET_SET_CURRENT_FUNCTION): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226559
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:06:51 +0000 (10:06 +0000)]
[AArch64][6/14] Implement TARGET_OPTION_SAVE/TARGET_OPTION_RESTORE
* config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
(explicit_arch): Likewise.
(x_aarch64_isa_flags): Likewise.
(mgeneral-regs-only): Mark as Save.
(mfix-cortex-a53-835769): Likewise.
(mcmodel=): Likewise.
(mstrict-align): Likewise.
(momit-leaf-frame-pointer): Likewise.
(mtls-dialect): Likewise.
(master=): Likewise.
* config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
(aarch64_isa_flags): Remove extern declaration.
* config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
to indicate success or failure.
(aarch64_validate_march): Likewise.
(aarch64_validate_mtune): Likewise.
(aarch64_isa_flags): Delete.
(aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
instead of aarch64_isa_flags.
(aarch64_get_tune_cpu): New function.
(aarch64_get_arch): Likewise.
(aarch64_override_options): Use above and set up explicit_tune_core
and explicit_arch.
(aarch64_print_extension): Move earlier in file. Add isa_flags
argument and use that instead of the global aarch64_isa_flags.
(aarch64_option_save): New function.
(aarch64_option_restore): Likewise.
(aarch64_option_print): Likewise.
(aarch64_declare_function_name): Likewise.
(aarch64_start_file): Delete.
(TARGET_ASM_FILE_START): Do not define.
(TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
* config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
Declare prototype.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226558
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:02:56 +0000 (10:02 +0000)]
[AArch64][5/14] Make flag_omit_leaf_frame_pointer intialize to 2. Define and use TARGET_OMIT_LEAF_FRAME_POINTER
* config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
flag_omit_leaf_frame_pointer to 2.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226557
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 10:01:06 +0000 (10:01 +0000)]
[AArch64][4/14] Create TARGET_FIX_ERR_A53_835769 and use that instead of aarch64_fix_a53_err835769
* config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
define to 0 or 1.
(TARGET_FIX_ERR_A53_835769): New macro.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
handling of opts->x_aarch64_fix_a53_err835769.
(aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
than aarch64_fix_a53_err835769.
* config/aarch64/aarch64-elf-raw.h: Update for above changes.
* config/aarch64/aarch64-linux.h: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226556
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Tue, 4 Aug 2015 09:54:08 +0000 (09:54 +0000)]
* config/i386/i386.c (ix86_expand_int_movcc): Check result of
ix86_expand_int_movcc as boolean.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226555
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 09:52:52 +0000 (09:52 +0000)]
[AArch64][3/14] Refactor option override code
* config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
(aarch64_cpu_string): Likewise.
(aarch64_tune_string): Likewise.
* config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
(aarch64_parse_extension): Return aarch64_parse_opt_result.
Add extra argument to put result into.
(aarch64_parse_arch): Likewise. Do not set selected_cpu.
(aarch64_parse_cpu): Add arguments to put results into. Return
aarch64_parse_opt_result.
(aarch64_parse_tune): Likewise.
(aarch64_override_options_after_change_1): New function.
(aarch64_override_options_internal): New function.
(aarch64_validate_mcpu): Likewise.
(aarch64_validate_march): Likewise.
(aarch64_validate_mtune): Likewise.
(aarch64_override_options): Update to reflect above changes.
Move some logic into aarch64_override_options_internal.
Initialize target_option_default_node and target_option_current_node.
(aarch64_override_options_after_change): Move logic into
aarch64_override_options_after_change_1 and call it with global_options.
(initialize_aarch64_code_model): Take a gcc_options pointer and use the
flag values from that.
* gcc.target/aarch64/cpu-diagnostics-3.c: Update expected error
message.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226554
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 09:47:49 +0000 (09:47 +0000)]
[AArch64][2/14] Refactor arches handling, add arch enum identifier
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
__ARM_ARCH_8A directly rather than with cpp_define_formatted.
* config/aarch64/aarch64.c (struct processor): Add arch field.
(all_architectures): Handle above, move above all_cores.
(all_cores): Handle above.
(aarch64_parse_arch): Handle above changes.
* config/aarch64/aarch64-arches.def (armv8-a): Extend according to
above. Update comments.
(armv8.1-a): Likewise.
* config/aarch64/aarch64-cores.def: Update according to above.
* config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
* config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
aarch64_arch_driver_info.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226553
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 4 Aug 2015 09:44:18 +0000 (09:44 +0000)]
[AArch64][1/14] Add ident field to struct processor
* config/aarch64/aarch64.c (struct processor): Add ident field.
Rename core sched_core.
(all_cores): Handle above changes.
(all_architectures): Likewise.
(aarch64_parse_arch): Likewise.
(aarch64_override_options): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226552
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 4 Aug 2015 09:40:54 +0000 (09:40 +0000)]
2015-08-04 Richard Biener <rguenther@suse.de>
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
dispatching to fold_binary for GIMPLE_BINARY_RHS and for
comparisons embedded in [VEC_]COND_EXPRs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226551
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Tue, 4 Aug 2015 09:24:15 +0000 (09:24 +0000)]
* config/fpu-387.h: Remove unwanted whitespace.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226550
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Tue, 4 Aug 2015 09:16:52 +0000 (09:16 +0000)]
* config/fpu-387.h (get_fpu_trap_exceptions): Add temporary variable
to improve generated code.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226549
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Tue, 4 Aug 2015 07:27:19 +0000 (07:27 +0000)]
PR fortran/64022
* simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
support to all real kinds.
* ieee/ieee_exceptions.F90: Support all real kinds.
* ieee/ieee_arithmetic.F90: Likewise.
* ieee/ieee_helper.c (ieee_class_helper_10,
ieee_class_helper_16): New functions
* gfortran.map (GFORTRAN_1.7): Add entries.
* gfortran.dg/ieee/ieee_7.f90: Adjust test.
* gfortran.dg/ieee/large_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226548
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Tue, 4 Aug 2015 03:53:10 +0000 (03:53 +0000)]
* tree-if-conv.c: Fix various typos in comments.
* tree-vect-stmts.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226544
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Tue, 4 Aug 2015 03:39:21 +0000 (03:39 +0000)]
runtime: initialize variable to avoid compiler warning
Reviewed-on: https://go-review.googlesource.com/13095
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226543
138bc75d-0d04-0410-961f-
82ee72b054a4
thopre01 [Tue, 4 Aug 2015 02:11:58 +0000 (02:11 +0000)]
2015-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR tree-optimization/67043
* loop-invariant.c (move_invariant_reg): Recompute luids in loop
preheader after hoisting invariant in it.
(find_defs): Force recomputation of all luids.
gcc/testsuite/
PR tree-optimization/67043
* gcc.dg/pr67043.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226540
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Tue, 4 Aug 2015 00:40:18 +0000 (00:40 +0000)]
* plugin/plugin-nvptx.c: Don't include dlfcn.h.
(cuda_errlist): Constify.
(errmsg): Move into ...
(cuda_error): ... here. Make smaller.
(_XSTR, _STR): Delete.
(cuda_synames): Delete.
(verify_device_library): Delete.
(nvptx_init): Don't call it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226539
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 4 Aug 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226538
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Mon, 3 Aug 2015 21:18:56 +0000 (21:18 +0000)]
syscall: RawSockaddr fix for ppc64, ppc64le
The struct RawSockaddr contains a field Data which
should be uint8 on ppc64 and ppc64le, but is declared
as int8 in gccgo. This change adds a two new files
which contain the structure declaration for
RawSockaddr, one with the correct types for for ppc64
and ppc64le, and the other for non-ppc64 platforms.
Fixes golang/go#11469
Reviewed-on: https://go-review.googlesource.com/11946
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226533
138bc75d-0d04-0410-961f-
82ee72b054a4
bergner [Mon, 3 Aug 2015 21:11:20 +0000 (21:11 +0000)]
gcc/
* config/rs6000/htm.md (tabort.): Restrict the source operand to
using a base register.
gcc/testsuite/
* gcc.target/powerpc/htm-tabort-no-r0.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226532
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Mon, 3 Aug 2015 20:14:21 +0000 (20:14 +0000)]
Refactoring of timevar API
gcc/ChangeLog:
* main.c (main): Pass in NULL for toplev's external_timer.
* timevar.c: Include coretypes.h.
(class timer::named_items): New.
(timer::named_items::named_items): New.
(timer::named_items::~named_items): New.
(timer::named_items::push): New.
(timer::named_items::pop): New.
(timer::named_items::print): New.
(timer::timer): Initialize field "m_jit_client_items".
(timer::~timer): New.
(timer::push): Move bulk of implementation to...
(timer::push_internal): ...here. New function.
(timer::pop): Move bulk of implementation to...
(timer::pop_internal): ...here. New function.
(timer::push_client_item): New.
(timer::pop_client_item): New.
(timer::print_row): New function, taken from timer::print.
(timer::print): Print "GCC items" header if we also have client
items. Move row-printing to timer::print_row. Print any client
items.
(timer::get_topmost_item_name): New method.
* timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
(TV_JIT_CLIENT_CODE): New.
* timevar.h (timer::push_client_item): New declaration.
(timer::pop_client_item): New declaration.
(timer::get_topmost_item_name): New method.
(timer::push_internal): New declaration.
(timer::pop_internal): New declaration.
(timer::print_row): New declaration.
(timer::named_items): New declaration.
(timer::m_jit_client_items): New field.
(timer): Add friend class named_items.
(auto_timevar::auto_timevar): Add timer param.
(auto_timevar::~auto_timevar): Use field "m_timer".
(auto_timevar::m_timer): New field.
* toplev.c (initialize_rtl): Add g_timer as param when
constructing auto_timevar instance.
(toplev::toplev): Add "external_timer" param, and use it to
initialize the "g_timer" global if non-NULL.
(toplev::~toplev): If this created "g_timer", delete it.
* toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
with "external_timer" timer *.
gcc/jit/ChangeLog:
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New.
* docs/topics/contexts.rst (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY):
We no longer show a profile.
* docs/topics/index.rst (Topic Reference): Add performance.rst.
* docs/topics/performance.rst: New file.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (gcc::jit::playback::context::compile): Add timer
param when constructing the "toplev" instance.
(gcc::jit::playback::context::acquire_mutex): Add timer param when
constructing auto_timevar instance.
(gcc::jit::playback::context::make_fake_args): If we have a timer,
add "-ftime-report".
(gcc::jit::playback::context::invoke_driver): Add timer param when
constructing auto_timevar instance.
(gcc::jit::playback::context::dlopen_built_dso): Likewise.
* jit-playback.h (gcc::jit::playback::context::get_timer): New accessor.
* jit-recording.c: Include timevar.h.
(gcc::jit::recording::context::context): Initialize field "m_timer".
* jit-recording.h: Add forward declaration of class timer.
(gcc::jit::recording::context::set_timer): New method.
(gcc::jit::recording::context::get_timer): New method.
(gcc::jit::recording::context::m_timer): New field.
* libgccjit++.h (gccjit::timer): New class.
(gccjit::auto_time): New class.
(gccjit::context::set_timer): New method.
(gccjit::context::get_timer): New.
(gccjit::timer::timer): New.
(gccjit::timer::push): New.
(gccjit::timer::pop): New.
(timer::print): New.
(timer::get_inner_timer): New.
(timer::release): New.
(auto_time::auto_time): New.
(auto_time::~auto_time): New.
* libgccjit.c: Include timevar.h.
(struct gcc_jit_timer): New.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
* libgccjit.h (LIBGCCJIT_HAVE_TIMING_API): New macro.
(gcc_jit_timer): New typedef.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
* libgccjit.map (LIBGCCJIT_ABI_4): New.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
gcc/testsuite/ChangeLog:
* jit.dg/test-benchmark.c (test_jit): Add param "timer" and use
it to push/pop timing items.
(main): For each optimization level, create a gcc_jit_timer, and
time all of the iteration within that level cumulatively.
* jit.dg/test-error-gcc_jit_timer_pop-mismatch.c: New test case.
* jit.dg/test-error-gcc_jit_timer_pop-too-many.c: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226530
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Mon, 3 Aug 2015 19:55:00 +0000 (19:55 +0000)]
compiler: Don't allow multiple function declarations.
Fixes golang/go#11573.
Reviewed-on: https://go-review.googlesource.com/12508
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226529
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Mon, 3 Aug 2015 19:34:31 +0000 (19:34 +0000)]
PR middle-end/64744
PR middle-end/48470
PR middle-end/43404
* cfgexpand.c (expand_one_var): Add check if stack is going to
be used in naked function.
* expr.c (expand_expr_addr_expr_1): Remove excess checking
whether expression should not reside in MEM.
* function.c (use_register_for_decl): Do not use registers for
non-register things (volatile, float, BLKMode) in naked functions.
PR middle-end/64744
PR middle-end/48470
PR middle-end/43404
* gcc.target/arm/pr43404.c : New testcase.
* gcc.target/arm/pr48470.c : New testcase.
* gcc.target/arm/pr64744-1.c : New testcase.
* gcc.target/arm/pr64744-2.c : New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226528
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Mon, 3 Aug 2015 18:53:56 +0000 (18:53 +0000)]
compiler: Don't make erroneous type descriptors.
There is no need to make type descriptors for named types when there
are errors during package compilation. Particularly, if the error in
package compilation is from a malformed named type, there is no
guarantee a type descriptor can be created.
Fixes golang/go#11560.
Reviewed-on: https://go-review.googlesource.com/12792
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226527
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Mon, 3 Aug 2015 18:23:42 +0000 (18:23 +0000)]
libgo/testsuite: kill sleep process in gotest
This change modifies the "gotest" shell script
to kill all processes, including "sleep", spawned
by the timeout subshell. This prevents the sleep
process from living beyond the gotest process.
BACKGROUND
The "gotest" shell script spawns "sleep" processes
in the background to kill off test cases that run
past their specified timeout. There are commands
included that appear to kill the sleep process,
but they only kill the parent shell, causing the
sleep process to reparent.
The orphaned sleep process can cause issues when
gotest is run under some build systems, such as
Ninja [0]. The particular issue with Ninja is the
method it uses to identify terminated processes:
it creates a pipe, passes the write end to the
child process, and waits for EOF. In the case of
libgo/gotest, the orphaned sleep process inherits
the pipe FD and keeps it open for 4 minutes by
default.
[0] https://github.com/martine/ninja
Reviewed-on: https://go-review.googlesource.com/12227
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226526
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Mon, 3 Aug 2015 17:54:50 +0000 (17:54 +0000)]
PR go/67101
runtime: Remove call to __builtin_frame_address.
__builtin_frame_address was only supposed to use nonzero arguments
for debugging purposes. Calling it with nonzero arguments can have
unpredictable results and uses are now marked unsafe when
-Wframe-address is enabled.
Reviewed-on: https://go-review.googlesource.com/13063
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226525
138bc75d-0d04-0410-961f-
82ee72b054a4
danglin [Mon, 3 Aug 2015 17:26:19 +0000 (17:26 +0000)]
PR target/67060
* config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
Adjust splits to match new pattern.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226522
138bc75d-0d04-0410-961f-
82ee72b054a4
meissner [Mon, 3 Aug 2015 17:06:24 +0000 (17:06 +0000)]
2015-08-03 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
(VEC_M): Likewise.
(VEC_N): Likewise.
(mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
point in VSX registers.
* config/rs6000/constraints.md (wb constraint): Document unused
w<x> constraint.
(we constraint): Likewise.
(wo constraint): Likewise.
(wp constraint): New constraint for IEEE 128-bit floating point in
VSX registers.
(wq constraint): Likewise.
* config/rs6000/predicates.md (easy_fp_constant): Add support for
IEEE 128-bit floating point in VSX registers.
(easy_scalar_constant): Likewise.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
constraints (wp, wq) for IEEE 128-bit floating point in VSX
registers.
(rs6000_init_hard_regno_mode_ok): Likewise.
* config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
floating point in VSX registers.
(VSX_L): Likewise.
(VSX_M): Likewise.
(VSX_M2): Likewise.
(VSm): Likewise.
(VSs): Likewise.
(VSr): Likewise.
(VSa): Likewise.
(VSv): Likewise.
(vsx_le_permute_<mode>): Add support to properly swap bytes for
IEEE 128-bit floating point in VSX registers on little endian.
(vsx_le_undo_permute_<mode>): Likewise.
(vsx_le_perm_load_<mode>): Likewise.
(vsx_le_perm_store_<mode>): Likewise.
(splitters for IEEE 128-bit fp moves): Likewise.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
wq constraints.
* config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
floating point in VSX registers.
(VM2): Likewise.
* doc/md.text (Machine Constraints): Document wp and wq
constraints on PowerPC.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226520
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Mon, 3 Aug 2015 16:58:03 +0000 (16:58 +0000)]
Add a testcase for PR tree-optimization/67077
PR tree-optimization/67077
* gcc.dg/pr67077.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226518
138bc75d-0d04-0410-961f-
82ee72b054a4
kargl [Mon, 3 Aug 2015 16:56:39 +0000 (16:56 +0000)]
2015-08-03 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66942
* trans-expr.c (gfc_conv_procedure_call): Avoid NULL pointer reference
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226517
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Mon, 3 Aug 2015 16:26:13 +0000 (16:26 +0000)]
PR middle-end/66314
PR gcov-profile/66899
* tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
iterate over the jump threading paths when an element in the
jump threading paths array is eliminated.
PR middle-end/66314
PR gcov-profile/66899
* gcc.dg/pr66899.c: New test.
* gcc.dg/pr66314.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226516
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Mon, 3 Aug 2015 15:56:17 +0000 (15:56 +0000)]
PR libstdc++/67078
* include/bits/range_access.h (size, empty, data): Fix _N bad name.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226515
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Mon, 3 Aug 2015 15:33:45 +0000 (15:33 +0000)]
* Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226514
138bc75d-0d04-0410-961f-
82ee72b054a4
ppalka [Mon, 3 Aug 2015 14:57:25 +0000 (14:57 +0000)]
Avoid recomputing the defining predicate chains for the same PHI
gcc/ChangeLog:
* tree-ssa-uninit.c (find_uninit_use): Declare and pass to
is_use_properly_guarded the variable def_preds. Free its
contents before returning.
(prune_uninit_phi_opnds_in_unrealizable_paths): Same.
(is_use_properly_guarded): Replace local variable def_preds with
a parameter. Adjust accordingly. Only update *def_preds if it's
the empty vector.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226511
138bc75d-0d04-0410-961f-
82ee72b054a4
mpolacek [Mon, 3 Aug 2015 13:55:28 +0000 (13:55 +0000)]
PR c/67088
* c-decl.c (check_bitfield_type_and_width): Add location parameter.
Use it.
(grokdeclarator): Pass LOC down to check_bitfield_type_and_width.
* gcc.dg/pr67088.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226506
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 3 Aug 2015 13:45:22 +0000 (13:45 +0000)]
2015-08-03 Richard Biener <rguenther@suse.de>
* genmatch.c (simplify::for_subst_vec): New member.
(binary_ok): New helper for for lowering.
(lower_for): Delay substituting operators into result expressions
if we can merge the results eventually again.
(capture_info::walk_result): Adjust for user_id appearing as
result expression operator.
(expr::gen_transform): Likewise.
(dt_simplify::gen_1): Likewise.
(dt_simplify::gen): Pass not substituted operators to tail
functions or initialize local variable with it.
(decision_tree::gen): Adjust function signature.
* match.pd: Fix tests against global code and add default
cases to switch stmts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226505
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 3 Aug 2015 13:28:46 +0000 (13:28 +0000)]
2015-08-03 Richard Biener <rguenther@suse.de>
* genmatch.c (simplify::for_subst_vec): New member.
(binary_ok): New helper for for lowering.
(lower_for): Delay substituting operators into result expressions
if we can merge the results eventually again.
(capture_info::walk_result): Adjust for user_id appearing as
result expression operator.
(expr::gen_transform): Likewise.
(dt_simplify::gen_1): Likewise.
(dt_simplify::gen): Pass not substituted operators to tail
functions or initialize local variable with it.
(decision_tree::gen): Adjust function signature.
* match.pd: Fix tests against global code and add default
cases to switch stmts.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226504
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 3 Aug 2015 13:20:22 +0000 (13:20 +0000)]
2015-08-03 Richard Biener <rguenther@suse.de>
* genmatch.c (dt_simplify::gen): Create captures array
with an initializer.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226503
138bc75d-0d04-0410-961f-
82ee72b054a4
uweigand [Mon, 3 Aug 2015 11:48:57 +0000 (11:48 +0000)]
gcc/ChangeLog:
* configure.ac: Set aliasing_flags to -fno-strict-aliasing if
the host compiler is affected by placement new aliasing bug.
* configure: Regenerate.
* Makefile.in (ALIASING_FLAGS): New variable.
(ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226499
138bc75d-0d04-0410-961f-
82ee72b054a4
nsz [Mon, 3 Aug 2015 11:12:00 +0000 (11:12 +0000)]
[ARM] PR target/66731 Fix vnmul insn with -frounding-math
gcc:
PR target/66731
* config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
(negmulsf3_vfp): Likewise.
(muldf3negdf_vfp): Disable for -frounding-math.
(mulsf3negsf_vfp): Likewise.
* config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
fix MULT cost with -frounding-math.
gcc/testsuite:
PR target/66731
* gcc.target/arm/vnmul-1.c: New.
* gcc.target/arm/vnmul-2.c: New.
* gcc.target/arm/vnmul-3.c: New.
* gcc.target/arm/vnmul-4.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226496
138bc75d-0d04-0410-961f-
82ee72b054a4
mikael [Mon, 3 Aug 2015 10:03:55 +0000 (10:03 +0000)]
Fix random class_allocate_18.f90 failure
PR fortran/64921
gcc/fortran/
* class.c (generate_finalization_wrapper): Set finalization
procedure symbol's always_explicit attribute.
gcc/testsuite/
* gfortran.dg/class_allocate_20.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226493
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Mon, 3 Aug 2015 08:14:42 +0000 (08:14 +0000)]
[RTL-ifcvt] Improve conditional select ops on immediates
* ifcvt.c (noce_try_store_flag_constants): Make logic of the case
when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
explicit. Prefer to add the flag whenever possible.
(noce_process_if_block): Try noce_try_store_flag_constants before
noce_try_cmove.
* gcc.target/aarch64/csel_bfx_1.c: New test.
* gcc.target/aarch64/csel_imms_inc_1.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226491
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 3 Aug 2015 07:39:12 +0000 (07:39 +0000)]
2015-08-03 Richard Biener <rguenther@suse.de>
* genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
New hash-map to record equivalent transforms.
(dt_node::analyze): Populate the equivalent transforms hash-map.
(dt_simplify::info): Add reference to hash-map entry.
(dt_simplify::gen): If we have split out a function for the
transform, generate a call to it.
(sinfo_hashmap_traits::hash): New function.
(compare_op): New helper function for ...
(sinfo_hashmap_traits::equal_keys): ... this new function.
(decision_tree::gen): Split out common equivalent transforms
into functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226490
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 3 Aug 2015 07:28:11 +0000 (07:28 +0000)]
2015-08-03 Richard Biener <rguenther@suse.de>
* gimple-fold.c (fold_gimple_assign): Remove folding of
the comparison in COND_EXPRs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226489
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 3 Aug 2015 07:27:40 +0000 (07:27 +0000)]
2015-08-03 Richard Biener <rguenther@suse.de>
* gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
on the rhs of assignments first simplify the embedded
GENERIC condition.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226488
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 3 Aug 2015 07:13:36 +0000 (07:13 +0000)]
2015-08-03 Richard Biener <rguenther@suse.de>
PR tree-optimization/66917
* tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
field.
(DR_VECT_AUX): New macro.
(set_dr_misalignment): Adjust.
(dr_misalignment): Likewise.
* tree-vect-data-refs.c (vect_compute_data_ref_alignment):
Compute whether the base is at least element aligned.
* tree-vect-stmts.c (ensure_base_align): Adjust.
(vectorizable_store): If the base is not element aligned
preserve alignment of the original access if misalignment is unknown.
(vectorizable_load): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226487
138bc75d-0d04-0410-961f-
82ee72b054a4
amker [Mon, 3 Aug 2015 01:54:28 +0000 (01:54 +0000)]
* MAINTAINERS (loop ivopts): Add the entry and myself.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226486
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Mon, 3 Aug 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226483
138bc75d-0d04-0410-961f-
82ee72b054a4
msebor [Sun, 2 Aug 2015 23:14:18 +0000 (23:14 +0000)]
gcc/ChangeLog
2015-07-28 Martin Sebor <msebor@redhat.com>
* c-family/c.opt (-Wframe-address): New warning option.
* doc/invoke.texi (Wframe-address): Document it.
* doc/extend.texi (__builtin_frame_address, __builtin_return_address):
Clarify possible effects of calling the functions with non-zero
arguments and mention -Wframe-address.
* builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
gcc/testsuite/ChangeLog
2015-07-28 Martin Sebor <msebor@redhat.com>
* g++.dg/Wframe-address-in-Wall.C: New test.
* g++.dg/Wframe-address.C: New test.
* g++.dg/Wno-frame-address.C: New test.
* gcc.dg/Wframe-address-in-Wall.c: New test.
* gcc.dg/Wframe-address.c: New test.
* gcc.dg/Wno-frame-address.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226480
138bc75d-0d04-0410-961f-
82ee72b054a4
ppalka [Sun, 2 Aug 2015 17:39:23 +0000 (17:39 +0000)]
Improve -Wmisleading-indentation heuristics
gcc/c-family/ChangeLog:
* c-indentation.c (should_warn_for_misleading_indentation):
Improve heuristics.
gcc/testsuite/ChangeLog:
* c-c++-common/Wmisleading-indentation.c: Add more tests.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226479
138bc75d-0d04-0410-961f-
82ee72b054a4
ppalka [Sun, 2 Aug 2015 17:35:33 +0000 (17:35 +0000)]
Remove is_first_nonwhitespace_on_line(), instead improve get_visual_column()
gcc/c-family/ChangeLog:
* c-indentation.c (get_visual_column): Add parameter first_nws,
use it. Update comment documenting the function.
(is_first_nonwhitespace_on_line): Remove.
(should_warn_for_misleading_indentation): Replace usage of
of is_first_nonwhitespace_on_line with get_visual_column.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226478
138bc75d-0d04-0410-961f-
82ee72b054a4
ppalka [Sun, 2 Aug 2015 17:31:55 +0000 (17:31 +0000)]
Refactor entry point to -Wmisleading-indentation
gcc/c-family/ChangeLog:
* c-indentation.h (struct token_indent_info): Define.
(get_token_indent_info): Define.
(warn_for_misleading_information): Declare.
* c-common.h (warn_for_misleading_information): Remove.
* c-identation.c (warn_for_misleading_indentation):
Change declaration to take three token_indent_infos. Adjust
accordingly.
* c-identation.c (should_warn_for_misleading_indentation):
Likewise. Bail out early if the body is a compound statement.
(guard_tinfo_to_string): Define.
gcc/c/ChangeLog:
* c-parser.c (c_parser_if_body): Take token_indent_info
argument. Call warn_for_misleading_indentation even when the
body is a semicolon. Extract token_indent_infos corresponding
to the guard, body and next tokens. Adjust call to
warn_for_misleading_indentation accordingly.
(c_parser_else_body): Likewise.
(c_parser_if_statement): Likewise.
(c_parser_while_statement): Likewise.
(c_parser_for_statement): Likewise.
gcc/cp/ChangeLog:
* parser.c (cp_parser_selection_statement): Move handling of
semicolon body to ...
(cp_parser_implicitly_scoped_statement): .. here. Call
warn_for_misleading_indentation even when the body is a
semicolon. Extract token_indent_infos corresponding to the
guard, body and next tokens. Adjust call to
warn_for_misleading_indentation accordingly. Take
token_indent_info argument.
(cp_parser_already_scoped_statement): Likewise.
(cp_parser_selection_statement, cp_parser_iteration_statement):
Extract a token_indent_info corresponding to the guard token.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226477
138bc75d-0d04-0410-961f-
82ee72b054a4
collison [Sun, 2 Aug 2015 05:15:55 +0000 (05:15 +0000)]
2015-08-01 Michael Collison <michael.collison@linaro.org
Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
* gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
(*arm_umin_cmp): Likewise.
* gcc.target/arm/mincmp.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226476
138bc75d-0d04-0410-961f-
82ee72b054a4
ctice [Sun, 2 Aug 2015 01:17:39 +0000 (01:17 +0000)]
Fix PR 66521
libvtv/ChangeLog
2015-08-01 Caroline Tice <cmtice@google.com>
PR 66521
* Makefile.am: Update to match latest tree.
* Makefile.in: Regenerate.
* testsuite/lib/libvtv: Brought up to date.
* vtv_malloc.cc (VTV_DEBUG): Update function call to match renamed
function (old bug!).
* vtv_rts.cc (debug_functions, debug_init, debug_verify_vtable): Update
initializations to work correctly with VTV_DEBUG defined.
gcc/ChangeLog:
2015-08-01 Caroline Tice <cmtice@google.com>
PR 66521
* vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
global variables.
(vtbl_find_mangled_name): New function.
(vtbl_register_mangled_name): New function.
(vtbl_map_get_node): If DECL_ASSEMBLER_NAME is "<anon>", look up
mangled name in mangled name vectors.
(find_or_create_vtbl_map_node): Ditto.
(var_is_used_for_virtual_call_p): Add recursion_depth parameter;
update recursion_depth on function entry; pass it to every recursive
call; automatically exit if depth > 25 (give up looking at that point).
(verify_bb_vtables): Initialize recursion_depth and pass it to
var_is_used_for_virtual_call_p.
* vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
global variable decls.
(vtbl_register_mangled_name): New extern function decl.
gcc/cp/ChangeLog:
2015-08-01 Caroline Tice <cmtice@google.com>
PR 66521
* mangle.c : Add vtable-verify.h to include files.
(get_mangled_vtable_map_var_name): If the DECL_ASSEMBLER_NAME
is "<anon>" get the real mangled name for the class instead, and
also store the real mangled name in a vector for use later.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226471
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 2 Aug 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226468
138bc75d-0d04-0410-961f-
82ee72b054a4
pault [Sat, 1 Aug 2015 18:37:25 +0000 (18:37 +0000)]
2015-08-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/67091
* trans-intrinsic.c (gfc_conv_associated): Add the pre and post
blocks for the second argument to se.
2015-08-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/67091
* gfortran.dg/associated_target_6.f03: New test
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226464
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Sat, 1 Aug 2015 08:29:29 +0000 (08:29 +0000)]
Allow non-overflow ops in reductions
2015-08-01 Tom de Vries <tom@codesourcery.com>
* tree.c (operation_can_overflow, operation_no_trapping_overflow): New
function.
* tree.h (operation_can_overflow, operation_no_trapping_overflow):
Declare.
* tree-vect-loop.c (vect_is_simple_reduction_1): Use
operation_no_trapping_overflow. Allow non-overflow operations.
* graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
operations.
* gcc.dg/autopar/reduc-2char.c (init_arrays): Mark with attribute
optimize ("-ftree-parallelize-loops=0").
Add successful scans for 2 detected reductions. Add xfail scans for 3
detected reductions.
* gcc.dg/autopar/reduc-2short.c: Same.
* gcc.dg/autopar/reduc-8.c (init_arrays): Mark with attribute
optimize ("-ftree-parallelize-loops=0"). Add successful scans for 2
detected reductions.
* gcc.dg/vect/trapv-vect-reduc-4.c: Update scan to match vectorized min
and max reductions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226463
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 1 Aug 2015 00:16:16 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226462
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Fri, 31 Jul 2015 23:17:49 +0000 (23:17 +0000)]
compiler: Report errors for malformed builtin calls.
Errors reported from malformed builtin calls are handled in a later
pass than the one in which they are detected. If a malformed builtin
call is lowered into an error expression too early, these errors will
never be reported.
Fixes golang/go#11561.
Reviewed-on: https://go-review.googlesource.com/12778
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226459
138bc75d-0d04-0410-961f-
82ee72b054a4
kkojima [Fri, 31 Jul 2015 22:19:51 +0000 (22:19 +0000)]
PR target/67049
* config/sh/sh.md (GOTaddr2picreg): Fix typo added with the last change.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226457
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Fri, 31 Jul 2015 22:16:12 +0000 (22:16 +0000)]
compiler: Check the type in function declarations.
Function declarations don't create a block where the variables listed
in the parameter list are declared. Because there are no variables
declared, the types of the parameter variables is unchecked, allowing
for invalid values to be used as the type. This patch adds a special
case to the check_types pass for function declarations.
Fixes golang/go#11567.
Reviewed-on: https://go-review.googlesource.com/12662
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226456
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Fri, 31 Jul 2015 19:11:18 +0000 (19:11 +0000)]
compiler: Update unicode tables.
Fixes golang/go#11569.
Reviewed-on: https://go-review.googlesource.com/12652
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226452
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Fri, 31 Jul 2015 17:54:31 +0000 (17:54 +0000)]
* MAINTAINERS (nvptx): Add self.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226449
138bc75d-0d04-0410-961f-
82ee72b054a4