Commit Graph

136921 Commits

Author SHA1 Message Date
Richard Biener b13c907ab3 tree-cfg.c (gimple_split_block): Remove loop finding stmt to split on.
2015-03-12  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (gimple_split_block): Remove loop finding stmt
	to split on.
	* omp-low.c (expand_omp_taskreg): Split block before removing
	the stmt.
	(expand_omp_target): Likewise.
	* ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
	* tree-parloops.c (create_call_for_reduction_1): Pass a proper
	stmt to split_block.

From-SVN: r221377
2015-03-12 08:48:32 +00:00
Tom de Vries cb599e7d76 Revert 'require nonpic target' for fuse-caller-save*.c
2015-03-12  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/64895
	* gcc.target/i386/fuse-caller-save-rec.c: Revert require nonpic target.
	* gcc.target/i386/fuse-caller-save-xmm.c: Ditto.
	* gcc.target/i386/fuse-caller-save.c: Ditto.

From-SVN: r221374
2015-03-12 08:01:24 +00:00
Tom de Vries da312b6e89 Add missing PR number
From-SVN: r221373
2015-03-12 07:08:12 +00:00
Tom de Vries 13d29cb010 Use actual_call_used_reg_set to find conflicting regs
2015-03-12  Tom de Vries  <tom@codesourcery.com>

	* lra-lives.c (check_pseudos_live_through_calls): Use
	actual_call_used_reg_set instead of call_used_reg_set, if available.

From-SVN: r221372
2015-03-12 06:59:34 +00:00
Jan Hubicka 2e5554fde3 * gcc.dg/ipa/pr63569.c: Fix template.
From-SVN: r221371
2015-03-12 03:48:59 +00:00
Sandra Loosemore 386adbf7c4 pr64146.C: Require fpic support.
2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* g++.dg/ipa/pr64146.C: Require fpic support.

From-SVN: r221370
2015-03-11 21:42:52 -04:00
GCC Administrator 4fddcfd796 Daily bump.
From-SVN: r221369
2015-03-12 00:16:12 +00:00
Jan Hubicka 1c4db82923 cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
* cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
	(cgraph_node::remove): Likewise.
	(cgraph_node::get_untransformed_body): Likewise.
	* varpool.c (varpool_node::remove): Likewise.
	(varpool_node::get_constructor): Add sanity check.
	* lto.c (read_cgraph_and_symbols): Do not do merging
	at ltrans stage.

From-SVN: r221366
2015-03-12 00:14:19 +00:00
Sandra Loosemore 8648c55f3b invoke.texi (-fgnu89-inline): Remove discussion about old GCC versions.
2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (-fgnu89-inline): Remove discussion about 
	old GCC versions.
	(-fabi-compat-version): Likewise.
	(-ffriend-injection): Likewise.
	(-Wdeclaration-after-statement): Likewise.
	(-fomit-frame-pointer): Likewise.
	(-ftree-coalesce-inlined-vars): Likewise.
	(-fvisibility=): Likewise.
	* doc/extend.texi (Typeof): Likewise.
	(Zero Length): Likewise.
	(Escaped Newlines): Likewise.
	(Compound Literals): Likewise.
	(Function Attributes): Likewise.
	(Label Attributes): Likewise.
	(Type Attributes): Likewise.
	(Function Names): Likewise.
	(Other Builtins): Likewise.
	(Function Specific Option Pragmas): Likewise.
	(C++ Interface): Likewise.

From-SVN: r221364
2015-03-11 19:11:19 -04:00
Thomas Schwinge 17abb5ac38 libgfortran LIBGFOR_MINIMAL enhancements.
Based on GCC trunk r220892, for nvptx-none:

                    === gfortran Summary ===

    # of expected passes            [-31320-]{+32117+}
    # of unexpected failures        [-7222-]{+6821+}
    # of expected failures          78
    # of unresolved testcases       [-6441-]{+6158+}
    # of untested testcases         [-432-]{+391+}
    # of unsupported tests          639

	libgfortran/
	* caf/single.c (caf_runtime_error): Revert 2014-11-28 changes.
	* runtime/minimal.c (STRERR_MAXSZ): Don't define.
	(runtime_error_at, sys_abort): Bring more in line with the
	non-LIBGFOR_MINIMAL code.
	(runtime_warning_at, internal_error): New functions.

From-SVN: r221363
2015-03-11 22:42:56 +01:00
Thomas Schwinge d94fae044d No libstdc++ for nvptx.
The C++ front end insists to link against libstdc++ -- which we don't build:

    $ < build-gcc/gcc/testsuite/g++/g++.log grep -o 'error opening [^[:cntrl:]]*' | sort | uniq -c
          2 error opening libasan.a
          2 error opening libssp.a
      12075 error opening libstdc++.a

Based on GCC trunk r220892:

                    === g++ Summary ===

    # of expected passes            [-63221-]{+68841+}
    # of unexpected failures        [-11751-]{+8764+}
    # of unexpected successes       6
    # of expected failures          [-246-]{+249+}
    # of unresolved testcases       [-5950-]{+3353+}
    # of unsupported tests          [-4160-]{+4143+}

	gcc/
	* config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".

From-SVN: r221362
2015-03-11 22:42:50 +01:00
Janne Blomqvist 6234b5433f PR 65200 Handle EPERM in addition to EACCES.
gcc/fortran ChangeLog:

2015-03-11  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/65200
	* gfortran.texi: Document behavior when opening files without
	explicit ACTION= specifier.

libgfortran ChangeLog:

2015-03-11  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/65200
	* io/open.c (new_unit): Use gf_strerror rather than hardcoding
	error messages for different errno values.
	* io/unix.c (regular_file2): Handle EPERM in addition to EACCES.

gcc/testsuite ChangeLog:

2015-03-11  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libfortran/65200
	* gfortran.dg/open_errors.f90: Update checks for iomsg string.
	* gfortran.dg/open_new_segv.f90: Fix error message pattern.

From-SVN: r221361
2015-03-11 23:34:22 +02:00
Marek Polacek 707550e43e re PR tree-optimization/65388 (Wrong comparison in same_succ_def::equal() tree-ssa-tail-merge.c:590)
PR tree-optimization/65388
	* tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.

From-SVN: r221359
2015-03-11 20:36:56 +00:00
Jakub Jelinek 17958621a2 c-parser.c (c_parse_init): Don't call xstrdup on get_identifier argument.
* c-parser.c (c_parse_init): Don't call xstrdup on get_identifier
	argument.

	* c-common.c (c_common_nodes_and_builtins): Don't call xstrdup
	on record_builtin_type argument.

From-SVN: r221358
2015-03-11 20:51:55 +01:00
Jakub Jelinek 9cd4d216e9 no-asan-check-glob.c: Add -ffat-lto-objects to dg-options, fix up dg-skip-if.
* c-c++-common/asan/no-asan-check-glob.c: Add -ffat-lto-objects
	to dg-options, fix up dg-skip-if.

From-SVN: r221357
2015-03-11 20:49:56 +01:00
Bernd Edlinger 563fb64a57 tsan_rtl_report.cc (ScopedReport::AddThread): Cherry pick upstream 224508 and 224755.
2015-03-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * tsan/tsan_rtl_report.cc (ScopedReport::AddThread): Cherry pick
        upstream 224508 and 224755.

From-SVN: r221356
2015-03-11 19:20:03 +00:00
Georg-Johann Lay 0c9dc4ae59 re PR target/65296 ([avr] fix various issues with specs file generation)
gcc/
	PR target/65296
	* configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
	* configure: Regenerate.
	* config.in: Regenerate.
	* doc/invoke.texi (AVR Options) [-mrmw]: Document it.
	[-mn-flash]: Document it.
	[__AVR_ARCH__]: Document avrtiny.
	* config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
	(*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
	(*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
gcc/testsuite/
	PR target/65296
	* gcc.target/avr/tiny-memx: Use -mmcu instead of -march.
	* gcc.target/avr/tiny-caller-save.c: Same.

From-SVN: r221355
2015-03-11 18:51:09 +00:00
Andreas Krebbel 91d4a5ea68 S/390: Doc: Add missing cpu values z196, zEC12.
* doc/invoke.texi: Add missing cpu values (z196, zEC12).

From-SVN: r221353
2015-03-11 18:35:44 +00:00
Michael Meissner befe199770 re PR target/65242 (ICE (in gen_add2_insn, at optabs.c:4761) on powerpc64le-linux-gnu)
[gcc]
2015-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65242
	* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
	allow reloads of PLUS in floating point/VSX registers.

[gcc/testsuite]
2015-03-09  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65242
	* g++.dg/pr65242.C: New test.

From-SVN: r221350
2015-03-11 16:57:41 +00:00
Junmo Park 4c3e13dfa2 Add missing definition crypto_sha256_fast, crypto_sha256_slow
2015-03-11  Junmo Park  <junmoz.park@samsung.com>

	* config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add crypto_sha256_fast.
	(cortex_a57_crypto_complex): Add crypto_sha256_slow.

From-SVN: r221349
2015-03-11 16:53:07 +00:00
Richard Biener 474b3a7c49 re PR tree-optimization/65310 (vectorizer uses wrong alignment)
2015-03-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/65310
	* tree-sra.c (build_ref_for_offset): Also preserve larger
	alignment.

From-SVN: r221348
2015-03-11 15:09:51 +00:00
Aldy Hernandez 25de0a29fb cp-gimplify.c (simple_empty_class_p): New.
* cp-gimplify.c (simple_empty_class_p): New.
	* cp-gimplify.c (cp_gimplify_expr): Handle RETURN_EXPR.  Abstract
	the code for empty class copies into simple_empty_class_p, and
	adapt it to handle COMPOUND_EXPRs.

From-SVN: r221347
2015-03-11 15:01:37 +00:00
Marat Zakirov 6b98fab5f1 asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>

	* asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
	* c-c++-common/asan/no-asan-check-glob.c: New test.

From-SVN: r221345
2015-03-11 07:39:20 +00:00
GCC Administrator df4893c390 Daily bump.
From-SVN: r221342
2015-03-11 00:16:13 +00:00
Paolo Carlini 58cbf8d4dc re PR c++/65370 (r213519 causes: error: redeclaration of 'template... may not have default arguments [-fpermissive])
/cp
2015-03-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65370
	* decl.c (duplicate_decls): Call check_redeclaration_no_default_args
	only if the location of newdecl doesn't match the location of olddecl.

/testsuite
2015-03-10  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65370
	* g++.dg/other/default11.C: New.
	* g++.dg/other/default12.C: Likewise.

From-SVN: r221337
2015-03-10 22:20:41 +00:00
Jakub Jelinek 2d977ff983 re PR target/65368 (_bzhi_u32 intrinsic generates incorrect code when -O1 or above is specified and index is an immediate)
PR target/65368
	* config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
	new define_expand.
	(*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.

	* gcc.target/i386/bmi2-bzhi-2.c: New test.

From-SVN: r221335
2015-03-10 22:03:21 +01:00
Paul Thomas 48188959fd re PR fortran/65024 ([OOP] unlimited polymorphic pointer structure not built when it should be)
2015-03-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/65024
	* trans-expr.c (gfc_conv_component_ref): If the component
	backend declaration is missing and the derived type symbol is
	available in the reference, call gfc_build_derived_type.

2015-03-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/65024
	* gfortran.dg/unlimited_polymorphic_23.f90: New test

From-SVN: r221334
2015-03-10 19:39:05 +00:00
Jakub Jelinek 704c79040a re PR c++/65127 (internal compiler error: tree check: expected tree that contains 'decl minimal' structure, have 'addr_expr' in parsing_nsdmi, at cp/parser.c:18311)
PR c++/65127
	* parser.c (parsing_nsdmi): Don't return true if current_class_ptr
	is not a PARM_DECL.

	* g++.dg/cpp0x/pr65127.C: New test.

From-SVN: r221332
2015-03-10 20:10:43 +01:00
Jan Hubicka 1574ecc09c * gcc.dg/ipa/PR64550.c: Update template.
From-SVN: r221331
2015-03-10 18:43:44 +00:00
Tim Shen 84839a5140 re PR libstdc++/64441 (A match_results returns an incorrect sub_match if the sub_match::matched is false)
PR libstdc++/64441
	* include/bits/regex.h (match_results<>::size,
	match_results<>::position, match_results<>::str,
	match_results<>::operator[], match_results<>::prefix,
	match_results<>::suffix, match_results<>::end,
	match_results<>::_M_resize, match_results<>::_M_unmatched_sub,
	match_results<>::_M_prefix, match_results<>::_M_suffix): Remove
	global __unmatched_sub. Add unmatched submatch as part of
	match_results.
	* include/bits/regex.tcc (__regex_algo_impl<>, regex_replace<>,
	regex_iterator<>::operator++): Adjust to use match_results::_M_prefix.
	* testsuite/28_regex/match_results/out_of_range_submatches.cc:
	New testcases.

From-SVN: r221330
2015-03-10 18:41:46 +00:00
Alessandro Fanfarillo 9315dff064 trans.h (caf_sync_memory): New function decl tree.
2015-03-10  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
            Tobias Burnus  <burnus@net-b.de>

        * trans.h (caf_sync_memory): New function decl tree.
        * trans-decl.c (gfc_build_builtin_function_decls): Define it.
        (create_main_function): Don't call sync_synchronize and leave
        it to the CAF library.
        * trans-stmt.c (gfc_trans_stop): Ditto.
        (gfc_trans_sync): Ditto; add call library call for sync memory.

        * gfortran.dg/coarray_sync_memory.f90: New.

        * caf/libcaf.h (_gfortran_caf_sync_memory): New prototype.
        * caf/single.c (_gfortran_caf_sync_memory): Implement.
        (_gfortran_caf_sync_all, _gfortran_caf_sync_image): Add
        __asm__ __volatile___ ("":::"memory").


Co-Authored-By: Tobias Burnus <burnus@net-b.de>

From-SVN: r221329
2015-03-10 18:58:01 +01:00
Jason Merrill a4d66d7dc7 re PR c++/65333 (error: incomplete type used in nested name specifier)
PR c++/65333
	DR 1558
	* pt.c (dependent_type_p_r): Check both class and alias template args.

From-SVN: r221328
2015-03-10 13:44:48 -04:00
Jan Hubicka c42345448f ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
* ipa-icf.c (sem_function::equals_wpa): Move here some checks
	from ...
	(sem_function::equals_wpa): ... here.

From-SVN: r221327
2015-03-10 17:21:34 +00:00
Aldy Hernandez fc30054eff re PR bootstrap/25672 (cross build's libgcc picks up CFLAGS)
PR bootstrap/25672
	* configure.ac: Do not initialize CFLAGS_FOR_TARGET from CFLAGS if
	cross-compiling.  Similarly for CXX_FOR_TARGET.
	* configure: Regenerate.

From-SVN: r221326
2015-03-10 16:37:53 +00:00
Marek Polacek 0757674c83 re PR sanitizer/65367 (indefinite loop occurs with sanitize enabled and certain optimization options)
PR sanitizer/65367
	* ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
	when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
	separately.

	* c-c++-common/ubsan/pr65367.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r221325
2015-03-10 15:57:45 +00:00
Jakub Jelinek dac2639d6d re PR target/65286 (When building on powerpc64le-unknown-linux-gnu, --disable-multilib must be used)
PR target/65286
	* config/rs6000/t-linux: For powerpc64* target set
	MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.

From-SVN: r221322
2015-03-10 14:43:44 +01:00
Richard Biener c692785982 re PR ipa/44563 (GCC uses a lot of RAM when compiling a large numbers of functions)
2015-03-09  Richard Biener  <rguenther@suse.de>

	PR middle-end/44563
	* tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
	for redirect_all_calls.

From-SVN: r221321
2015-03-10 12:44:01 +00:00
Marek Polacek 2e1a9cdb64 * gdbinit.in (pcfun): Define and document.
From-SVN: r221320
2015-03-10 12:32:09 +00:00
Ilya Verbin 3009434489 Fix search path in intelmic-mkoffload for empty COLLECT_GCC.
gcc/
	* config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
	of libgomp-plugin.h.
	(find_target_compiler): Support a case when the path to gcc is specified
	in the PATH env var, so COLLECT_GCC doesn't contain a path.
	(generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
	intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
	libgomp-plugin.h.
	(main): Use GCC_INSTALL_NAME as target_driver_name.
	* config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
	define.
	(mkoffload.o): Remove obsolete include path and defines.
	(mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).

From-SVN: r221319
2015-03-10 12:23:27 +00:00
Richard Biener a563c28692 re PR middle-end/63155 (memory hog)
2015-03-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/63155
	* tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
	* tree-ssa-coalesce.c: Include timevar.h.
	(attempt_coalesce): Handle graph being NULL.
	(coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
	Split out abnormal coalescing to ...
	(perform_abnormal_coalescing): ... this function.
	(coalesce_ssa_name): Perform abnormal coalescing without computing
	live/conflict.
	(verify_ssa_coalescing_worker): New function.
	(verify_ssa_coalescing): Likewise.

From-SVN: r221318
2015-03-10 11:16:33 +00:00
Georg-Johann Lay 77d68d9796 Typo
From-SVN: r221317
2015-03-10 09:56:07 +00:00
Georg-Johann Lay 4a2caf6ced re PR target/65296 ([avr] fix various issues with specs file generation)
PR target/65296
	* config.gcc (extra_options) [avr]: Remove.
	(extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
	(tm_file) [avr]: Add avr/specs.h after avr/avr.h.
	(tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
	* config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
	(-mmcu=): Add Var and MissingArgError properties.
	(-march=): Remove.
	* config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
	* config/avr/t-multilib: Regenerate.
	* config/avr/specs.h: New file.
	* config/avr/driver-avr.c: New file.
	* config/avr/genopt.sh: Remove file.
	* config/avr/avr-tables.opt: Remove file.
	* config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
	* config/avr/avr-c.c: Same.
	* avr-arch.h: Same.
	(avr_current_device): Remove proto.
	* config/avr/avr.h (avr_current_arch): Rename to avr_arch.
	(AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
	(EXTRA_SPEC_FUNCTIONS): Define.
	(avr_devicespecs_file): New specs function proto.
	(DRIVER_SELF_SPECS): Use device-specs-file spec function.
	* config/avr/avr.c (avr_current_arch): Rename to avr_arch.
	(avr_current_device): Remove definition and usage.
	(avr_set_core_architecture): New static function.
	(avr_option_override): Use it.
	* config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
	(mcu_name): New static array.
	(comparator, avr_archs_str, avr_mcus_str): New static functions.
	(avr_inform_devices, avr_inform_core_architectures): New functions.
	* config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
	(avrlibc.h) [WITH_AVRLIBC]: Include.
	(../rtems.h, rtems.h) [WITH_RTEMS]: Include.
	(print_mcu): Rewrite from scratch.
	* config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
	Forward to avr-specific specs defined in device-specs file.
	* config/avr/t-avr (driver-avr.o): New rule.
	(avr-devices.o): Depend on avr-arch.h.
	(avr-mcus): No more depend on avr-tables.opt.
	(avr-tables.opt): Remove rule.
	(install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.

From-SVN: r221316
2015-03-10 09:50:41 +00:00
Ilya Enkovich 768fbdd49e mpx-dg.exp (mpx_link_flags): Set path to wrappers library.
* lib/mpx-dg.exp (mpx_link_flags): Set path to wrappers library.
	* gcc.target/i386/mpx/calloc-1-lbv.c: New.
	* gcc.target/i386/mpx/calloc-1-ubv.c: New.
	* gcc.target/i386/mpx/calloc-1-nov.c: New.
	* gcc.target/i386/mpx/malloc-1-lbv.c: New.
	* gcc.target/i386/mpx/malloc-1-nov.c: New.
	* gcc.target/i386/mpx/malloc-1-ubv.c: New.
	* gcc.target/i386/mpx/realloc-1-lbv.c: New.
	* gcc.target/i386/mpx/realloc-1-nov.c: New.
	* gcc.target/i386/mpx/realloc-1-ubv.c: New.
	* gcc.target/i386/mpx/realloc-2-lbv.c: New.
	* gcc.target/i386/mpx/realloc-2-nov.c: New.
	* gcc.target/i386/mpx/realloc-2-ubv.c: New.

From-SVN: r221315
2015-03-10 09:48:51 +00:00
Ilya Enkovich 226d62d2d1 c.opt (fchkp-use-wrappers): New.
* c-family/c.opt (fchkp-use-wrappers): New.
	* ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
	(chkp_wrap_function): New.
	(chkp_build_instrumented_fndecl): Support wrapped
	functions.
	* doc/invoke.texi (-fcheck-pointer-bounds): New.
	(-fchkp-check-incomplete-type): 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.
	(-fchkp-use-wrappers): New.
	(-static-libmpx): New.
	(-static-libmpxwrappers): New.

From-SVN: r221314
2015-03-10 09:46:11 +00:00
Ilya Enkovich d2d7e672ad linux-common.h (LIBMPX_WRAPPERSSPEC): New.
gcc/

	* config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
	(CHKP_SPEC): Add wrappers library.
	* c-family/c.opt (static-libmpxwrappers): New.

libmpx/

	* Makefile.am (SUBDIRS): Add mpxwrap when used
	AS supports MPX.
	(MAKEOVERRIDES): New.
	* Makefile.in: Regenerate.
	* configure.ac: Check AS supports MPX.  Add
	mpxintr/Makefile to config files.
	* configure: Regenerate.
	* mpxwrap/Makefile.am: New.
	* mpxwrap/Makefile.in: New.
	* mpxwrap/libtool-version: New.
	* mpxwrap/mpx_wrappers.cc: New.
	* mpxwrap/libmpxwrappers.map: New.

From-SVN: r221313
2015-03-10 09:43:24 +00:00
Ilya Enkovich ee8f136a72 mpx-dg.exp (mpx_link_flags): New.
gcc/testsuites/

	* gcc/testsuite/lib/mpx-dg.exp (mpx_link_flags): New.
	(mpx_init): New.
	(mpx_finish): New.
	* gcc.target/i386/mpx/alloca-1-lbv.c: New.
	* gcc.target/i386/mpx/alloca-1-nov.c: New.
	* gcc.target/i386/mpx/alloca-1-ubv.c: New.
	* gcc.target/i386/mpx/arg-addr-1-lbv.c: New.
	* gcc.target/i386/mpx/arg-addr-1-nov.c: New.
	* gcc.target/i386/mpx/arg-addr-1-ubv.c: New.
	* gcc.target/i386/mpx/bitfields-1-lbv.c: New.
	* gcc.target/i386/mpx/bitfields-1-nov.c: New.
	* gcc.target/i386/mpx/bitfields-1-ubv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-lbv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-nov.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-ubv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-2.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-1-lbv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-1-nov.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-2.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-1-nov.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-1-ubv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-2.c: New.
	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-1.c: New.
	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-lbv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-nov.c: New.
	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-ubv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-3.c: New.
	* gcc.target/i386/mpx/builtin-bnd-get-ptr-lbound-1.c: New.
	* gcc.target/i386/mpx/builtin-bnd-get-ptr-lbound-2.c: New.
	* gcc.target/i386/mpx/builtin-bnd-get-ptr-ubound-1.c: New.
	* gcc.target/i386/mpx/builtin-bnd-get-ptr-ubound-2.c: New.
	* gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-1.c: New.
	* gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-2-nov.c: New.
	* gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-3.c: New.
	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-1.c: New.
	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-lbv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-nov.c: New.
	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-ubv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-lbv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-nov.c: New.
	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-ubv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-4.c: New.
	* gcc.target/i386/mpx/builtin-bnd-null-ptr-bounds-1-bbv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-1.c: New.
	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-lbv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-nov.c: New.
	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-ubv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-3.c: New.
	* gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-lbv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-nov.c: New.
	* gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-ubv.c: New.
	* gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-2.c: New.
	* gcc.target/i386/mpx/fastcall-1-lbv.c: New.
	* gcc.target/i386/mpx/fastcall-1-nov.c: New.
	* gcc.target/i386/mpx/fastcall-1-ubv.c: New.
	* gcc.target/i386/mpx/fastcall-2-lbv.c: New.
	* gcc.target/i386/mpx/fastcall-2-nov.c: New.
	* gcc.target/i386/mpx/fastcall-2-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-1-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-1-nov.c: New.
	* gcc.target/i386/mpx/field-addr-1-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-10-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-10-nov.c: New.
	* gcc.target/i386/mpx/field-addr-10-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-2-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-2-nov.c: New.
	* gcc.target/i386/mpx/field-addr-2-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-3-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-3-nov.c: New.
	* gcc.target/i386/mpx/field-addr-3-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-4-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-4-nov.c: New.
	* gcc.target/i386/mpx/field-addr-4-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-5-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-5-nov.c: New.
	* gcc.target/i386/mpx/field-addr-5-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-6-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-6-nov.c: New.
	* gcc.target/i386/mpx/field-addr-6-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-7-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-7-nov.c: New.
	* gcc.target/i386/mpx/field-addr-7-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-8-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-8-nov.c: New.
	* gcc.target/i386/mpx/field-addr-8-ubv.c: New.
	* gcc.target/i386/mpx/field-addr-9-lbv.c: New.
	* gcc.target/i386/mpx/field-addr-9-nov.c: New.
	* gcc.target/i386/mpx/field-addr-9-ubv.c: New.
	* gcc.target/i386/mpx/frame-address-1-nov.c: New.
	* gcc.target/i386/mpx/hard-reg-1-nov.c: New.
	* gcc.target/i386/mpx/if-stmt-1-lbv.c: New.
	* gcc.target/i386/mpx/if-stmt-1-nov.c: New.
	* gcc.target/i386/mpx/if-stmt-1-ubv.c: New.
	* gcc.target/i386/mpx/if-stmt-2-lbv.c: New.
	* gcc.target/i386/mpx/if-stmt-2-nov.c: New.
	* gcc.target/i386/mpx/if-stmt-2-ubv.c: New.
	* gcc.target/i386/mpx/label-address-1.c: New.
	* gcc.target/i386/mpx/legacy-1-nov.c: New.
	* gcc.target/i386/mpx/macro.c: New.
	* gcc.target/i386/mpx/mpx-check.h: New.
	* gcc.target/i386/mpx/mpx.exp: New.
	* gcc.target/i386/mpx/nested-function-1-lbv.c: New.
	* gcc.target/i386/mpx/nested-function-1-nov.c: New.
	* gcc.target/i386/mpx/nested-function-1-ubv.c: New.
	* gcc.target/i386/mpx/pointer-arg-1-lbv.c: New.
	* gcc.target/i386/mpx/pointer-arg-1-nov.c: New.
	* gcc.target/i386/mpx/pointer-arg-1-ubv.c: New.
	* gcc.target/i386/mpx/pointer-arg-2-lbv.c: New.
	* gcc.target/i386/mpx/pointer-arg-2-nov.c: New.
	* gcc.target/i386/mpx/pointer-arg-2-ubv.c: New.
	* gcc.target/i386/mpx/pointer-arg-3-lbv.c: New.
	* gcc.target/i386/mpx/pointer-arg-3-nov.c: New.
	* gcc.target/i386/mpx/pointer-arg-3-ubv.c: New.
	* gcc.target/i386/mpx/pointer-arg-4-lbv.c: New.
	* gcc.target/i386/mpx/pointer-arg-4-nov.c: New.
	* gcc.target/i386/mpx/pointer-arg-4-ubv.c: New.
	* gcc.target/i386/mpx/pointer-arg-5-lbv.c: New.
	* gcc.target/i386/mpx/pointer-arg-5-nov.c: New.
	* gcc.target/i386/mpx/pointer-arg-5-ubv.c: New.
	* gcc.target/i386/mpx/pointer-store-1-lbv.c: New.
	* gcc.target/i386/mpx/pointer-store-1-nov.c: New.
	* gcc.target/i386/mpx/pointer-store-1-ubv.c: New.
	* gcc.target/i386/mpx/reference-1-lbv.c: New.
	* gcc.target/i386/mpx/reference-1-nov.c: New.
	* gcc.target/i386/mpx/reference-1-ubv.c: New.
	* gcc.target/i386/mpx/reference-2-lbv.c: New.
	* gcc.target/i386/mpx/reference-2-nov.c: New.
	* gcc.target/i386/mpx/reference-2-ubv.c: New.
	* gcc.target/i386/mpx/reference-3-lbv.c: New.
	* gcc.target/i386/mpx/reference-3-nov.c: New.
	* gcc.target/i386/mpx/reference-3-ubv.c: New.
	* gcc.target/i386/mpx/reference-4-lbv.c: New.
	* gcc.target/i386/mpx/reference-4-nov.c: New.
	* gcc.target/i386/mpx/reference-4-ubv.c: New.
	* gcc.target/i386/mpx/return-pointer-1-lbv.c: New.
	* gcc.target/i386/mpx/return-pointer-1-nov.c: New.
	* gcc.target/i386/mpx/return-pointer-1-ubv.c: New.
	* gcc.target/i386/mpx/return-struct-1-lbv.c: New.
	* gcc.target/i386/mpx/return-struct-1-nov.c: New.
	* gcc.target/i386/mpx/return-struct-1-ubv.c: New.
	* gcc.target/i386/mpx/return-struct-2-lbv.c: New.
	* gcc.target/i386/mpx/return-struct-2-nov.c: New.
	* gcc.target/i386/mpx/return-struct-2-ubv.c: New.
	* gcc.target/i386/mpx/return-struct-3-lbv.c: New.
	* gcc.target/i386/mpx/return-struct-3-nov.c: New.
	* gcc.target/i386/mpx/return-struct-3-ubv.c: New.
	* gcc.target/i386/mpx/return-struct-4-lbv.c: New.
	* gcc.target/i386/mpx/return-struct-4-nov.c: New.
	* gcc.target/i386/mpx/return-struct-4-ubv.c: New.
	* gcc.target/i386/mpx/return-struct-5-lbv.c: New.
	* gcc.target/i386/mpx/return-struct-5-nov.c: New.
	* gcc.target/i386/mpx/return-struct-5-ubv.c: New.
	* gcc.target/i386/mpx/return-struct-6-lbv.c: New.
	* gcc.target/i386/mpx/return-struct-6-nov.c: New.
	* gcc.target/i386/mpx/return-struct-6-ubv.c: New.
	* gcc.target/i386/mpx/sincos-1-nov.c: New.
	* gcc.target/i386/mpx/static-array-1-lbv.c: New.
	* gcc.target/i386/mpx/static-array-1-nov.c: New.
	* gcc.target/i386/mpx/static-array-1-ubv.c: New.
	* gcc.target/i386/mpx/static-init-1-lbv.c: New.
	* gcc.target/i386/mpx/static-init-1-nov.c: New.
	* gcc.target/i386/mpx/static-init-1-ubv.c: New.
	* gcc.target/i386/mpx/static-init-2-lbv.c: New.
	* gcc.target/i386/mpx/static-init-2-nov.c: New.
	* gcc.target/i386/mpx/static-init-2-ubv.c: New.
	* gcc.target/i386/mpx/static-init-3-lbv.c: New.
	* gcc.target/i386/mpx/static-init-3-nov.c: New.
	* gcc.target/i386/mpx/static-init-3-ubv.c: New.
	* gcc.target/i386/mpx/static-init-4-lbv.c: New.
	* gcc.target/i386/mpx/static-init-4-nov.c: New.
	* gcc.target/i386/mpx/static-init-4-ubv.c: New.
	* gcc.target/i386/mpx/static-init-5-lbv.c: New.
	* gcc.target/i386/mpx/static-init-5-nov.c: New.
	* gcc.target/i386/mpx/static-init-5-ubv.c: New.
	* gcc.target/i386/mpx/static-init-6-lbv.c: New.
	* gcc.target/i386/mpx/static-init-6-nov.c: New.
	* gcc.target/i386/mpx/static-init-6-ubv.c: New.
	* gcc.target/i386/mpx/static-string-1-lbv.c: New.
	* gcc.target/i386/mpx/static-string-1-nov.c: New.
	* gcc.target/i386/mpx/static-string-1-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-1-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-1-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-1-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-10-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-10-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-10-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-2-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-2-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-2-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-3-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-3-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-3-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-4-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-4-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-4-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-5-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-5-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-5-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-6-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-6-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-6-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-7-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-7-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-7-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-8-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-8-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-8-ubv.c: New.
	* gcc.target/i386/mpx/struct-arg-9-lbv.c: New.
	* gcc.target/i386/mpx/struct-arg-9-nov.c: New.
	* gcc.target/i386/mpx/struct-arg-9-ubv.c: New.
	* gcc.target/i386/mpx/struct-copy-1-lbv.c: New.
	* gcc.target/i386/mpx/struct-copy-1-nov.c: New.
	* gcc.target/i386/mpx/struct-copy-1-ubv.c: New.
	* gcc.target/i386/mpx/struct-copy-2-lbv.c: New.
	* gcc.target/i386/mpx/struct-copy-2-nov.c: New.
	* gcc.target/i386/mpx/struct-copy-2-ubv.c: New.
	* gcc.target/i386/mpx/thread-local-var-1-lbv.c: New.
	* gcc.target/i386/mpx/thread-local-var-1-nov.c: New.
	* gcc.target/i386/mpx/thread-local-var-1-ubv.c: New.
	* gcc.target/i386/mpx/union-arg-1-lbv.c: New.
	* gcc.target/i386/mpx/union-arg-1-nov.c: New.
	* gcc.target/i386/mpx/union-arg-1-ubv.c: New.
	* gcc.target/i386/mpx/va-arg-pack-1-lbv.c: New.
	* gcc.target/i386/mpx/va-arg-pack-1-nov.c: New.
	* gcc.target/i386/mpx/va-arg-pack-1-ubv.c: New.
	* gcc.target/i386/mpx/va-arg-pack-2-lbv.c: New.
	* gcc.target/i386/mpx/va-arg-pack-2-nov.c: New.
	* gcc.target/i386/mpx/va-arg-pack-2-ubv.c: New.
	* gcc.target/i386/mpx/vararg-1-lbv.c: New.
	* gcc.target/i386/mpx/vararg-1-nov.c: New.
	* gcc.target/i386/mpx/vararg-1-ubv.c: New.
	* gcc.target/i386/mpx/vararg-2-lbv.c: New.
	* gcc.target/i386/mpx/vararg-2-nov.c: New.
	* gcc.target/i386/mpx/vararg-2-ubv.c: New.
	* gcc.target/i386/mpx/vararg-3-lbv.c: New.
	* gcc.target/i386/mpx/vararg-3-nov.c: New.
	* gcc.target/i386/mpx/vararg-3-ubv.c: New.
	* gcc.target/i386/mpx/vararg-4-lbv.c: New.
	* gcc.target/i386/mpx/vararg-4-nov.c: New.
	* gcc.target/i386/mpx/vararg-4-ubv.c: New.
	* gcc.target/i386/mpx/vararg-5-lbv.c: New.
	* gcc.target/i386/mpx/vararg-5-nov.c: New.
	* gcc.target/i386/mpx/vararg-5-ubv.c: New.
	* gcc.target/i386/mpx/vararg-6-lbv.c: New.
	* gcc.target/i386/mpx/vararg-6-nov.c: New.
	* gcc.target/i386/mpx/vararg-6-ubv.c: New.
	* gcc.target/i386/mpx/vararg-7-lbv.c: New.
	* gcc.target/i386/mpx/vararg-7-nov.c: New.
	* gcc.target/i386/mpx/vararg-7-ubv.c: New.
	* gcc.target/i386/mpx/vararg-8-lbv.c: New.
	* gcc.target/i386/mpx/vararg-8-nov.c: New.
	* gcc.target/i386/mpx/vararg-8-ubv.c: New.
	* gcc.target/i386/mpx/vla-1-lbv.c: New.
	* gcc.target/i386/mpx/vla-1-nov.c: New.
	* gcc.target/i386/mpx/vla-1-ubv.c: New.
	* gcc.target/i386/mpx/vla-2-lbv.c: New.
	* gcc.target/i386/mpx/vla-2-nov.c: New.
	* gcc.target/i386/mpx/vla-2-ubv.c: New.

From-SVN: r221312
2015-03-10 09:39:59 +00:00
Ilya Enkovich 5373cd33a8 Makefile.def: Add libmpx.
* Makefile.def: Add libmpx.
	* configure.ac: Add libmpx.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

gcc/

	* config/i386/linux-common.h (LIBMPX_LIBS): New.
	(LIBMPX_SPEC): New.
	(CHKP_SPEC): New.
	* gcc.c (CHKP_SPEC): New.
	(LINK_COMMAND_SPEC): Add CHKP_SPEC.
	* c-family/c.opt (static-libmpx): New.

libmpx/

	Initial commit.

From-SVN: r221311
2015-03-10 09:37:41 +00:00
James Greenhalgh 5a43417885 [Patch testsuite] Further reduce the alignment in gcc.dg/vect/pr65310.c
gcc/testsuite/

	* gcc.dg/vect/pr65310.c (c): Reduce alignment to 4-bytes.

From-SVN: r221310
2015-03-10 09:29:04 +00:00
Oleg Endo fe7ac5039d pr54680.c: Add -fno-ipa-icf option.
gcc/testsuite:
	* gcc.target/sh/pr54680.c: Add -fno-ipa-icf option.

From-SVN: r221309
2015-03-10 08:53:05 +00:00
Richard Biener 40ff136498 re PR ipa/44563 (GCC uses a lot of RAM when compiling a large numbers of functions)
2015-03-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/44563
	* cgraph.h (struct cgraph_edge_hasher): Add hash overload
	for compare_type.
	* cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
	(cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
	(cgraph_add_edge_to_call_site_hash): Likewise.
	(cgraph_node::get_edge): Likewise.
	(cgraph_edge::set_call_stmt): Likewise.
	(cgraph_edge::remove_caller): Likewise.

From-SVN: r221308
2015-03-10 08:25:31 +00:00