Projects
openEuler:24.03:SP1:Everything:64G
gcc
_service:tar_scm:0009-MULL64-Disable-mull64-tra...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:0009-MULL64-Disable-mull64-transformation-by-default.patch of Package gcc
From 7c1f4425c680ea144d29bc55a1283d46444a2691 Mon Sep 17 00:00:00 2001 From: eastb233 <xiezhiheng@huawei.com> Date: Wed, 7 Dec 2022 09:43:15 +0800 Subject: [PATCH 09/22] [MULL64] Disable mull64 transformation by default This commit disables mull64 transformation by default since it shows some runtime failure in workloads. This is a workaround fix for https://gitee.com/src-openeuler/gcc/issues/I64UQH --- gcc/match.pd | 2 +- gcc/opts.cc | 1 - gcc/testsuite/g++.dg/tree-ssa/mull64.C | 2 +- gcc/testsuite/gcc.dg/pr107190.c | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/gcc/match.pd b/gcc/match.pd index b7e3588e8..6f24d5079 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -4290,7 +4290,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (simplify (cond @0 (op:s @1 integer_pow2p@2) @1) /* powerof2cst */ - (if (INTEGRAL_TYPE_P (type)) + (if (flag_merge_mull && INTEGRAL_TYPE_P (type)) (with { tree shift = build_int_cst (integer_type_node, tree_log2 (@2)); } diff --git a/gcc/opts.cc b/gcc/opts.cc index eae71ed20..a97630d1c 100644 --- a/gcc/opts.cc +++ b/gcc/opts.cc @@ -647,7 +647,6 @@ static const struct default_options default_options_table[] = VECT_COST_MODEL_VERY_CHEAP }, { OPT_LEVELS_2_PLUS, OPT_finline_functions, NULL, 1 }, { OPT_LEVELS_2_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 }, - { OPT_LEVELS_2_PLUS, OPT_fmerge_mull, NULL, 1 }, /* -O2 and above optimizations, but not -Os or -Og. */ { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_falign_functions, NULL, 1 }, diff --git a/gcc/testsuite/g++.dg/tree-ssa/mull64.C b/gcc/testsuite/g++.dg/tree-ssa/mull64.C index f61cf5e6f..cad891e62 100644 --- a/gcc/testsuite/g++.dg/tree-ssa/mull64.C +++ b/gcc/testsuite/g++.dg/tree-ssa/mull64.C @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -Wno-psabi -fdump-tree-forwprop1-details -fdump-tree-forwprop4-details" } */ +/* { dg-options "-O2 -fmerge-mull -Wno-psabi -fdump-tree-forwprop1-details -fdump-tree-forwprop4-details" } */ # define BN_BITS4 32 # define BN_MASK2 (0xffffffffffffffffL) diff --git a/gcc/testsuite/gcc.dg/pr107190.c b/gcc/testsuite/gcc.dg/pr107190.c index 235b2761a..d1e72e5df 100644 --- a/gcc/testsuite/gcc.dg/pr107190.c +++ b/gcc/testsuite/gcc.dg/pr107190.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fexpensive-optimizations -fdump-tree-phiopt2-details" } */ +/* { dg-options "-O2 -fmerge-mull -fexpensive-optimizations -fdump-tree-phiopt2-details" } */ # define BN_BITS4 32 # define BN_MASK2 (0xffffffffffffffffL) -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2