Re: [PATCH] x86: Add TARGET_READ_ZERO_YMM_ZMM_NEED_VZEROUPPER

2022-02-16 Thread Uros Bizjak via Gcc-patches
On Thu, Feb 17, 2022 at 6:25 AM Hongtao Liu via Gcc-patches wrote: > > On Thu, Feb 17, 2022 at 12:26 PM H.J. Lu via Gcc-patches > wrote: > > > > Reading YMM registers with all zero bits needs VZEROUPPER on Sandy Bride, > > Ivy Bridge, Haswell, Broadwell and Alder Lake to avoid SSE <-> AVX > >

Re: [PATCH] [i386] Clean up MPX-related bit_{MPX,BNDREGS,BNDCSR}.

2022-02-16 Thread Uros Bizjak via Gcc-patches
On Thu, Feb 17, 2022 at 5:01 AM Hongtao Liu wrote: > > On Thu, Feb 17, 2022 at 12:00 PM liuhongt wrote: > > > > Bootstrap and regrestest on x86_64-pc-linux-gnu{-m32,}. > > Ok for trunk? > > > > gcc/ChangeLog: > > > > * config/i386/cpuid.h (bit_MPX): Removed. > > (bit_BNDREGS):

Re: [PATCH] tree-optimization/96881 - CD-DCE and CLOBBERs

2022-02-16 Thread Richard Biener via Gcc-patches
On Tue, 15 Feb 2022, Jan Hubicka wrote: > > @@ -1272,7 +1275,7 @@ maybe_optimize_arith_overflow (gimple_stmt_iterator > > *gsi, > > contributes nothing to the program, and can be deleted. */ > > > > static bool > > -eliminate_unnecessary_stmts (void) > > +eliminate_unnecessary_stmts

[PATCH V2] Restrict the two sources of vect_recog_cond_expr_convert_pattern to be of the same type when convert is extension.

2022-02-16 Thread liuhongt via Gcc-patches
> I find this quite unreadable, it looks like if @2 and @3 are treated > differently. I think keeping the old 3 lines and just adding > && (TYPE_PRECISION (TREE_TYPE (@0)) >= TYPE_PRECISION (type) > || (TYPE_UNSIGNED (TREE_TYPE (@2)) > == TYPE_UNSIGNED (TREE_TYPE

Re: [PATCH] x86: Add TARGET_READ_ZERO_YMM_ZMM_NEED_VZEROUPPER

2022-02-16 Thread Hongtao Liu via Gcc-patches
On Thu, Feb 17, 2022 at 12:26 PM H.J. Lu via Gcc-patches wrote: > > Reading YMM registers with all zero bits needs VZEROUPPER on Sandy Bride, > Ivy Bridge, Haswell, Broadwell and Alder Lake to avoid SSE <-> AVX > transition penalty. Add TARGET_READ_ZERO_YMM_ZMM_NEED_VZEROUPPER to > generate

Re: Merge from trunk to gccgo branch

2022-02-16 Thread Ian Lance Taylor via Gcc-patches
And another one: I merged trunk revision 837eb12629dd8a8a45fac9b8db57b29ecda46f14 to the gccgo branch. Ian

[PATCH] x86: Add TARGET_READ_ZERO_YMM_ZMM_NEED_VZEROUPPER

2022-02-16 Thread H.J. Lu via Gcc-patches
Reading YMM registers with all zero bits needs VZEROUPPER on Sandy Bride, Ivy Bridge, Haswell, Broadwell and Alder Lake to avoid SSE <-> AVX transition penalty. Add TARGET_READ_ZERO_YMM_ZMM_NEED_VZEROUPPER to generate vzeroupper instruction after loading all-zero YMM/YMM registers and enable it

libbacktrace patch committed: Handle skeleton units

2022-02-16 Thread Ian Lance Taylor via Gcc-patches
This libbacktrace patch handles DWARF 5 skeleton units, which are used when part of the DWARF information is stored in a separate file. This doesn't actually look in the separate file, as the line number information, which is all that we care about, is normally kept in the main executable because

Re: [PATCH] [i386] Clean up MPX-related bit_{MPX,BNDREGS,BNDCSR}.

2022-02-16 Thread Hongtao Liu via Gcc-patches
On Thu, Feb 17, 2022 at 12:00 PM liuhongt wrote: > > Bootstrap and regrestest on x86_64-pc-linux-gnu{-m32,}. > Ok for trunk? > > gcc/ChangeLog: > > * config/i386/cpuid.h (bit_MPX): Removed. > (bit_BNDREGS): Ditto. > (bit_BNDCSR): Ditto. > --- > gcc/config/i386/cpuid.h | 5

[PATCH] [i386] Clean up MPX-related bit_{MPX,BNDREGS,BNDCSR}.

2022-02-16 Thread liuhongt via Gcc-patches
Bootstrap and regrestest on x86_64-pc-linux-gnu{-m32,}. Ok for trunk? gcc/ChangeLog: * config/i386/cpuid.h (bit_MPX): Removed. (bit_BNDREGS): Ditto. (bit_BNDCSR): Ditto. --- gcc/config/i386/cpuid.h | 5 - 1 file changed, 5 deletions(-) diff --git

[committed] analyzer: const functions have no side effects [PR104576]

2022-02-16 Thread David Malcolm via Gcc-patches
PR analyzer/104576 tracks that we issue a false positive from -Wanalyzer-use-of-uninitialized-value for the reproducers of PR 63311 when optimization is disabled. The root cause is that the analyzer was considering that a call to __builtin_sinf could have side-effects. This patch fixes things by

Re: [PATCH] Restrict the two sources of vect_recog_cond_expr_convert_pattern to be of the same type when convert is extension.

2022-02-16 Thread Hongtao Liu via Gcc-patches
On Wed, Feb 16, 2022 at 10:17 PM Jakub Jelinek via Gcc-patches wrote: > > On Wed, Feb 16, 2022 at 05:03:09PM +0800, liuhongt via Gcc-patches wrote: > > > > +(match (cond_expr_convert_p @0 @2 @3 @6) > > > > + (cond (simple_comparison@6 @0 @1) (convert@4 @2) (convert@5 @3)) > > > > + (if

Re: [PATCH] c++: double non-dep folding from finish_compound_literal [PR104565]

2022-02-16 Thread Jason Merrill via Gcc-patches
On 2/16/22 15:26, Patrick Palka wrote: In finish_compound_literal, we perform non-dependent expr folding before calling check_narrowing (ever since r9-5973). But ever since r10-7096, check_narrowing also performs non-dependent expr folding of its own. This double folding cause tsubst to see

Re: Merge from trunk to gccgo branch

2022-02-16 Thread Ian Lance Taylor via Gcc-patches
I merged trunk revision 24ca97325cab7bc454c785d55f37120fe7ea6f74 to the gccgo branch. Ian

[committed] analyzer: fixes to free of non-heap detection [PR104560]

2022-02-16 Thread David Malcolm via Gcc-patches
PR analyzer/104560 reports various false positives from -Wanalyzer-free-of-non-heap seen with rdma-core, on what's effectively: free (>field) where in this case "field" is the first element of its struct, and thus >field == ptr, and could be on the heap. The root cause is due to

Re: [PATCH, V3] PR target/99708- Define __SIZEOF_FLOAT128__ and __SIZEOF_IBM128__

2022-02-16 Thread Segher Boessenkool
Hi! On Wed, Feb 16, 2022 at 06:03:53PM -0500, Michael Meissner wrote: > [PATCH, V3] Define __SIZEOF_FLOAT128__ and __SIZEOF_IBM128__. > > Define the sizes of the PowerPC specific types __float128 and __ibm128 if > those > types are enabled. > > This patch will define __SIZEOF_IBM128__ and

Re: [PATCH] rs6000: Workaround for new ifcvt behavior [PR104335]

2022-02-16 Thread Segher Boessenkool
Hi! On Wed, Feb 16, 2022 at 08:11:17PM +0100, Robin Dapp wrote: > since r12-6747-gaa8cfe785953a0 ifcvt not only passes real comparisons > but also "cc comparisons" (i.e. the representation of the result of a > comparison) to the backend. rs6000_emit_int_cmove () is not prepared to > handle this.

[PATCH, V3] PR target/99708- Define __SIZEOF_FLOAT128__ and __SIZEOF_IBM128__

2022-02-16 Thread Michael Meissner via Gcc-patches
[PATCH, V3] Define __SIZEOF_FLOAT128__ and __SIZEOF_IBM128__. Define the sizes of the PowerPC specific types __float128 and __ibm128 if those types are enabled. This patch will define __SIZEOF_IBM128__ and __SIZEOF_FLOAT128__ if their respective types are created in the compiler. Currently,

Re: [committed] d: Merge upstream dmd 52844d4b1, druntime dbd0c874, phobos 896b1d0e1.

2022-02-16 Thread Rainer Orth
Hi Iain, > This patch merges the D front-end implementation with upstream dmd > 52844d4b1, as well as the D runtime libraries with druntime dbd0c874, > and phobos 896b1d0e1, including the latest features and bug-fixes ahead of > the 2.099.0-beta1 release. this patch broke Solaris bootstrap:

[PATCH] PR fortran/104573 - ICE in resolve_structure_cons, at fortran/resolve.cc:1299

2022-02-16 Thread Harald Anlauf via Gcc-patches
Dear Fortranners, while we detect invalid uses of type(*), we may run into other issues later when the declared variable is used, leading to an ICE due to a NULL pointer dereference. This is demonstrated by Gerhard's testcase. Steve and I came to rather similar fixes, see PR. Mine is attached.

Re: [PATCH] libgomp : OMPD implementation

2022-02-16 Thread Mohamed Atef via Gcc-patches
Sorry I forgot to uncomment 2 lines, here's the Patch Again. Thanks Mohamed On Wed, Feb 16, 2022 at 10:54 PM Mohamed Atef wrote: > HI, > I am sorry that the previous patch was buggy. > This patch contains the header files and source files of functions that > are specified in OpenMP

[PATCH] libgomp : OMPD implementation

2022-02-16 Thread Mohamed Atef via Gcc-patches
HI, I am sorry that the previous patch was buggy. This patch contains the header files and source files of functions that are specified in OpenMP Application ProgrammingInterface book from sections (5.1, 5.2, 5.3, 5.4, 5.5.1, 5.5.2) the functions are tested using the gdb plugin and the results

[PATCH] c++: double non-dep folding from finish_compound_literal [PR104565]

2022-02-16 Thread Patrick Palka via Gcc-patches
In finish_compound_literal, we perform non-dependent expr folding before calling check_narrowing (ever since r9-5973). But ever since r10-7096, check_narrowing also performs non-dependent expr folding of its own. This double folding cause tsubst to see non-templated trees during the second

Re: libgo patch committed: Update to Go1.18beta2 release

2022-02-16 Thread Ian Lance Taylor via Gcc-patches
On Tue, Feb 15, 2022 at 1:19 AM Eric Botcazou wrote: > > > I've committed a change to update libgo to the Go1.18beta2 release. > > This apparently broke the build on SPARC/Solaris 11.3: I've committed this patch to fix these problems. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu and

Re: [PATCH] c++: return-type-req in constraint using only outer tparms [PR104527]

2022-02-16 Thread Patrick Palka via Gcc-patches
On Tue, 15 Feb 2022, Jason Merrill wrote: > On 2/14/22 11:32, Patrick Palka wrote: > > Here the template context for the atomic constraint has two levels of > > template arguments, but since it depends only on the innermost argument > > T we use a single-level argument vector during substitution

Re: [PATCH] c++: NON_DEPENDENT_EXPR is not potentially constant [PR104507]

2022-02-16 Thread Patrick Palka via Gcc-patches
On Tue, 15 Feb 2022, Jason Merrill wrote: > On 2/15/22 17:00, Patrick Palka wrote: > > On Tue, 15 Feb 2022, Jason Merrill wrote: > > > > > On 2/15/22 15:13, Patrick Palka wrote: > > > > On Tue, 15 Feb 2022, Patrick Palka wrote: > > > > > > > > > Here we're crashing from

libbacktrace patch committed: Initialize DWARF 5 fields of unit

2022-02-16 Thread Ian Lance Taylor via Gcc-patches
When I added the DWARF 5 support to libbacktrace in 2019-12-13 I forgot to initialize the new fields of the unit data structure. Whoops. Fixed with this patch. Bootstrapped and ran libbacktrace and Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian * dwarf.c (build_address_map):

[PATCH] rs6000: Workaround for new ifcvt behavior [PR104335]

2022-02-16 Thread Robin Dapp via Gcc-patches
Hi, since r12-6747-gaa8cfe785953a0 ifcvt not only passes real comparisons but also "cc comparisons" (i.e. the representation of the result of a comparison) to the backend. rs6000_emit_int_cmove () is not prepared to handle this. Therefore, this patch makes it return false in such a case in

Re: [pushed] aarch64: Tweak atomic-inst-cas.c options

2022-02-16 Thread Andrew Pinski via Gcc-patches
On Wed, Feb 16, 2022 at 2:25 AM Richard Sandiford via Gcc-patches wrote: > > atomic-inst-cas.c has code to skip __atomic_compare_exchange_n > calls for invalid memory orderings, but -Winvalid-memory-model > applies before the dead code is removed (which is the right > behaviour IMO). This patch

Re: [PATCH v7] c++: Add diagnostic when operator= is used as truth cond [PR25689]

2022-02-16 Thread Jason Merrill via Gcc-patches
On 2/16/22 02:16, Zhao Wei Liew wrote: On Wed Feb 16, 2022 at 4:06 AM +08, Jason Merrill wrote: Ah, I see. I found it a bit odd that gcc-commit-mklog auto-generated a subject with "c:", but I just went with it as I didn't know any better. Unfortunately, I can't change it now on the current

[committed] testsuite: Add testcase for already fixed PR [PR104448]

2022-02-16 Thread Jakub Jelinek via Gcc-patches
Hi! This PR has been fixed with r12-7147-g2f9ab267e725ddf2. Tested on x86_64-linux -m32/-m64, committed to trunk as obvious. 2022-02-16 Jakub Jelinek PR target/104448 * gcc.target/i386/pr104448.c: New test. --- gcc/testsuite/gcc.target/i386/pr104448.c.jj 2022-02-16

Re: [PATCH] [PATCH,v5,1/1,AARCH64][PR102768] aarch64: Add compiler support for Shadow Call Stack

2022-02-16 Thread Dan Li via Gcc-patches
On 2/15/22 10:02, Richard Sandiford wrote: Dan Li writes: Shadow Call Stack can be used to protect the return address of a function at runtime, and clang already supports this feature[1]. Looks good, thanks. However, when I bootstrap it on aarch64-linux-gnu I get: .../gcc/ubsan.cc: In

Re: [PATCH] combine: Fix up -fcompare-debug issue in the combiner [PR104544]

2022-02-16 Thread Segher Boessenkool
On Wed, Feb 16, 2022 at 11:55:23AM +0100, Jakub Jelinek wrote: > On Wed, Feb 16, 2022 at 04:44:58AM -0600, Segher Boessenkool wrote: > > About half of the similar loops in combine.c are still broken this way, > > from a quick sampling :-( > > Looking for just NONDEBUG_INSN_P, I don't see any

[wwwdocs PATCH] gcc-11.3: Mention -mharden-sls= and -mindirect-branch-cs-prefix

2022-02-16 Thread H.J. Lu via Gcc-patches
--- htdocs/gcc-11/changes.html | 7 +++ 1 file changed, 7 insertions(+) diff --git a/htdocs/gcc-11/changes.html b/htdocs/gcc-11/changes.html index fbd1b8ba..8e6d4ec8 100644 --- a/htdocs/gcc-11/changes.html +++ b/htdocs/gcc-11/changes.html @@ -1129,6 +1129,13 @@ are not listed here). no

Re: [PATCH] Restrict the two sources of vect_recog_cond_expr_convert_pattern to be of the same type when convert is extension.

2022-02-16 Thread Jakub Jelinek via Gcc-patches
On Wed, Feb 16, 2022 at 05:03:09PM +0800, liuhongt via Gcc-patches wrote: > > > +(match (cond_expr_convert_p @0 @2 @3 @6) > > > + (cond (simple_comparison@6 @0 @1) (convert@4 @2) (convert@5 @3)) > > > + (if (types_match (TREE_TYPE (@2), TREE_TYPE (@3)) > > > > But in principle @2 or @3 could

Re: [GCC 11 PATCH 0/5] x86: Backport straight-line-speculation mitigation

2022-02-16 Thread H.J. Lu via Gcc-patches
On Tue, Feb 15, 2022 at 10:52 PM Hongtao Liu wrote: > > On Tue, Feb 1, 2022 at 2:55 AM H.J. Lu via Gcc-patches > wrote: > > > > Backport -mindirect-branch-cs-prefix: > > > > commit 48a4ae26c225eb018ecb59f131e2c4fd4f3cf89a > > Author: H.J. Lu > > Date: Wed Oct 27 06:27:15 2021 -0700 > > > >

Re: [wwwdocs PATCH] gcc-12: Mention -mno-direct-extern-access

2022-02-16 Thread H.J. Lu via Gcc-patches
On Sat, Feb 12, 2022 at 2:27 PM Gerald Pfeifer wrote: > > On Sat, 12 Feb 2022, H.J. Lu via Gcc-patches wrote: > > + Always use GOT to access external data and function symbols via > > + -mno-direct-extern-access. > > Maybe say "global offset table (GOT)"? Fixed, > And at first I was

[wwwdocs PATCH v2] gcc-12: Mention -mno-direct-extern-access

2022-02-16 Thread H.J. Lu via Gcc-patches
--- htdocs/gcc-12/changes.html | 4 1 file changed, 4 insertions(+) diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html index b6341fda..7d253f29 100644 --- a/htdocs/gcc-12/changes.html +++ b/htdocs/gcc-12/changes.html @@ -399,6 +399,10 @@ a work-in-progress. Add CS

[PATCH][gcc][middle-end] PR104498: Fix comparing symbol reference

2022-02-16 Thread Andre Vieira (lists) via Gcc-patches
Hi, As reported on PR104498, the issue here is that when compare_base_symbol_refs swaps x and y but doesn't take that into account when computing the distance. This patch makes sure that if x and y are swapped, we correct the distance computation by multiplying it by -1 to end up with the

Re: [PATCH] combine: Fix up -fcompare-debug issue in the combiner [PR104544]

2022-02-16 Thread Jakub Jelinek via Gcc-patches
On Wed, Feb 16, 2022 at 04:44:58AM -0600, Segher Boessenkool wrote: > > --- gcc/combine.cc.jj 2022-02-11 13:51:56.294928090 +0100 > > +++ gcc/combine.cc 2022-02-15 14:15:41.663012950 +0100 > > @@ -4223,10 +4223,12 @@ try_combine (rtx_insn *i3, rtx_insn *i2, > > for (rtx_insn *insn =

Re: [PATCH] combine: Fix up -fcompare-debug issue in the combiner [PR104544]

2022-02-16 Thread Segher Boessenkool
Hi! On Wed, Feb 16, 2022 at 09:53:34AM +0100, Jakub Jelinek wrote: > On the following testcase on aarch64-linux, we behave differently > with -g and -g0. [ huge snip ] > The following patch fixes that by instead ignoring debug insns during the > searching. We can still check BLOCK_FOR_INSN

[PATCH] selftest: Move C-specific tests to c_family

2022-02-16 Thread Arthur Cohen
When trying to make use of the selftest framework over on the rust frontend, we ran into issues where rust1 was expected to produce errors containing C-like type names such as `int`. I had gotten in contact with David Malcolm on the gcc mailing list [1], who advised moving some test functions to

Re: [PATCH] [gfortran] Add support for allocate clause (OpenMP 5.0).

2022-02-16 Thread Hafiz Abid Qadeer
On 05/02/2022 19:09, Hafiz Abid Qadeer wrote: > On 04/02/2022 11:25, Hafiz Abid Qadeer wrote: >> On 04/02/2022 09:46, Thomas Schwinge wrote: >> >>> >>> Abid, are you going to address these? I think it does make sense if the >>> C/C++ and Fortran test cases match as much as feasible. >>> >> Sure.

Re: [PATCH], PR target/99708 - Define __SIZEOF_FLOAT128__ and __SIZEOF_IBM128__

2022-02-16 Thread Segher Boessenkool
On Tue, Feb 15, 2022 at 06:05:06PM -0500, Michael Meissner wrote: > On Tue, Feb 15, 2022 at 04:05:11PM -0600, Segher Boessenkool wrote: > > On all older compilers these macros will not be defined, but the types > > often are. If you are willing to not support older compilers properly > > anyway,

[pushed] aarch64: Tweak atomic-inst-cas.c options

2022-02-16 Thread Richard Sandiford via Gcc-patches
atomic-inst-cas.c has code to skip __atomic_compare_exchange_n calls for invalid memory orderings, but -Winvalid-memory-model applies before the dead code is removed (which is the right behaviour IMO). This patch therefore suppresses the warning for this test. Tested on aarch64-linux-gnu &

[pushed] aarch64: Remove XFAIL for bic-bitmask-1.c

2022-02-16 Thread Richard Sandiford via Gcc-patches
bic-bitmask-1.c is now passing, so remove the XFAIL. Tested on aarch64-linux-gnu & pushed. Richard gcc/testsuite/ * gcc.target/aarch64/bic-bitmask-1.c: Remove XFAIL. --- gcc/testsuite/gcc.target/aarch64/bic-bitmask-1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git

[pushed] aarch64: Extend PR100056 patterns to +

2022-02-16 Thread Richard Sandiford via Gcc-patches
pr100056.c contains things like: int or_shift_u3a (unsigned i) { i &= 7; return i | (i << 11); } After g:96146e61cd7aee62c21c2845916ec42152918ab7, the preferred gimple representation of this is a multiplication: i_2 = i_1(D) & 7; _5 = i_2 * 2049; Expand then

Re: [PATCH] rs6000: Retry tbegin. instructions that can fail intermittently

2022-02-16 Thread Segher Boessenkool
On Tue, Feb 15, 2022 at 04:59:45PM -0600, Peter Bergner wrote: > > That is the way any HTM code should be written in the first place > > (except for rollback-only transactions, but let's not go there -- > > besides, it is normal for those to fail as well, and there needs to be a > > fallback there

[PATCH] Restrict the two sources of vect_recog_cond_expr_convert_pattern to be of the same type when convert is extension.

2022-02-16 Thread liuhongt via Gcc-patches
> > +(match (cond_expr_convert_p @0 @2 @3 @6) > > + (cond (simple_comparison@6 @0 @1) (convert@4 @2) (convert@5 @3)) > > + (if (types_match (TREE_TYPE (@2), TREE_TYPE (@3)) > > But in principle @2 or @3 could safely differ in sign, you'd then need to > ensure > to insert sign conversions to

[PATCH] combine: Fix up -fcompare-debug issue in the combiner [PR104544]

2022-02-16 Thread Jakub Jelinek via Gcc-patches
Hi! On the following testcase on aarch64-linux, we behave differently with -g and -g0. The problem is that on: (insn 10011 10010 10012 2 (set (reg:CC 66 cc) (compare:CC (reg:DI 105) (const_int 0 [0]))) "pr104544.c":18:3 407 {cmpdi} (expr_list:REG_DEAD (reg:DI 105)

[PATCH v2, rs6000] Enable absolute jump table for PPC AIX and Linux

2022-02-16 Thread HAO CHEN GUI via Gcc-patches
Hi, This patch enables absolute jump tables on PPC AIX and Linux. For AIX, the jump table is placed in data section. For Linux, it is placed in RELRO section when relocation is needed. Bootstrapped and tested on AIX,Linux BE and LE with no regressions. Is this okay for trunk? Any

[committed] openmp: For min/max omp atomic compare forms verify arg types with build_binary_op [PR104531]

2022-02-16 Thread Jakub Jelinek via Gcc-patches
Hi! The MIN_EXPR/MAX_EXPR handling in *build_binary_op is minimal (especially for C FE), because min/max aren't expressions the languages contain directly. I'm using those for the #pragma omp atomic x = x < y ? y : x; forms, but e.g. for the attached testcase we normally reject _Complex int

Re: [PATCH, rs6000] Remove TImode from mode iterator BOOL_128 [PR100694]

2022-02-16 Thread HAO CHEN GUI via Gcc-patches
Hi, On 15/2/2022 下午 10:56, Segher Boessenkool wrote: > On Tue, Feb 15, 2022 at 11:01:03AM +0800, HAO CHEN GUI wrote: > Hi! > >> On 15/2/2022 上午 5:36, Segher Boessenkool wrote: >>> On Wed, Feb 09, 2022 at 10:43:17AM +0800, HAO CHEN GUI wrote: >>> All that are arguments for expanding to split