gcc.git
9 years agomksysinfo: Tolerate missing structures in upcase_fields.
Dominik Vogt [Thu, 6 Nov 2014 16:44:32 +0000 (16:44 +0000)]
mksysinfo: Tolerate missing structures in upcase_fields.

2014-11-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* libgo/mksysinfo.sh: Tolerate missing structures.

From-SVN: r217194

9 years ago[AArch64] Add ACLE arch-related predefined macros
Renlin Li [Thu, 6 Nov 2014 14:41:52 +0000 (14:41 +0000)]
[AArch64] Add ACLE arch-related predefined macros

2014-11-06  Renlin Li  <renlin.li@arm.com>

* config/aarch64/aarch64.c (aarch64_architecture_version): New.
(processor): New architecture_version field.
(aarch64_override_options): Initialize aarch64_architecture_version.
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
__ARM_ARCH_PROFILE, aarch64_arch_name macro.

From-SVN: r217192

9 years ago[Patchv3] Control SRA and IPA-SRA by a param rather than MOVE_RATIO
James Greenhalgh [Thu, 6 Nov 2014 14:18:52 +0000 (14:18 +0000)]
[Patchv3] Control SRA and IPA-SRA by a param rather than MOVE_RATIO

gcc/

* params.def (sra-max-scalarization-size-Ospeed): New.
(sra-max-scalarization-size-Osize): Likewise.
* doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
(sra-max-scalarization-size-Osize): Likewise.
* toplev.c (process_options): Set default values for new
parameters.
* tree-sra.c (analyze_all_variable_accesses): Use new parameters.
* targhooks.c (get_move_ratio): Remove static designator.
* target.h (get_move_ratio): Declare.

From-SVN: r217191

9 years agosanopt.c (sanopt_optimize_walker): Limit removal of the checks.
Marek Polacek [Thu, 6 Nov 2014 11:22:59 +0000 (11:22 +0000)]
sanopt.c (sanopt_optimize_walker): Limit removal of the checks.

* sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
Remove vector limit.
testsuite/
* c-c++-common/ubsan/align-2.c: Add dg-output.
* c-c++-common/ubsan/align-4.c: Likewise.
* c-c++-common/ubsan/align-6.c: New test.
* c-c++-common/ubsan/align-7.c: New test.
* c-c++-common/ubsan/align-8.c: New test.
* g++.dg/ubsan/null-1.C: Add dg-output.
* g++.dg/ubsan/null-2.C: Likewise.
* g++.dg/ubsan/null-3.C: New test.
* g++.dg/ubsan/null-4.C: New test.
* g++.dg/ubsan/null-5.C: New test.

From-SVN: r217189

9 years agoCorrectly check dg-require-effective-target in avx512 tests.
Ilya Tocar [Thu, 6 Nov 2014 11:01:59 +0000 (11:01 +0000)]
Correctly check dg-require-effective-target in avx512 tests.

gcc/testsuite

* gcc.target/i386/avx512vl-vandnpd-2.c: Fix
dg-require-effective-target check.
* gcc.target/i386/avx512vl-vandnps-2.c: Ditto.
* gcc.target/i386/avx512vl-vandpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vandps-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcastf32x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcastf32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcastf64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcasti32x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcasti32x4-2.c: Ditto.
* gcc.target/i386/avx512vl-vbroadcasti64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtpd2qq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtpd2uqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtps2qq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtps2uqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtqq2pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtqq2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttpd2qq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttpd2uqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttps2qq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvttps2uqq-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtuqq2pd-2.c: Ditto.
* gcc.target/i386/avx512vl-vcvtuqq2ps-2.c: Ditto.
* gcc.target/i386/avx512vl-vdbpsadbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vextractf64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vextracti64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vfpclasspd-2.c: Ditto.
* gcc.target/i386/avx512vl-vfpclassps-2.c: Ditto.
* gcc.target/i386/avx512vl-vinsertf64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vinserti64x2-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovdqu16-2.c: Ditto.
* gcc.target/i386/avx512vl-vmovdqu8-2.c: Ditto.
* gcc.target/i386/avx512vl-vorpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vorps-2.c: Ditto.
* gcc.target/i386/avx512vl-vpabsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpabsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpackssdw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpacksswb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpackusdw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpackuswb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddusb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddusw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpaddw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpalignr-2.c: Ditto.
* gcc.target/i386/avx512vl-vpavgb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpavgw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpblendmb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpblendmw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpbroadcastb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpbroadcastw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpeqb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpequb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpequw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpeqw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtub-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpgtw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpub-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpcmpw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermi2w-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermt2w-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddubsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddwd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxub-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaxuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminub-2.c: Ditto.
* gcc.target/i386/avx512vl-vpminuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovb2m-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovd2m-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovm2b-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovm2d-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovm2q-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovm2w-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovq2m-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovswb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovsxbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovuswb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovw2m-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovwb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmovzxbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmulhrsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmulhuw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmulhw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmullq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmullw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshufb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshufhw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpshuflw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllvw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsllwi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsravw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsraw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrawi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlvw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsrlwi-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubsb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubsw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubusb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubusw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpsubw-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestmb-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestmw-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestnmb-2.c: Ditto.
* gcc.target/i386/avx512vl-vptestnmw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpckhbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpckhwd-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpcklbw-2.c: Ditto.
* gcc.target/i386/avx512vl-vpunpcklwd-2.c: Ditto.
* gcc.target/i386/avx512vl-vrangepd-2.c: Ditto.
* gcc.target/i386/avx512vl-vrangeps-2.c: Ditto.
* gcc.target/i386/avx512vl-vreducepd-2.c: Ditto.
* gcc.target/i386/avx512vl-vreduceps-2.c: Ditto.
* gcc.target/i386/avx512vl-vxorpd-2.c: Ditto.
* gcc.target/i386/avx512vl-vxorps-2.c: Ditto.

From-SVN: r217188

9 years agoFix incorrect ChangeLog entry.
Hale Wang [Thu, 6 Nov 2014 10:57:43 +0000 (10:57 +0000)]
Fix incorrect ChangeLog entry.

From-SVN: r217186

9 years agoMove testsuits ChangeLog entry to correct ChangeLog.
Hale Wang [Thu, 6 Nov 2014 10:46:58 +0000 (10:46 +0000)]
Move testsuits ChangeLog entry to correct ChangeLog.

From-SVN: r217185

9 years agompx-dg.exp: New.
Ilya Enkovich [Thu, 6 Nov 2014 09:44:05 +0000 (09:44 +0000)]
mpx-dg.exp: New.

gcc/testsuite/

* lib/mpx-dg.exp: New.
* gcc.target/i386/i386.exp: Load mpx-dg.exp.
* gcc.target/i386/chkp-builtins-1.c: Require mpx target.
* gcc.target/i386/chkp-builtins-2.c: Likewise.
* gcc.target/i386/chkp-builtins-3.c: Likewise.
* gcc.target/i386/chkp-builtins-4.c: Likewise.
* gcc.target/i386/chkp-const-check-1.c: Likewise.
* gcc.target/i386/chkp-const-check-2.c: Likewise.
* gcc.target/i386/chkp-lifetime-1.c: Likewise.
* gcc.target/i386/chkp-remove-bndint-1.c: Likewise.
* gcc.target/i386/chkp-remove-bndint-2.c: Likewise.

From-SVN: r217180

9 years agomatch.pd: Implement bitwise binary and unary simplifications from tree-ssa-forwprop.c.
Richard Biener [Thu, 6 Nov 2014 09:07:39 +0000 (09:07 +0000)]
match.pd: Implement bitwise binary and unary simplifications from tree-ssa-forwprop.c.

2014-11-06  Richard Biener  <rguenther@suse.de>

* match.pd: Implement bitwise binary and unary simplifications
from tree-ssa-forwprop.c.
* fold-const.c (fold_unary_loc): Remove them here.
(fold_binary_loc): Likewise.
* tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
(truth_valued_ssa_name): Likewise.
(lookup_logical_inverted_value): Likewise.
(simplify_bitwise_binary_1): Likewise.
(hoist_conversion_for_bitop_p): Likewise.
(simplify_bitwise_binary_boolean): Likewise.
(simplify_bitwise_binary): Likewise.
(pass_forwprop::execute): Remove calls to simplify_not_neg_expr
and simplify_bitwise_binary.
* genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
(decision_tree::insert): Also insert non-expressions.

* gcc.dg/tree-ssa/forwprop-28.c: Adjust scanning for the
desired transform.

From-SVN: r217178

9 years agoarm-cores.def: Add support for -mcpu=cortex-m0.small-multiply,cortex-m0plus.small...
Hale Wang [Thu, 6 Nov 2014 07:02:30 +0000 (07:02 +0000)]
arm-cores.def: Add support for -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply...

2014-11-06  Hale Wang  <Hale.Wang@arm.com>

* config/arm/arm-cores.def: Add support for
-mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
cortex-m1.small-multiply.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/arm-tune.md: Regenerate.
* config/arm/arm.c: Update the rtx-costs for MUL.
* config/arm/bpabi.h: Handle
-mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
cortex-m1.small-multiply.
* doc/invoke.texi: Document
-mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
cortex-m1.small-multiply.
* testsuite/gcc.target/arm/small-multiply-m0-1.c: New test case.
* testsuite/gcc.target/arm/small-multiply-m0-2.c: Likewise.
* testsuite/gcc.target/arm/small-multiply-m0-3.c: Likewise.
* testsuite/gcc.target/arm/small-multiply-m0plus-1.c: Likewise.
* testsuite/gcc.target/arm/small-multiply-m0plus-2.c: Likewise.
* testsuite/gcc.target/arm/small-multiply-m0plus-3.c: Likewise.
* testsuite/gcc.target/arm/small-multiply-m1-1.c: Likewise.
* testsuite/gcc.target/arm/small-multiply-m1-2.c: Likewise.
* testsuite/gcc.target/arm/small-multiply-m1-3.c: Likewise.

From-SVN: r217175

9 years agoFix incorrect ChangeLog entry.
Hale Wang [Thu, 6 Nov 2014 06:26:27 +0000 (06:26 +0000)]
Fix incorrect ChangeLog entry.

From-SVN: r217174

9 years agoarm.c: Add cortex-m7 tune.
Hale Wang [Thu, 6 Nov 2014 05:38:45 +0000 (05:38 +0000)]
arm.c: Add cortex-m7 tune.

2014-10-11  Hale Wang  <Hale.Wang@arm.com>

* config/arm/arm.c: Add cortex-m7 tune.
* config/arm/arm-cores.def: Use cortex-m7 tune.

From-SVN: r217173

9 years agoMAINTAINERS (Write After Approval): Add myself.
Prachi Godbole [Thu, 6 Nov 2014 04:42:33 +0000 (04:42 +0000)]
MAINTAINERS (Write After Approval): Add myself.

2014-11-06  Prachi Godbole  <prachi.godbole@imgtec.com>

* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r217172

9 years agoDaily bump.
GCC Administrator [Thu, 6 Nov 2014 00:16:24 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217170

9 years agoFix all MIPS test failures caused by implicit declaration/int warnings.
Matthew Fortune [Wed, 5 Nov 2014 23:37:02 +0000 (23:37 +0000)]
Fix all MIPS test failures caused by implicit declaration/int warnings.

gcc/testsuite/

* gcc.target/mips/asm-1.c (bar): Add prototype.
* gcc.target/mips/call-1.c (f, h): Add return type.
* gcc.target/mips/call-5.c (f, h): Likewise.
* gcc.target/mips/call-6.c (f, h): Likewise.
* gcc.target/mips/call-3.c (f): Likewise.
* gcc.target/mips/call-2.c (g): Add prototype.
(f): Add return type.
* gcc.target/mips/call-4.c: Likewise.
* gcc.target/mips/code-readable-1.c (foo): Add type for x.
* gcc.target/mips/code-readable-2.c (foo): Likewise.
* gcc.target/mips/code-readable-3.c (foo): Likewise.
* gcc.target/mips/code-readable-4.c (foo): Likewise.
* gcc.target/mips/const-anchor-1.c (g): Add prototype.
* gcc.target/mips/const-anchor-2.c (g): Likewise.
* gcc.target/mips/const-anchor-3.c (g): Likewise.
* gcc.target/mips/const-anchor-4.c (g): Likewise.
* gcc.target/mips/interrupt_handler.c (t): Likewise.
* gcc.target/mips/mips-nonpic/main-1.c (main): Add return type.
* gcc.target/mips/mips-nonpic/main-2.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-3.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-4.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-5.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-6.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-7.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-8.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-9.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-10.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-11.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-12.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-13.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-14.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-15.c (main): Likewise.
* gcc.target/mips/mips-nonpic/main-16.c (main): Likewise.
* gcc.target/mips/mips-nonpic/mips-nonpic.h
(nonpic_call, nonpic_addr_call): Add prototype.
(pic_call, pic_addr_call): Likewise.
* gcc.target/mips/mips16e-extends.c (validate): Likewise.
* gcc.target/mips/octeon-bbit-3.c (foo): Likewise.
* gcc.target/mips/octeon-seq-4.c (h): Likewise.
* gcc.target/mips/truncate-3.c (g): Add prototype.
(f): Add return type.

From-SVN: r217167

9 years agoRevert revision 217149 because it breaks Ada:
Manuel López-Ibáñez [Wed, 5 Nov 2014 22:17:22 +0000 (22:17 +0000)]
Revert revision 217149 because it breaks Ada:

gcc/testsuite/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

        PR driver/36312
        * gcc.misc-tests/output.exp: New test case for identical input and
        output files.

include/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

        PR driver/36312
        * filenames.h: Add prototype for canonical_filename_eq.

gcc/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

        PR driver/36312
        * diagnostic-core.h: Add prototype for fatal_error.
        * diagnostic.c (fatal_error): New function fatal_error.
        * gcc.c (store_arg): Remove have_o_argbuf_index.
        (process_command): Check if input and output files are the same.
        * toplev.c (init_asm_output): Check if input and output files are
        the same.

libiberty/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

        PR driver/36312
        * filename_cmp.c (canonical_filename_eq): New function to check if
        file names are the same.
        * functions.texi: Updated with documentation for new function.

From-SVN: r217159

9 years ago* gnatvsn.ads (Library_Version): Bump to 5.0.
Eric Botcazou [Wed, 5 Nov 2014 21:04:50 +0000 (21:04 +0000)]
* gnatvsn.ads (Library_Version): Bump to 5.0.

From-SVN: r217157

9 years agore PR target/63538 ([X86_64] With -mcmodel=medium .lrodata accesses do not use 64...
Uros Bizjak [Wed, 5 Nov 2014 21:00:07 +0000 (22:00 +0100)]
re PR target/63538 ([X86_64] With -mcmodel=medium .lrodata accesses do not use 64-bit addresses)

PR target/63538
* config/i386/i386.c (in_large_data_p): Reject automatic variables.
(ix86_encode_section_info): Do not check for non-automatic varibles
when setting SYMBOL_FLAG_FAR_ADDR flag.
(x86_64_elf_select_section): Do not check ix86_cmodel here.
(x86_64_elf_unique_section): Ditto.
(x86_elf_aligned_common): Emit tab before .largecomm.

testsuite/ChangeLog:

PR target/63538
* gcc.target/i386/pr63538.c: New test.

From-SVN: r217156

9 years agotrans.c (Subprogram_Body_to_gnu): For a function with copy-in/copy-out parameters...
Eric Botcazou [Wed, 5 Nov 2014 19:17:00 +0000 (19:17 +0000)]
trans.c (Subprogram_Body_to_gnu): For a function with copy-in/copy-out parameters and which returns by invisible...

* gcc-interface/trans.c (Subprogram_Body_to_gnu): For a function with
copy-in/copy-out parameters and which returns by invisible reference,
do not create the variable for the return value; instead, manually
generate the indirect copy out statements on exit.
(gnat_to_gnu) <N_Simple_Return_Statement>: Adjust accordingly and build
a simple indirect assignment for the return value.

From-SVN: r217155

9 years agore PR libstdc++/63698 (std::set leaks nodes on assignment)
François Dumont [Wed, 5 Nov 2014 19:16:13 +0000 (19:16 +0000)]
re PR libstdc++/63698 (std::set leaks nodes on assignment)

2014-11-04  François Dumont  <fdumont@gcc.gnu.org>
    Jonathan Wakely  <jwakely@redhat.com>

PR libstdc++/63698
* include/bits/stl_tree.h (_Reuse_or_alloc_node): Simplify constructor.
Always move to the left node if there is one.
* testsuite/23_containers/set/allocator/move_assign.cc (test04): New.

Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r217154

9 years agodecl.c (gnat_to_gnu_entity): For a derived untagged type that renames discriminants...
Eric Botcazou [Wed, 5 Nov 2014 19:03:26 +0000 (19:03 +0000)]
decl.c (gnat_to_gnu_entity): For a derived untagged type that renames discriminants...

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: For a
derived untagged type that renames discriminants, be prepared for
a type derived from a private discriminated type when changing the
type of the stored discriminants.

From-SVN: r217153

9 years agotrans.c (Handled_Sequence_Of_Statements_to_gnu): Set the SLOC of the node on the...
Eric Botcazou [Wed, 5 Nov 2014 18:52:07 +0000 (18:52 +0000)]
trans.c (Handled_Sequence_Of_Statements_to_gnu): Set the SLOC of the node on the call to set_jmpbuf_address_soft emitted on...

* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Set
the SLOC of the node on the call to set_jmpbuf_address_soft emitted
on block entry with SJLJ.

From-SVN: r217152

9 years agoutils.c (create_subprog_decl): Move code dealing with conflicting inlining status...
Eric Botcazou [Wed, 5 Nov 2014 18:47:04 +0000 (18:47 +0000)]
utils.c (create_subprog_decl): Move code dealing with conflicting inlining status of nested subprograms to...

* gcc-interface/utils.c (create_subprog_decl): Move code dealing with
conflicting inlining status of nested subprograms to...
* gcc-interface/trans.c (check_inlining_for_nested_subprog): ...here.
(Attribute_to_gnu) <Attr_Access>: Call it.
(Call_to_gnu): Likewise.
(Subprogram_Body_to_gnu): Drop the body if it is an inlined external
function that has been marked uninlinable.

From-SVN: r217151

9 years agore PR driver/36312 (should refuse to overwrite input file with output file)
Anthony Brandon [Wed, 5 Nov 2014 17:23:46 +0000 (17:23 +0000)]
re PR driver/36312 (should refuse to overwrite input file with output file)

gcc/testsuite/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

PR driver/36312
* gcc.misc-tests/output.exp: New test case for identical input and
output files.

include/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

PR driver/36312
* filenames.h: Add prototype for canonical_filename_eq.

gcc/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

PR driver/36312
* diagnostic-core.h: Add prototype for fatal_error.
* diagnostic.c (fatal_error): New function fatal_error.
* gcc.c (store_arg): Remove have_o_argbuf_index.
(process_command): Check if input and output files are the same.
* toplev.c (init_asm_output): Check if input and output files are
the same.

libiberty/ChangeLog:

2014-11-05  Anthony Brandon  <anthony.brandon@gmail.com>

PR driver/36312
* filename_cmp.c (canonical_filename_eq): New function to check if
file names are the same.
* functions.texi: Updated with documentation for new function.

From-SVN: r217149

9 years agoEnable -fextended-identifiers by default.
Joseph Myers [Wed, 5 Nov 2014 16:19:10 +0000 (16:19 +0000)]
Enable -fextended-identifiers by default.

As proposed at <https://gcc.gnu.org/ml/gcc/2014-11/msg00014.html>,
this patch enables -fextended-identifiers by default for all standard
versions including this feature (all C++ versions, C99 and above for
C, but not C90 / C94 / gnu89 / preprocessing assembler).  It adds a
couple of tests for areas where I previously noted testsuite coverage
for extended identifiers was lacking, removes -fextended-identifiers
from existing tests, adds -g to various such tests to verify that
extended identifiers don't break debug info generation and removes the
test that was only there to verify that the feature was off by
default.

The current state of the feature may not correspond exactly to any
particular checklist from 2004/5 (see bug 9449) of what was wanted
before enabling the feature by default, but I don't think it's any
worse than plenty of other features supported by default before every
corner case is fully functional, and think problems can readily be
fixed incrementally.

The following aspects of extended identifiers could still do with more
work (and should be straightforward):

* C -aux-info (output should use UCNs).

* ObjC -gen-decls (output should use UCNs; associated diagnostics from
  the ObjC front end should use extended characters or UCNs as
  appropriate to the locale, via using %qE or identifier_to_locale).

* Use DW_AT_use_UTF8 in DWARF-3 debug info for compilation units built
  with extended identifiers enabled (or unconditionally).

* cpplib diagnostics (outputting characters or UCNs as appropriate
  depending on the locale, as done for identifiers in non-cpplib
  diagnostics).

* C++ test for UCN linking with C and extern "C".

* Check GDB support / file issues for support if needed.

* Actual UTF-8 in identifiers (?).  (Be careful about not affecting
  performance for the normal fast path of lexing identifiers, if
  possible.)

The following may be trickier:

* cpplib spelling preservation (required to diagnose macro
  redefinition with different spellings of the same identifier in the
  definition or argument names; different spellings of the name of the
  macro itself are OK, however; also required for correct handling of
  multiple stringizing in C++); correct output for -d (UCNs), DWARF
  debug info for macros (UCNs), PCH and PCH tests.  (Spelling
  preservation is the issue that needs fixing to remove references to
  corner cases in the documentation of -std=c99 and -std=c11 and in
  c99status.html.)  The idea would be to add a second pointer to
  cpp_identifier that stores the original spelling (whether for
  extended identifiers only, or for all identifiers); this does not
  enlarge cpp_token because the resulting larger cpp_identifier
  structure is no bigger than cpp_string.

* C++ translation of extended characters (including $@` and various
  control characters) to UCNs in phase 1 (note diagnostics thus
  needed, but not for C++11, for control characters in strings /
  character constants as those UCNs invalid); a likely implementation
  approach is to do translation when identifiers / strings / character
  constants are lexed, together with errors for stray $@` / control
  characters in program as not being valid UCNs in identifiers ($ only
  if not accepted in identifiers); note that this translation should
  not take place inside raw string literals.

Bootstrapped with no regressions on x86_64-unknown-linux-gnu.

libcpp:
PR preprocessor/9449
* init.c (lang_defaults): Enable extended identifiers for C++ and
C99-based standards.

gcc:
PR preprocessor/9449
* doc/cpp.texi (Character sets, Tokenization)
(Implementation-defined behavior): Don't refer to UCNs in
identifiers requiring -fextended-identifiers.
* doc/cppopts.texi (-fextended-identifiers): Document as enabled
by default for C99 and later and C++.
* doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
identifiers needing -fextended-identifiers.

gcc/testsuite:
PR preprocessor/9449
* lib/target-supports.exp (check_effective_target_ucn_nocache):
Don't use -fextended-identifiers.
* c-c++-common/cpp/normalize-3.c, c-c++-common/cpp/ucnid-2011-1.c,
g++.dg/cpp/ucn-1.C, g++.dg/cpp/ucnid-1.C, g++.dg/other/ucnid-1.C,
gcc.dg/cpp/normalize-1.c, gcc.dg/cpp/normalize-2.c,
gcc.dg/cpp/normalize-4.c: Don't use -fextended-identifiers.
* gcc.dg/cpp/ucnid-1.c: Don't use -fextended-identifiers.  Use
-g3.
* gcc.dg/cpp/ucnid-10.c, gcc.dg/cpp/ucnid-2.c,
gcc.dg/cpp/ucnid-3.c, gcc.dg/cpp/ucnid-4.c, gcc.dg/cpp/ucnid-5.c,
gcc.dg/cpp/ucnid-7.c, gcc.dg/cpp/ucnid-9.c,
gcc.dg/cpp/warn-normalized-1.c, gcc.dg/cpp/warn-normalized-2.c,
gcc.dg/cpp/warn-normalized-3.c: Don't use -fextended-identifiers.
* gcc.dg/ucnid-1.c, gcc.dg/ucnid-2.c, gcc.dg/ucnid-3.c,
gcc.dg/ucnid-4.c, gcc.dg/ucnid-5.c, gcc.dg/ucnid-6.c: Don't use
-fextended-identifiers.  Use -g.
* gcc.dg/ucnid-7.c, gcc.dg/ucnid-8.c: Don't use
-fextended-identifiers.
* gcc.dg/ucnid-9.c: Don't use -fextended-identifiers.  Use -g.
* gcc.dg/ucnid-10.c: Don't use -fextended-identifiers.
* gcc.dg/ucnid-11.c, gcc.dg/ucnid-12.c: Don't use
-fextended-identifiers.  Use -g.
* gcc.dg/ucnid-13.c: Don't use -fextended-identifiers.
* gcc.dg/cpp/ucnid-8.c: Remove test.
* gcc.dg/cpp/ucnid-10.c, gcc.dg/ucnid-14.c: New tests.

From-SVN: r217144

9 years agoFix dg.torture tests with avx512
Ilya Tocar [Wed, 5 Nov 2014 15:55:44 +0000 (15:55 +0000)]
Fix dg.torture tests with avx512

gcc/
* config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
for 512-bit wide modes.
(expand_vec_perm_1): Use correct versions of patterns.
* config/i386/sse.md (avx512f_vec_dup_<mode>_1): New.
(vashr<mode>3<mask_name>): Split V8HImode and V16QImode.

From-SVN: r217138

9 years agoadvsimd-intrinsics.exp: Skip tests if target does not support Neon.
Christophe Lyon [Wed, 5 Nov 2014 15:22:28 +0000 (15:22 +0000)]
advsimd-intrinsics.exp: Skip tests if target does not support Neon.

2014-11-05  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
Skip tests if target does not support Neon.

From-SVN: r217134

9 years ago[AArch64,ARM] support bswap tests on aarch64_be.
Christophe Lyon [Wed, 5 Nov 2014 15:19:19 +0000 (15:19 +0000)]
[AArch64,ARM] support bswap tests on aarch64_be.

[AArch64,ARM] support bswap tests on aarch64_be. Skip them on ARM
targets older than v6.

2014-11-05  Christophe Lyon  <christophe.lyon@linaro.org>

* lib/target-supports.exp (check_effective_target_bswap): Update
conditions for AArch64 and ARM targets.

From-SVN: r217133

9 years agopr59166.c: XFAIL on AIX.
David Edelsohn [Wed, 5 Nov 2014 14:32:59 +0000 (14:32 +0000)]
pr59166.c: XFAIL on AIX.

        * gcc.dg/torture/pr59166.c: XFAIL on AIX.
        * g++.dg/ext/visitibility/anon1.C: XFAIL on AIX.
        * g++.dg/opt/pr60002.C: XFAIL on AIX.
        * g++.dg/torture/pr63419.C: Ignore non-standard ABI warning.
        * g++.dg/ipa/ipa-icf-5.C: Require visibility support.

From-SVN: r217129

9 years agoipa-chkp.c: New.
Ilya Enkovich [Wed, 5 Nov 2014 12:42:03 +0000 (12:42 +0000)]
ipa-chkp.c: New.

gcc/

2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>

* ipa-chkp.c: New.
* ipa-chkp.h: New.
* tree-chkp.c: New.
* tree-chkp.h: New.
* tree-chkp-opt.c: New.
* rtl-chkp.c: New.
* rtl-chkp.h: New.
* Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
tree-chkp-opt.o.
(GTFILES): Add tree-chkp.c.
* mode-classes.def (MODE_POINTER_BOUNDS): New.
* tree.def (POINTER_BOUNDS_TYPE): New.
* genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
(POINTER_BOUNDS_MODE): New.
(make_pointer_bounds_mode): New.
* machmode.h (POINTER_BOUNDS_MODE_P): New.
* stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
(layout_type): Support POINTER_BOUNDS_TYPE.
* tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
* tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
* tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
(type_contains_placeholder_1): Likewise.
(build_common_tree_nodes): Initialize
pointer_bounds_type_node.
* tree.h (POINTER_BOUNDS_TYPE_P): New.
(pointer_bounds_type_node): New.
(POINTER_BOUNDS_P): New.
(BOUNDED_TYPE_P): New.
(BOUNDED_P): New.
(CALL_WITH_BOUNDS_P): New.
* gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
(gimple_call_with_bounds_p): New.
(gimple_call_set_with_bounds): New.
(gimple_return_retbnd): New.
(gimple_return_set_retbnd): New
* gimple.c (gimple_build_return): Increase number of ops
for return statement.
(gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
flag.
* gimple-pretty-print.c (dump_gimple_return): Print second op.
* rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
* gimplify.c (gimplify_init_constructor): Avoid infinite
loop during gimplification of bounds initializer.
* calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
(special_function_p): Use original decl name when analyzing
instrumentation clone.
(arg_data): Add fields special_slot, pointer_arg and
pointer_offset.
(store_bounds): New.
(emit_call_1): Propagate instrumentation flag for CALL.
(initialize_argument_information): Compute pointer_arg,
pointer_offset and special_slot for pointer bounds arguments.
(finalize_must_preallocate): Preallocate when storing bounds
in bounds table.
(compute_argument_addresses): Skip pointer bounds.
(expand_call): Store bounds into tables separately.  Return
result joined with resulting bounds.
* cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
(expand_call_stmt): Propagate bounds flag for CALL_EXPR.
(expand_return): Add returned bounds arg.  Handle returned bounds.
(expand_gimple_stmt_1): Adjust to new expand_return signature.
(gimple_expand_cfg): Reset rtx bounds map.
* expr.c: Include tree-chkp.h, rtl-chkp.h.
(expand_assignment): Handle returned bounds.
(store_expr_with_bounds): New.  Replaces store_expr with new bounds
target argument.  Handle bounds returned by calls.
(store_expr): Now wraps store_expr_with_bounds.
* expr.h (store_expr_with_bounds): New.
* function.c: Include tree-chkp.h, rtl-chkp.h.
(bounds_parm_data): New.
(use_register_for_decl): Do not registerize decls used for bounds
stores and loads.
(assign_parms_augmented_arg_list): Add bounds of the result
structure pointer as the second argument.
(assign_parm_find_entry_rtl): Mark bounds are never passed on
the stack.
(assign_parm_is_stack_parm): Likewise.
(assign_parm_load_bounds): New.
(assign_bounds): New.
(assign_parms): Load bounds and determine a location for
returned bounds.
(diddle_return_value_1): New.
(diddle_return_value): Handle returned bounds.
* function.h (rtl_data): Add field for returned bounds.
* varasm.c: Include tree-chkp.h.
(output_constant): Support POINTER_BOUNDS_TYPE.
(output_constant_pool_2): Support MODE_POINTER_BOUNDS.
(ultimate_transparent_alias_target): Move up.
(make_decl_rtl): For instrumented function use
name of the original decl.
(assemble_start_function): Mark function as global
in case it is instrumentation clone of the global
function.
(do_assemble_alias): Follow transparent alias chain
for identifier.  Check if original alias is public.
(maybe_assemble_visibility): Use visibility of the
original function for instrumented version.
(default_unique_section): Likewise.
* emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
(init_emit_once): Build pointer bounds zero constants.
* explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
* target.def (builtin_chkp_function): New.
(chkp_bound_type): New.
(chkp_bound_mode): New.
(chkp_make_bounds_constant): New.
(chkp_initialize_bounds): New.
(load_bounds_for_arg): New.
(store_bounds_for_arg): New.
(load_returned_bounds): New.
(store_returned_bounds): New.
(chkp_function_value_bounds): New.
(setup_incoming_vararg_bounds): New.
(function_arg): Update hook description with new possible return
value CONST_INT.
* targhooks.h (default_load_bounds_for_arg): New.
(default_store_bounds_for_arg): New.
(default_load_returned_bounds): New.
(default_store_returned_bounds): New.
(default_chkp_bound_type): New.
(default_chkp_bound_mode): New.
(default_builtin_chkp_function): New.
(default_chkp_function_value_bounds): New.
(default_chkp_make_bounds_constant): New.
(default_chkp_initialize_bounds): New.
(default_setup_incoming_vararg_bounds): New.
* targhooks.c (default_load_bounds_for_arg): New.
(default_store_bounds_for_arg): New.
(default_load_returned_bounds): New.
(default_store_returned_bounds): New.
(default_chkp_bound_type): New.
(default_chkp_bound_mode); New.
(default_builtin_chkp_function): New.
(default_chkp_function_value_bounds): New.
(default_chkp_make_bounds_constant): New.
(default_chkp_initialize_bounds): New.
(default_setup_incoming_vararg_bounds): New.
* builtin-types.def (BT_BND): New.
(BT_FN_PTR_CONST_PTR): New.
(BT_FN_CONST_PTR_CONST_PTR): New.
(BT_FN_BND_CONST_PTR): New.
(BT_FN_CONST_PTR_BND): New.
(BT_FN_PTR_CONST_PTR_SIZE): New.
(BT_FN_PTR_CONST_PTR_CONST_PTR): New.
(BT_FN_VOID_PTRPTR_CONST_PTR): New.
(BT_FN_VOID_CONST_PTR_SIZE): New.
(BT_FN_VOID_PTR_BND): New.
(BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
(BT_FN_BND_CONST_PTR_SIZE): New.
(BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
(BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
* chkp-builtins.def: New.
* builtins.def: include chkp-builtins.def.
(DEF_CHKP_BUILTIN): New.
* builtins.c: Include tree-chkp.h and rtl-chkp.h.
(expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
(std_expand_builtin_va_start): Init bounds for va_list.
* cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
__CHKP__ macro when Pointer Bounds Checker is on.
* params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
* passes.def (pass_ipa_chkp_versioning): New.
(pass_early_local_passes): Renamed to pass_build_ssa_passes.
(pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
(pass_chkp_instrumentation_passes): New.
(pass_ipa_chkp_produce_thunks): New.
(pass_local_optimization_passes): New.
(pass_chkp_opt): New.
* tree-pass.h (make_pass_ipa_chkp_versioning): New.
(make_pass_ipa_chkp_produce_thunks): New.
(make_pass_chkp): New.
(make_pass_chkp_opt): New.
(make_pass_early_local_passes): Renamed to ...
(make_pass_build_ssa_passes): This.
(make_pass_chkp_instrumentation_passes): New.
(make_pass_local_optimization_passes): New.
* passes.c (pass_manager::execute_early_local_passes): Execute
early passes in three steps.
(execute_all_early_local_passes): Renamed to ...
(execute_build_ssa_passes): This.
(pass_data_early_local_passes): Renamed to ...
(pass_data_build_ssa_passes): This.
(pass_early_local_passes): Renamed to ...
(pass_build_ssa_passes): This.
(pass_data_chkp_instrumentation_passes): New.
(pass_chkp_instrumentation_passes): New.
(pass_data_local_optimization_passes): New.
(pass_local_optimization_passes): New.
(make_pass_early_local_passes): Renamed to ...
(make_pass_build_ssa_passes): This.
(make_pass_chkp_instrumentation_passes): New.
(make_pass_local_optimization_passes): New.
* c-family/c.opt (fcheck-pointer-bounds): New.
(fchkp-check-incomplete-type): New.
(fchkp-zero-input-bounds-for-main): New.
(fchkp-first-field-has-own-bounds): New.
(fchkp-narrow-bounds): New.
(fchkp-narrow-to-innermost-array): New.
(fchkp-optimize): New.
(fchkp-use-fast-string-functions): New.
(fchkp-use-nochk-string-functions): New.
(fchkp-use-static-bounds): New.
(fchkp-use-static-const-bounds): New.
(fchkp-treat-zero-dynamic-size-as-infinite): New.
(fchkp-check-read): New.
(fchkp-check-write): New.
(fchkp-store-bounds): New.
(fchkp-instrument-calls): New.
(fchkp-instrument-marked-only): New.
(Wchkp): New.
* c-family/c-common.c (handle_bnd_variable_size_attribute): New.
(handle_bnd_legacy): New.
(handle_bnd_instrument): New.
(c_common_attribute_table): Add bnd_variable_size, bnd_legacy
and bnd_instrument.  Fix documentation.
(c_common_format_attribute_table): Likewsie.
* toplev.c: include tree-chkp.h.
(process_options): Check Pointer Bounds Checker is supported.
(compile_file): Add chkp_finish_file call.
* ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
to handle instrumentation clones properly.
(propagate_constants_accross_call): Do not propagate
through instrumentation thunks.
* ipa-pure-const.c (propagate_pure_const): Support
IPA_REF_CHKP.
* ipa-inline.c (early_inliner): Check edge has summary allocated.
* ipa-split.c: Include tree-chkp.h.
(find_retbnd): New.
(split_part_set_ssa_name_p): New.
(consider_split): Do not split retbnd and retval
producers.
(insert_bndret_call_after): new.
(split_function): Propagate Pointer Bounds Checker
instrumentation marks and handle returned bounds.
* tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
into bit field and add with_bounds field.
* tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
with_bounds field for instrumented calls.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
CALL_WITH_BOUNDS_P flag for calls.
* tree-ssa-ccp.c: Include tree-chkp.h.
(insert_clobber_before_stack_restore): Handle
BUILT_IN_CHKP_BNDRET calls.
* tree-ssa-dce.c: Include tree-chkp.h.
(propagate_necessity): For free call fed by alloc check
bounds are also provided by the same alloc.
(eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
used by free calls.
* tree-inline.c: Include tree-chkp.h.
(declare_return_variable): Add arg holding
returned bounds slot.  Create and initialize returned bounds var.
(remap_gimple_stmt): Handle returned bounds.
Return sequence of statements instead of a single statement.
(insert_init_stmt): Add declaration.
(remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
(copy_bb): Adjust to changed return type of remap_gimple_stmt.
Properly handle bounds in va_arg_pack and va_arg_pack_len.
(expand_call_inline): Handle returned bounds.  Add bounds copy
for generated mem to mem assignments.
* tree-inline.h (copy_body_data): Add fields retbnd and
assign_stmts.
* value-prof.c: Include tree-chkp.h.
(gimple_ic): Support returned bounds.
* ipa.c (cgraph_build_static_cdtor_1): Support contructors
with "chkp ctor" and "bnd_legacy" attributes.
(symtab_remove_unreachable_nodes): Keep initial values for
pointer bounds to be used for checks eliminations.
(process_references): Handle IPA_REF_CHKP.
(walk_polymorphic_call_targets): Likewise.
* ipa-visibility.c (cgraph_externally_visible_p): Mark
instrumented 'main' as externally visible.
(function_and_variable_visibility): Filter instrumentation
thunks.
* cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
field.
(cgraph_node): Add instrumented_version, orig_decl and
instrumentation_clone fields.
(symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
(varpool_node): Add need_bounds_init field.
(cgraph_local_p): New.
* cgraph.c: Include tree-chkp.h.
(cgraph_node::remove): Fix instrumented_version
of the referenced node if any.
(cgraph_node::dump): Dump instrumentation_clone and
instrumented_version fields.
(cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
references and instrumentation thunks.
(cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
all not instrumented instrumentation clones alive.
(cgraph_redirect_edge_call_stmt_to_callee): Support
returned bounds.
* cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
reference.
(cgraph_rebuild_references): Likewise.
* cgraphunit.c: Include tree-chkp.h.
(assemble_thunks_and_aliases): Skip thunks calling instrumneted
function version.
(varpool_finalize_decl): Register statically initialized decls
in Pointer Bounds Checker.
(walk_polymorphic_call_targets): Do not mark generated call to
__builtin_unreachable as with_bounds.
(output_weakrefs): If there are both instrumented and original
versions, output only one of them.
(cgraph_node::expand_thunk): Set with_bounds flag
for created call statement.
* ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
(ipa_ref): increase size of use field.
* symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
* varpool.c (dump_varpool_node): Dump need_bounds_init field.
(ctor_for_folding): Do not fold constant bounds vars.
* lto-streamer.h (LTO_minor_version): Change minor version from
0 to 1.
* lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
pointer bounds.
(lto_output_node): Output instrumentation_clone,
thunk.add_pointer_bounds_args and orig_decl field.
(lto_output_ref): Adjust to new ipa_ref::use field size.
(input_overwrite_node): Read instrumentation_clone field.
(input_node): Read thunk.add_pointer_bounds_args and orig_decl
fields.
(input_ref): Adjust to new ipa_ref::use field size.
(input_cgraph_1): Compute instrumented_version fields and restore
IDENTIFIER_TRANSPARENT_ALIAS chains.
(lto_output_varpool_node): Output
need_bounds_init value.
(input_varpool_node): Read need_bounds_init value.
* lto-partition.c (add_symbol_to_partition_1): Keep original
and instrumented versions together.
(privatize_symbol_name): Restore transparent alias chain if required.
(add_references_to_partition): Add references to pointer bounds vars.
* dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
* dwarf2out.c (gen_subprogram_die): Ignore bound args.
(gen_type_die_with_usage): Skip pointer bounds.
(dwarf2out_global_decl): Likewise.
(is_base_type): Support POINTER_BOUNDS_TYPE.
(gen_formal_types_die): Skip pointer bounds.
(gen_decl_die): Likewise.
* var-tracking.c (vt_add_function_parameters): Skip
bounds parameters.
* ipa-icf.c (sem_function::merge): Do not merge when instrumentation
thunk still exists.
(sem_variable::merge): Reset need_bounds_init flag.
* doc/extend.texi: Document Pointer Bounds Checker built-in functions
and attributes.
* doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
(TARGET_STORE_BOUNDS_FOR_ARG): New.
(TARGET_LOAD_RETURNED_BOUNDS): New.
(TARGET_STORE_RETURNED_BOUNDS): New.
(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
(TARGET_BUILTIN_CHKP_FUNCTION): New.
(TARGET_CHKP_BOUND_TYPE): New.
(TARGET_CHKP_BOUND_MODE): New.
(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
(TARGET_CHKP_INITIALIZE_BOUNDS): New.
* doc/tm.texi: Regenerated.
* doc/rtl.texi (MODE_POINTER_BOUNDS): New.
(BND32mode): New.
(BND64mode): New.
* doc/invoke.texi (-mmpx): New.
(-mno-mpx): New.
(chkp-max-ctor-size): New.
* config/i386/constraints.md (w): New.
(Ti): New.
(Tb): New.
* config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
* config/i386/i386-modes.def (BND32): New.
(BND64): New.
* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
* config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
(regclass_map): Add bound registers.
(dbx_register_map): Likewise.
(dbx64_register_map): Likewise.
(svr4_dbx_register_map): Likewise.
(isa_opts): Add -mmpx.
(PTA_MPX): New.
(ix86_option_override_internal): Support MPX ISA.
(ix86_conditional_register_usage): Support bound registers.
(ix86_code_end): Add MPX bnd prefix.
(output_set_got): Likewise.
(print_reg): Avoid prefixes for bound registers.
(ix86_print_operand): Add '!' (MPX bnd) print prefix support.
(ix86_print_operand_punct_valid_p): Likewise.
(ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
UNSPEC_BNDLDX_ADDR.
(ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
(ix86_class_likely_spilled_p): Add bound regs support.
(ix86_hard_regno_mode_ok): Likewise.
(x86_order_regs_for_local_alloc): Likewise.
(ix86_bnd_prefixed_insn_p): New.
(ix86_builtins): Add
IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
IX86_BUILTIN_BNDUPPER.
(builtin_isa): Add leaf_p and nothrow_p fields.
(def_builtin): Initialize leaf_p and nothrow_p.
(ix86_add_new_builtins): Handle leaf_p and nothrow_p
flags.
(bdesc_mpx): New.
(bdesc_mpx_const): New.
(ix86_init_mpx_builtins): New.
(ix86_init_builtins): Call ix86_init_mpx_builtins.
(ix86_emit_cmove): New.
(ix86_emit_move_max): New.
(ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
(ix86_function_value_bounds): New.
(ix86_builtin_mpx_function): New.
(ix86_get_arg_address_for_bt): New.
(ix86_load_bounds): New.
(ix86_store_bounds): New.
(ix86_load_returned_bounds): New.
(ix86_store_returned_bounds): New.
(ix86_mpx_bound_mode): New.
(ix86_make_bounds_constant): New.
(ix86_initialize_bounds):
(TARGET_LOAD_BOUNDS_FOR_ARG): New.
(TARGET_STORE_BOUNDS_FOR_ARG): New.
(TARGET_LOAD_RETURNED_BOUNDS): New.
(TARGET_STORE_RETURNED_BOUNDS): New.
(TARGET_CHKP_BOUND_MODE): New.
(TARGET_BUILTIN_CHKP_FUNCTION): New.
(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
(TARGET_CHKP_INITIALIZE_BOUNDS): New.
(ix86_option_override_internal): Do not
support x32 with MPX.
(init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
and force_bnd_pass.
(function_arg_advance_32): Return number of used integer
registers.
(function_arg_advance_64): Likewise.
(function_arg_advance_ms_64): Likewise.
(ix86_function_arg_advance): Handle pointer bounds.
(ix86_function_arg): Likewise.
(ix86_function_value_regno_p): Mark fisrt bounds registers as
possible function value.
(ix86_function_value_1): Handle pointer bounds type/mode
(ix86_return_in_memory): Likewise.
(ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
(ix86_expand_call): Generate returned bounds.
(ix86_setup_incoming_vararg_bounds): New.
(ix86_va_start): Initialize bounds for pointers in va_list.
(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
* config/i386/i386.h (TARGET_MPX): New.
(TARGET_MPX_P): New.
(FIRST_PSEUDO_REGISTER): Fix to new value.
(FIXED_REGISTERS): Add bound registers.
(CALL_USED_REGISTERS): Likewise.
(REG_ALLOC_ORDER): Likewise.
(HARD_REGNO_NREGS): Likewise.
(VALID_BND_REG_MODE): New.
(FIRST_BND_REG): New.
(LAST_BND_REG): New.
(reg_class): Add BND_REGS.
(REG_CLASS_NAMES): Likewise.
(REG_CLASS_CONTENTS): Likewise.
(BND_REGNO_P): New.
(ANY_BND_REG_P): New.
(BNDmode): New.
(HI_REGISTER_NAMES): Add bound registers.
(ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
stdarg fields.
* config/i386/i386.md (UNSPEC_BNDMK): New.
(UNSPEC_BNDMK_ADDR): New.
(UNSPEC_BNDSTX): New.
(UNSPEC_BNDLDX): New.
(UNSPEC_BNDLDX_ADDR): New.
(UNSPEC_BNDCL): New.
(UNSPEC_BNDCU): New.
(UNSPEC_BNDCN): New.
(UNSPEC_MPX_FENCE): New.
(UNSPEC_SIZEOF): New.
(BND0_REG): New.
(BND1_REG): New.
(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(prefix_rep): Check for bnd prefix.
(prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(length_nobnd): New.
(length): Use length_nobnd when specified.
(memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
(BND): New.
(bnd_ptr): New.
(BNDCHECK): New.
(bndcheck): New.
(*jcc_1): Add MPX bnd prefix.
(*jcc_2): Likewise.
(jump): Likewise.
(*indirect_jump): Likewise.
(*tablejump_1): Likewise.
(simple_return_internal): Likewise.
(simple_return_internal_long): Likewise.
(simple_return_pop_internal): Likewise.
(simple_return_indirect_internal): Likewise.
(<mode>_mk): New.
(*<mode>_mk): New.
(mov<mode>): New.
(*mov<mode>_internal_mpx): New.
(<mode>_<bndcheck>): New.
(*<mode>_<bndcheck>): New.
(<mode>_ldx): New.
(*<mode>_ldx): New.
(<mode>_stx): New.
(*<mode>_stx): New.
move_size_reloc_<mode>): New.
* config/i386/predicates.md (address_mpx_no_base_operand): New.
(address_mpx_no_index_operand): New.
(bnd_mem_operator): New.
(symbol_operand): New.
(x86_64_immediate_size_operand): New.
* config/i386/i386.opt (mmpx): New.
* config/i386/i386-builtin-types.def (BND): New.
(ULONG): New.
(BND_FTYPE_PCVOID_ULONG): New.
(VOID_FTYPE_BND_PCVOID): New.
(VOID_FTYPE_PCVOID_PCVOID_BND): New.
(BND_FTYPE_PCVOID_PCVOID): New.
(BND_FTYPE_PCVOID): New.
(BND_FTYPE_BND_BND): New.
(PVOID_FTYPE_PVOID_PVOID_ULONG): New.
(PVOID_FTYPE_PCVOID_BND_ULONG): New.
(ULONG_FTYPE_VOID): New.
(PVOID_FTYPE_BND): New.

gcc/testsuite/

2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>

* gcc.target/i386/chkp-builtins-1.c: New.
* gcc.target/i386/chkp-builtins-2.c: New.
* gcc.target/i386/chkp-builtins-3.c: New.
* gcc.target/i386/chkp-builtins-4.c: New.
* gcc.target/i386/chkp-remove-bndint-1.c: New.
* gcc.target/i386/chkp-remove-bndint-2.c: New.
* gcc.target/i386/chkp-const-check-1.c: New.
* gcc.target/i386/chkp-const-check-2.c: New.
* gcc.target/i386/chkp-lifetime-1.c: New.
* gcc.dg/pr37858.c: Replace early_local_cleanups pass name
with build_ssa_passes.

From-SVN: r217125

9 years agoReorganize post-ra pipeline for targets without register allocation.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:45 +0000 (12:14 +0000)]
Reorganize post-ra pipeline for targets without register allocation.

* passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
pass_cleanup_barriers, pass_delay_slots,
pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
pass_shorten_branches, pass_est_nothrow_function_flags,
pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
into pass_late_compilation.
(pass_late_compilation): Add.
* passes.c (pass_data_late_compilation, pass_late_compilation,
make_pass_late_compilation): New.
* timevar.def (TV_LATE_COMPILATION): New.

From-SVN: r217124

9 years agoAllow a target to skip an unnecssary register return value for a struct return.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:36 +0000 (12:14 +0000)]
Allow a target to skip an unnecssary register return value for a struct return.

* target.def (omit_struct_return_reg): New data hook.
* doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
* doc/tm.texi: Regenerate.
* function.c (expand_function_end): Use it.

From-SVN: r217123

9 years agoAdd a no_register_allocation target hook.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:27 +0000 (12:14 +0000)]
Add a no_register_allocation target hook.

* target.def (no_register_allocation): New data hook.
* doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
* doc/tm.texi: Regenerate.
* ira.c (gate_ira): New function.
(pass_data_ira): Set has_gate.
(pass_ira): Add a gate function.
(pass_data_reload): Likewise.
(pass_reload): Add a gate function.
(pass_ira): Use it.
* reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
no register allocation happens on the target and return.
* final.c (alter_subreg): Ensure register is not a pseudo before
calling simplify_subreg.
(output_operand): Assert that x isn't a pseudo only if doing
register allocation.

From-SVN: r217122

9 years agoDon't unnecessarily call eliminate_regs.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:18 +0000 (12:14 +0000)]
Don't unnecessarily call eliminate_regs.

* dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
global vars.

From-SVN: r217121

9 years agoAllow a port not to define an indirect_jump pattern.
Bernd Schmidt [Wed, 5 Nov 2014 12:14:10 +0000 (12:14 +0000)]
Allow a port not to define an indirect_jump pattern.

* optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
sorry if necessary.

From-SVN: r217120

9 years agosimplify-rtx.c (simplify_binary_operation_1): Div check added.
Alex Velenko [Wed, 5 Nov 2014 11:22:28 +0000 (11:22 +0000)]
simplify-rtx.c (simplify_binary_operation_1): Div check added.

2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>

    gcc/
    * simplify-rtx.c (simplify_binary_operation_1): Div check added.
    * rtl.h (SUBREG_P): New macro added.

    gcc/testsuite/
    * gcc.dg/asr-div1.c: New testcase.

From-SVN: r217118

9 years agoFix gnu11 fallout on Solaris 10+
Rainer Orth [Wed, 5 Nov 2014 09:52:42 +0000 (09:52 +0000)]
Fix gnu11 fallout on Solaris 10+

libobjc:
* thr.c (_XOPEN_SOURCE): Define as 600.

libiberty:
* sigsetmask.c (_POSIX_SOURCE): Remove.

libgomp:
* config/posix/lock.c (_XOPEN_SOURCE) Define as 600.

From-SVN: r217117

9 years ago[AArch64] Restructure arm_neon.h vector types.
Tejas Belagod [Wed, 5 Nov 2014 08:26:54 +0000 (08:26 +0000)]
[AArch64] Restructure arm_neon.h vector types.

2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>

* config/aarch64/aarch64-builtins.c
(aarch64_build_scalar_type): Remove.
(aarch64_scalar_builtin_types, aarch64_simd_type,
aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
aarch64_mangle_builtin_vector_type,
aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
aarch64_init_simd_builtin_types,
aarch64_init_simd_builtin_scalar_types): New.
(aarch64_init_simd_builtins): Refactor.
(aarch64_init_crc32_builtins): Fixup with qualifier.
* config/aarch64/aarch64-protos.h
(aarch64_mangle_builtin_type): Export.
* config/aarch64/aarch64-simd-builtin-types.def: New.
* config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
(aarch64_mangle_type): Refactor.
* config/aarch64/arm_neon.h: Declare vector types based on
internal types.
* config/aarch64/t-aarch64: Update dependency.

From-SVN: r217114

9 years ago* go.test/go-test.exp (go-set-goarch): Enable tests on s390[x].
Dominik Vogt [Wed, 5 Nov 2014 04:08:11 +0000 (04:08 +0000)]
* go.test/go-test.exp (go-set-goarch): Enable tests on s390[x].

From-SVN: r217112

9 years agogo-test.exp: In +build lines, require whitespace around expected strings, fix check...
Ian Lance Taylor [Wed, 5 Nov 2014 04:04:24 +0000 (04:04 +0000)]
go-test.exp: In +build lines, require whitespace around expected strings, fix check for negation.

* go.test/go-test.exp: In +build lines, require whitespace around
expected strings, fix check for negation.

From-SVN: r217111

9 years agosync/atomic: fix data races in tests
Ian Lance Taylor [Wed, 5 Nov 2014 03:39:49 +0000 (03:39 +0000)]
sync/atomic: fix data races in tests

Backport https://codereview.appspot.com/111320044 from Go
master library.

From-SVN: r217110

9 years agoDaily bump.
GCC Administrator [Wed, 5 Nov 2014 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217109

9 years agolibgo: add s390 support
Ian Lance Taylor [Tue, 4 Nov 2014 22:39:30 +0000 (22:39 +0000)]
libgo: add s390 support

From Dominik Vogt.

* libgo/go/syscall/libcall_linux_s390.go: New file for s390 support.
* libgo/go/syscall/syscall_linux_s390.go: Ditto.
* libgo/go/syscall/libcall_linux_s390x.go: New file for s390x support.
* libgo/go/syscall/syscall_linux_s390x.go: Ditto.
* libgo/go/runtime/pprof/pprof.go (printStackRecord): Support s390 and
s390x.
* libgo/runtime/runtime.c (runtime_cputicks): Add support for s390 and
s390x
* libgo/mksysinfo.sh: Ditto.
(upcase_fields): New helper function

* libgo/go/debug/elf/file.go (applyRelocations): Implement relocations
on s390x.
(applyRelocationsS390x): Ditto.
(DWARF): Ditto.
* libgo/go/debug/elf/elf.go (R_390): New constants for S390 relocations.
(r390Strings): Ditto.
(String): Helper function for S390 relocations.
(GoString): Ditto.

* libgo/go/reflect/makefuncgo_s390.go: New file.
(S390MakeFuncStubGo): Implementation of s390 abi.
* libgo/go/reflect/makefuncgo_s390x.go: New file.
(S390xMakeFuncStubGo): Implementation of s390x abi.
* libgo/go/reflect/makefunc_s390.c: New file.
(makeFuncStub): s390 and s390x specific implementation of function.
* libgo/go/reflect/makefunc.go
(MakeFunc): Add support for s390 and s390x.
(makeMethodValue): Ditto.
(makeValueMethod): Ditto.
* libgo/Makefile.am (go_reflect_makefunc_s_file): Ditto.
(go_reflect_makefunc_file): Ditto.
* libgo/go/reflect/makefunc_dummy.c: Ditto.
* libgo/runtime/runtime.h (__go_makefunc_can_recover): Export prototype
for use in makefunc_s390.c.
(__go_makefunc_returning): Ditto.

* libgo/go/syscall/exec_linux.go (forkAndExecInChild): Fix order of the
arguments of the clone system call for s390[x].

* libgo/configure.ac (is_s390): New variable.
(is_s390x): Ditto
(LIBGO_IS_S390): Ditto.
(LIBGO_IS_S390X): Ditto.
(GOARCH): Support s390 and s390x.
* libgo/go/go/build/build.go (cgoEnabled): Ditto.
* libgo/go/go/build/syslist.go (goarchList): Ditto.

From-SVN: r217106

9 years agors6000.c (atomic_hold_decl, [...]): Guard declaration with #ifdef.
Pat Haugen [Tue, 4 Nov 2014 22:34:43 +0000 (22:34 +0000)]
rs6000.c (atomic_hold_decl, [...]): Guard declaration with #ifdef.

* config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
atomic_update_decl): Guard declaration with #ifdef.

From-SVN: r217105

9 years agoc-common.c (shorten_compare): Do not shorten mixed DFP and non-DFP compares.
Richard Biener [Tue, 4 Nov 2014 20:46:52 +0000 (20:46 +0000)]
c-common.c (shorten_compare): Do not shorten mixed DFP and non-DFP compares.

2014-11-04  Richard Biener  <rguenther@suse.de>

* c-common.c (shorten_compare): Do not shorten mixed
DFP and non-DFP compares.

From-SVN: r217101

9 years ago* sanopt.c (sanopt_optimize_walker): Remove unused variables.
Marek Polacek [Tue, 4 Nov 2014 19:59:35 +0000 (19:59 +0000)]
* sanopt.c (sanopt_optimize_walker): Remove unused variables.

From-SVN: r217100

9 years agoMakefile.in (OBJS): Add sanopt.o.
Marek Polacek [Tue, 4 Nov 2014 19:43:01 +0000 (19:43 +0000)]
Makefile.in (OBJS): Add sanopt.o.

* Makefile.in (OBJS): Add sanopt.o.
(GTFILES): Add sanopt.c.
* asan.h (asan_expand_check_ifn): Declare.
* asan.c (asan_expand_check_ifn): No longer static.
(class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
* sanopt.c: ...here.  New file.
testsuite/
* c-c++-common/ubsan/align-2.c: Remove dg-output.
* c-c++-common/ubsan/align-4.c: Likewise.
* g++.dg/ubsan/null-1.C: Likewise.
* g++.dg/ubsan/null-2.C: Likewise.

From-SVN: r217099

9 years agogodump-1.c (dg-skip-if): Add alpha*-*-*.
Uros Bizjak [Tue, 4 Nov 2014 18:30:32 +0000 (19:30 +0100)]
godump-1.c (dg-skip-if): Add alpha*-*-*.

* gcc.misc-tests/godump-1.c (dg-skip-if): Add alpha*-*-*.

From-SVN: r217098

9 years agodevirt-44.C (dg-options): Remove -fdump-tree-optimized.
Uros Bizjak [Tue, 4 Nov 2014 18:21:34 +0000 (19:21 +0100)]
devirt-44.C (dg-options): Remove -fdump-tree-optimized.

* g++.dg/ipa/devirt-44.C (dg-options): Remove -fdump-tree-optimized.
* g++.dg/ipa/devirt-45.C (dg-options): Ditto.
* g++.dg/tree-prof/morefunc.C (dg-final-use): Cleanup profile ipa dump.
* g++.dg/tree-prof/reorder.C (dg-final-use): Ditto.
* g++.dg/tree-prof/pr35545.C (dg-fina-use): Cleanup profile_estimate
ipa dump.
* gcc.dg/fold-reassoc-3.c (dg-final): Fix scan string.
Cleanup original tree dump.
* gcc.dg/tree-prof/20050826-2.c (dg-final-use): Cleanup dom1 tree dump.
* gcc.dg/tree-prof/cmpsf-1.c (dg-final-use): Ditto.
* gcc.dg/tree-ssa/pr61144.c (dg-final): Cleanup optimized tree dump.

From-SVN: r217097

9 years agocompiler: Logical operators should yield untyped bool for untyped operands.
Ian Lance Taylor [Tue, 4 Nov 2014 17:49:01 +0000 (17:49 +0000)]
compiler: Logical operators should yield untyped bool for untyped operands.

Fixes issue 6671 for gccgo.

From-SVN: r217094

9 years agodevirt-40.C: Changed dump to not matching OBJ_TYPE_REF in function body.
Martin Jambor [Tue, 4 Nov 2014 17:39:06 +0000 (18:39 +0100)]
devirt-40.C: Changed dump to not matching OBJ_TYPE_REF in function body.

gcc/testsuite/

2014-11-04  Martin Jambor  <mjambor@suse.cz>

* g++/dg/ipa/devirt-40.C: Changed dump to not matching OBJ_TYPE_REF in
function body.

From-SVN: r217092

9 years ago[AArch64] fix unsafe access to deallocated stack
Jiong Wang [Tue, 4 Nov 2014 17:13:25 +0000 (17:13 +0000)]
[AArch64] fix unsafe access to deallocated stack

2014-11-04  Jiong Wang  <jiong.wang@arm.com>
2014-11-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>

  gcc/
    PR target/63293
    * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
    stack adjustment.

From-SVN: r217091

9 years ago* testsuite/util/testsuite_allocator.h (operator==): Fix recursion.
Jonathan Wakely [Tue, 4 Nov 2014 16:54:49 +0000 (16:54 +0000)]
* testsuite/util/testsuite_allocator.h (operator==): Fix recursion.

From-SVN: r217090

9 years agoFix up mode confusion in combine_simplify_rtx.
Bernd Schmidt [Tue, 4 Nov 2014 15:25:45 +0000 (15:25 +0000)]
Fix up mode confusion in combine_simplify_rtx.

The surrounding code was already fixed back when BImode was added.

* combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
also verify that mode is equal to the mode of op0.

From-SVN: r217089

9 years agoMake a temporary sequence for a jump emitted only to examine its length.
Bernd Schmidt [Tue, 4 Nov 2014 15:25:37 +0000 (15:25 +0000)]
Make a temporary sequence for a jump emitted only to examine its length.

* bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
emit into a sequence instead.

From-SVN: r217088

9 years agoFix type mismatches in intrinsic functions.
Bernd Schmidt [Tue, 4 Nov 2014 15:25:28 +0000 (15:25 +0000)]
Fix type mismatches in intrinsic functions.

* f95-lang.c (gfc_init_builtin_functions): Use type index 2 for
scalbn, scalbnl and scalbnf.
* mathbuiltins.def (JN, YN): Use type index 5.

From-SVN: r217087

9 years agog++-dg.exp (g++-dg-runtest): Change -std=c++1y to -std=c++14.
Jason Merrill [Tue, 4 Nov 2014 14:55:32 +0000 (09:55 -0500)]
g++-dg.exp (g++-dg-runtest): Change -std=c++1y to -std=c++14.

* lib/g++-dg.exp (g++-dg-runtest): Change -std=c++1y to -std=c++14.
* lib/target-supports.exp (check_effective_target_c++14_only): Likewise.

From-SVN: r217085

9 years agosh.c (emit_fpu_switch): Drop unused automatic variable.
Jan-Benedict Glaw [Tue, 4 Nov 2014 12:41:23 +0000 (12:41 +0000)]
sh.c (emit_fpu_switch): Drop unused automatic variable.

2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.

From-SVN: r217082

9 years agopr60102.c: Move dg-skip-if after dg-options.
Andrew Stubbs [Tue, 4 Nov 2014 12:09:50 +0000 (12:09 +0000)]
pr60102.c: Move dg-skip-if after dg-options.

gcc/testsuite/
* gcc.target/powerpc/pr60102.c: Move dg-skip-if after dg-options.
* gcc.target/powerpc/swaps-p8-12.c: Skip test if there would be
conflicting -mcpu options.
* gcc.target/powerpc/ppc-target-2.c: Likewise.
* gcc.target/powerpc/cell_builtin-7.c: Likewise.
* gcc.target/powerpc/dfp-builtin-1.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-7.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-1.c: Likewise.
* gcc.target/powerpc/pr48053-3.c: Likewise.
* gcc.target/powerpc/vsx-builtin-6.c: Likewise.
* gcc.target/powerpc/440-nmaclhw-1.c: Likewise.
* gcc.target/powerpc/pr57744.c: Likewise.
* gcc.target/powerpc/pr47862.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-8.c: Likewise.
* gcc.target/powerpc/recip-1.c: Likewise.
* gcc.target/powerpc/darwin-longlong.c: Likewise.
* gcc.target/powerpc/bool2-p8.c: Likewise.
* gcc.target/powerpc/mmfpgpr.c: Likewise.
* gcc.target/powerpc/pr60203.c: Likewise.
* gcc.target/powerpc/direct-move-vint1.c: Likewise.
* gcc.target/powerpc/bool2-av.c: Likewise.
* gcc.target/powerpc/pr43154.c: Likewise.
* gcc.target/powerpc/ppc-fma-2.c: Likewise.
* gcc.target/powerpc/swaps-p8-5.c: Likewise.
* gcc.target/powerpc/pr59054.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-11.c: Likewise.
* gcc.target/powerpc/440-mullhwu-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-13.c: Likewise.
* gcc.target/powerpc/ppc-target-3.c: Likewise.
* gcc.target/powerpc/cell_builtin-8.c: Likewise.
* gcc.target/powerpc/dfp-builtin-2.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-8.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-2.c: Likewise.
* gcc.target/powerpc/p8vector-vbpermq.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-1.c: Likewise.
* gcc.target/powerpc/bswap64-3.c: Likewise.
* gcc.target/powerpc/bcd-1.c: Likewise.
* gcc.target/powerpc/440-mulchwu-1.c: Likewise.
* gcc.target/powerpc/extend-divide-1.c: Likewise.
* gcc.target/powerpc/vsx-builtin-7.c: Likewise.
* gcc.target/powerpc/pr48192.c: Likewise.
* gcc.target/powerpc/pr52775.c: Likewise.
* gcc.target/powerpc/p8vector-int128-1.c: Likewise.
* gcc.target/powerpc/pr58673-1.c: Likewise.
* gcc.target/powerpc/pr53487.c: Likewise.
* gcc.target/powerpc/440-nmaclhw-2.c: Likewise.
* gcc.target/powerpc/recip-2.c: Likewise.
* gcc.target/powerpc/p8vector-fp.c: Likewise.
* gcc.target/powerpc/direct-move-vint2.c: Likewise.
* gcc.target/powerpc/ppc-fma-3.c: Likewise.
* gcc.target/powerpc/pr57150.c: Likewise.
* gcc.target/powerpc/pr47251.c: Likewise.
* gcc.target/powerpc/swaps-p8-6.c: Likewise.
* gcc.target/powerpc/440-mullhwu-2.c: Likewise.
* gcc.target/powerpc/bool3-p7.c: Likewise.
* gcc.target/powerpc/cell_builtin-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-14.c: Likewise.
* gcc.target/powerpc/ppc-target-4.c: Likewise.
* gcc.target/powerpc/440-mulhhw-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-1.c: Likewise.
* gcc.target/powerpc/440-machhw-1.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-3.c: Likewise.
* gcc.target/powerpc/vsx-mass-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-9.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-3.c: Likewise.
* gcc.target/powerpc/loop_align.c: Likewise.
* gcc.target/powerpc/lhs-1.c: Likewise.
* gcc.target/powerpc/sd-vsx.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-2.c: Likewise.
* gcc.target/powerpc/bcd-2.c: Likewise.
* gcc.target/powerpc/20040121-1.c: Likewise.
* gcc.target/powerpc/pr52457.c: Likewise.
* gcc.target/powerpc/440-mulchwu-2.c: Likewise.
* gcc.target/powerpc/extend-divide-2.c: Likewise.
* gcc.target/powerpc/vsx-builtin-8.c: Likewise.
* gcc.target/powerpc/p8vector-int128-2.c: Likewise.
* gcc.target/powerpc/pr58673-2.c: Likewise.
* gcc.target/powerpc/atomic-p7.c: Likewise.
* gcc.target/powerpc/recip-3.c: Likewise.
* gcc.target/powerpc/440-maclhwu-1.c: Likewise.
* gcc.target/powerpc/optimize-bswapsi-2.c: Likewise.
* gcc.target/powerpc/popcount-1.c: Likewise.
* gcc.target/powerpc/altivec-32.c: Likewise.
* gcc.target/powerpc/timode_off.c: Likewise.
* gcc.target/powerpc/p8vector-ldst.c: Likewise.
* gcc.target/powerpc/pack01.c: Likewise.
* gcc.target/powerpc/pr55033.c: Likewise.
* gcc.target/powerpc/ppc-fma-4.c: Likewise.
* gcc.target/powerpc/swaps-p8-7.c: Likewise.
* gcc.target/powerpc/ppu-intrinsics.c: Likewise.
* gcc.target/powerpc/440-macchwu-1.c: Likewise.
* gcc.target/powerpc/440-mulhhwu-1.c: Likewise.
* gcc.target/powerpc/440-mulchw-1.c: Likewise.
* gcc.target/powerpc/bool3-p8.c: Likewise.
* gcc.target/powerpc/cell_builtin-2.c: Likewise.
* gcc.target/powerpc/swaps-p8-15.c: Likewise.
* gcc.target/powerpc/440-macchw-1.c: Likewise.
* gcc.target/powerpc/440-mulhhw-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-2.c: Likewise.
* gcc.target/powerpc/440-machhw-2.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-4.c: Likewise.
* gcc.target/powerpc/pr46728-16.c: Likewise.
* gcc.target/powerpc/vsx-builtin-1.c: Likewise.
* gcc.target/powerpc/bool3-av.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-4.c: Likewise.
* gcc.target/powerpc/ppc-pow.c: Likewise.
* gcc.target/powerpc/lhs-2.c: Likewise.
* gcc.target/powerpc/pr39902-2.c: Likewise.
* gcc.target/powerpc/20041111-1.c: Likewise.
* gcc.target/powerpc/builtins-1.c: Likewise.
* gcc.target/powerpc/bcd-3.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-3.c: Likewise.
* gcc.target/powerpc/pr57949-1.c: Likewise.
* gcc.target/powerpc/atomic-p8.c: Likewise.
* gcc.target/powerpc/sd-pwr6.c: Likewise.
* gcc.target/powerpc/recip-4.c: Likewise.
* gcc.target/powerpc/440-maclhwu-2.c: Likewise.
* gcc.target/powerpc/warn-2.c: Likewise.
* gcc.target/powerpc/parity-1.c: Likewise.
* gcc.target/powerpc/popcount-2.c: Likewise.
* gcc.target/powerpc/crypto-builtin-1.c: Likewise.
* gcc.target/powerpc/ppc-fma-5.c: Likewise.
* gcc.target/powerpc/swaps-p8-8.c: Likewise.
* gcc.target/powerpc/pr42747.c: Likewise.
* gcc.target/powerpc/440-macchwu-2.c: Likewise.
* gcc.target/powerpc/440-mulhhwu-2.c: Likewise.
* gcc.target/powerpc/dfp-dd-2.c: Likewise.
* gcc.target/powerpc/direct-move-float1.c: Likewise.
* gcc.target/powerpc/440-mulchw-2.c: Likewise.
* gcc.target/powerpc/cell_builtin-3.c: Likewise.
* gcc.target/powerpc/swaps-p8-16.c: Likewise.
* gcc.target/powerpc/440-macchw-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-3.c: Likewise.
* gcc.target/powerpc/dfp-td-2.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-5.c: Likewise.
* gcc.target/powerpc/vsx-builtin-2.c: Likewise.
* gcc.target/powerpc/p8vector-vectorize-5.c: Likewise.
* gcc.target/powerpc/lhs-3.c: Likewise.
* gcc.target/powerpc/440-nmachhw-1.c: Likewise.
* gcc.target/powerpc/builtins-2.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-4.c: Likewise.
* gcc.target/powerpc/pr52199.c: Likewise.
* gcc.target/powerpc/440-machhwu-1.c: Likewise.
* gcc.target/powerpc/pr57949-2.c: Likewise.
* gcc.target/powerpc/recip-5.c: Likewise.
* gcc.target/powerpc/popcount-3.c: Likewise.
* gcc.target/powerpc/vsx-vector-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-1.c: Likewise.
* gcc.target/powerpc/optimize-bswapdi-2.c: Likewise.
* gcc.target/powerpc/ppc-fma-6.c: Likewise.
* gcc.target/powerpc/vsx-extract-1.c: Likewise.
* gcc.target/powerpc/pr48226.c: Likewise.
* gcc.target/powerpc/swaps-p8-9.c: Likewise.
* gcc.target/powerpc/pr47755-2.c: Likewise.
* gcc.target/powerpc/direct-move-float2.c: Likewise.
* gcc.target/powerpc/cell_builtin-4.c: Likewise.
* gcc.target/powerpc/direct-move-double1.c: Likewise.
* gcc.target/powerpc/swaps-p8-17.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-4.c: Likewise.
* gcc.target/powerpc/dfp-td-3.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-6.c: Likewise.
* gcc.target/powerpc/440-nmacchw-1.c: Likewise.
* gcc.target/powerpc/vsx-builtin-3.c: Likewise.
* gcc.target/powerpc/440-nmachhw-2.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-5.c: Likewise.
* gcc.target/powerpc/bool2-p5.c: Likewise.
* gcc.target/powerpc/440-machhwu-2.c: Likewise.
* gcc.target/powerpc/fusion.c: Likewise.
* gcc.target/powerpc/recip-6.c: Likewise.
* gcc.target/powerpc/altivec-cell-6.c: Likewise.
* gcc.target/powerpc/vsx-vector-2.c: Likewise.
* gcc.target/powerpc/swaps-p8-2.c: Likewise.
* gcc.target/powerpc/optimize-bswapdi-3.c: Likewise.
* gcc.target/powerpc/ppc-fma-7.c: Likewise.
* gcc.target/powerpc/vsx-extract-2.c: Likewise.
* gcc.target/powerpc/direct-move-long1.c: Likewise.
* gcc.target/powerpc/dfp-dd.c: Likewise.
* gcc.target/powerpc/swaps-p8-10.c: Likewise.
* gcc.target/powerpc/cell_builtin-5.c: Likewise.
* gcc.target/powerpc/direct-move-double2.c: Likewise.
* gcc.target/powerpc/440-mullhw-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-5.c: Likewise.
* gcc.target/powerpc/440-maclhw-1.c: Likewise.
* gcc.target/powerpc/dfp-td.c: Likewise.
* gcc.target/powerpc/p8vector-builtin-7.c: Likewise.
* gcc.target/powerpc/pr48053-1.c: Likewise.
* gcc.target/powerpc/440-nmacchw-2.c: Likewise.
* gcc.target/powerpc/vsx-builtin-4.c: Likewise.
* gcc.target/powerpc/pr60676.c: Likewise.
* gcc.target/powerpc/pr48258-1.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-6.c: Likewise.
* gcc.target/powerpc/pr48857.c: Likewise.
* gcc.target/powerpc/quad-atomic.c: Likewise.
* gcc.target/powerpc/altivec-cell-7.c: Likewise.
* gcc.target/powerpc/atomic_load_store-p8.c: Likewise.
* gcc.target/powerpc/vsx-vector-3.c: Likewise.
* gcc.target/powerpc/swaps-p8-3.c: Likewise.
* gcc.target/powerpc/pr56605.c: Likewise.
* gcc.target/powerpc/vsx-extract-3.c: Likewise.
* gcc.target/powerpc/pr53199.c: Likewise.
* gcc.target/powerpc/direct-move-long2.c: Likewise.
* gcc.target/powerpc/swaps-p8-11.c: Likewise.
* gcc.target/powerpc/vsx-float0.c: Likewise.
* gcc.target/powerpc/ppc-target-1.c: Likewise.
* gcc.target/powerpc/altivec-20.c: Likewise.
* gcc.target/powerpc/cell_builtin-6.c: Likewise.
* gcc.target/powerpc/440-mullhw-2.c: Likewise.
* gcc.target/powerpc/darwin-ehreturn-1.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-6.c: Likewise.
* gcc.target/powerpc/440-maclhw-2.c: Likewise.
* gcc.target/powerpc/440-dlmzb-strlen-1.c: Likewise.
* gcc.target/powerpc/pr60137.c: Likewise.
* gcc.target/powerpc/bswap64-1.c: Likewise.
* gcc.target/powerpc/pr48053-2.c: Likewise.
* gcc.target/powerpc/vsx-builtin-5.c: Likewise.
* gcc.target/powerpc/pr48258-2.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-7.c: Likewise.
* gcc.target/powerpc/vsx-sfminmax.c: Likewise.
* gcc.target/powerpc/bool2-p7.c: Likewise.
* gcc.target/powerpc/ppc-round.c: Likewise.
* gcc.target/powerpc/altivec-cell-8.c: Likewise.
* gcc.target/powerpc/vsx-vector-4.c: Likewise.
* gcc.target/powerpc/ppc-fma-1.c: Likewise.
* gcc.target/powerpc/swaps-p8-4.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-10.c: Likewise.
* gcc.target/powerpc/pr47755.c: Likewise.

From-SVN: r217081

9 years ago[ARM] Migrate to new reduc_[us](min|max)_scal_optab
Alan Lawrence [Tue, 4 Nov 2014 12:09:38 +0000 (12:09 +0000)]
[ARM] Migrate to new reduc_[us](min|max)_scal_optab

config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
(reduc_smin_scal_<mode> *2): ...this; extract scalar result.
(reduc_smax_<mode> *2): Rename to...
(reduc_smax_scal_<mode> *2): ...this; extract scalar result.
(reduc_umin_<mode> *2): Rename to...
(reduc_umin_scal_<mode> *2): ...this; extract scalar result.
(reduc_umax_<mode> *2): Rename to...
(reduc_umax_scal_<mode> *2): ...this; extract scalar result.

From-SVN: r217080

9 years ago[ARM] Migrate to new reduc_plus_scal_optab
Alan Lawrence [Tue, 4 Nov 2014 12:05:52 +0000 (12:05 +0000)]
[ARM] Migrate to new reduc_plus_scal_optab

config/arm/neon.md (reduc_plus_*): Rename to...
(reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.

From-SVN: r217079

9 years ago[AArch64] Fix predicate and constraint mismatch in logical atomic operations
Michael Collison [Tue, 4 Nov 2014 11:23:10 +0000 (11:23 +0000)]
[AArch64] Fix predicate and constraint mismatch in logical atomic operations

2014-11-04  Michael Collison <michael.collison@linaro.org>

* config/aarch64/iterators.md (lconst_atomic): New mode attribute
to support constraints for CONST_INT in atomic operations.
* config/aarch64/atomics.md
(atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
(atomic_nand<mode>): Likewise.
(atomic_fetch_<atomic_optab><mode>): Likewise.
(atomic_fetch_nand<mode>): Likewise.
(atomic_<atomic_optab>_fetch<mode>): Likewise.
(atomic_nand_fetch<mode>): Likewise.

From-SVN: r217076

9 years agoFix typo in definition of __ARM_FEATURE_IDIV
Ramana Radhakrishnan [Tue, 4 Nov 2014 09:45:22 +0000 (09:45 +0000)]
Fix typo in definition of __ARM_FEATURE_IDIV

From-SVN: r217073

9 years agoFix typo in definition of __ARM_FEATURE_IDIV
Ramana Radhakrishnan [Tue, 4 Nov 2014 09:45:06 +0000 (09:45 +0000)]
Fix typo in definition of __ARM_FEATURE_IDIV

From-SVN: r217072

9 years agoubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
Marek Polacek [Tue, 4 Nov 2014 09:30:47 +0000 (09:30 +0000)]
ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.

* ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
testsuite/
* c-c++-common/ubsan/object-size-10.c: New test.

From-SVN: r217071

9 years agorx.c (rx_handle_func_attribute): Mark unused argument.
Jan-Benedict Glaw [Tue, 4 Nov 2014 09:22:51 +0000 (09:22 +0000)]
rx.c (rx_handle_func_attribute): Mark unused argument.

2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.

From-SVN: r217070

9 years agonumeric.h: Do not use default arguments in function template redeclarations (definiti...
Jonathan Wakely [Tue, 4 Nov 2014 03:41:16 +0000 (03:41 +0000)]
numeric.h: Do not use default arguments in function template redeclarations (definitions).

* include/parallel/numeric.h: Do not use default arguments in function
template redeclarations (definitions).

From-SVN: r217069

9 years agoDo not assume allocator is assignable.
Jonathan Wakely [Tue, 4 Nov 2014 03:41:12 +0000 (03:41 +0000)]
Do not assume allocator is assignable.

* include/bits/stl_deque.h (_Deque_base(_Deque_base&&)): Copy
allocator instead of moving.
* testsuite/23_containers/deque/allocator/move-2.cc: New.

From-SVN: r217068

9 years agoMake reference_wrapper trivially copyable.
Jonathan Wakely [Tue, 4 Nov 2014 02:49:33 +0000 (02:49 +0000)]
Make reference_wrapper trivially copyable.

* include/std/functional (reference_wrapper): Define copy constructor
and copy assignment as defaulted.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
* testsuite/20_util/reference_wrapper/requirements.cc: New.

From-SVN: r217067

9 years agoUse ctype_base::blank in regex_traits.
Jonathan Wakely [Tue, 4 Nov 2014 02:49:30 +0000 (02:49 +0000)]
Use ctype_base::blank in regex_traits.

* include/bits/regex.h (regex_traits::_RegexMask): Remove _S_blank and
adjust _S_valid_mask.
* include/bits/regex.tcc (regex_traits::lookup_classname): Use
ctype_base::blank.

From-SVN: r217066

9 years ago* include/std/functional (_Bind_simple): Simplify construction.
Jonathan Wakely [Tue, 4 Nov 2014 02:49:27 +0000 (02:49 +0000)]
* include/std/functional (_Bind_simple): Simplify construction.

From-SVN: r217065

9 years agoUse aliases for type traits in C++14 mode.
Jonathan Wakely [Tue, 4 Nov 2014 02:49:20 +0000 (02:49 +0000)]
Use aliases for type traits in C++14 mode.

* include/bits/unique_ptr.h (make_unique): Use alias for trait.
* include/experimental/optional (__constexpr_addressof): Likewise.
(_Optional_base, optional, make_optional): Likewise.

From-SVN: r217064

9 years agorevert: ifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.
Zhenqiang Chen [Tue, 4 Nov 2014 02:21:51 +0000 (02:21 +0000)]
revert: ifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.

2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>

Revert:
2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
* ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
Allow CC mode if HAVE_cbranchcc4.

From-SVN: r217062

9 years agoDaily bump.
GCC Administrator [Tue, 4 Nov 2014 00:16:27 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217061

9 years agogodump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support with -fdump...
Dominik Vogt [Tue, 4 Nov 2014 00:00:14 +0000 (00:00 +0000)]
godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support with -fdump-go-spec.

gcc/:
* godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
with -fdump-go-spec.  Anonymous substructures are now flattened and
replaced by their fields (record) or the first named, non-bitfield
field (union).
gcc/testsuite/:
* build-go/gcc/testsuite/gcc/godump-1.out: Update godump tests.

From-SVN: r217058

9 years agoinput.c (expand_location_to_spelling_point): Fix typo.
Manuel López-Ibáñez [Mon, 3 Nov 2014 22:57:33 +0000 (22:57 +0000)]
input.c (expand_location_to_spelling_point): Fix typo.

2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>

* input.c (expand_location_to_spelling_point): Fix typo.
(expansion_point_location_if_in_system_header): Fix comment.

From-SVN: r217057

9 years agocoarray_collectives_14.f90: Fix testcase.
Tobias Burnus [Mon, 3 Nov 2014 20:14:48 +0000 (21:14 +0100)]
coarray_collectives_14.f90: Fix testcase.

2014-11-03  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_collectives_14.f90: Fix testcase.

From-SVN: r217053

9 years ago* config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
Pitchumani Sivanupandi [Mon, 3 Nov 2014 19:03:34 +0000 (19:03 +0000)]
* config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.

From-SVN: r217051

9 years agoalgo.h: Do not use default arguments in function template redeclarations (definitions).
Paolo Carlini [Mon, 3 Nov 2014 17:54:59 +0000 (17:54 +0000)]
algo.h: Do not use default arguments in function template redeclarations (definitions).

2014-11-03  Paolo Carlini  <paolo.carlini@oracle.com>

* include/parallel/algo.h: Do not use default arguments in function
template redeclarations (definitions).

From-SVN: r217050

9 years agoruntime: use "$GOC -dumpversion" instead of BASE-VER to discover compiler version
Ian Lance Taylor [Mon, 3 Nov 2014 16:30:51 +0000 (16:30 +0000)]
runtime: use "$GOC -dumpversion" instead of BASE-VER to discover compiler version

From-SVN: r217049

9 years agotree-eh.c (operation_could_trap_helper_p): Handle conversions like ordinary operations.
Richard Biener [Mon, 3 Nov 2014 15:49:43 +0000 (15:49 +0000)]
tree-eh.c (operation_could_trap_helper_p): Handle conversions like ordinary operations.

2014-11-03  Richard Biener  <rguenther@suse.de>

* tree-eh.c (operation_could_trap_helper_p): Handle conversions
like ordinary operations.
* gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
as NOP_EXPR.

From-SVN: r217048

9 years agoImplement TARGET_ATOMIC_ASSIGN_EXPAND_FENV for powerpc*-*-linux* soft-float and e500.
Joseph Myers [Mon, 3 Nov 2014 13:40:50 +0000 (13:40 +0000)]
Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV for powerpc*-*-linux* soft-float and e500.

This patch implements support for TARGET_ATOMIC_ASSIGN_EXPAND_FENV for
powerpc*-*-linux* soft-float and e500, provided GCC is configured for
glibc 2.19 or later on the target.

New functions __atomic_feholdexcept, __atomic_feclearexcept and
__atomic_feupdateenv were added (to libc) in that glibc version (for
powerpc soft-float / e500 only) in order to support this part of C11.
For soft-float, libc functions are needed because the floating-point
exception state is in TLS variables in libc that aren't directly
accessible outside of glibc.  For e500, they are also needed because
of the prctl syscalls involved in controlling trapping for exceptions
and informing the kernel when certain exception flags have been
cleared.  The actual implementation in GCC is a straightforward matter
of calling those functions.

Tested with no regressions for cross to powerpc-linux-gnu
(soft-float); the c11-atomic-exec-5.c results go from FAIL to PASS.

* configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
macros.
* configure, config.h.in: Regenerate.
* config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
(TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
(RS6000_GLIBC_ATOMIC_FENV): New macro.
* config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
(TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
(RS6000_GLIBC_ATOMIC_FENV): New macro.
* config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
(atomic_update_decl): New static variables.
(rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
and __atomic_feupdateenv for soft-float and no-FPRs.

From-SVN: r217040

9 years agomatch.pd: Add two abs patterns.
Richard Biener [Mon, 3 Nov 2014 12:59:47 +0000 (12:59 +0000)]
match.pd: Add two abs patterns.

2014-11-03  Richard Biener  <rguenther@suse.de>

* match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
* fold-const.c (fold_unary_loc): Remove them here.
(tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
* gimple-fold.c (fold_gimple_assign): Remove now obsolete
GIMPLE_UNARY_RHS case.
(gimple_fold_stmt_to_constant_1): Likewise.
(replace_stmt_with_simplification): Fix inverted comparison.

From-SVN: r217039

9 years agore PR c/52769 (Unspecified designated initializer might not set to zero in some cases)
Marek Polacek [Mon, 3 Nov 2014 12:35:35 +0000 (12:35 +0000)]
re PR c/52769 (Unspecified designated initializer might not set to zero in some cases)

PR c/52769
* gcc.dg/pr52769.c: New test.

From-SVN: r217036

9 years agore PR c++/57820 ([DR 253] NSDMI and const objects)
Paolo Carlini [Mon, 3 Nov 2014 10:49:05 +0000 (10:49 +0000)]
re PR c++/57820 ([DR 253] NSDMI and const objects)

2014-11-03  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/57820
* g++.dg/cpp0x/constexpr-ctor16.C: New.
* g++.dg/cpp0x/constexpr-ctor17.C: Likewise.

From-SVN: r217035

9 years agore PR tree-optimization/60770 (disappearing clobbers)
Marc Glisse [Mon, 3 Nov 2014 10:47:04 +0000 (11:47 +0100)]
re PR tree-optimization/60770 (disappearing clobbers)

2014-11-03  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/60770
gcc/
* tree-into-ssa.c (rewrite_update_stmt): Return whether the
statement should be removed.
(maybe_register_def): Likewise. Replace clobbers with default
definitions.
(rewrite_dom_walker::before_dom_children): Remove statement if
rewrite_update_stmt says so.
* tree-ssa-live.c: Include tree-ssa.h.
(set_var_live_on_entry): Do not mark undefined variables as live.
(verify_live_on_entry): Do not check undefined variables.
* tree-ssa.h (ssa_undefined_value_p): New parameter for the case
of partially undefined variables.
* tree-ssa.c (ssa_undefined_value_p): Likewise.
(execute_update_addresses_taken): Do not drop clobbers.

gcc/testsuite/
* gcc.dg/tree-ssa/pr60770-1.c: New file.

From-SVN: r217034

9 years agore PR tree-optimization/63666 (FAIL: gcc.dg/vect/pr45752.c (internal compiler error))
Marc Glisse [Mon, 3 Nov 2014 10:36:35 +0000 (11:36 +0100)]
re PR tree-optimization/63666 (FAIL: gcc.dg/vect/pr45752.c (internal compiler error))

2014-11-03  Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/63666
* fold-const.c: Include "optabs.h".
(fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
can_vec_perm_p permutation to one that is not.

From-SVN: r217033

9 years agox86: extend vect-args testcase to AVX flavors
Jan Beulich [Mon, 3 Nov 2014 09:18:51 +0000 (09:18 +0000)]
x86: extend vect-args testcase to AVX flavors

gcc/testsuite:
2014-11-03  Jan Beulich  <jbeulich@suse.com>

* gcc.target/i386/i386.exp: Extend option set to test
vect-args.c with to include -mavx, -mavx2, and -mavx512f.
* gcc.target/i386/vect-args.c: Add AVX* modes and tests.

From-SVN: r217032

9 years ago20010129-1.c: Compile with -mtune=i686 for ia32 targets only.
Uros Bizjak [Mon, 3 Nov 2014 08:30:21 +0000 (09:30 +0100)]
20010129-1.c: Compile with -mtune=i686 for ia32 targets only.

* gcc.c-torture/execute/20010129-1.c: Compile with -mtune=i686
for ia32 targets only.
* g++.dg/ext/attrib42.C: Compile for ia32 targets only.
* g++.dg/tree-ssa/pr29902.C: Ditto.
* g++.dg/cpp0x/gen-attrs-42.C: Ditto.

From-SVN: r217030

9 years agoifcvt.c (noce_try_store_flag_mask): Check rtx cost.
Zhenqiang Chen [Mon, 3 Nov 2014 06:36:11 +0000 (06:36 +0000)]
ifcvt.c (noce_try_store_flag_mask): Check rtx cost.

ChangeLog:
2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>

* ifcvt.c (noce_try_store_flag_mask): Check rtx cost.

testsuite/ChangeLog:
2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>

* gcc.target/arm/ifcvt-size-check.c: New test.

From-SVN: r217029

9 years ago[multiple changes]
Naveen H.S [Mon, 3 Nov 2014 05:13:43 +0000 (05:13 +0000)]
[multiple changes]

2014-10-31  Andrew Pinski  <apinski@cavium.com>

* config/mips/mips-cpus.def (octeon3): New cpu.
* config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
(mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
of the comparison no longer matches mode of the operands.
(mips_issue_rate): Handle PROCESSOR_OCTEON3.
* config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
(TARGET_OCTEON2): Likewise.
(TUNE_OCTEON): Add Octeon3.
* config/mips/mips.md (processor): Add octeon3.
* config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
(octeon_arith): Add octeon3.
(octeon_condmove): Remove.
(octeon_condmove_o1): New reservation.
(octeon_condmove_o2): New reservation.
(octeon_condmove_o3_int_on_cc): New reservation.
(octeon_load_o2): Add octeon3.
(octeon_cop_o2): Likewise.
(octeon_store): Likewise.
(octeon_brj_o2): Likewise.
(octeon_imul3_o2): Likewise.
(octeon_imul_o2): Likewise.
(octeon_mfhilo_o2): Likewise.
(octeon_imadd_o2): Likewise.
(octeon_idiv_o2_si): Likewise.
(octeon_idiv_o2_di): Likewise.
(octeon_fpu): Add to the automaton.
(octeon_fpu): New cpu unit.
(octeon_condmove_o2): Check for non floating point modes.
(octeon_load_o2): Add prefetchx.
(octeon_cop_o2): Don't check for octeon3.
(octeon3_faddsubcvt): New reservation.
(octeon3_fmul): Likewise.
(octeon3_fmadd): Likewise.
(octeon3_div_sf): Likewise.
(octeon3_div_df): Likewise.
(octeon3_sqrt_sf): Likewise.
(octeon3_sqrt_df): Likewise.
(octeon3_rsqrt_sf): Likewise.
(octeon3_rsqrt_df): Likewise.
(octeon3_fabsnegmov): Likewise.
(octeon_fcond): Likewise.
(octeon_fcondmov): Likewise.
(octeon_fpmtc1): Likewise.
(octeon_fpmfc1): Likewise.
(octeon_fpload): Likewise.
(octeon_fpstore): Likewise.
* config/mips/mips-tables.opt: Regenerate.
* doc/invoke.texi (-march=@var{arch}): Add octeon3.

2014-10-31  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

* gcc.target/mips/octeon3-pipe-1.c: New test.

From-SVN: r217028

9 years agoifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.
Zhenqiang Chen [Mon, 3 Nov 2014 03:20:30 +0000 (03:20 +0000)]
ifcvt.c (noce_emit_cmove, [...]): Allow CC mode if HAVE_cbranchcc4.

2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>

* ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
Allow CC mode if HAVE_cbranchcc4.

From-SVN: r217026

9 years agoCheck number of arguments in bind expressions.
Jonathan Wakely [Mon, 3 Nov 2014 02:55:36 +0000 (02:55 +0000)]
Check number of arguments in bind expressions.

* include/std/functional (_Mem_fn_traits_base::__arity): New typedef.
(_Mem_fn_base::_Arity): New typedef.
(_Bind_check_arity): New class template.
(_Bind_helper, _Bindres_helper, _Bind_simple_helper): Check arity.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.

From-SVN: r217025

9 years agoAdd support for ref-qualified functions to std::mem_fn
Jonathan Wakely [Mon, 3 Nov 2014 02:55:32 +0000 (02:55 +0000)]
Add support for ref-qualified functions to std::mem_fn

PR libstdc++/57898
* include/std/functional (_Mem_fn_traits_base): New class template.
(_Mem_fn_traits): New class template with specializations for every
combination of cv-qualified and ref-qualified member function.
(_Mem_fn_base): New class template for all pointer to member function
types and partial specialization for pointer to member object types.
(_Mem_fn): Inherit from _Mem_fn_base.
* testsuite/20_util/function_objects/mem_fn/refqual.cc: New.

From-SVN: r217024

9 years agoDaily bump.
GCC Administrator [Mon, 3 Nov 2014 00:16:29 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217023

9 years agogen-attrs-42.C: Add x86_64-*-* target.
Uros Bizjak [Sun, 2 Nov 2014 21:32:54 +0000 (22:32 +0100)]
gen-attrs-42.C: Add x86_64-*-* target.

* g++.dg/cpp0x/gen-attrs-42.C: Add x86_64-*-* target.
* g++.dg/ext/attrib42.C: Ditto.
* g++.dg/torture/pr51344.C: Ditto.
* g++.dg/tree-ssa/pr29902.C: Ditto.
* gcc.c-torture/execute/20010129-1.c: Ditto.
* gcc.dg/combine_ashiftrt_2.c: Ditto.
* gcc.dg/march-generic.c: Ditto.
* gcc.dg/torture/pr17526.c: Ditto.
* gcc.dg/union-4.c: Ditto.

From-SVN: r217020

9 years agoarc.c (write_ext_corereg_1): Delete.
Richard Sandiford [Sun, 2 Nov 2014 20:00:25 +0000 (20:00 +0000)]
arc.c (write_ext_corereg_1): Delete.

gcc/
* config/arc/arc.c (write_ext_corereg_1): Delete.
(arc_write_ext_corereg): Use FOR_EACH_SUBRTX.

From-SVN: r217019

9 years agoarc.c (arc600_corereg_hazard_1): Delete.
Richard Sandiford [Sun, 2 Nov 2014 20:00:19 +0000 (20:00 +0000)]
arc.c (arc600_corereg_hazard_1): Delete.

gcc/
* config/arc/arc.c (arc600_corereg_hazard_1): Delete.
(arc600_corereg_hazard): Use FOR_EACH_SUBRTX.

From-SVN: r217018

9 years agoarc.c (arc_rewrite_small_data_p): Constify argument.
Richard Sandiford [Sun, 2 Nov 2014 20:00:12 +0000 (20:00 +0000)]
arc.c (arc_rewrite_small_data_p): Constify argument.

gcc/
* config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
(small_data_pattern_1): Delete.
(small_data_pattern): Use FOR_EACH_SUBRTX.

From-SVN: r217017

9 years agoarc.c: Include rtl-iter.h.
Richard Sandiford [Sun, 2 Nov 2014 20:00:05 +0000 (20:00 +0000)]
arc.c: Include rtl-iter.h.

gcc/
* config/arc/arc.c: Include rtl-iter.h.
(arc_rewrite_small_data_1): Delete.
(arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.

From-SVN: r217016