1. 02 Mar, 2019 1 commit
    • RISC-V: Generalize -march support, add ELF attribute support. · 8e966210
      	Kito Cheng  <kito.cheng@gmail.com>
      	Monk Chiang  <sh.chiang04@gmail.com>
      
      	gcc/
      	* common/config/riscv/riscv-common.c: Include sstream.
      	(riscv_subset_list::to_string): New.
      	(riscv_arch_str): Likewise.
      	* config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
      	* config.in: Regen.
      	* config/riscv/riscv-protos.h (riscv_arch_str): New.
      	* config/riscv/riscv.c (INCLUDE_STRING): Defined.
      	(riscv_emit_attribute): New.
      	(riscv_file_start): Emit attribute if needed.
      	(riscv_option_override): Init riscv_emit_attribute_p.
      	* config/riscv/riscv.opt (mriscv-attribute): New option.
      	* configure.ac (riscv*-*-*): Check binutils is supporting ELF
      	* configure: Regen.
      	* doc/install.texi: Document --with-riscv-attribute.
      	* doc/invoke.texi: Document -mriscv-attribute.
      
      	* common/config/riscv/riscv-common.c:
      	Include config/riscv/riscv-protos.h.
      	(INCLUDE_STRING): Defined.
      	(RISCV_DONT_CARE_VERSION): Defined.
      	(riscv_subset_t): Declare.
      	(riscv_subset_t::riscv_subset_t): New.
      	(riscv_subset_list): Declare.
      	(riscv_subset_list::riscv_subset_list): New.
      	(riscv_subset_list::~riscv_subset_list): Likewise.
      	(riscv_subset_list::parsing_subset_version): Likewise.
      	(riscv_subset_list::parse_std_ext): Likewise.
      	(riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
      	(riscv_subset_list::add): Likewise.
      	(riscv_subset_list::lookup): Likewise.
      	(riscv_subset_list::xlen): Likewise.
      	(riscv_subset_list::parse): Likewise.
      	(riscv_supported_std_ext): Likewise.
      	(current_subset_list): Likewise.
      	(riscv_parse_arch_string): Using riscv_subset_list::parse to
      	parse.
      
      	gcc/testsuite/
      	* gcc.target/riscv/attribute-1.c: New.
      	* gcc.target/riscv/attribute-2.c: Likewise.
      	* gcc.target/riscv/attribute-3.c: Likewise.
      	* gcc.target/riscv/attribute-4.c: Likewise.
      	* gcc.target/riscv/attribute-5.c: Likewise.
      	* gcc.target/riscv/attribute-6.c: Likewise.
      	* gcc.target/riscv/attribute-7.c: Likewise.
      	* gcc.target/riscv/attribute-8.c: Likewise.
      	* gcc.target/riscv/attribute-9.c: Likewise.
      
      	* gcc.target/riscv/arch-1.c: New.
      	* gcc.target/riscv/arch-2.c: Likewise.
      	* gcc.target/riscv/arch-3.c: Likewise.
      	* gcc.target/riscv/arch-4.c: Likewise.
      
      Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>
      
      From-SVN: r269337
      Kito Cheng committed
  2. 25 Feb, 2019 1 commit
    • AArch64: Fix command line options canonicalization version #2. (PR target/88530) · 4ca82fc9
      Commandline options on AArch64 don't get canonicalized into the smallest
      possible set before output to the assembler. This means that overlapping feature
      sets are emitted with superfluous parts.
      
      Normally this isn't an issue, but in the case of crypto we have retro-actively
      split it into aes and sha2. We need to emit only +crypto to the assembler
      so old assemblers continue to work.
      
      Because of how -mcpu=native and -march=native work they end up enabling all
      feature bits. Instead we need to get the smallest possible set, which would also
      fix the problem with older the assemblers and the retro-active split.
      
      The function that handles this is called quite often.  It is called for any
      push/pop options or attribute that changes arch, cpu etc.  In order to not make
      this search for the smallest set too expensive we sort the options based on the
      number of features (bits) they enable.  This allows us to process the list
      linearly instead of quadratically (Once we have enabled a feature, we know that
      anything else that enables it can be ignored.  By sorting we'll get the biggest
      groups first and thus the smallest combination of commandline flags).
      
      The Option handling structures have been extended to have a boolean to indicate
      whether the option is synthetic, with that I mean if the option flag itself
      enables a new feature.
      
      e.g. +crypto isn't an actual feature, it just enables other features, but others
      like +rdma enable multiple dependent features but is itself also a feature.
      
      There are two ways to solve this.
      
      1) Either have the options that are feature bits also turn themselves on, e.g.
         change rdma to turn on FP, SIMD and RDMA as dependency bits.
      
      2) Make a distinction between these two different type of features and have the
         framework handle it correctly.
      
      Even though it's more code I went for the second approach, as it's the one
      that'll be less fragile (people can't forget it) and gives the least surprises.
      
      Effectively this patch changes the following:
      
      The values before the => are the old compiler and after the => the new code.
      
      -march=armv8.2-a+crypto+sha2 => -march=armv8.2-a+crypto
      -march=armv8.2-a+sha2+aes => -march=armv8.2-a+crypto
      
      The remaining behaviors stay the same.
      
      gcc/ChangeLog:
      
      	PR target/88530
      	* common/config/aarch64/aarch64-common.c
      	(struct aarch64_option_extension): Add is_synthetic.
      	(all_extensions): Use it.
      	(TARGET_OPTION_INIT_STRUCT): Define hook.
      	(struct gcc_targetm_common): Moved to end.
      	(all_extensions_by_on): New.
      	(opt_ext_cmp, typedef opt_ext): New.
      	(aarch64_option_init_struct): New.
      	(aarch64_contains_opt): New.
      	(aarch64_get_extension_string_for_isa_flags): Output smallest set.
      	* config/aarch64/aarch64-option-extensions.def
      	(AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
      	(fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
      	sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
      	Set is_synthetic to false.
      	(crypto): Set is_synthetic to true.
      	* config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
      	SYNTHETIC.
      
      gcc/testsuite/ChangeLog:
      
      	PR target/88530
      	* gcc.target/aarch64/options_set_1.c: New test.
      	* gcc.target/aarch64/options_set_2.c: New test.
      	* gcc.target/aarch64/options_set_3.c: New test.
      	* gcc.target/aarch64/options_set_4.c: New test.
      	* gcc.target/aarch64/options_set_5.c: New test.
      	* gcc.target/aarch64/options_set_6.c: New test.
      	* gcc.target/aarch64/options_set_7.c: New test.
      	* gcc.target/aarch64/options_set_8.c: New test.
      	* gcc.target/aarch64/options_set_9.c: New test.
      
      From-SVN: r269193
      Tamar Christina committed
  3. 17 Jan, 2019 1 commit
    • GCN back-end code · 5326695a
      This patch contains the major part of the GCN back-end.  The machine
      description has been broken out to avoid the mailing list size limit.
      
      The back-end contains various bits that support OpenACC and OpenMP, but the
      middle-end and libgomp patches are missing, as is mkoffload.  I include them
      here because they're harmless and carving up the files seems like unnecessary
      effort.  The remaining offload support will be posted at a later date.
      
      The gcn-run.c is a separate tool that can run a GCN program on a GPU using
      the ROCm drivers and HSA runtime libraries.
      
      2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
      	    Kwok Cheung Yeung  <kcy@codesourcery.com>
      	    Julian Brown  <julian@codesourcery.com>
      	    Tom de Vries  <tom@codesourcery.com>
      	    Jan Hubicka  <hubicka@ucw.cz>
      	    Martin Jambor  <mjambor@suse.cz>
      
      	gcc/
      	* common/config/gcn/gcn-common.c: New file.
      	* config/gcn/driver-gcn.c: New file.
      	* config/gcn/gcn-builtins.def: New file.
      	* config/gcn/gcn-hsa.h: New file.
      	* config/gcn/gcn-modes.def: New file.
      	* config/gcn/gcn-opts.h: New file.
      	* config/gcn/gcn-passes.def: New file.
      	* config/gcn/gcn-protos.h: New file.
      	* config/gcn/gcn-run.c: New file.
      	* config/gcn/gcn-tree.c: New file.
      	* config/gcn/gcn.c: New file.
      	* config/gcn/gcn.h: New file.
      	* config/gcn/gcn.opt: New file.
      	* config/gcn/t-gcn-hsa: New file.
      
      
      Co-Authored-By: Jan Hubicka <hubicka@ucw.cz>
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com>
      Co-Authored-By: Martin Jambor <mjambor@suse.cz>
      Co-Authored-By: Tom de Vries <tom@codesourcery.com>
      
      From-SVN: r268023
      Andrew Stubbs committed
  4. 09 Jan, 2019 1 commit
    • PR other/16615 [1/5] · 67914693
      2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR other/16615 [1/5]
      
      	contrib/
      	* mklog: Mechanically replace "can not" with "cannot".
      
      	gcc/
      	* Makefile.in: Mechanically replace "can not" with "cannot".
      	* alias.c: Likewise.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* common/config/i386/i386-common.c: Likewise.
      	* config/aarch64/aarch64.c: Likewise.
      	* config/alpha/sync.md: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arc/predicates.md: Likewise.
      	* config/arm/arm-c.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/arm/arm.h: Likewise.
      	* config/arm/arm.md: Likewise.
      	* config/arm/cortex-r4f.md: Likewise.
      	* config/csky/csky.c: Likewise.
      	* config/csky/csky.h: Likewise.
      	* config/darwin-f.c: Likewise.
      	* config/epiphany/epiphany.md: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/sol2.h: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.h: Likewise.
      	* config/microblaze/microblaze.md: Likewise.
      	* config/mips/20kc.md: Likewise.
      	* config/mips/sb1.md: Likewise.
      	* config/nds32/nds32.c: Likewise.
      	* config/nds32/predicates.md: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/rs6000/e300c2c3.md: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/s390/s390.h: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/sh.md: Likewise.
      	* config/spu/vmx2spu.h: Likewise.
      	* cprop.c: Likewise.
      	* dbxout.c: Likewise.
      	* df-scan.c: Likewise.
      	* doc/cfg.texi: Likewise.
      	* doc/extend.texi: Likewise.
      	* doc/fragments.texi: Likewise.
      	* doc/gty.texi: Likewise.
      	* doc/invoke.texi: Likewise.
      	* doc/lto.texi: Likewise.
      	* doc/md.texi: Likewise.
      	* doc/objc.texi: Likewise.
      	* doc/rtl.texi: Likewise.
      	* doc/tm.texi: Likewise.
      	* dse.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* emit-rtl.h: Likewise.
      	* except.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* fold-const.c: Likewise.
      	* genautomata.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* hard-reg-set.h: Likewise.
      	* ifcvt.c: Likewise.
      	* ipa-comdats.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-fnsummary.c: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-polymorphic-call.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* ira.h: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lra-assigns.c: Likewise.
      	* lra-constraints.c: Likewise.
      	* lra-eliminations.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lra-remat.c: Likewise.
      	* lra-spills.c: Likewise.
      	* lra.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* predict.c: Likewise.
      	* profile-count.h: Likewise.
      	* profile.c: Likewise.
      	* recog.c: Likewise.
      	* ree.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched.c: Likewise.
      	* shrink-wrap.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* symtab.c: Likewise.
      	* target.def: Likewise.
      	* toplev.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-core.h: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-phionlycprop.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* vr-values.c: Likewise.
      
      	gcc/ada/
      	* exp_ch9.adb: Mechanically replace "can not" with "cannot".
      	* libgnat/s-regpat.ads: Likewise.
      	* par-ch4.adb: Likewise.
      	* set_targ.adb: Likewise.
      	* types.ads: Likewise.
      
      	gcc/cp/
      	* cp-tree.h: Mechanically replace "can not" with "cannot".
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      
      	gcc/fortran/
      	* class.c: Mechanically replace "can not" with "cannot".
      	* decl.c: Likewise.
      	* expr.c: Likewise.
      	* gfc-internals.texi: Likewise.
      	* intrinsic.texi: Likewise.
      	* invoke.texi: Likewise.
      	* io.c: Likewise.
      	* match.c: Likewise.
      	* parse.c: Likewise.
      	* primary.c: Likewise.
      	* resolve.c: Likewise.
      	* symbol.c: Likewise.
      	* trans-array.c: Likewise.
      	* trans-decl.c: Likewise.
      	* trans-intrinsic.c: Likewise.
      	* trans-stmt.c: Likewise.
      
      	gcc/go/
      	* go-backend.c: Mechanically replace "can not" with "cannot".
      	* go-gcc.cc: Likewise.
      
      	gcc/lto/
      	* lto-partition.c: Mechanically replace "can not" with "cannot".
      	* lto-symtab.c: Likewise.
      	* lto.c: Likewise.
      
      	gcc/objc/
      	* objc-act.c: Mechanically replace "can not" with "cannot".
      
      	libbacktrace/
      	* backtrace.h: Mechanically replace "can not" with "cannot".
      
      	libgcc/
      	* config/c6x/libunwind.S: Mechanically replace "can not" with
      	"cannot".
      	* config/tilepro/atomic.h: Likewise.
      	* config/vxlib-tls.c: Likewise.
      	* generic-morestack-thread.c: Likewise.
      	* generic-morestack.c: Likewise.
      	* mkmap-symver.awk: Likewise.
      
      	libgfortran/
      	* caf/single.c: Mechanically replace "can not" with "cannot".
      	* io/unit.c: Likewise.
      
      	libobjc/
      	* class.c: Mechanically replace "can not" with "cannot".
      	* objc/runtime.h: Likewise.
      	* sendmsg.c: Likewise.
      
      	liboffloadmic/
      	* include/coi/common/COIResult_common.h: Mechanically replace
      	"can not" with "cannot".
      	* include/coi/source/COIBuffer_source.h: Likewise.
      
      	libstdc++-v3/
      	* include/ext/bitmap_allocator.h: Mechanically replace "can not"
      	with "cannot".
      
      From-SVN: r267783
      Sandra Loosemore committed
  5. 01 Jan, 2019 1 commit
  6. 13 Dec, 2018 1 commit
    • i386-common.c (processor_names): Add cascadelake. · 7cab07f0
      gcc/
            * common/config/i386/i386-common.c (processor_names): Add cascadelake.
            (processor_alias_table): Add cascadelake.
            * config.gcc: Add -march=cascadelake.
            * config/i386/i386-c.c (ix86_target_macros_internal): Handle cascadelake.
            * config/i386/i386.c (Add m_CASCADELAKE): New.
            (processor_cost_table): Add cascadelake.
            (get_builtin_code_for_version): Handle cascadelake.
            * config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New.
            (PTA_CASCADELAKE): Ditto.
            * doc/invoke.texi: Add -march=cascadelake.
      
      gcc/testsuite/
            * gcc.target/i386/funcspec-56.inc: Handle new march.
      
      From-SVN: r267080
      Wei Xiao committed
  7. 03 Dec, 2018 1 commit
    • S/390: Add support for section anchors · 8c66130b
      gcc/ChangeLog:
      
      2018-12-03  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* common/config/s390/s390-common.c (s390_option_init_struct):
      	Use section anchors by default.
      	* config/s390/s390.c (s390_check_symref_alignment): Handle
      	anchors.
      	(TARGET_MAX_ANCHOR_OFFSET): Use short displacement.
      	* output.h (assemble_align): Pass `align' as unsigned int, so
      	that the value 0x80000000, which corresponds to `aligned(1 <<
      	28)', would pass the `align > BITS_PER_UNIT' check.
      	* varasm.c (assemble_align): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      2018-12-03  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/nodatarel-1.c: Expect .LANCHOR0@GOTENT instead
      	of a@GOTENT.
      	* gcc.target/s390/section-anchors.c: New test.
      	* gcc.target/s390/section-anchors2.c: New test.
      	* gcc.target/s390/section-anchors3.c: New test.
      
      From-SVN: r266741
      Ilya Leoshkevich committed
  8. 22 Nov, 2018 1 commit
    • Fix option values for -march. · 2559ef9f
      2018-11-22  Martin Liska  <mliska@suse.cz>
      
      	* common/config/i386/i386-common.c (processor_names): Add
      	static assert and add missing "znver2".
      	(ix86_get_valid_option_values): Add checking assert for null
      	values and add "native" value if feasible.
      	* config/i386/i386.h: Do not declare size of processor_names.
      	* common/config/i386/i386-common.c:
      	* config/i386/i386.c: Add static assert for size
      	of processor_cost_table.
      
      From-SVN: r266381
      Martin Liska committed
  9. 13 Nov, 2018 1 commit
    • [ARC] Refurbish and improve prologue/epilogue functions. · 90b48013
      Reimplement how prologue and epilogue is emitted to accomodate
      enter/leave instructions, as well as improving the size of the
      existing techinques.
      
      The following modifications are added:
      
      - millicode thunk calls can be now selected regardless of the
        optimization level. However they are enabled for size optimizations
        by default.  Also, the millicode optimization is turned off when we
        compile for long jumps.
      
      - the compiler is able to use enter/leave instructions for prologue
        and epilogue. As these instructions are not ABI compatible we gurad
        them under a switch (i.e., -mcode-density-frame). When this option
        is on, the compiler will try emitting enter/leave instructions, if
        not, then millicode thunk calls (if enabled), and latter the regular
        push/pop instructions.
      
      - The prologue/epilogue is now optimized to use pointer walks, hence
        improving the chance to have push_s/pop_s instructions emitted. It
        also tries to combine the stack adjustments with load/store
        operations.
      
      gcc/
      xxxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * common/config/arc/arc-common.c (arc_option_optimization_table):
              Millicode optimization is default on for size optimizations.
              * config/arc/arc-protos.h (arc_check_multi): New function.
              * config/arc/arc.c (RTX_OK_FOR_OFFSET_P): Rearange.
              (ENTER_LEAVE_START_REG): Define.
              (ENTER_LEAVE_END_REG): Likewise.
              (arc_override_options): Disable millicode when long calls option
              is on.
              (arc_frame_info): Change it from int to bool.
              (arc_compute_frame_size): Clean up.
              (arc_save_restore): Remove.
              (frame_save_reg): New function.
              (frame_restore_reg): Likewise.
              (arc_enter_leave_p): Likewise.
              (arc_save_callee_saves): Likewise.
              (arc_restore_callee_saves): Likewise.
              (arc_save_callee_enter): Likewise.
              (arc_restore_callee_leave): Likewise.
              (arc_save_callee_milli): Likewise.
              (arc_restore_callee_milli): Likewise.
              (arc_expand_prologue): Reimplement to emit enter/leave
              instructions.
              (arc_expand_epilogue): Likewise.
              (arc_check_multi): New function.
              * config/arc/arc.md (push_multi_fp): New pattern.
              (push_multi_fp_blink): Likewise.
              (pop_multi_fp): Likewise.
              (pop_multi_fp_blink): Likewise.
              (pop_multi_fp_ret): Likewise.
              (pop_multi_fp_blink_ret): Likewise.
              * config/arc/arc.opt (mmillicode): Update option.
              (mcode-density-frame): New option.
              * config/arc/predicates.md (push_multi_operand): New predicate.
              (pop_multi_operand): Likewise.
              * doc/invoke.texi (ARC): Update ARC options information.
      
      gcc/testsuite
      xxxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
              * gcc.target/arc/firq-1.c: Update test.
              * gcc.target/arc/firq-3.c: Likewise.
              * gcc.target/arc/firq-4.c: Likewise.
              * gcc.target/arc/interrupt-6.c: Likewise.
      
      From-SVN: r266065
      Claudiu Zissulescu committed
  10. 09 Nov, 2018 2 commits
    • or1k: gcc: initial support for openrisc · 3965b35f
      2018-11-09  Stafford Horne  <shorne@gmail.com>
      	    Richard Henderson  <rth@twiddle.net>
      	    Joel Sherrill  <joel@rtems.org>
      
      	* common/config/or1k/or1k-common.c: New file.
      	* config/or1k/*: New.
      	* config.gcc (or1k*-*-*): New.
      	* configure.ac (or1k*-*-*): New test for openrisc tls.
      	* configure: Regenerated.
      	* doc/install.texi: Document OpenRISC triplets.
      	* doc/invoke.texi: Document OpenRISC arguments.
      	* doc/md.texi: Document OpenRISC.
      
      
      Co-Authored-By: Joel Sherrill <joel@rtems.org>
      Co-Authored-By: Richard Henderson <rth@twiddle.net>
      
      From-SVN: r265963
      Stafford Horne committed
    • Add PTWRITE builtins for x86 · 41f8d1fc
      Add builtins/intrinsics for PTWRITE. PTWRITE is a new instruction on Intel Gemini Lake/
      Goldmont Plus that allows to write values into the Processor Trace log. This allows
      very light weight instrumentation of programs.
      
      The intrinsics are compatible to icc. Automatically enabled for Goldmont Plus.
      
      gcc/:
      
      2018-11-08  Andi Kleen  <ak@linux.intel.com>
      
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PTWRITE_SET): New.
      	(OPTION_MASK_ISA_PTWRITE_UNSET): New.
      	(ix86_handle_option): Handle OPT_mptwrite.
      	* config/i386/cpuid.h (bit_PTWRITE): Add.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Detect ptwrite.
      	* config/i386/i386-builtin.def (BDESC): Add ptwrite32/64.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Define __PTWRITE__.
      	* config/i386/i386.c (ix86_target_string): Handle ptwrite.
      	(ix86_option_override_internal): Handle PTA_PTWRITE.
      	(ix86_valid_target_attribute_inner_p): Define ptwrite.
      	(def_builtin2): Force UINT64 to be 64bit only.
      	* config/i386/i386.h (TARGET_PTWRITE): Add.
      	(TARGET_PTWRITE_P): Add.
      	(PTA_PTWRITE): Add.
      	* config/i386/i386.md: Define ptwrite.
      	* config/i386/i386.opt: Add -mptwrite.
      	* config/i386/immintrin.h (_ptwrite64): Add.
      	(_ptwrite32): Add
      	* doc/extend.texi: Document __builtin_ia32_ptwrite*.
      	* doc/invoke.texi: Document -mptwrite.
      
      gcc/testsuite/:
      
      2018-11-08  Andi Kleen  <ak@linux.intel.com>
      
      	* gcc.target/i386/ptwrite1.c: New test.
      	* gcc.target/i386/ptwrite2.c: New test.
      
      From-SVN: r265947
      Andi Kleen committed
  11. 08 Nov, 2018 1 commit
    • arm - Add support for aliases of CPU names · d4f680c6
      This patch adds support for defining an alias for a CPU name that can
      then be used in conjunction with the -mcpu option in the same way that
      the primary name can be used.  Aliases do not lead to a short-cut of
      the feature options; they are literally an alternative name for the
      core CPU.
      
      The new entry in arm-cpus.in allows a cpu definition to contain an
      alias statement, for example
      
      begin cpu strongarm
       alias strongarm110 !strongarm1100 !strongarm1110
       ...
      end cpu strongarm
      
      each entry in the list represents another alias for the CPU.  If the
      alias name starts with an exclamation mark, then it will match as for
      any other alias (sans the ! itself), but it will not be listed in any
      of the CPU hinting options (the intent is to make the alias
      essentially undocumented).  In the above example, hints would be
      provided for strongarm and strongarm110, but not for strongarm1100 or
      strongarm1110.
      
      The advantage of using aliases in this way is that it allows us to
      reduce the number of duplicate table entries and identifier tags used
      inside the compiler itself.
      
      	* config/arm/parsecpu.awk (/alias/): New parsing rule.
      	(/begin cpu/): Check that the cpu name hasn't been previously defined.
      	(gen_comm_data): Print out CPU alias tables.
      	(check_cpu): Match aliases when checking the CPU name.
      	* config/arm/arm-protos.h (cpu_alias): New structure.
      	(cpu_option): Add entry for aliases.
      	* config/arm/arm-cpus.in (strongarm): Add aliases for strongarm110
      	strongarm1100 and strongarm1110.
      	(strongarm110, strongarm1100, strongarm1110): Delete CPU entries.
      	(config/arm/arm-generic.md): Remove redundant references to
      	strongarm110, strongarm1100 and strongarm1110.
      	* common/config/arm/arm-common.c (arm_print_hint_for_cpu_option):
      	Scan aliases for additional hints.
      	(arm_parse_cpu_option_name): Also match a cpu name against the list
      	of aliases.
      	* config/arm/arm-tables.opt: Regenerated.
      	* config/arm/arm-tune.md: Regenerated.
      
      From-SVN: r265931
      Richard Earnshaw committed
  12. 04 Nov, 2018 1 commit
    • Enable support for next generation AMD Zen CPU, via -march=znver2. · 2901f42f
      gcc/ChangeLog:
      	* common/config/i386/i386-common.c (processor_alias_table): Add znver2 entry.
      	* config.gcc (i[34567]86-*-linux* | ...): Add znver2.
      	(case ${target}): Add znver2.
      	* config/i386/driver-i386.c: (host_detect_local_cpu): Let
      	-march=native recognize znver2 processors.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Add znver2.
      	* config/i386/i386.c (m_znver2): New definition.
      	(m_ZNVER): New definition.
      	(m_AMD_MULTIPLE): Includes m_znver2.
      	(processor_cost_table): Add znver2 entry.
      	(processor_target_table): Add znver2 entry.
      	(get_builtin_code_for_version): Set priority for
      	PROCESSOR_ZNVER2.
      	(processor_model): Add M_AMDFAM17H_ZNVER2.
      	(arch_names_table): Ditto.
      	(ix86_reassociation_width): Include znver2. 
      	* config/i386/i386.h (TARGET_znver2): New definition.
      	(struct ix86_size_cost): Add TARGET_ZNVER2.
      	(enum processor_type): Add PROCESSOR_ZNVER2.
      	* config/i386/i386.md (define_attr "cpu"): Add znver2.
      	* config/i386/x86-tune-costs.h: (processor_costs) Add znver2 costs.
      	* config/i386/x86-tune-sched.c: (ix86_issue_rate): Add znver2.
      	(ix86_adjust_cost): Add znver2.
      	* config/i386/x86-tune.def:  Replace m_ZNVER1 by m_ZNVER
      	* gcc/doc/extend.texi: Add details about znver2.
      	* gcc/doc/invoke.texi: Add details about znver2.
      
      libgcc/ChangeLog
      	* config/i386/cpuinfo.c: (get_amd_cpu): Add znver2.
      	* config/i386/cpuinfo.h(processor_subtypes): Ditto.
      
      From-SVN: r265775
      Venkataramanan Kumar committed
  13. 31 Oct, 2018 1 commit
    • Provide extension hint for aarch64 target (PR driver/83193). · c7887347
      2018-10-31  Martin Liska  <mliska@suse.cz>
      
      	PR driver/83193
      	* common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
      	Add new argument invalid_extension.
      	(aarch64_get_all_extension_candidates): New function.
      	(aarch64_rewrite_selected_cpu): Add NULL to function call.
      	* config/aarch64/aarch64-protos.h (aarch64_parse_extension): Add
      	new argument.
      	(aarch64_get_all_extension_candidates): New function.
      	* config/aarch64/aarch64.c (aarch64_parse_arch): Add new
      	argument invalid_extension.
      	(aarch64_parse_cpu): Likewise.
      	(aarch64_print_hint_for_extensions): New function.
      	(aarch64_validate_mcpu): Provide hint about invalid extension.
      	(aarch64_validate_march): Likewise.
      	(aarch64_handle_attr_arch): Pass new argument.
      	(aarch64_handle_attr_cpu): Provide hint about invalid extension.
      	(aarch64_handle_attr_isa_flags): Likewise.
      2018-10-31  Martin Liska  <mliska@suse.cz>
      
      	PR driver/83193
      	* gcc.target/aarch64/spellcheck_7.c: New test.
      	* gcc.target/aarch64/spellcheck_8.c: New test.
      	* gcc.target/aarch64/spellcheck_9.c: New test.
      
      From-SVN: r265686
      Martin Liska committed
  14. 15 Oct, 2018 1 commit
  15. 14 Oct, 2018 1 commit
    • i386: Also disable AVX512IFMA/AVX5124FMAPS/AVX5124VNNIW · 190667ae
      Also disable AVX512IFMA, AVX5124FMAPS and AVX5124VNNIW when disabling
      AVX512F.
      
      gcc/
      
      	PR target/87572
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
      	Add OPTION_MASK_ISA_AVX512IFMA_UNSET,
      	OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
      	OPTION_MASK_ISA_AVX5124VNNIW_UNSET.
      
      gcc/testsuite/
      
      	PR target/87572
      	* gcc.target/i386/pr87572.c: New test.
      
      From-SVN: r265150
      H.J. Lu committed
  16. 02 Oct, 2018 1 commit
    • S/390: Rename arch12 to z14 · e9e8efc9
      This is a mechanical change not impacting code generation.  With that
      patch I try to hide the artificial CPU name arch12 which we had to use
      before the announcement of the IBM z14 machine.  arch12 of course
      stays a valid option to -march and -mtune.  So this is just about
      making the code somewhat easier to read.
      
      gcc/ChangeLog:
      
      2018-10-02  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* common/config/s390/s390-common.c: Rename PF_ARCH12 to PF_Z14.
      	* config/s390/s390.h (enum processor_flags): Rename PF_ARCH12 to
      	PF_Z14.  Rename TARGET_CPU_ARCH12 to TARGET_CPU_Z14,
      	TARGET_CPU_ARCH12_P to TARGET_CPU_Z14_P, TARGET_ARCH12 to
      	TARGET_Z14, and TARGET_ARCH12_P to TARGET_Z14_P.
      	* config/s390/s390.md: Likewise. Rename also the cpu attribute
      	value from arch12 to z14.
      
      From-SVN: r264796
      Andreas Krebbel committed
  17. 01 Oct, 2018 2 commits
    • Validate and set default parameters for stack-clash. · 329130cc
      This patch defines the default parameters and validation for the aarch64
      stack clash probing interval and guard sizes.  It cleans up the previous
      implementation and insures that at no point the invalidate arguments are
      present in the pipeline for AArch64.  Currently they are only corrected once
      cc1 initalizes the back-end.
      
      The default for AArch64 is 64 KB for both of these and we only support 4 KB and 64 KB
      probes.  We also enforce that any value you set here for the parameters must be
      in sync.
      
      If an invalid value is specified an error will be generated and compilation aborted.
      
      gcc/
      
      	* common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAM,
      	aarch64_option_default_param):	New.
      	(params.h): Include.
      	(TARGET_OPTION_VALIDATE_PARAM, aarch64_option_validate_param): New.
      	* config/aarch64/aarch64.c (aarch64_override_options_internal): Simplify
      	stack-clash protection validation code.
      
      From-SVN: r264757
      Tamar Christina committed
    • Allow back-ends to be able to do custom validations on params. · 03ced4ab
      This patch adds the ability for backends to add custom constrains to the param
      values by defining a new hook option_validate_param.
      
      This hook is invoked on every set_param_value which allows the back-end to
      ensure that the parameters are always within it's desired state.
      
      gcc/
      
      	* params.c (set_param_value):
      	Add index of parameter being validated.
      	* common/common-target.def (option_validate_param): New.
      	* common/common-targhooks.h (default_option_validate_param): New.
      	* common/common-targhooks.c (default_option_validate_param): New.
      	* doc/tm.texi.in (TARGET_OPTION_VALIDATE_PARAM): New.
      	* doc/tm.texi: Regenerate.
      
      From-SVN: r264755
      Tamar Christina committed
  18. 17 Sep, 2018 1 commit
    • i386: move alignment defaults to processor_costs. · 7dc58b50
      2018-09-17  Martin Liska  <mliska@suse.cz>
      
      	* common/config/i386/i386-common.c (ix86_get_valid_option_values):
      	Use processor_names table.
      	* config/i386/i386.c (ix86_default_align): Use
      	processor_cost_table for alignment values.
      	(ix86_option_override_internal): Use processor_names.
      	(ix86_function_specific_print): Likewise.
      	* config/i386/i386.h (struct processor_costs):
      	Add alignment values.
      	(struct ptt): Remove and replace with const char *.
      	* config/i386/x86-tune-costs.h (struct processor_costs):
      	Declare default alignments for all costs.
      
      From-SVN: r264359
      Martin Liska committed
  19. 04 Sep, 2018 1 commit
    • re PR target/87198 (ICE in extract_insn, at recog.c:2304) · 8f93810d
      	PR target/87198
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET,
      	OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use
      	OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE.
      	(OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET
      	and OPTION_MASK_ISA_XSAVEC_UNSET.
      
      	* gcc.target/i386/pr87198.c: New test.
      
      From-SVN: r264088
      Jakub Jelinek committed
  20. 03 Sep, 2018 1 commit
    • Come up with TARGET_GET_VALID_OPTION_VALUES option hook (PR driver/83193). · c98c2430
      2018-09-03  Martin Liska  <mliska@suse.cz>
      
              PR driver/83193
      	* common/common-target.def: Add TARGET_GET_VALID_OPTION_VALUES.
      	* common/common-targhooks.c (default_get_valid_option_values):
              New function.
      	* common/common-targhooks.h (default_get_valid_option_values):
              Likewise.
      	* common/config/i386/i386-common.c: Move processor_target_table
              from i386.c.
      	(ix86_get_valid_option_values): New function.
      	(TARGET_GET_VALID_OPTION_VALUES): New macro.
      	* config/i386/i386.c (struct ptt): Move to i386-common.c.
      	(PTA_*): Move all defined masks into i386-common.c.
      	(ix86_function_specific_restore): Use new processor_cost_table.
      	* config/i386/i386.h (struct ptt): Moved from i386.c.
      	(struct pta): Likewise.
      	* doc/tm.texi: Document new TARGET_GET_VALID_OPTION_VALUES.
      	* doc/tm.texi.in: Likewise.
      	* opt-suggestions.c (option_proposer::suggest_option):
              Pass prefix to build_option_suggestions.
      	(option_proposer::get_completions): Likewise.
      	(option_proposer::build_option_suggestions): Use the new target
              hook.
      	* opts.c (struct option_help_tuple): New struct.
      	(print_filtered_help): Use the new target hook.
      2018-09-03  Martin Liska  <mliska@suse.cz>
      
              PR driver/83193
      	* gcc.dg/completion-4.c: New test.
      
      From-SVN: r264052
      Martin Liska committed
  21. 17 Aug, 2018 1 commit
    • C-SKY port: Backend implementation · cc7232b9
      2018-08-17  Jojo  <jijie_rong@c-sky.com>
      	    Huibin Wang  <huibin_wang@c-sky.com>
      	    Sandra Loosemore  <sandra@codesourcery.com>
      	    Chung-Lin Tang  <cltang@codesourcery.com>
      
      	C-SKY port: Backend implementation
      
      	gcc/
      	* config/csky/*: New.
      	* common/config/csky/*: New.
      
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      Co-Authored-By: Huibin Wang <huibin_wang@c-sky.com>
      Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>
      
      From-SVN: r263628
      Jojo committed
  22. 12 Aug, 2018 2 commits
    • [NDS32] Enable -malways-align by default at -O1 and above. · 68acadb1
      gcc/
      	* common/config/nds32/nds32-common.c
      	(nds32_option_optimization_table): Enalbe -malways-align.
      
      From-SVN: r263495
      Chung-Ju Wu committed
    • [NDS32] Implement more C ISR extension. · a4931745
      gcc/
      	* config.gcc (nds32*): Add nds32_isr.h and nds32_init.inc in
      	extra_headers.
      	* common/config/nds32/nds32-common.c (nds32_handle_option): Handle
      	OPT_misr_secure_ case.
      	* config/nds32/nds32-isr.c: Implementation of backward compatibility.
      	* config/nds32/nds32-protos.h (nds32_isr_function_critical_p): New.
      	* config/nds32/nds32.c (nds32_attribute_table): Add critical and
      	secure attribute.
      	* config/nds32/nds32.h (nds32_isr_nested_type): Add NDS32_CRITICAL.
      	(nds32_isr_info): New field security_level.
      	(TARGET_ISR_VECTOR_SIZE_4_BYTE): New macro.
      	* config/nds32/nds32.md (return_internal): Consider critical attribute.
      	* config/nds32/nds32.opt (misr-secure): New option.
      	* config/nds32/nds32_init.inc: New file.
      	* config/nds32/nds32_isr.h: New file.
      
      libgcc/
      	* config/nds32/t-nds32-isr: Rearrange object dependency.
      	* config/nds32/initfini.c: Add dwarf2 unwinding support.
      	* config/nds32/isr-library/adj_intr_lvl.inc: Consider new extensions
      	and registers usage.
      	* config/nds32/isr-library/excp_isr.S: Ditto.
      	* config/nds32/isr-library/intr_isr.S: Ditto.
      	* config/nds32/isr-library/reset.S: Ditto.
      	* config/nds32/isr-library/restore_all.inc: Ditto.
      	* config/nds32/isr-library/restore_mac_regs.inc: Ditto.
      	* config/nds32/isr-library/restore_partial.inc: Ditto.
      	* config/nds32/isr-library/restore_usr_regs.inc: Ditto.
      	* config/nds32/isr-library/save_all.inc: Ditto.
      	* config/nds32/isr-library/save_mac_regs.inc: Ditto.
      	* config/nds32/isr-library/save_partial.inc: Ditto.
      	* config/nds32/isr-library/save_usr_regs.inc: Ditto.
      	* config/nds32/isr-library/vec_vid*.S: Consider 4-byte vector size.
      
      From-SVN: r263493
      Chung-Ju Wu committed
  23. 08 Aug, 2018 1 commit
    • S/390: Remove support for g5 and g6 machines · 52d4aa4f
      g5 and g6 were deprecated since gcc 6.1.0 (commit 3bd8520f).
      
      gcc/ChangeLog:
      
      2018-08-08  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* common/config/s390/s390-common.c (processor_flags_table):
              Remove flags.
      	* config.gcc: Remove with_arch/with_tune support.
      	* config/s390/2064.md: Remove cpu attribute comparisons.
      	* config/s390/driver-native.c (s390_host_detect_local_cpu):
              Remove MTN.
      	* config/s390/linux.h (ASM_SPEC):
              Remove -march support.
      	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal):
              Use a table to get an arch level.
      	* config/s390/s390-opts.h (enum processor_type):
              Remove enum values.
      	* config/s390/s390.c
              (processor_table): Remove entries, add arch_level values.
              (s390_issue_rate): Remove cases.
              (s390_option_override): Adjust
              s390_option_override_internal() call.
      	(s390_option_override_internal): Remove deprecation warning.
              (s390_valid_target_attribute_tree): Adjust
              s390_option_override_internal() call.
      	* config/s390/s390.h (struct s390_processor):
              Share with s390-c.c, add arch_level field.
      	* config/s390/s390.md:
              Remove occurrences in cpu attribute.
      	* config/s390/s390.opt: Remove -march/-mtune support.
      	* config/s390/tpf.h (ASM_SPEC): Remove -march support.
      	* doc/invoke.texi: Remove deprecation warning.
      
      gcc/testsuite/ChangeLog:
      
      2018-08-08  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	* gcc.target/s390/hotpatch-8.c: Remove.
      	* gcc.target/s390/hotpatch-9.c: Remove.
      	* gcc.target/s390/mnop-mcount-m31-fpic.c: Remove.
      	* gcc.target/s390/mnop-mcount-m31.c: Remove.
      
      From-SVN: r263393
      Ilya Leoshkevich committed
  24. 03 Aug, 2018 1 commit
    • [c++] Don't emit exception tables for UI_NONE · d989dba8
      If a target does not support exceptions, it can indicate this by returning
      UI_NONE in TARGET_EXCEPT_UNWIND_INFO.  Currently the compiler still emits
      exception tables for such a target.
      
      This patch makes sure that no exception tables are emitted if the target does
      not support exceptions.  This allows us to remove a workaround in
      TARGET_ASM_BYTE_OP in the nvptx port.
      
      Build on x86_64 with nvptx accelerator, and tested libgomp.
      
      Build and reg-tested on x86_64.
      
      2018-08-03  Tom de Vries  <tdevries@suse.de>
      
      	* common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): Return
      	UI_NONE.
      	* config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Remove define.
      	* except.c (output_function_exception_table): Do early exit if
      	targetm_common.except_unwind_info (&global_options) == UI_NONE.
      
      From-SVN: r263287
      Tom de Vries committed
  25. 02 Aug, 2018 1 commit
    • [nvptx] Ignore c++ exceptions · 77e0a97a
      The nvptx port can't support exceptions using sjlj, because ptx does not
      support sjlj.  However, default_except_unwind_info still returns UI_SJLJ, even
      even if we configure with --disable-sjlj-exceptions, because UI_SJLJ is the
      fallback option.
      
      The reason default_except_unwind_info doesn't return UI_DWARF2 is because
      DWARF2_UNWIND_INFO is not defined in defaults.h, because
      INCOMING_RETURN_ADDR_RTX is not defined, because there's no ptx equivalent.
      
      Testcase libgomp.c++/for-15.C currently doesn't compile unless fno-exceptions
      is added because:
      - it tries to generate sjlj exception handling code, and
      - it tries to generate exception tables using label-addressed .byte sequence.
        Ptx doesn't support generating random data at a label, nor being able to
        load/write data relative to a label.
      
      This patch fixes the first problem by using UI_TARGET for nvptx.
      
      The second problem is worked around by generating all .byte sequences commented
      out.  It would be better to have a narrower workaround, and define
      TARGET_ASM_BYTE_OP to "error: .byte unsupported " or some such.
      
      This patch does not enable exceptions for nvptx, it merely allows c++ programs
      to run correctly if they do no use exception handling.
      
      Build and reg-tested on x86_64 with nvptx accelerator.
      
      2018-08-02  Tom de Vries  <tdevries@suse.de>
      
      	PR target/86660
      	* common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): New
      	function.  Return UI_TARGET unconditionally.
      	(TARGET_EXCEPT_UNWIND_INFO): Redefine to nvptx_except_unwind_info.
      	* config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Emit commented out '.byte'.
      
      	* testsuite/libgomp.oacc-c++/routine-1-auto.C: Remove -fno-exceptions.
      	* testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Same.
      	* testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
      	Same.
      	* testsuite/libgomp.oacc-c++/routine-1-template.C: Same.
      	* testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C: Same.
      	* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Same.
      
      From-SVN: r263265
      Tom de Vries committed
  26. 25 Jul, 2018 1 commit
  27. 17 Jul, 2018 1 commit
    • Define MAX_CODE_ALIGN globally. · d800a1e7
      2018-07-17  Martin Liska  <mliska@suse.cz>
      
      	* align.h (MAX_CODE_ALIGN): New.
      	(MAX_CODE_ALIGN_VALUE): New.
      	* common/config/i386/i386-common.c (ix86_handle_option):
      	(MAX_CODE_ALIGN): Moved to align.h.
      	* final.c (MAX_CODE_ALIGN): Likewise.
      	* opts.c (parse_and_check_align_values):
      	(MAX_CODE_ALIGN): Likewise.
      	(MAX_CODE_ALIGN_VALUE): Likewise.
      
      From-SVN: r262806
      Martin Liska committed
  28. 04 Jul, 2018 1 commit
    • [multiple changes] · c518c102
      
      2018-07-04  Denys Vlasenko  <dvlasenk@redhat.com>
      	    Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/66240
      	PR target/45996
      	PR c/84100
      	* common.opt: Rename align options with 'str_' prefix.
      	* common/config/i386/i386-common.c (set_malign_value): New
      	function.
      	(ix86_handle_option): Use it to set -falign-* options/
      	* config/aarch64/aarch64-protos.h (struct tune_params): Change
      	type from int to string.
      	* config/aarch64/aarch64.c: Update default values from int
      	to string.
      	* config/alpha/alpha.c (alpha_override_options_after_change):
      	Likewise.
      	* config/arm/arm.c (arm_override_options_after_change_1): Likewise.
      	* config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/freebsd.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/gnu-user.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/i386.c (struct ptt): Change type from int to
      	string.
      	(ix86_default_align): Set default values.
      	* config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Print
      	max skip conditionally.
      	* config/i386/iamcu.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN):
      	* config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN):
      	* config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	* config/i386/openbsdelf.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN) Print max skip conditionally.:
      	* config/i386/x86-64.h (SUBALIGN_LOG): New.
      	(ASM_OUTPUT_MAX_SKIP_ALIGN): Print
      	max skip conditionally.
      	(ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
      	* config/ia64/ia64.c (ia64_option_override): Set default values
              for alignment options.
      	* config/m68k/m68k.c: Handle new str_align_* options.
      	* config/mips/mips.c (mips_set_compression_mode): Change
      	type of constants.
      	(mips_option_override): Set default values for options.
      	* config/powerpcspe/powerpcspe.c (rs6000_option_override_internal):
              Likewise.
      	* config/rs6000/rs6000.c (rs6000_option_override_internal):
      	Likewise.
      	* config/rx/rx.c (rx_option_override): Likewise.
      	* config/rx/rx.h (JUMP_ALIGN): Use align_jumps_log.
      	(LABEL_ALIGN): Use align_labels_log.
      	(LOOP_ALIGN): Use align_loops_align.
      	* config/s390/s390.c (s390_asm_output_function_label): Use new
              macros.
      	* config/sh/sh.c (sh_override_options_after_change):
      	Change type of constants.
      	* config/spu/spu.c (spu_sched_init): Likewise.
      	* config/sparc/sparc.c (sparc_option_override): Set default
              values for options.
      	* config/visium/visium.c (visium_option_override): Likewise.
      	* config/visium/visium.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Do not
              emit p2align format with last argument if it's not needed.
      	* doc/invoke.texi: Document extended format of -falign-*.
      	* final.c: Use align_labels alignment.
      	* flags.h (struct target_flag_state): Change type to use
      	align_flags.
      	(struct align_flags_tuple): New.
      	(struct align_flags): Likewise.
      	(align_loops_log): Redefine macro to use new types.
      	(align_loops_max_skip): Redefine macro to use new types.
      	(align_jumps_log): Redefine macro to use new types.
      	(align_jumps_max_skip): Redefine macro to use new types.
      	(align_labels_log): Redefine macro to use new types.
      	(align_labels_max_skip): Redefine macro to use new types.
      	(align_functions_log): Redefine macro to use new types.
      	(align_loops): Redefine macro to use new types.
      	(align_jumps): Redefine macro to use new types.
      	(align_labels): Redefine macro to use new types.
      	(align_functions): Redefine macro to use new types.
      	(align_functions_max_skip): Redefine macro to use new types.
      	(align_loops_value): New macro.
      	(align_jumps_value): New macro.
      	(align_labels_value): New macro.
      	(align_functions_value): New macro.
      	* function.c (invoke_set_current_function_hook): Propagate
      	alignment values from flags to global variables default in
      	topleev.h.
      	* ipa-icf.c (sem_function::equals_wpa): Use
      	cl_optimization_option_eq instead of memcmp.
      	* lto-streamer.h (cl_optimization_stream_out): Support streaming
      	of string types.
      	(cl_optimization_stream_in): Likewise.
      	* optc-save-gen.awk: Support strings in cl_optimization.
      	* opth-gen.awk: Likewise.
      	* opts.c (finish_options): Remove error checking of invalid
      	value ranges.
      	(MAX_CODE_ALIGN): Remove.
      	(MAX_CODE_ALIGN_VALUE): Likewise.
      	(parse_and_check_align_values): New function.
      	(check_alignment_argument): Likewise.
      	(common_handle_option): Use check_alignment_argument.
      	* opts.h (parse_and_check_align_values): Declare.
      	* toplev.c (init_alignments): Remove.
      	(read_log_maxskip): New.
      	(parse_N_M): Likewise.
      	(parse_alignment_opts): Likewise.
      	(backend_init_target): Remove usage of init_alignments.
      	* toplev.h (parse_alignment_opts): Declare.
      	* tree-streamer-in.c (streamer_read_tree_bitfields): Add new
      	argument.
      	* tree-streamer-out.c (streamer_write_tree_bitfields): Likewise.
      	* tree.c (cl_option_hasher::equal): New.
      	* varasm.c: Use new global macros.
      2018-07-04  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/66240
      	PR target/45996
      	PR c/84100
      	* lto.c (compare_tree_sccs_1): Use cl_optimization_option_eq
      	instead of memcmp.
      2018-07-04  Martin Liska  <mliska@suse.cz>
      
      	PR middle-end/66240
      	PR target/45996
      	PR c/84100
      	* gcc.dg/pr84100.c (foo):
      	* gcc.target/i386/falign-functions-2.c: New test.
      	* gcc.target/i386/falign-functions.c: New test.
      
      From-SVN: r262375
      Martin Liska committed
  29. 01 Jul, 2018 1 commit
    • Add -mgnu-asm; change -mdec-asm to generate DEC assembler · 4aef57c9
              compatible output.
      
      	* common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle
      	-munit-asm, -mgnu-asm, -mdec-asm.
      	* config/pdp11/pdp11-protos.h (pdp11_gen_int_label): New.
      	(pdp11_output_labelref): New.
      	(pdp11_output_def): New.
      	(pdp11_output_addr_vec_elt): New.
      	* config/pdp11/pdp11.c: Use tab between opcode and operands.  Use
      	%# and %@ format codes.
      	(pdp11_option_override): New.
      	(TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define.
      	(pdp11_output_ident): New.
      	(pdp11_asm_named_section): New.
      	(pdp11_asm_init_sections): New.
      	(pdp11_file_start): New.
      	(pdp11_file_end): New.
      	(output_ascii): Use .ascii/.asciz for -mdec-asm.
      	(pdp11_asm_print_operand): Update %# and %$ for -mdec-asm.  Add
      	%o, like %c but octal.
      	(pdp11_option_override): New.
      	* config/pdp11/pdp11.h (TEXT_SECTION_ASM_OP): Update for
      	-mdec-asm.
      	(DATA_SECTION_ASM_OP): Ditto.
      	(READONLY_DATA_SECTION_ASM_OP): New.
      	(IS_ASM_LOGICAL_LINE_SEPARATOR): New.
      	(ASM_GENERATE_INTERNAL_LABEL): Use new function.
      	(ASM_OUTPUT_LABELREF): Ditto.
      	(ASM_OUTPUT_DEF): Ditto.
      	(ASM_OUTPUT_EXTERNAL): New.
      	(ASM_OUTPUT_SOURCE_FILENAME): New.
      	(ASM_OUTPUT_ADDR_VEC_ELT): Use new function.
      	(ASM_OUTPUT_SKIP): Update for -mdec-asm.
      	* config/pdp11/pdp11.md: Use tab between opcode and operands.  Use
      	%# and %@ format codes.
      	* config/pdp11/pdp11.opt (mgnu-asm): New.
      	(mdec-asm): Conflicts with -mgnu-asm and -munix-asm.
      	(munix-asm): Conflicts with -mdec-asm and -mgnu-asm.
      	* doc/invoke.txt (PDP-11 Options): Add -mgnu-asm.
      
      From-SVN: r262289
      Paul Koning committed
  30. 27 Jun, 2018 1 commit
    • Convert pdp11 back end to CCmode. · b4324a14
      	* common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle
      	mutually exclusive options.
      	* config/pdp11/constraints.md (h): New constraint.
      	(O): Update definition to match shift code generation.
      	(D): New constraint.
      	* config/pdp11/pdp11-modes.def (CCNZ): Define mode.
      	(CCFP): Remove.
      	* config/pdp11/pdp11-protos.h (int_no_side_effect_operand): New
      	function.
      	(output_jump): Change arguments.
      	(pdp11_fixed_cc_regs): New function.
      	(pdp11_cc_mode): Ditto.
      	(pdp11_expand_shift): Ditto.
      	(pdp11_assemble_shift): Ditto.
      	(pdp11_small_shift): Ditto.
      	(pdp11_branch_cost): Remove.
      	* config/pdp11/pdp11.c (pdp11_assemble_integer): Remove comments
      	from output.
      	(pdp11_register_move_cost): Update for CC registers.
      	(pdp11_rtx_costs): Add case for LSHIFTRT.
      	(pdp11_output_jump): Add CCNZ mode conditional branches.
      	(notice_update_cc_on_set): Remove.
      	(pdp11_cc_mode): New function.
      	(simple_memory_operand): Correct pre/post decrement case.
      	(no_side_effect_operand): New function.
      	(pdp11_regno_reg_class): Add CC_REGS class.
      	(pdp11_fixed_cc_regs): New function.
      	(pdp11_small_shift): New function.
      	(pdp11_expand_shift): New function to expand shift insns.
      	(pdp11_assemble_shift): New function to output shifts.
      	(pdp11_branch_cost): Remove.
      	(pdp11_modes_tieable_p): Make QI/HI modes tieable.
      	* config/pdp11/pdp11.h (SIZE_TYPE): Ensure 16-bit type.
      	(WCHAR_TYPE): Ditto.
      	(PTRDIFF_TYPE): Ditto.
      	(ADJUST_INSN_LENGTH): New macro.
      	(FIXED_REGISTERS): Add CC registers.
      	(CALL_USED_REGISTERS): Ditto.
      	(reg_class): Ditto.
      	(REG_CLASS_NAMES): Ditto.
      	(REG_CLASS_CONTENTS): Ditto.
      	(SELECT_CC_MODE): Use new function.
      	(TARGET_FLAGS_REGNUM): New macro.
      	(TARGET_FIXED_CONDITION_CODE_REGS): Ditto.
      	(cc0_reg_rtx): Remove.
      	(CC_STATUS_MDEP): Remove.
      	(CC_STATUS_MDEFP_INIT): Remove.
      	(CC_IN_FPU): Remove.
      	(NOTICE_UPDATE_CC): Remove.
      	(REGISTER_NAMES): Add CC registers.
      	(BRANCH_COST): Change to constant 1.
      	* config/pdp11/pdp11.md: Rewrite for CCmode condition code
      	handling.
      	* config/pdp11/pdp11.opt (mbcopy): Remove.
      	(mbcopy-builtin): Remove.
      	(mbranch-cheap): Remove.
      	(mbranch-expensive): Remove.
      	* config/pdp11/predicates.md (expand_shift_operand): Update to
      	match shift code generation.
      	(ccnz_operator): New predicate.
      	* doc/invoke.texi (PDP-11 Options): Remove deleted options
      	-mbcopy, -mbcopy-builtin, -mbranch-cheap, -mbranch-expensive.
      	Remove non-existent option -mabshi, -mno-abshi.  Document mutually
      	exclusive options.
      	* doc/md.texi (PDP-11): Document new D and h constraints.  Update
      	description of O constraint.
      
      From-SVN: r262198
      Paul Koning committed
  31. 26 Jun, 2018 1 commit
  32. 08 Jun, 2018 1 commit
    • Remove MPX · 31db0fe0
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* MAINTAINERS: Remove MPX-related entries.
      	* Makefile.def: Remove libmpx support.
      	* Makefile.in: Likewise.
      	* configure: Remove removed files.
      	* configure.ac: Likewise.
      	* libmpx/ChangeLog: Remove.
      	* libmpx/Makefile.am: Remove.
      	* libmpx/Makefile.in: Remove.
      	* libmpx/acinclude.m4: Remove.
      	* libmpx/aclocal.m4: Remove.
      	* libmpx/config.h.in: Remove.
      	* libmpx/configure: Remove.
      	* libmpx/configure.ac: Remove.
      	* libmpx/configure.tgt: Remove.
      	* libmpx/libmpx.spec.in: Remove.
      	* libmpx/mpxrt/Makefile.am: Remove.
      	* libmpx/mpxrt/Makefile.in: Remove.
      	* libmpx/mpxrt/libmpx.map: Remove.
      	* libmpx/mpxrt/libtool-version: Remove.
      	* libmpx/mpxrt/mpxrt-utils.c: Remove.
      	* libmpx/mpxrt/mpxrt-utils.h: Remove.
      	* libmpx/mpxrt/mpxrt.c: Remove.
      	* libmpx/mpxrt/mpxrt.h: Remove.
      	* libmpx/mpxwrap/Makefile.am: Remove.
      	* libmpx/mpxwrap/Makefile.in: Remove.
      	* libmpx/mpxwrap/libmpxwrappers.map: Remove.
      	* libmpx/mpxwrap/libtool-version: Remove.
      	* libmpx/mpxwrap/mpx_wrappers.c: Remove.
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* bootstrap-mpx.mk: Remove.
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Remove support for MPX (macros, related functions,
      	fields in cgraph_node, ...).
      	* builtin-types.def (BT_BND): Likewise.
      	(BT_FN_BND_CONST_PTR): Likewise.
      	(BT_FN_CONST_PTR_BND): Likewise.
      	(BT_FN_VOID_PTR_BND): Likewise.
      	(BT_FN_BND_CONST_PTR_SIZE): Likewise.
      	(BT_FN_VOID_CONST_PTR_BND_CONST_PTR): Likewise.
      	* builtins.c (expand_builtin_memcpy_with_bounds): Likewise.
      	(expand_builtin_mempcpy_with_bounds): Likewise.
      	(expand_builtin_memset_with_bounds): Likewise.
      	(expand_builtin_memset_args): Likewise.
      	(std_expand_builtin_va_start): Likewise.
      	(expand_builtin): Likewise.
      	(expand_builtin_with_bounds): Likewise.
      	* builtins.def (DEF_BUILTIN_CHKP): Likewise.
      	(DEF_LIB_BUILTIN_CHKP): Likewise.
      	(DEF_EXT_LIB_BUILTIN_CHKP): Likewise.
      	(DEF_CHKP_BUILTIN): Likewise.
      	(BUILT_IN_MEMCPY): Likewise.
      	(BUILT_IN_MEMMOVE): Likewise.
      	(BUILT_IN_MEMPCPY): Likewise.
      	(BUILT_IN_MEMSET): Likewise.
      	(BUILT_IN_STPCPY): Likewise.
      	(BUILT_IN_STRCAT): Likewise.
      	(BUILT_IN_STRCHR): Likewise.
      	(BUILT_IN_STRCPY): Likewise.
      	(BUILT_IN_STRLEN): Likewise.
      	(BUILT_IN_MEMCPY_CHK): Likewise.
      	(BUILT_IN_MEMMOVE_CHK): Likewise.
      	(BUILT_IN_MEMPCPY_CHK): Likewise.
      	(BUILT_IN_MEMSET_CHK): Likewise.
      	(BUILT_IN_STPCPY_CHK): Likewise.
      	(BUILT_IN_STRCAT_CHK): Likewise.
      	(BUILT_IN_STRCPY_CHK): Likewise.
      	* calls.c (store_bounds): Likewise.
      	(emit_call_1): Likewise.
      	(special_function_p): Likewise.
      	(maybe_warn_nonstring_arg): Likewise.
      	(initialize_argument_information): Likewise.
      	(finalize_must_preallocate): Likewise.
      	(compute_argument_addresses): Likewise.
      	(expand_call): Likewise.
      	* cfgexpand.c (expand_call_stmt): Likewise.
      	(expand_return): Likewise.
      	(expand_gimple_stmt_1): Likewise.
      	(pass_expand::execute): Likewise.
      	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
      	(cgraph_node::remove): Likewise.
      	(cgraph_node::dump): Likewise.
      	(cgraph_node::verify_node): Likewise.
      	* cgraph.h (chkp_function_instrumented_p): Likewise.
      	(symtab_node::get_alias_target): Likewise.
      	(cgraph_node::can_remove_if_no_direct_calls_and_refs_p): Likewise.
      	(cgraph_local_p): Likewise.
      	* cgraphbuild.c (cgraph_edge::rebuild_edges): Likewise.
      	(cgraph_edge::rebuild_references): Likewise.
      	* cgraphunit.c (varpool_node::finalize_decl): Likewise.
      	(walk_polymorphic_call_targets): Likewise.
      	(cgraph_node::expand_thunk): Likewise.
      	(symbol_table::output_weakrefs): Likewise.
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Likewise.
      	(ix86_handle_option): Likewise.
      	* config/i386/constraints.md: Likewise.
      	* config/i386/i386-builtin-types.def (BND): Likewise.
      	(VOID): Likewise.
      	(PVOID): Likewise.
      	(ULONG): Likewise.
      	* config/i386/i386-builtin.def (BDESC_END): Likewise.
      	(BDESC_FIRST): Likewise.
      	(BDESC): Likewise.
      	* config/i386/i386-c.c (ix86_target_macros_internal): Likewise.
      	* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): Likewise.
      	* config/i386/i386.c (enum reg_class): Likewise.
      	(ix86_target_string): Likewise.
      	(ix86_option_override_internal): Likewise.
      	(ix86_conditional_register_usage): Likewise.
      	(ix86_valid_target_attribute_inner_p): Likewise.
      	(ix86_set_indirect_branch_type): Likewise.
      	(ix86_set_current_function): Likewise.
      	(ix86_function_arg_regno_p): Likewise.
      	(init_cumulative_args): Likewise.
      	(ix86_function_arg_advance): Likewise.
      	(ix86_function_arg): Likewise.
      	(ix86_pass_by_reference): Likewise.
      	(ix86_function_value_regno_p): Likewise.
      	(ix86_function_value_1): Likewise.
      	(ix86_function_value_bounds): Likewise.
      	(ix86_return_in_memory): Likewise.
      	(ix86_setup_incoming_vararg_bounds): Likewise.
      	(ix86_va_start): Likewise.
      	(indirect_thunk_need_prefix): Likewise.
      	(print_reg): Likewise.
      	(ix86_print_operand): Likewise.
      	(ix86_expand_call): Likewise.
      	(ix86_output_function_return): Likewise.
      	(reg_encoded_number): Likewise.
      	(BDESC_VERIFYS): Likewise.
      	(ix86_init_mpx_builtins): Likewise.
      	(ix86_init_builtins): Likewise.
      	(ix86_emit_cmove): Likewise.
      	(ix86_emit_move_max): Likewise.
      	(ix86_expand_builtin): Likewise.
      	(ix86_builtin_mpx_function): Likewise.
      	(ix86_get_arg_address_for_bt): Likewise.
      	(ix86_load_bounds): Likewise.
      	(ix86_store_bounds): Likewise.
      	(ix86_load_returned_bounds): Likewise.
      	(ix86_store_returned_bounds): Likewise.
      	(ix86_class_likely_spilled_p): Likewise.
      	(ix86_hard_regno_mode_ok): Likewise.
      	(x86_order_regs_for_local_alloc): Likewise.
      	(ix86_mitigate_rop): Likewise.
      	(ix86_bnd_prefixed_insn_p): Likewise.
      	(ix86_mpx_bound_mode): Likewise.
      	(ix86_make_bounds_constant): Likewise.
      	(ix86_initialize_bounds): Likewise.
      	(TARGET_LOAD_BOUNDS_FOR_ARG): Likewise.
      	(TARGET_STORE_BOUNDS_FOR_ARG): Likewise.
      	(TARGET_LOAD_RETURNED_BOUNDS): Likewise.
      	(TARGET_STORE_RETURNED_BOUNDS): Likewise.
      	(TARGET_CHKP_BOUND_MODE): Likewise.
      	(TARGET_BUILTIN_CHKP_FUNCTION): Likewise.
      	(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): Likewise.
      	(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): Likewise.
      	(TARGET_CHKP_INITIALIZE_BOUNDS): Likewise.
      	* config/i386/i386.h (TARGET_MPX): Likewise.
      	(TARGET_MPX_P): Likewise.
      	(VALID_BND_REG_MODE): Likewise.
      	(FIRST_BND_REG): Likewise.
      	(LAST_BND_REG): Likewise.
      	(enum reg_class): Likewise.
      	(BND_REG_P): Likewise.
      	(BND_REGNO_P): Likewise.
      	(BNDmode): Likewise.
      	(ADJUST_INSN_LENGTH): Likewise.
      	* config/i386/i386.md: Likewise.
      	* config/i386/i386.opt: Likewise.
      	* config/i386/linux-common.h (LIBMPX_LIBS): Likewise.
      	(defined): Likewise.
      	(LINK_MPX): Likewise.
      	(MPX_SPEC): Likewise.
      	(LIBMPX_SPEC): Likewise.
      	(LIBMPXWRAPPERS_SPEC): Likewise.
      	(CHKP_SPEC): Likewise.
      	* config/i386/predicates.md: Likewise.
      	* dbxout.c (dbxout_type): Likewise.
      	* doc/extend.texi: Likewise.
      	* doc/invoke.texi: Likewise.
      	* doc/md.texi: Likewise.
      	* doc/tm.texi: Likewise.
      	* doc/tm.texi.in: Likewise.
      	* dwarf2out.c (is_base_type): Likewise.
      	(gen_formal_types_die): Likewise.
      	(gen_subprogram_die): Likewise.
      	(gen_type_die_with_usage): Likewise.
      	(gen_decl_die): Likewise.
      	(dwarf2out_late_global_decl): Likewise.
      	* expr.c (expand_assignment): Likewise.
      	(emit_storent_insn): Likewise.
      	(store_expr_with_bounds): Likewise.
      	(store_expr): Likewise.
      	(expand_expr_real_1): Likewise.
      	* expr.h (store_expr_with_bounds): Likewise.
      	* function.c (use_register_for_decl): Likewise.
      	(struct bounds_parm_data): Likewise.
      	(assign_parms_augmented_arg_list): Likewise.
      	(assign_parm_find_entry_rtl): Likewise.
      	(assign_parm_is_stack_parm): Likewise.
      	(assign_parm_load_bounds): Likewise.
      	(assign_bounds): Likewise.
      	(assign_parms): Likewise.
      	(expand_function_start): Likewise.
      	* gcc.c (CHKP_SPEC): Likewise.
      	* gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
      	* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Likewise.
      	(wrestrict_dom_walker::check_call): Likewise.
      	* gimple.c (gimple_build_call_from_tree): Likewise.
      	* gimple.h (enum gf_mask): Likewise.
      	(gimple_call_with_bounds_p): Likewise.
      	(gimple_call_set_with_bounds): Likewise.
      	* gimplify.c (gimplify_init_constructor): Likewise.
      	* ipa-cp.c (initialize_node_lattices): Likewise.
      	(propagate_constants_across_call): Likewise.
      	(find_more_scalar_values_for_callers_subset): Likewise.
      	* ipa-hsa.c (process_hsa_functions): Likewise.
      	* ipa-icf-gimple.c (func_checker::compare_gimple_call): Likewise.
      	* ipa-icf.c (sem_function::merge): Likewise.
      	* ipa-inline.c (early_inliner): Likewise.
      	* ipa-pure-const.c (warn_function_noreturn): Likewise.
      	(warn_function_cold): Likewise.
      	(propagate_pure_const): Likewise.
      	* ipa-ref.h (enum GTY): Likewise.
      	* ipa-split.c (find_retbnd): Likewise.
      	(consider_split): Likewise.
      	(split_function): Likewise.
      	* ipa-visibility.c (cgraph_externally_visible_p): Likewise.
      	* ipa.c (walk_polymorphic_call_targets): Likewise.
      	(symbol_table::remove_unreachable_nodes): Likewise.
      	(process_references): Likewise.
      	(cgraph_build_static_cdtor_1): Likewise.
      	* lto-cgraph.c (lto_output_node): Likewise.
      	(output_refs): Likewise.
      	(compute_ltrans_boundary): Likewise.
      	(input_overwrite_node): Likewise.
      	(input_node): Likewise.
      	(input_cgraph_1): Likewise.
      	* params.def (PARAM_CHKP_MAX_CTOR_SIZE): Likewise.
      	* passes.c (pass_manager::execute_early_local_passes): Likewise.
      	(class pass_chkp_instrumentation_passes): Likewise.
      	(make_pass_chkp_instrumentation_passes): Likewise.
      	* passes.def: Likewise.
      	* rtl.h (struct GTY): Likewise.
      	(CALL_EXPR_WITH_BOUNDS_P): Likewise.
      	* stor-layout.c (layout_type): Likewise.
      	* symtab.c: Likewise.
      	* target.def: Likewise.
      	* targhooks.c (default_chkp_bound_type): Likewise.
      	(default_chkp_bound_mode): Likewise.
      	(default_builtin_chkp_function): Likewise.
      	(default_chkp_function_value_bounds): Likewise.
      	(default_chkp_make_bounds_constant): Likewise.
      	(default_chkp_initialize_bounds): Likewise.
      	* targhooks.h (default_chkp_bound_type): Likewise.
      	(default_chkp_bound_mode): Likewise.
      	(default_builtin_chkp_function): Likewise.
      	(default_chkp_function_value_bounds): Likewise.
      	(default_chkp_make_bounds_constant): Likewise.
      	(default_chkp_initialize_bounds): Likewise.
      	* toplev.c (compile_file): Likewise.
      	(process_options): Likewise.
      	* tree-core.h (DEF_BUILTIN): Likewise.
      	(DEF_BUILTIN_CHKP): Likewise.
      	* tree-inline.c (declare_return_variable): Likewise.
      	(remap_gimple_stmt): Likewise.
      	(copy_bb): Likewise.
      	(initialize_inlined_parameters): Likewise.
      	(expand_call_inline): Likewise.
      	* tree-pass.h (make_pass_ipa_chkp_versioning): Likewise.
      	(make_pass_ipa_chkp_early_produce_thunks): Likewise.
      	(make_pass_ipa_chkp_produce_thunks): Likewise.
      	(make_pass_chkp): Likewise.
      	(make_pass_chkp_opt): Likewise.
      	(make_pass_chkp_instrumentation_passes): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise.
      	* tree-ssa-dce.c (propagate_necessity): Likewise.
      	(eliminate_unnecessary_stmts): Likewise.
      	* tree-ssa-pre.c (create_expression_by_pieces): Likewise.
      	* tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise.
      	* tree-ssa-sccvn.h: Likewise.
      	* tree-ssa-strlen.c (get_string_length): Likewise.
      	(valid_builtin_call): Likewise.
      	(adjust_last_stmt): Likewise.
      	(handle_builtin_strchr): Likewise.
      	(handle_builtin_strcpy): Likewise.
      	(handle_builtin_stxncpy): Likewise.
      	(handle_builtin_memcpy): Likewise.
      	(handle_builtin_strcat): Likewise.
      	(strlen_check_and_optimize_stmt): Likewise.
      	* tree-stdarg.c (expand_ifn_va_arg_1): Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer.c (record_common_node): Likewise.
      	* tree.c (tree_code_size): Likewise.
      	(wide_int_to_tree_1): Likewise.
      	(type_contains_placeholder_1): Likewise.
      	(build_common_tree_nodes): Likewise.
      	* tree.def (POINTER_BOUNDS_TYPE): Likewise.
      	* tree.h (POINTER_BOUNDS_TYPE_P): Likewise.
      	(POINTER_BOUNDS_P): Likewise.
      	(BOUNDED_TYPE_P): Likewise.
      	(BOUNDED_P): Likewise.
      	(CALL_WITH_BOUNDS_P): Likewise.
      	(pointer_bounds_type_node): Likewise.
      	* value-prof.c (gimple_ic): Likewise.
      	* var-tracking.c (vt_add_function_parameters): Likewise.
      	* varasm.c (make_decl_rtl): Likewise.
      	(assemble_start_function): Likewise.
      	(output_constant): Likewise.
      	(maybe_assemble_visibility): Likewise.
      	* varpool.c (ctor_for_folding): Likewise.
      	* chkp-builtins.def: Remove.
      	* ipa-chkp.c: Remove.
      	* ipa-chkp.h: Remove.
      	* rtl-chkp.c: Remove.
      	* rtl-chkp.h: Remove.
      	* tree-chkp-opt.c: Remove.
      	* tree-chkp.c: Remove.
      	* tree-chkp.h: Remove.
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* c-attribs.c (handle_bnd_variable_size_attribute): Remove support
      	for MPX (macros, related functions, fields in cgraph_node, ...).
      	(handle_bnd_legacy): Likewise.
      	(handle_bnd_instrument): Likewise.
      	* c.opt: Likewise.
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* lto-partition.c (add_references_to_partition): Remove support
      	for MPX (macros, related functions, fields in cgraph_node, ...).
      	(add_symbol_to_partition_1): Likewise.
      	(privatize_symbol_name): Likewise.
      	* lto-symtab.c (lto_cgraph_replace_node): Likewise.
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* g++.dg/dg.exp: Do not use mpx.exp.
      	* g++.dg/lto/lto.exp: Likewise.
      	* g++.dg/lto/pr69729_0.C: Remove.
      	* g++.dg/opt/pr71529.C: Remove.
      	* g++.dg/pr63995-1.C: Remove.
      	* g++.dg/pr68270.C: Remove.
      	* g++.dg/pr71624.C: Remove.
      	* g++.dg/pr71633.C: Remove.
      	* g++.dg/pr79761.C: Remove.
      	* g++.dg/pr79764.C: Remove.
      	* g++.dg/pr79769.C: Remove.
      	* gcc.dg/lto/chkp-privatize-1_0.c: Remove.
      	* gcc.dg/lto/chkp-privatize-2_0.c: Remove.
      	* gcc.dg/lto/chkp-privatize_0.c: Remove.
      	* gcc.dg/lto/chkp-removed-alias_0.c: Remove.
      	* gcc.dg/lto/chkp-static-bounds_0.c: Remove.
      	* gcc.dg/lto/chkp-wrap-asm-name_0.c: Remove.
      	* gcc.dg/lto/lto.exp: Do not use mpx.exp.
      	* gcc.dg/lto/pr66221_0.c: Remove.
      	* gcc.target/i386/chkp-always_inline.c: Remove.
      	* gcc.target/i386/chkp-bndret.c: Remove.
      	* gcc.target/i386/chkp-builtins-1.c: Remove.
      	* gcc.target/i386/chkp-builtins-2.c: Remove.
      	* gcc.target/i386/chkp-builtins-3.c: Remove.
      	* gcc.target/i386/chkp-builtins-4.c: Remove.
      	* gcc.target/i386/chkp-const-check-1.c: Remove.
      	* gcc.target/i386/chkp-const-check-2.c: Remove.
      	* gcc.target/i386/chkp-hidden-def.c: Remove.
      	* gcc.target/i386/chkp-label-address.c: Remove.
      	* gcc.target/i386/chkp-lifetime-1.c: Remove.
      	* gcc.target/i386/chkp-narrow-bounds.c: Remove.
      	* gcc.target/i386/chkp-pr69044.c: Remove.
      	* gcc.target/i386/chkp-remove-bndint-1.c: Remove.
      	* gcc.target/i386/chkp-remove-bndint-2.c: Remove.
      	* gcc.target/i386/chkp-strchr.c: Remove.
      	* gcc.target/i386/chkp-strlen-1.c: Remove.
      	* gcc.target/i386/chkp-strlen-2.c: Remove.
      	* gcc.target/i386/chkp-strlen-3.c: Remove.
      	* gcc.target/i386/chkp-strlen-4.c: Remove.
      	* gcc.target/i386/chkp-strlen-5.c: Remove.
      	* gcc.target/i386/chkp-stropt-1.c: Remove.
      	* gcc.target/i386/chkp-stropt-10.c: Remove.
      	* gcc.target/i386/chkp-stropt-11.c: Remove.
      	* gcc.target/i386/chkp-stropt-12.c: Remove.
      	* gcc.target/i386/chkp-stropt-13.c: Remove.
      	* gcc.target/i386/chkp-stropt-14.c: Remove.
      	* gcc.target/i386/chkp-stropt-15.c: Remove.
      	* gcc.target/i386/chkp-stropt-16.c: Remove.
      	* gcc.target/i386/chkp-stropt-17.c: Remove.
      	* gcc.target/i386/chkp-stropt-2.c: Remove.
      	* gcc.target/i386/chkp-stropt-3.c: Remove.
      	* gcc.target/i386/chkp-stropt-4.c: Remove.
      	* gcc.target/i386/chkp-stropt-5.c: Remove.
      	* gcc.target/i386/chkp-stropt-6.c: Remove.
      	* gcc.target/i386/chkp-stropt-7.c: Remove.
      	* gcc.target/i386/chkp-stropt-8.c: Remove.
      	* gcc.target/i386/chkp-stropt-9.c: Remove.
      	* gcc.target/i386/i386.exp: Do not use mpx.exp.
      	* gcc.target/i386/indirect-thunk-11.c: Remove.
      	* gcc.target/i386/indirect-thunk-12.c: Remove.
      	* gcc.target/i386/indirect-thunk-attr-12.c: Remove.
      	* gcc.target/i386/indirect-thunk-attr-13.c: Remove.
      	* gcc.target/i386/indirect-thunk-bnd-1.c: Remove.
      	* gcc.target/i386/indirect-thunk-bnd-2.c: Remove.
      	* gcc.target/i386/indirect-thunk-bnd-3.c: Remove.
      	* gcc.target/i386/indirect-thunk-bnd-4.c: Remove.
      	* gcc.target/i386/interrupt-bnd-err-1.c: Remove.
      	* gcc.target/i386/interrupt-bnd-err-2.c: Remove.
      	* gcc.target/i386/mpx/alloca-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/alloca-1-nov.c: Remove.
      	* gcc.target/i386/mpx/alloca-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/arg-addr-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/arg-addr-1-nov.c: Remove.
      	* gcc.target/i386/mpx/arg-addr-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/bitfields-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/bitfields-1-nov.c: Remove.
      	* gcc.target/i386/mpx/bitfields-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-nov.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-bounds-2.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-1-nov.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-lbounds-2.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-1-nov.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-chk-ptr-ubounds-2.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-1.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-nov.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-copy-ptr-bounds-3.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-get-ptr-lbound-1.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-get-ptr-lbound-2.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-get-ptr-ubound-1.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-get-ptr-ubound-2.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-1.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-2-nov.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-init-ptr-bounds-3.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-1.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-nov.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-lbv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-nov.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-3-ubv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-narrow-ptr-bounds-4.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-null-ptr-bounds-1-bbv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-1.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-nov.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-set-ptr-bounds-3.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-nov.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/builtin-bnd-store-ptr-bounds-2.c: Remove.
      	* gcc.target/i386/mpx/calloc-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/calloc-1-nov.c: Remove.
      	* gcc.target/i386/mpx/calloc-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/chkp-fix-calls-1.c: Remove.
      	* gcc.target/i386/mpx/chkp-fix-calls-2.c: Remove.
      	* gcc.target/i386/mpx/chkp-fix-calls-3.c: Remove.
      	* gcc.target/i386/mpx/chkp-fix-calls-4.c: Remove.
      	* gcc.target/i386/mpx/chkp-thunk-comdat-1.cc: Remove.
      	* gcc.target/i386/mpx/chkp-thunk-comdat-2.cc: Remove.
      	* gcc.target/i386/mpx/chkp-thunk-comdat-3.c: Remove.
      	* gcc.target/i386/mpx/fastcall-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/fastcall-1-nov.c: Remove.
      	* gcc.target/i386/mpx/fastcall-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/fastcall-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/fastcall-2-nov.c: Remove.
      	* gcc.target/i386/mpx/fastcall-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-1-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-10-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-10-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-10-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-2-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-3-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-3-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-3-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-4-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-4-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-4-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-5-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-5-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-5-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-6-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-6-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-6-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-7-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-7-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-7-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-8-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-8-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-8-ubv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-9-lbv.c: Remove.
      	* gcc.target/i386/mpx/field-addr-9-nov.c: Remove.
      	* gcc.target/i386/mpx/field-addr-9-ubv.c: Remove.
      	* gcc.target/i386/mpx/frame-address-1-nov.c: Remove.
      	* gcc.target/i386/mpx/hard-reg-1-nov.c: Remove.
      	* gcc.target/i386/mpx/hard-reg-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/hard-reg-2-nov.c: Remove.
      	* gcc.target/i386/mpx/hard-reg-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/if-stmt-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/if-stmt-1-nov.c: Remove.
      	* gcc.target/i386/mpx/if-stmt-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/if-stmt-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/if-stmt-2-nov.c: Remove.
      	* gcc.target/i386/mpx/if-stmt-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/label-address-1.c: Remove.
      	* gcc.target/i386/mpx/legacy-1-nov.c: Remove.
      	* gcc.target/i386/mpx/macro.c: Remove.
      	* gcc.target/i386/mpx/malloc-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/malloc-1-nov.c: Remove.
      	* gcc.target/i386/mpx/malloc-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/memcpy-1.c: Remove.
      	* gcc.target/i386/mpx/memmove-1.c: Remove.
      	* gcc.target/i386/mpx/memmove-2.c: Remove.
      	* gcc.target/i386/mpx/memmove-zero-length.c: Remove.
      	* gcc.target/i386/mpx/mpx-check.h: Remove.
      	* gcc.target/i386/mpx/mpx-os-support.h: Remove.
      	* gcc.target/i386/mpx/mpx.exp: Remove.
      	* gcc.target/i386/mpx/nested-function-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/nested-function-1-nov.c: Remove.
      	* gcc.target/i386/mpx/nested-function-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-1-nov.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-2-nov.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-3-lbv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-3-nov.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-3-ubv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-4-lbv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-4-nov.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-4-ubv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-5-lbv.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-5-nov.c: Remove.
      	* gcc.target/i386/mpx/pointer-arg-5-ubv.c: Remove.
      	* gcc.target/i386/mpx/pointer-diff-1.c: Remove.
      	* gcc.target/i386/mpx/pointer-store-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/pointer-store-1-nov.c: Remove.
      	* gcc.target/i386/mpx/pointer-store-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/pr65508.c: Remove.
      	* gcc.target/i386/mpx/pr65531.cc: Remove.
      	* gcc.target/i386/mpx/pr66048.cc: Remove.
      	* gcc.target/i386/mpx/pr66134.c: Remove.
      	* gcc.target/i386/mpx/pr66566.c: Remove.
      	* gcc.target/i386/mpx/pr66567.c: Remove.
      	* gcc.target/i386/mpx/pr66568.c: Remove.
      	* gcc.target/i386/mpx/pr66569.c: Remove.
      	* gcc.target/i386/mpx/pr66581.c: Remove.
      	* gcc.target/i386/mpx/pr68337-1.c: Remove.
      	* gcc.target/i386/mpx/pr68337-2.c: Remove.
      	* gcc.target/i386/mpx/pr68416.c: Remove.
      	* gcc.target/i386/mpx/pr78339.c: Remove.
      	* gcc.target/i386/mpx/pr79631.c: Remove.
      	* gcc.target/i386/mpx/pr79633.c: Remove.
      	* gcc.target/i386/mpx/pr79753.c: Remove.
      	* gcc.target/i386/mpx/pr79770.c: Remove.
      	* gcc.target/i386/mpx/pr79987.c: Remove.
      	* gcc.target/i386/mpx/pr79988.c: Remove.
      	* gcc.target/i386/mpx/realloc-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/realloc-1-nov.c: Remove.
      	* gcc.target/i386/mpx/realloc-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/realloc-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/realloc-2-nov.c: Remove.
      	* gcc.target/i386/mpx/realloc-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/reference-1-lbv.cpp: Remove.
      	* gcc.target/i386/mpx/reference-1-nov.cpp: Remove.
      	* gcc.target/i386/mpx/reference-1-ubv.cpp: Remove.
      	* gcc.target/i386/mpx/reference-2-lbv.cpp: Remove.
      	* gcc.target/i386/mpx/reference-2-nov.cpp: Remove.
      	* gcc.target/i386/mpx/reference-2-ubv.cpp: Remove.
      	* gcc.target/i386/mpx/reference-3-lbv.cpp: Remove.
      	* gcc.target/i386/mpx/reference-3-nov.cpp: Remove.
      	* gcc.target/i386/mpx/reference-3-ubv.cpp: Remove.
      	* gcc.target/i386/mpx/reference-4-lbv.cpp: Remove.
      	* gcc.target/i386/mpx/reference-4-nov.cpp: Remove.
      	* gcc.target/i386/mpx/reference-4-ubv.cpp: Remove.
      	* gcc.target/i386/mpx/return-pointer-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/return-pointer-1-nov.c: Remove.
      	* gcc.target/i386/mpx/return-pointer-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-1-nov.c: Remove.
      	* gcc.target/i386/mpx/return-struct-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-2-nov.c: Remove.
      	* gcc.target/i386/mpx/return-struct-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-3-lbv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-3-nov.c: Remove.
      	* gcc.target/i386/mpx/return-struct-3-ubv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-4-lbv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-4-nov.c: Remove.
      	* gcc.target/i386/mpx/return-struct-4-ubv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-5-lbv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-5-nov.c: Remove.
      	* gcc.target/i386/mpx/return-struct-5-ubv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-6-lbv.c: Remove.
      	* gcc.target/i386/mpx/return-struct-6-nov.c: Remove.
      	* gcc.target/i386/mpx/return-struct-6-ubv.c: Remove.
      	* gcc.target/i386/mpx/sincos-1-nov.c: Remove.
      	* gcc.target/i386/mpx/static-array-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/static-array-1-nov.c: Remove.
      	* gcc.target/i386/mpx/static-array-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/static-init-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/static-init-1-nov.c: Remove.
      	* gcc.target/i386/mpx/static-init-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/static-init-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/static-init-2-nov.c: Remove.
      	* gcc.target/i386/mpx/static-init-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/static-init-3-lbv.c: Remove.
      	* gcc.target/i386/mpx/static-init-3-nov.c: Remove.
      	* gcc.target/i386/mpx/static-init-3-ubv.c: Remove.
      	* gcc.target/i386/mpx/static-init-4-lbv.c: Remove.
      	* gcc.target/i386/mpx/static-init-4-nov.c: Remove.
      	* gcc.target/i386/mpx/static-init-4-ubv.c: Remove.
      	* gcc.target/i386/mpx/static-init-5-lbv.c: Remove.
      	* gcc.target/i386/mpx/static-init-5-nov.c: Remove.
      	* gcc.target/i386/mpx/static-init-5-ubv.c: Remove.
      	* gcc.target/i386/mpx/static-init-6-lbv.c: Remove.
      	* gcc.target/i386/mpx/static-init-6-nov.c: Remove.
      	* gcc.target/i386/mpx/static-init-6-ubv.c: Remove.
      	* gcc.target/i386/mpx/static-string-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/static-string-1-nov.c: Remove.
      	* gcc.target/i386/mpx/static-string-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-1-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-10-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-10-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-10-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-2-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-3-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-3-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-3-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-4-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-4-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-4-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-5-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-5-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-5-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-6-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-6-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-6-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-7-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-7-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-7-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-8-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-8-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-8-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-9-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-9-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-arg-9-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-copy-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-copy-1-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-copy-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/struct-copy-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/struct-copy-2-nov.c: Remove.
      	* gcc.target/i386/mpx/struct-copy-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/thread-local-var-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/thread-local-var-1-nov.c: Remove.
      	* gcc.target/i386/mpx/thread-local-var-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/union-arg-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/union-arg-1-nov.c: Remove.
      	* gcc.target/i386/mpx/union-arg-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/va-arg-pack-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/va-arg-pack-1-nov.c: Remove.
      	* gcc.target/i386/mpx/va-arg-pack-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/va-arg-pack-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/va-arg-pack-2-nov.c: Remove.
      	* gcc.target/i386/mpx/va-arg-pack-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/vararg-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/vararg-1-nov.c: Remove.
      	* gcc.target/i386/mpx/vararg-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/vararg-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/vararg-2-nov.c: Remove.
      	* gcc.target/i386/mpx/vararg-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/vararg-3-lbv.c: Remove.
      	* gcc.target/i386/mpx/vararg-3-nov.c: Remove.
      	* gcc.target/i386/mpx/vararg-3-ubv.c: Remove.
      	* gcc.target/i386/mpx/vararg-4-lbv.c: Remove.
      	* gcc.target/i386/mpx/vararg-4-nov.c: Remove.
      	* gcc.target/i386/mpx/vararg-4-ubv.c: Remove.
      	* gcc.target/i386/mpx/vararg-5-lbv.c: Remove.
      	* gcc.target/i386/mpx/vararg-5-nov.c: Remove.
      	* gcc.target/i386/mpx/vararg-5-ubv.c: Remove.
      	* gcc.target/i386/mpx/vararg-6-lbv.c: Remove.
      	* gcc.target/i386/mpx/vararg-6-nov.c: Remove.
      	* gcc.target/i386/mpx/vararg-6-ubv.c: Remove.
      	* gcc.target/i386/mpx/vararg-7-lbv.c: Remove.
      	* gcc.target/i386/mpx/vararg-7-nov.c: Remove.
      	* gcc.target/i386/mpx/vararg-7-ubv.c: Remove.
      	* gcc.target/i386/mpx/vararg-8-lbv.c: Remove.
      	* gcc.target/i386/mpx/vararg-8-nov.c: Remove.
      	* gcc.target/i386/mpx/vararg-8-ubv.c: Remove.
      	* gcc.target/i386/mpx/vla-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/vla-1-nov.c: Remove.
      	* gcc.target/i386/mpx/vla-1-ubv.c: Remove.
      	* gcc.target/i386/mpx/vla-2-lbv.c: Remove.
      	* gcc.target/i386/mpx/vla-2-nov.c: Remove.
      	* gcc.target/i386/mpx/vla-2-ubv.c: Remove.
      	* gcc.target/i386/mpx/vla-trailing-1-lbv.c: Remove.
      	* gcc.target/i386/mpx/vla-trailing-1-nov.c: Remove.
      	* gcc.target/i386/mpx/vla-trailing-1-ubv.c: Remove.
      	* gcc.target/i386/pr63995-2.c: Remove.
      	* gcc.target/i386/pr64805.c: Remove.
      	* gcc.target/i386/pr65044.c: Remove.
      	* gcc.target/i386/pr65167.c: Remove.
      	* gcc.target/i386/pr65183.c: Remove.
      	* gcc.target/i386/pr65184.c: Remove.
      	* gcc.target/i386/pr65523.c: Remove.
      	* gcc.target/i386/pr70876.c: Remove.
      	* gcc.target/i386/pr70877.c: Remove.
      	* gcc.target/i386/pr71458.c: Remove.
      	* gcc.target/i386/pr80880.c: Remove.
      	* gcc.target/i386/ret-thunk-25.c: Remove.
      	* gcc.target/i386/thunk-retbnd.c: Remove.
      	* lib/mpx-dg.exp: Remove.
      	* gcc.target/i386/funcspec-56.inc: Adjust test case.
      
      From-SVN: r261304
      Martin Liska committed
  33. 03 Jun, 2018 1 commit
  34. 02 Jun, 2018 1 commit
    • [NDS32] Support Linux target for nds32. · cf3cd43d
      gcc/
      	* config.gcc (nds32*): Use nds32-linux.opt and nds32-elf.opt.
      	(nds32le-*-*, nds32be-*-*): Integrate checking process.
      	(nds32*-*-*): Add glibc and uclibc conditions.
      	* common/config/nds32/nds32-common.c (nds32_except_unwind_info): New.
      	(TARGET_EXCEPT_UNWIND_INFO): Define.
      	* config/nds32/elf.h: New file.
      	* config/nds32/linux.h: New file.
      	* config/nds32/nds32-elf.opt: New file.
      	* config/nds32/nds32-linux.opt: New file.
      	* config/nds32/nds32-fp-as-gp.c
      	(pass_nds32_fp_as_gp::gate): Consider TARGET_LINUX_ABI.
      	* config/nds32/nds32.c (nds32_conditional_register_usage): Consider
      	TARGET_LINUX_ABI.
      	(nds32_asm_file_end): Ditto.
      	(nds32_print_operand): Ditto.
      	(nds32_insert_attributes): Ditto.
      	(nds32_init_libfuncs): New function.
      	(TARGET_HAVE_TLS): Define.
      	(TARGET_INIT_LIBFUNCS): Define.
      	* config/nds32/nds32.h (TARGET_DEFAULT_RELAX): Apply different relax
      	spec content.
      	(TARGET_ELF): Apply different mcmodel setting.
      	(LINK_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): The content has
      	been migrated into elf.h and linux.h files.
      	* config/nds32/nds32.md (add_pc): Consider TARGET_LINUX_ABI.
      	* config/nds32/nds32.opt (mvh): Consider TARGET_LINUX_ABI.
      	(mcmodel): The content has been migrated into nds32-elf.opt and
      	nds32-linux.opt files.
      	* config/nds32/t-elf: New file.
      	* config/nds32/t-linux: New file.
      
      libgcc/
      	* config.host (nds32*-linux*): New.
      	* config/nds32/linux-atomic.c: New file.
      	* config/nds32/linux-unwind.h: New file.
      
      Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
      Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>
      
      From-SVN: r261116
      Chung-Ju Wu committed
  35. 23 May, 2018 1 commit
    • [AArch64][PR target/84882] Add mno-strict-align · 675d044c
      *** gcc/ChangeLog ***
      
      2018-05-23  Sudakshina Das  <sudi.das@arm.com>
      
      	PR target/84882
      	* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
      	Check val before adding MASK_STRICT_ALIGN to opts->x_target_flags.
      	* config/aarch64/aarch64.opt (mstrict-align): Remove RejectNegative.
      	* config/aarch64/aarch64.c (aarch64_attributes): Mark allow_neg
      	as true for strict-align.
      	(aarch64_can_inline_p): Perform checks even when callee has no
      	attributes to check for strict alignment.
      	* doc/extend.texi (AArch64 Function Attributes): Document
      	no-strict-align.
      	* doc/invoke.texi: (AArch64 Options): Likewise.
      
      *** gcc/testsuite/ChangeLog ***
      
      2018-05-23  Sudakshina Das  <sudi.das@arm.com>
      
      	PR target/84882
      	* gcc.target/aarch64/pr84882.c: New test.
      	* gcc.target/aarch64/target_attr_18.c: Likewise.
      
      From-SVN: r260604
      Sudakshina Das committed
  36. 19 May, 2018 1 commit
  37. 18 May, 2018 1 commit
    • RISC-V: Add RV32E support. · 09baee1a
      	Kito Cheng <kito.cheng@gmail.com>
      	Monk Chiang  <sh.chiang04@gmail.com>
      
      	gcc/
      	* common/config/riscv/riscv-common.c (riscv_parse_arch_string):
      	Add support to parse rv32e*.  Clear MASK_RVE for rv32i and rv64i.
      	* config.gcc (riscv*-*-*): Add support for rv32e* and ilp32e.
      	* config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define
      	__riscv_32e when TARGET_RVE.  Handle ABI_ILP32E as soft-float ABI.
      	* config/riscv/riscv-opts.h (riscv_abi_type): Add ABI_ILP32E.
      	* config/riscv/riscv.c (riscv_compute_frame_info): When TARGET_RVE,
      	compute save_libcall_adjustment properly.
      	(riscv_option_override): Call error if TARGET_RVE and not ABI_ILP32E.
      	(riscv_conditional_register_usage): Handle TARGET_RVE and ABI_ILP32E.
      	* config/riscv/riscv.h (UNITS_PER_FP_ARG): Handle ABI_ILP32E.
      	(STACK_BOUNDARY, ABI_STACK_BOUNDARY): Handle TARGET_RVE.
      	(GP_REG_LAST, MAX_ARGS_IN_REGISTERS): Likewise.
      	(ABI_SPEC): Handle mabi=ilp32e.
      	* config/riscv/riscv.opt (abi_type): Add ABI_ILP32E.
      	(RVE): Add RVE mask.
      	* doc/invoke.texi (RISC-V options) <-mabi>: Add ilp32e info.
      	<-march>: Add rv32e as an example.
      
      	gcc/testsuite/
      	* gcc.dg/stack-usage-1.c: Add support for rv32e.
      
      	libgcc/
      	* config/riscv/save-restore.S: Add support for rv32e.
      
      Co-Authored-By: Jim Wilson <jimw@sifive.com>
      Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>
      
      From-SVN: r260384
      Kito Cheng committed