From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7928) id 77AE8384AB58; Wed, 24 Apr 2024 09:36:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 77AE8384AB58 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1713951409; bh=Tu0tAEbyLNXgBqRHuSvfYal4KpDrsdzHebtaQVOWDQE=; h=From:To:Subject:Date:From; b=w2SkugPVtynh/DZMghtuzgBQtkusyQ3O0fzmaXuS1hLPWP68Y3lM3Z1zLyHRLOhjr iPVmSHxBPyMO4/7qO79ZRBMV8yJznM5abSAQ6KhcH78zi9V6Var38PpQg8Vlj10kia wtu6HVqKbNcHp7DFcGhUvSTkDHpY7tWnvR067+DA= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Lehua Ding To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/subreg-coalesce] df: Add -ftrack-subreg-liveness option X-Act-Checkin: gcc X-Git-Author: Lehua Ding X-Git-Refname: refs/heads/devel/subreg-coalesce X-Git-Oldrev: cc48418cfc2e555d837ae9138cbfac23acb3cdf9 X-Git-Newrev: b6b50e19f88bd33b6c0d252795ebb6cffda9574f Message-Id: <20240424093649.77AE8384AB58@sourceware.org> Date: Wed, 24 Apr 2024 09:36:49 +0000 (GMT) List-Id: https://gcc.gnu.org/g:b6b50e19f88bd33b6c0d252795ebb6cffda9574f commit b6b50e19f88bd33b6c0d252795ebb6cffda9574f Author: Lehua Ding Date: Tue Jan 30 16:45:25 2024 +0800 df: Add -ftrack-subreg-liveness option Add new flag -ftrack-subreg-liveness to enable track-subreg-liveness. This flag is enabled at -O3/fast. gcc/ChangeLog: * common.opt: add -ftrack-subreg-liveness option. * opts.cc: auto aneble -ftrack-subreg-liveness in -O3/fast Diff: --- gcc/common.opt | 4 ++++ gcc/common.opt.urls | 3 +++ gcc/doc/invoke.texi | 8 ++++++++ gcc/opts.cc | 1 + 4 files changed, 16 insertions(+) diff --git a/gcc/common.opt b/gcc/common.opt index ad348844775..bd030973434 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -2157,6 +2157,10 @@ fira-share-spill-slots Common Var(flag_ira_share_spill_slots) Init(1) Optimization Share stack slots for spilled pseudo-registers. +ftrack-subreg-liveness +Common Var(flag_track_subreg_liveness) Init(0) Optimization +Track subreg liveness information. + fira-verbose= Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5) -fira-verbose= Control IRA's level of diagnostic messages. diff --git a/gcc/common.opt.urls b/gcc/common.opt.urls index f71ed80a34b..59f27a6f7c6 100644 --- a/gcc/common.opt.urls +++ b/gcc/common.opt.urls @@ -880,6 +880,9 @@ UrlSuffix(gcc/Optimize-Options.html#index-fira-share-save-slots) fira-share-spill-slots UrlSuffix(gcc/Optimize-Options.html#index-fira-share-spill-slots) +ftrack-subreg-liveness +UrlSuffix(gcc/Optimize-Options.html#index-ftrack-subreg-liveness) + fira-verbose= UrlSuffix(gcc/Developer-Options.html#index-fira-verbose) diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 27c31ab0c86..9724cbb32ba 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -13186,6 +13186,14 @@ Disable sharing of stack slots allocated for pseudo-registers. Each pseudo-register that does not get a hard register gets a separate stack slot, and as a result function stack frames are larger. +@opindex ftrack-subreg-liveness +@item -ftrack-subreg-liveness +Enable tracking subreg liveness information. This infomation allows IRA +and LRA to support subreg coalesce feature which can improve the quality +of register allocation. + +This option is enabled at level @option{-O3} for all targets. + @opindex flra-remat @item -flra-remat Enable CFG-sensitive rematerialization in LRA. Instead of loading diff --git a/gcc/opts.cc b/gcc/opts.cc index a90dc57f8b5..7b5d905a241 100644 --- a/gcc/opts.cc +++ b/gcc/opts.cc @@ -689,6 +689,7 @@ static const struct default_options default_options_table[] = { OPT_LEVELS_3_PLUS, OPT_funswitch_loops, NULL, 1 }, { OPT_LEVELS_3_PLUS, OPT_fvect_cost_model_, NULL, VECT_COST_MODEL_DYNAMIC }, { OPT_LEVELS_3_PLUS, OPT_fversion_loops_for_strides, NULL, 1 }, + { OPT_LEVELS_3_PLUS, OPT_ftrack_subreg_liveness, NULL, 1 }, /* -O3 parameters. */ { OPT_LEVELS_3_PLUS, OPT__param_max_inline_insns_auto_, NULL, 30 },