Skip to content
Snippets Groups Projects
  1. Sep 26, 2019
    • Jonathan Wakely's avatar
      Fix array index error in address_v6 comparisons · d5f7e049
      Jonathan Wakely authored
      	* include/experimental/internet (operator==, operator<): Fix loop
      	condition to avoid reading past the end of the array.
      
      From-SVN: r276153
      d5f7e049
    • Jonathan Wakely's avatar
      Remove include directives for deleted Profile Mode headers · 8eb60b2f
      Jonathan Wakely authored
      	* include/std/array: Remove references to profile mode.
      	* include/std/bitset: Likewise.
      	* include/std/deque: Likewise.
      	* include/std/forward_list: Likewise.
      	* include/std/list: Likewise.
      	* include/std/map: Likewise.
      	* include/std/set: Likewise.
      	* include/std/unordered_map: Likewise.
      	* include/std/unordered_set: Likewise.
      	* include/std/vector: Likewise.
      	* testsuite/17_intro/headers/c++1998/profile_mode.cc: New test.
      	* testsuite/17_intro/headers/c++2011/profile_mode.cc: New test.
      
      From-SVN: r276152
      8eb60b2f
    • Arnaud Charlet's avatar
      25a0f9cf
    • Richard Biener's avatar
      tree-vect-loop.c (vect_analyze_loop_operations): Also call... · 9593e8e5
      Richard Biener authored
      tree-vect-loop.c (vect_analyze_loop_operations): Also call vectorizable_reduction for vect_double_reduction_def.
      
      2019-09-26  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-loop.c (vect_analyze_loop_operations): Also call
      	vectorizable_reduction for vect_double_reduction_def.
      	(vect_transform_loop): Likewise.
      	(vect_create_epilog_for_reduction): Move double-reduction
      	PHI creation and preheader argument setting of PHIs ...
      	(vectorizable_reduction): ... here.  Also process
      	vect_double_reduction_def PHIs, creating the vectorized
      	PHI nodes, remembering the scalar adjustment computed for
      	the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT.
      	Remember the original reduction code in STMT_VINFO_REDUC_CODE.
      	* tree-vectorizer.c (vec_info::new_stmt_vec_info):
      	Initialize STMT_VINFO_REDUC_CODE.
      	* tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New.
      	(_stmt_vec_info::reduc_code): Likewise.
      	(STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
      	(STMT_VINFO_REDUC_CODE): Likewise.
      
      From-SVN: r276150
      9593e8e5
    • Richard Sandiford's avatar
      Add myself as an aarch64 maintainer · 5fdd1d33
      Richard Sandiford authored
      2019-09-26  Richard Sandiford  <richard.sandiford@arm.com>
      
      	* MAINTAINERS: Add myself as an aarch64 maintainer.
      
      From-SVN: r276149
      5fdd1d33
    • Matt Turner's avatar
      driver: Also prune joined switches with negation · 6fdbe419
      Matt Turner authored
      When -march=native is passed to host_detect_local_cpu to the backend,
      it overrides all command lines after it.  That means
      
      $ gcc -march=native -march=armv8-a
      
      is treated as
      
      $ gcc -march=armv8-a -march=native
      
      Prune joined switches with Negative and RejectNegative to allow
      -march=armv8-a to override previous -march=native on command-line.
      
      This is the same fix as was applied for i386 in SVN revision 269164 but for
      aarch64 and arm.
      
      2019-09-26  Matt Turner  <mattst88@gmail.com>
      
      	PR driver/69471
      	* config/aarch64/aarch64.opt (march=): Add Negative(march=).
      	(mtune=): Add Negative(mtune=).
      	(mcpu=): Add Negative(mcpu=).
      	* config/arm/arm.opt: Likewise.
      
      From-SVN: r276148
      6fdbe419
    • Kyrylo Tkachov's avatar
      [arm] Implement DImode SIMD32 intrinsics · 2b5b5e24
      Kyrylo Tkachov authored
      This patch implements some more SIMD32, but these ones have a DImode result+addend.
      Apart from that there's nothing too exciting about them.
      
      Bootstrapped and tested on arm-none-linux-gnueabihf.
      
      	* config/arm/arm.md (arm_<simd32_op>): New define_insn.
      	* config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx):
      	Define.
      	* config/arm/arm_acle.h: Define builtins for the above.
      	* config/arm/iterators.md (SIMD32_DIMODE): New int_iterator.
      	(simd32_op): Handle the above.
      	* config/arm/unspecs.md: Define unspecs for the above.
      
      	* gcc.target/arm/acle/simd32.c: Update test.
      
      From-SVN: r276147
      2b5b5e24
    • Kyrylo Tkachov's avatar
      [arm] Implement non-GE-setting SIMD32 intrinsics · 53cd0ac6
      Kyrylo Tkachov authored
      This patch is part of a series to implement the SIMD32 ACLE intrinsics [1].
      The interesting parts implementation-wise involve adding support for setting and reading
      the Q bit for saturation and the GE-bits for the packed SIMD instructions.
      That will come in a later patch.
      
      For now, this patch implements the other intrinsics that don't need anything special ;
      just a mapping from arm_acle.h function to builtin to RTL expander+unspec.
      
      I've compressed as many as I could with iterators so that we end up needing only 3
      new define_insns.
      
      Bootstrapped and tested on arm-none-linux-gnueabihf.
      
      [1] https://developer.arm.com/docs/101028/latest/data-processing-intrinsics
      
      	* config/arm/arm.md (arm_<simd32_op>): New define_insn.
      	(arm_<sup>xtb16): Likewise.
      	(arm_usada8): Likewise.
      	* config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8,
      	__uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax,
      	__qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx,
      	__uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16,
      	__sxtb16, __uxtab16, __uxtb16): Define.
      	* config/arm/arm_acle_builtins.def: Define builtins for the above.
      	* config/arm/unspecs.md: Define unspecs for the above.
      	* config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator.
      	(USXTB16): Likewise.
      	(simd32_op): New int_attribute.
      	(sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16.
      	* doc/sourcebuild.exp (arm_simd32_ok): Document.
      
      	* lib/target-supports.exp
      	(check_effective_target_arm_simd32_ok_nocache): New procedure.
      	(check_effective_target_arm_simd32_ok): Likewise.
      	(add_options_for_arm_simd32): Likewise.
      	* gcc.target/arm/acle/simd32.c: New test.
      
      From-SVN: r276146
      53cd0ac6
    • Richard Sandiford's avatar
      [arm] Update FP16 tests · 1275a541
      Richard Sandiford authored
      My recent assemble_real patch (r275873) meant that we now output
      negative FP16 constants in the same way as we'd output an integer
      subreg of them.  This patch updates gcc.target/arm/fp16-* accordingly.
      
      2019-09-26  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.target/arm/fp16-compile-alt-3.c: Expect (__fp16) -2.0
      	to be written as a negative short rather than a positive one.
      	* gcc.target/arm/fp16-compile-ieee-3.c: Likewise.
      
      From-SVN: r276145
      1275a541
    • Martin Jambor's avatar
      [PATCH] Fix quoting in a call to internal_error · e2b1923b
      Martin Jambor authored
      2019-09-26  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to
      	internal_error.
      
      From-SVN: r276144
      e2b1923b
    • Martin Jambor's avatar
      [PATCH] Fix continue condition in IPA-SRA's process_scan_results · 581b519f
      Martin Jambor authored
      2019-09-26  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-sra.c (process_scan_results): Fix continue condition.
      
      From-SVN: r276143
      581b519f
    • Kyrylo Tkachov's avatar
      Add myself as aarch64 port maintainer · 16b17446
      Kyrylo Tkachov authored
      	* MAINTAINERS: Add myself as aarch64 maintainer.
      
      From-SVN: r276142
      16b17446
    • Martin Liska's avatar
      Add TODO_update_ssa for SLP BB vectorization (PR tree-optimization/91885). · 704bc4bb
      Martin Liska authored
      2019-09-26  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/91885
      	* tree-vectorizer.c (try_vectorize_loop_1):
      	Add TODO_update_ssa_only_virtuals similarly to what slp
      	pass does.
      2019-09-26  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/91885
      	* gcc.dg/pr91885.c: New test.
      
      From-SVN: r276141
      704bc4bb
    • Richard Sandiford's avatar
      [AArch64] Fix cost of (plus ... (const_int -C)) · 835d50c6
      Richard Sandiford authored
      The PLUS handling in aarch64_rtx_costs only checked for nonnegative
      constants, meaning that simple immediate subtractions like:
      
        (set (reg R1) (plus (reg R2) (const_int -8)))
      
      had a cost of two instructions.
      
      2019-09-26  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Use
      	aarch64_plus_immediate rather than aarch64_uimm12_shift
      	to test for valid PLUS immediates.
      
      From-SVN: r276140
      835d50c6
    • GCC Administrator's avatar
      Daily bump. · ec14f8ab
      GCC Administrator authored
      From-SVN: r276139
      ec14f8ab
  2. Sep 25, 2019
    • Richard Henderson's avatar
      libgcc: Rebuild autoconf files · 9e46fd07
      Richard Henderson authored
              * config.in, configure: Re-rebuild with stock autoconf 2.69,
              not the ubuntu modified 2.69.
      
      From-SVN: r276135
      9e46fd07
    • Richard Henderson's avatar
      aarch64: Configure for sys/auxv.h in libgcc for lse-init.c · 58d169ba
      Richard Henderson authored
      	PR target/91833
      	* config/aarch64/lse-init.c: Include auto-target.h.  Disable
      	initialization if !HAVE_SYS_AUXV_H.
      	* configure.ac (AC_CHECK_HEADERS): Add sys/auxv.h.
      	* config.in, configure: Rebuild.
      
      From-SVN: r276134
      58d169ba
    • Richard Henderson's avatar
      aarch64: Fix store-exclusive in load-operate LSE helpers · 88a51d68
      Richard Henderson authored
      	PR target/91834
      	* config/aarch64/lse.S (LDNM): Ensure STXR output does not
      	overlap the inputs.
      
      From-SVN: r276133
      88a51d68
    • David Malcolm's avatar
      Colorize %L and %C text to match diagnostic_show_locus (PR fortran/91426) · 736a6efc
      David Malcolm authored
      gcc/fortran/ChangeLog:
      	PR fortran/91426
      	* error.c (curr_diagnostic): New static variable.
      	(gfc_report_diagnostic): New static function.
      	(gfc_warning): Replace call to diagnostic_report_diagnostic with
      	call to gfc_report_diagnostic.
      	(gfc_format_decoder): Colorize the text of %L and %C to match the
      	colorization used by diagnostic_show_locus.
      	(gfc_warning_now_at): Replace call to diagnostic_report_diagnostic with
      	call to gfc_report_diagnostic.
      	(gfc_warning_now): Likewise.
      	(gfc_warning_internal): Likewise.
      	(gfc_error_now): Likewise.
      	(gfc_fatal_error): Likewise.
      	(gfc_error_opt): Likewise.
      	(gfc_internal_error): Likewise.
      
      From-SVN: r276132
      736a6efc
    • Martin Jambor's avatar
      Remove newly unused function and variable in tree-sra · b8670516
      Martin Jambor authored
      Hi,
      
      Martin and his clang warnings discovered that I forgot to remove a
      static inline function and a variable when ripping out the old IPA-SRA
      from tree-sra.c and both are now unused.  Thus I am doing that now
      with the patch below which I will commit as obvious (after including
      it in a round of a bootstrap and testing on an x86_64-linux).
      
      Thanks,
      
      Martin
      
      2019-09-25  Martin Jambor  <mjambor@suse.cz>
      
      	* tree-sra.c (no_accesses_p): Remove.
      	(no_accesses_representant): Likewise.
      
      From-SVN: r276128
      b8670516
    • Marek Polacek's avatar
      PR c++/91877 - ICE with converting member of packed struct. · b134cab0
      Marek Polacek authored
      	* call.c (convert_like_real): Use similar_type_p in an assert.
      
      	* g++.dg/conversion/packed1.C: New test.
      
      From-SVN: r276127
      b134cab0
    • Kyrylo Tkachov's avatar
      [AArch64] Use implementation namespace consistently in arm_neon.h · 9a3afc35
      Kyrylo Tkachov authored
      We're somewhat inconsistent in arm_neon.h when it comes to using the implementation namespace for local
      identifiers. This means things like:
      #define hash_abcd 0
      #define hash_e 1
      #define wk 2
      
      #include "arm_neon.h"
      
      uint32x4_t
      foo (uint32x4_t a, uint32_t b, uint32x4_t c)
      {
        return vsha1cq_u32 (a, b, c);
      }
      
      don't compile.
      This patch fixes these issues throughout the whole of arm_neon.h
      Bootstrapped and tested on aarch64-none-linux-gnu.
      The advsimd-intrinsics.exp tests pass just fine.
      
      From-SVN: r276125
      9a3afc35
    • Richard Biener's avatar
      re PR tree-optimization/91896 (ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1687) · fadb0136
      Richard Biener authored
      2019-09-25  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91896
      	* tree-vect-loop.c (vectorizable_reduction): The single
      	def-use cycle optimization cannot apply when there's more
      	than one pattern stmt involved.
      
      	* gcc.dg/torture/pr91896.c: New testcase.
      
      From-SVN: r276123
      fadb0136
    • Shaokun Zhang's avatar
      [AARCH64] Add support for new control bits CTR_EL0.DIC and CTR_EL0.IDC · 761e6bb9
      Shaokun Zhang authored
      The DCache clean & ICache invalidation requirements for instructions
      to be data coherence are discoverable through new fields in CTR_EL0.
      Let's support the two bits if they are enabled, the CPU core will
      not execute the unnecessary DCache clean or Icache Invalidation
      instructions.
      
      2019-09-25  Shaokun Zhang  <zhangshaokun@hisilicon.com>
      
      	* config/aarch64/sync-cache.c (__aarch64_sync_cache_range): Add support for
      	CTR_EL0.IDC and CTR_EL0.DIC.
      
      From-SVN: r276122
      761e6bb9
    • Jonathan Wakely's avatar
      Implement LWG 3296 for basic_regex::assign · 21f7f998
      Jonathan Wakely authored
      	* include/bits/regex.h
      	(basic_regex::assign(const C*, size_t, flag_type)): Add default
      	argument (LWG 3296).
      	* testsuite/28_regex/basic_regex/assign/char/lwg3296.cc: New test.
      	* testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc: New test.
      
      From-SVN: r276121
      21f7f998
    • Martin Liska's avatar
      Move a target test-case to generic folder. · 48bea5df
      Martin Liska authored
      2019-09-25  Martin Liska  <mliska@suse.cz>
      
      	* gcc.target/s390/pr91014.c: Move to ...
      	* gcc.dg/pr91014.c: ... this.
      
      From-SVN: r276120
      48bea5df
    • Paolo Carlini's avatar
      name-lookup.c (check_extern_c_conflict): Use DECL_SOURCE_LOCATION. · a4cd9ac5
      Paolo Carlini authored
      /cp
      2019-09-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* name-lookup.c (check_extern_c_conflict): Use DECL_SOURCE_LOCATION.
      	(check_local_shadow): Use it in three additional places.
      
      /testsuite
      2019-09-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/diagnostic/redeclaration-1.C: New.
      	* g++.dg/lookup/extern-c-hidden.C: Test location(s) too.
      	* g++.dg/lookup/extern-c-redecl.C: Likewise.
      	* g++.dg/lookup/extern-c-redecl6.C: Likewise.
      	* g++.old-deja/g++.other/using9.C: Likewise.
      
      From-SVN: r276119
      a4cd9ac5
    • Jason Merrill's avatar
      Fix location of dependent member CALL_EXPR. · 1ed0d9f8
      Jason Merrill authored
      The break here was skipping over the code that sets EXPR_LOCATION on the
      call expressions, for no good reason.
      
      	* parser.c (cp_parser_postfix_expression): Do set location of
      	dependent member call.
      
      From-SVN: r276112
      1ed0d9f8
    • GCC Administrator's avatar
      Daily bump. · a20673a5
      GCC Administrator authored
      From-SVN: r276111
      a20673a5
  3. Sep 24, 2019
    • Iain Sandoe's avatar
      [Darwin, PPC, Mode Iterators 1/n] Use mode iterators in picbase patterns. · dd9ed099
      Iain Sandoe authored
      This switches the picbase load and reload patterns to use the 'P' mode
      iterator instead of writing an SI and DI pattern for each.
      
      gcc/ChangeLog:
      
      2019-09-24  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using
      	the 'P' mode iterator, replacing the (removed) SI and DI variants.
      	(reload_macho_picbase_<mode>): Likewise.
      
      From-SVN: r276107
      dd9ed099
    • Iain Sandoe's avatar
      [Darwin, PPC, Mode Iterators 0/n] Make iterators visible to darwin.md. · 42eb4801
      Iain Sandoe authored
      As a clean-up, we want to be able to use mode iterators in darwin.md.
      This patch moves the include point for the Darwin include until after
      the definition of the mode iterators and attrs.  No functional change
      intended.
      
      gcc/ChangeLog:
      
      2019-09-24  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/rs6000.md: Move darwin.md include until
      	after the definition of the mode iterators.
      
      From-SVN: r276106
      42eb4801
    • Martin Sebor's avatar
      PR tree-optimization/91570 - ICE in get_range_strlen_dynamic on a conditional · 93163192
      Martin Sebor authored
      PR tree-optimization/91570 - ICE in get_range_strlen_dynamic on a conditional
      of two strings
      
      gcc/Changelog:
      	* tree-ssa-strlen.c (get_range_strlen_dynamic): Handle null and
      	non-constant minlen, maxlen and maxbound.
      
      gcc/testsuite/Changelog:
      	* gcc.dg/pr91570.c: New test.
      
      From-SVN: r276105
      93163192
    • Marek Polacek's avatar
      PR c++/91868 - improve -Wshadow location. · a0aedc7a
      Marek Polacek authored
      	* name-lookup.c (check_local_shadow): Use DECL_SOURCE_LOCATION
      	instead of input_location.
      
      	* g++.dg/warn/Wshadow-16.C: New test.
      
      From-SVN: r276103
      a0aedc7a
    • Marek Polacek's avatar
      PR c++/91845 - ICE with invalid pointer-to-member. · fea3397e
      Marek Polacek authored
      	* expr.c (mark_use): Use error_operand_p.
      	* typeck2.c (build_m_component_ref): Check error_operand_p after
      	calling mark_[lr]value_use.
      
      	* g++.dg/cpp1y/pr91845.C: New test.
      
      From-SVN: r276102
      fea3397e
    • Jonathan Wakely's avatar
      Remove check for impossible condition in std::variant::index() · fe69bee3
      Jonathan Wakely authored
      The __index_type is only ever unsigned char or unsigned short, so not
      the same type as size_t.
      
      	* include/std/variant (variant::index()): Remove impossible case.
      
      From-SVN: r276100
      fe69bee3
    • Richard Biener's avatar
      tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code): Rename to... · a7701dd1
      Richard Biener authored
      2019-09-24  Richard Biener  <rguenther@suse.de>
      
      	* tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code):
      	Rename to...
      	(_stmt_vec_info::cond_reduc_code): ... this.
      	(_stmt_vec_info::induc_cond_initial_val): Add.
      	(STMT_VINFO_VEC_CONST_COND_REDUC_CODE): Rename to...
      	(STMT_VINFO_VEC_COND_REDUC_CODE): ... this.
      	(STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Add.
      	* tree-vectorizer.c (vec_info::new_stmt_vec_info): Adjust.
      	* tree-vect-loop.c (get_initial_def_for_reduction): Pass in
      	the reduction code.
      	(vect_create_epilog_for_reduction): Drop special
      	induction condition reduction params, pass in reduction code
      	and simplify.
      	(vectorizable_reduction): Perform condition reduction kind
      	selection only at analysis time.  Adjust passing on state.
      
      From-SVN: r276099
      a7701dd1
    • Kyrylo Tkachov's avatar
      [AArch64] Don't split 64-bit constant stores to volatile location · 01b9402c
      Kyrylo Tkachov authored
      The optimisation to optimise:
         typedef unsigned long long u64;
      
         void bar(u64 *x)
         {
           *x = 0xabcdef10abcdef10;
         }
      
      from:
              mov     x1, 61200
              movk    x1, 0xabcd, lsl 16
              movk    x1, 0xef10, lsl 32
              movk    x1, 0xabcd, lsl 48
              str     x1, [x0]
      
      into:
              mov     w1, 61200
              movk    w1, 0xabcd, lsl 16
              stp     w1, w1, [x0]
      
      ends up producing two distinct stores if the destination is volatile:
        void bar(u64 *x)
        {
          *(volatile u64 *)x = 0xabcdef10abcdef10;
        }
              mov     w1, 61200
              movk    w1, 0xabcd, lsl 16
              str     w1, [x0]
              str     w1, [x0, 4]
      
      because we end up not merging the strs into an stp. It's questionable whether the use of STP is valid for volatile in the first place.
      To avoid unnecessary pain in a context where it's unlikely to be performance critical [1] (use of volatile), this patch avoids this
      transformation for volatile destinations, so we produce the original single STR-X.
      
      Bootstrapped and tested on aarch64-none-linux-gnu.
      
      [1] https://lore.kernel.org/lkml/20190821103200.kpufwtviqhpbuv2n@willie-the-truck/
      
      	* config/aarch64/aarch64.md (mov<mode>): Don't call
      	aarch64_split_dimode_const_store on volatile MEM.
      
      	* gcc.target/aarch64/nosplit-di-const-volatile_1.c: New test.
      
      From-SVN: r276098
      01b9402c
    • Stam Markianos-Wright's avatar
      [GCC][PATCH][AArch64] Update hwcap string for fp16fml in aarch64-option-extensions.def · 937960df
      Stam Markianos-Wright authored
      This is a minor patch that fixes the entry for the fp16fml feature in
      GCC's aarch64-option-extensions.def.
      
      As can be seen in the Linux sources here
      https://github.com/torvalds/linux/blob/master/arch/arm64/kernel/cpuinfo.c#L69
      the correct string is "asimdfhm", not "asimdfml".
      
      Cross-compiled and tested on aarch64-none-linux-gnu.
      
      2019-09-24  Stamatis Markianos-Wright  <stam.markianos-wright@arm.com>
      
      	* config/aarch64/aarch64-option-extensions.def (fp16fml):
      	Update hwcap string for fp16fml.
      
      From-SVN: r276097
      937960df
    • Jakub Jelinek's avatar
      re PR middle-end/91866 (Sign extend of an int is not recognized) · 81b40582
      Jakub Jelinek authored
      	PR middle-end/91866
      	* match.pd (((T)(A)) + CST -> (T)(A + CST)): Formatting fix.
      	(((T)(A + CST1)) + CST2 -> (T)(A) + (T)CST1 + CST2): New optimization.
      
      	* gcc.dg/tree-ssa/pr91866.c: New test.
      
      From-SVN: r276096
      81b40582
    • Martin Liska's avatar
      Use more switch statements. · 90acd49f
      Martin Liska authored
      2019-09-24  Martin Liska  <mliska@suse.cz>
      
      	* cfgexpand.c (gimple_assign_rhs_to_tree): Use switch statement
      	instead of if-elseif-elseif-...
      	* gimple-expr.c (extract_ops_from_tree): Likewise.
      	* gimple.c (get_gimple_rhs_num_ops): Likewise.
      	* tree-ssa-forwprop.c (rhs_to_tree): Likewise.
      
      From-SVN: r276095
      90acd49f
Loading