1. 06 Apr, 2018 11 commits
    • Reverted commit r254862 · d8ab9ce0
      From-SVN: r259169
      Tamar Christina committed
    • re PR tree-optimization/85244 (Bad optimisation with flexible array member (may… · ef2e5ec2
      re PR tree-optimization/85244 (Bad optimisation with flexible array member (may be related to -ftree-dominator-opts))
      
      2018-04-06  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/85244
      	* tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref
      	after seeing a component reference with an adjacent field.  Treat
      	refs to arrays at struct end of external decls similar to
      	refs to unconstrained commons.
      
      	* gcc.dg/torture/pr85244-1.c: New testcase.
      	* gcc.dg/torture/pr85244-2.c: Likewise.
      
      From-SVN: r259168
      Richard Biener committed
    • re PR sanitizer/85213 (-fsanitize=undefined internal compiler error: in… · 5a98025d
      re PR sanitizer/85213 (-fsanitize=undefined internal compiler error: in fold_convert_loc, at fold-const.c:2402)
      
      	PR sanitizer/85213
      	* fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't
      	look through SAVE_EXPRs with non-side-effects argument.  Adjust
      	recursive calls.
      	(fold_comparison): Adjust twoval_comparison_p caller, don't handle
      	save_p here.
      
      	* c-c++-common/ubsan/pr85213.c: New test.
      
      From-SVN: r259167
      Jakub Jelinek committed
    • re PR rtl-optimization/85180 (Infinite loop in RTL DSE optimizer) · 6ca83833
      2018-04-06  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/85180
      	* alias.c (find_base_term): New wrapper around find_base_term
      	unwinding CSELIB_VAL_PTR changes.
      	(find_base_term): Do not restore CSELIB_VAL_PTR during the
      	recursion.
      
      	* gcc.dg/pr85180.c: New testcase.
      
      From-SVN: r259166
      Richard Biener committed
    • IBM Z: Fix vcond-shift testcase. · 54ebcca7
      gcc/testsuite/ChangeLog:
      
      2018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/vector/vcond-shift.c: Use the proper conditions
      	to trigger the optimization. Do some cleanup and function
      	renaming.  Add more test functions.
      
      From-SVN: r259165
      Andreas Krebbel committed
    • IBM Z: Use the dedicated NOP instructions for "nop" · aad98a61
      We still use lr r0,r0 as a NOP instruction although we have some kind
      of dedicated NOP instruction (nopr) which maps to a "branch never".
      
      As a side-effect this fixes testcases scanning for NOPs
      e.g. patchable_function_entry-*.
      
      As another side-effect this makes it difficult to distingiush NOPs
      generated for hotpatching from NOPs added when using -O0 to attach
      location information to it.  Hence I had to make sure that the hotpatch
      testcases get skipped when compiling without optimization.
      
      gcc/ChangeLog:
      
      2018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP
      	instructions.
      	* config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New
      	constant definitions.
      	("nop"): lr 0,0 -> nopr r0
      	("nop_lr0", "nop_lr1"): New insn definitions.
      
      gcc/testsuite/ChangeLog:
      
      2018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/s390.exp: Remove -O0 from list of torture
      	options.
      	* gcc.target/s390/hotpatch-1.c: Skip when building without
      	optimization.
      	* gcc.target/s390/hotpatch-10.c: Likewise.
      	* gcc.target/s390/hotpatch-11.c: Likewise.
      	* gcc.target/s390/hotpatch-12.c: Likewise.
      	* gcc.target/s390/hotpatch-13.c: Likewise.
      	* gcc.target/s390/hotpatch-14.c: Likewise.
      	* gcc.target/s390/hotpatch-15.c: Likewise.
      	* gcc.target/s390/hotpatch-16.c: Likewise.
      	* gcc.target/s390/hotpatch-17.c: Likewise.
      	* gcc.target/s390/hotpatch-18.c: Likewise.
      	* gcc.target/s390/hotpatch-19.c: Likewise.
      	* gcc.target/s390/hotpatch-2.c: Likewise.
      	* gcc.target/s390/hotpatch-3.c: Likewise.
      	* gcc.target/s390/hotpatch-4.c: Likewise.
      	* gcc.target/s390/hotpatch-5.c: Likewise.
      	* gcc.target/s390/hotpatch-6.c: Likewise.
      	* gcc.target/s390/hotpatch-7.c: Likewise.
      	* gcc.target/s390/hotpatch-8.c: Likewise.
      	* gcc.target/s390/hotpatch-9.c: Likewise.
      
      From-SVN: r259164
      Andreas Krebbel committed
    • Wattributes.c testcase: Disable warning check for IBM Z. · bce89076
      On IBM Z we enforce function alignment to 8 bytes.  Hence we get an
      error instead of a warning when trying to specify smaller alignments.
      
      gcc/testsuite/ChangeLog:
      
      2018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* c-c++-common/Wattributes.c: Disable warning for s390* target and
      	check for an error instead.
      	* gcc.dg/Wattributes-6.c: Likewise.
      
      From-SVN: r259163
      Andreas Krebbel committed
    • [NDS32] Refine condition of stack_push and stack_pop patterns. · 9865d240
      gcc/
      	* config/nds32/nds32.md (*stack_push, *stack_pop): Use
      	NDS32_V3PUSH_AVAILABLE_P macro.
      
      From-SVN: r259162
      Chung-Ju Wu committed
    • [NDS32] Add hard float support. · e2286268
      gcc/
      	* config.gcc (nds32*-*-*): Add v2j v3f v3s checking.
      	(nds32*-*-*): Add float and fpu_config into supported_defaults.
      	* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
      	Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA.
      	* config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN,
      	UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS.
      	* config/nds32/constraints.md: New constraints and checking for hard
      	float configuration.
      	* config/nds32/iterators.md: New mode iterator and attribute for hard
      	float configuration.
      	* config/nds32/nds32-doubleword.md: Use hard float alternatives and
      	patterns.
      	* config/nds32/nds32-fpu.md: New file.
      	* config/nds32/nds32-md-auxiliary.c: New functions and checkings to
      	deal with hard float code generation.
      	* config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and
      	ARCH_V3S.
      	(abi_type, float_reg_number): New enum type.
      	* config/nds32/nds32-predicates.c: New predicates for hard float.
      	* config/nds32/nds32-protos.h: Declare functions for hard float.
      	* config/nds32/nds32.c: Implementation for hard float configuration.
      	* config/nds32/nds32.h: Definitions for hard float configuration.
      	* config/nds32/nds32.md: Include hard float machine description and
      	modify patterns for hard float configuration.
      	* config/nds32/nds32.opt: New options for hard float configuration.
      	* config/nds32/predicates.md: New predicates for hard float
      	configuration.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r259161
      Monk Chiang committed
    • [NDS32] Enable relax hint by default. · 58e29762
      gcc/
      	* common/config/nds32/nds32-common.c
      	(nds32_option_optimization_table): Enable -mreleax-hint by default.
      
      From-SVN: r259160
      Kuan-Lin Chen committed
    • Daily bump. · 91218427
      From-SVN: r259159
      GCC Administrator committed
  2. 05 Apr, 2018 29 commits