[Bug c++/115240] New: [alias] Does we assume the math function have pure attribute ?

2024-05-26 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * test: https://gcc.godbolt.org/z/5YbezdW89 ``` float foo (float num[], float r2inv, int n) { float sum = 0.0; for (int i=0; i

[Bug c/112306] New: [AArch64][neon] incorrect combine the (a -1)* b into fnmsub for fixed vector type

2023-10-31 Thread zhongyunde at huawei dot com via Gcc-bugs
Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * test: https://gcc.godbolt.org/z/sr6Mevf9G ``` float32x4_t test2_float_vec (float32x4_t a, float32x4_t b

[Bug c/111584] New: [aarch64] Redundant movprfx with ptrue

2023-09-25 Thread zhongyunde at huawei dot com via Gcc-bugs
Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * test: https://gcc.godbolt.org/z/E6Eez81jh ``` #include typedef svfloat32_t fvec32 __attribute__((arm_sve_vector_bits(256))); typedef svfloat32_t __m256_; __m256_

[Bug c/110638] New: [13 regression] memcpy should be inlined with sve loop

2023-07-12 Thread zhongyunde at huawei dot com via Gcc-bugs
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * test:https://gcc.godbolt.org/z/39KddjbE4 ``` void va(struct args_t * func_args) { for (int nl = 0; nl < iterations; nl++) { for (int i = 0; i <

[Bug c/110103] New: the pointers return from two malloc is not equal

2023-06-03 Thread zhongyunde at huawei dot com via Gcc-bugs
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- test:https://gcc.godbolt.org/z/j74z1qaT9 ``` int check_pointer (void) { int *pa = (int *) malloc (sizeof (int) * NUM); int *pb = (int *) malloc (sizeof (int) * NUM

[Bug c/109269] [sve] should check the upper bound for predicate sve

2023-03-23 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109269 --- Comment #3 from vfdff --- * test: https://gcc.godbolt.org/z/5s4Wbs466 ``` void mset (int *a, int num) { for (int i=0; i< num; i++) a[i] = 2; } ``` * the issue is still exist with int type as we use 32-bits register? . see detail on

[Bug c/109269] New: [sve] should check the upper bound for predicate sve

2023-03-23 Thread zhongyunde at huawei dot com via Gcc-bugs
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * test case:https://gcc.godbolt.org/z/jde11xv53 ``` void mset (int *a, long long num) { for (long long i=0; i< num; i++) a[i] = 2; } ``` * Base on above c

[Bug c/108818] New: [aarch64] use a extra mov instruction compare to llvm

2023-02-16 Thread zhongyunde at huawei dot com via Gcc-bugs
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * test:https://gcc.godbolt.org/z/res6aTYqP ``` unsigned sel(unsigned X) { return X == 6 ? 6 : 8; } ``` * gcc: ``` sel: cmp w0, 6 mov w1, 8

[Bug middle-end/106323] [Suboptimal] memcmp(s1, s2, n) == 0 expansion on AArch64 compare to llvm

2022-12-06 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106323 --- Comment #4 from vfdff --- Now, llvm use 4 loads and CMP+CCMP, https://gcc.godbolt.org/z/PM3jxEM9M

[Bug target/104611] memcmp/strcmp/strncmp can be optimized when the result is tested for [in]equality with 0 on aarch64

2022-10-29 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104611 --- Comment #3 from vfdff --- As the load instructions usually have long latency, so do it need some extra restrict when we try this transformation?

[Bug tree-optimization/107090] [aarch64] sequence logic should be combined with mul and umulh

2022-10-28 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107090 --- Comment #11 from vfdff --- Created attachment 53787 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53787&action=edit has different operand order base on different commit node hi @Andrew Pinski * Showed as the figure swap_order.jpg at

[Bug target/107316] [aarch64] Init big const value should be improved compare to llvm

2022-10-22 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107316 --- Comment #2 from vfdff --- (In reply to Andrew Pinski from comment #1) > I suspect this is just a dup of bug 106583 and will be fixed by the patch > which was submitted recently > (https://gcc.gnu.org/pipermail/gcc-patches/2022-October/603905

[Bug c/107359] New: [aarch64] should avoid the punpklo/punpkhi compare to llvm

2022-10-22 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * case, https://godbolt.org/z/38bcszxdo ``` int check (char *mask, double *result, int n) { int count = 0; for (int i=0; i

[Bug c/107316] New: [aarch64] Init big const value should be improved compare to llvm

2022-10-19 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- test case: https://godbolt.org/z/ahreYnahE ``` int main (int argc, char** argv) { if (lshift_1 (0xull) != 0ll

[Bug target/104611] memcmp/strcmp/strncmp can be optimized when the result is tested for [in]equality with 0 on aarch64

2022-10-18 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104611 vfdff changed: What|Removed |Added CC||zhongyunde at huawei dot com --- Comment #2

[Bug middle-end/107208] [aarch64] _complex integer return types could be improved

2022-10-13 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107208 --- Comment #3 from vfdff --- it seems releted to targetm.calls.function_value called by assign_parms, who return different behaviour for MODE_COMPLEX_FLOAT and MODE_COMPLEX_INT. With the following changes, then choose a pair of DI for the int c

[Bug tree-optimization/107090] [aarch64] sequence logic should be combined with mul and umulh

2022-10-12 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107090 --- Comment #10 from vfdff --- Created attachment 53698 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53698&action=edit the huge bb sligtly change after match ResLo Thanks for your suggestion, and I think both ctz_table_index and nop_ato

[Bug tree-optimization/107090] [aarch64] sequence logic should be combined with mul and umulh

2022-10-12 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107090 --- Comment #8 from vfdff --- hi @Andrew Pinski For the 2nd issue, I also matched the huge pattern, but it need return two value, it seems don't work with current framework? so should I have to split it into two simples to match the high and l

[Bug c++/107208] New: [aarch64] llvm generate better code than gcc base on _Complex type mul

2022-10-10 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * gcc now generate 2 redundant mov instrunction compared to llvm ``` mul64(unsigned long _Complex, unsigned long _Complex

[Bug tree-optimization/107090] [aarch64] sequence logic should be combined with mul and umulh

2022-10-10 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107090 vfdff changed: What|Removed |Added Attachment #53684|0 |1 is obsolete|

[Bug tree-optimization/107090] [aarch64] sequence logic should be combined with mul and umulh

2022-10-09 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107090 vfdff changed: What|Removed |Added CC||zhongyunde at huawei dot com --- Comment #5

[Bug c++/107190] New: [aarch64] regression with optimization -fexpensive-optimizations

2022-10-09 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- This case is simplify from https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107090, and we can see that the codegen of function `test_m

[Bug tree-optimization/107090] [aarch64] sequence logic should be combined with mul and umulh

2022-10-07 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107090 --- Comment #4 from vfdff --- (In reply to Andrew Pinski from comment #1) > A few issues. > First is: > > if (_26 != 0) > goto ; [50.00%] > else > goto ; [50.00%] > >[local count: 536870913]: > ht_15 = ht_13 + 4294967296; >

[Bug tree-optimization/107090] [aarch64] sequence logic should be combined with mul and umulh

2022-10-01 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107090 --- Comment #2 from vfdff --- Thanks for your suggestion. As the combine pass can't address more than 4 sequence insns, which pass may be more suitable to match the huge pattern after fixing the 1st issue.

[Bug c/107090] New: [aarch64] sequence logic should be combined with mul and umulh

2022-09-29 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * test case: https://godbolt.org/z/x5jMhqW8s ``` # define BN_BITS432 # define BN_MASK2(0xL) # define

[Bug fortran/106954] New: [12 Regression] compiler fail base on gfortran

2022-09-16 Thread zhongyunde at huawei dot com via Gcc-bugs
: fortran Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- hi base on https://gcc.godbolt.org/z/9bonaW4eh, we can see that `aarch64 gfortran` 12 has some regression. * x86-x64 gfortran 12 -- pass * aarch64 gfortran 12

[Bug fortran/106353] New: [suboptimal] Why is a 3D array initialized, use case 2 two-layer loop?

2022-07-19 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- We can see that, the icc use a two-layer loop to initialize a 3D array, and the inner loop initialize the low 2D of the

[Bug c/106323] New: [Suboptimal] memcmp(s1, s2, n) == 0 expansion on AArch64 compare to llvm

2022-07-16 Thread zhongyunde at huawei dot com via Gcc-bugs
: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- test case, see detail https://gcc.godbolt.org/z/PM3jxEM9M ``` #include int src(char* s1, char* s2) { return memcmp(s1, s2

[Bug tree-optimization/106268] [suboptimal] Remove unnecessary loops releated to fortran compare to ifort

2022-07-12 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106268 --- Comment #2 from vfdff --- it seems different for the C version, see detail https://godbolt.org/z/vc1edYKhf in your above case, the icc also doesn't elide the outer loop.

[Bug fortran/106268] New: [suboptimal] Remove unnecessary loops releated to fortran compare to ifort

2022-07-12 Thread zhongyunde at huawei dot com via Gcc-bugs
: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- For the kernel inner loop body, gcc generate an loop, while icc doesn't, see detail in https://godbolt.org/z/G77n

[Bug c/106255] New: [suboptinal] llvm uses instructions with larger access bit width

2022-07-11 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- llvm uses memory access instructions with larger access bit width base on following case, both on x86 and arm, see detail https

[Bug c/106254] New: [suboptinal] llvm uses instructions with larger access bit width

2022-07-11 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- llvm uses memory access instructions with larger access bit width base on following case, both on x86 and arm, see detail https

[Bug c/106200] New: Shrink-wrapping opportunity releated to function call

2022-07-05 Thread zhongyunde at huawei dot com via Gcc-bugs
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- case:https://godbolt.org/z/sc5rTzaeb ``` double advance(double dt, double dx, double dy, double dz) { double dSquared = dx * dx + dy * dy + dz * dz; double mag

[Bug c/106146] New: [instcombine] a redundant movprfx insn compare to llvm

2022-06-30 Thread zhongyunde at huawei dot com via Gcc-bugs
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- * test case, gcc has a redundant movprfx insn in the kernel loop body, see detail https://gcc.godbolt.org/z/8vG4PzM18. ``` #include #define ARRAY_ALIGNMENT 64

[Bug c/105181] New: [optimization] gcc generate worse code than clang base on neon

2022-04-06 Thread zhongyunde at huawei dot com via Gcc-bugs
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- test case: void loop(int N, double *a, double *b) { // #pragma clang loop vectorize_width(4, scalable) for (int i = 0; i < N

[Bug c/104045] New: [AArch64] combine related to insn fmaxnm

2022-01-15 Thread zhongyunde at huawei dot com via Gcc-bugs
Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- test case, see detail https://gcc.godbolt.org/z/95osxxjx5 float foo(float a) { float x = 1.0f; float y = 0.0f; float z = x / y; return fmax (a, z); } as the z is

[Bug tree-optimization/94084] Optimizer produces suboptimal code related to loop-invariant

2021-06-23 Thread zhongyunde at huawei dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94084 vfdff changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|---

[Bug c++/101119] New: Missing the check about modify global variable for __attribute__((const)) function

2021-06-18 Thread zhongyunde at huawei dot com via Gcc-bugs
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- As __attribute__((const)) function should have no side effect, so it won't modify any global variable. but

[Bug c/100697] New: Missing fwprop for argument register

2021-05-20 Thread zhongyunde at huawei dot com via Gcc-bugs
Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- cat test.c extern double top[100]; int foo (long long j, double a) { top[j] += a; return 0; } gcc10.3 -g0 -O3 -march=armv8.2-a test.c -save-temps -S, can also be test base on

[Bug c/96427] Missing align attribute for anchor section from local variables

2020-08-05 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96427 vfdff changed: What|Removed |Added CC||zhongyunde at huawei dot com --- Comment #4

[Bug tree-optimization/94573] Optimizer produces suboptimal code related to -fstore-merging

2020-04-14 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94573 --- Comment #6 from vfdff --- Created attachment 48267 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48267&action=edit only get the adjust_bit_pos change base on the adjust_bit_pos change only, I test it on the gcc 9, and find it take eff

[Bug c/94421] New: [memory free] bug related to predication speculative schedule

2020-03-31 Thread zhongyunde at huawei dot com
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- After we enable the schedule DO_PREDICATION, then spec_dependency_cache will be alloc in function extend_dependency_caches, and it is obvious

[Bug tree-optimization/93781] Optimizer produces suboptimal code related to -ftree-vrp

2020-03-10 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93781 --- Comment #5 from vfdff --- Created attachment 48008 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48008&action=edit patch base on gcc 7.3, additional for 1st testcases

[Bug tree-optimization/93781] Optimizer produces suboptimal code related to -ftree-vrp

2020-03-10 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93781 --- Comment #4 from vfdff --- according your prompt, I test it base on gcc 7.3, and the second testcase works. --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -3301,6 +3301,18 @@ extract_range_from_binary_expr (value_range *vr, else set_val

[Bug tree-optimization/93781] Optimizer produces suboptimal code related to -ftree-vrp

2020-03-08 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93781 --- Comment #2 from vfdff --- I test a more simple testcase, and find the arg_5(D) already get the expected range, but the _2 = 1 << arg_9 is unexpected. unsigned int foo (unsigned int arg) { unsigned int C03FE = 4; if (arg + 1 < 4) //

[Bug tree-optimization/93781] Optimizer produces suboptimal code related to -ftree-vrp

2020-03-06 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93781 --- Comment #2 from vfdff --- For more test, I find the following case2 can get the expect result, while the case1 can't. == [case1] == unsigned int foo (unsigned int arg) { unsigned int C03FE = 4; if

[Bug tree-optimization/94084] Optimizer produces suboptimal code related to loop-invariant

2020-03-06 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94084 --- Comment #2 from vfdff --- thanks very much, you are right. I try the case2 with global pointer and it get similar result with case1. extern int base; extern int *dest, *src; void foo (int n) { int i; // #pragma no_swp for (i=0; i

[Bug c/94084] New: Optimizer produces suboptimal code related to loop-invariant

2020-03-06 Thread zhongyunde at huawei dot com
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- For the following case1 and case2, we can known the global value base is a loop invariant value, so the load insn can be lifted out of the

[Bug c/93928] New: Is there any interface to define the map of two register in one pattern ?

2020-02-25 Thread zhongyunde at huawei dot com
: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- for example, if the following oril insns need two register for operand0 and operand1 have an implication constraint, i.e

[Bug c/93781] New: Optimizer produces suboptimal code related to -ftree-vrp

2020-02-17 Thread zhongyunde at huawei dot com
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- For the following code, we can known the value C03FE is always less then 5, so the return value should be true. test base on the x86-64 gcc

[Bug middle-end/90354] Skip the not first insn when traversing the insn node

2020-02-16 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90354 --- Comment #8 from vfdff --- I have a method to fix this issue: check the egde with bb_has_eh_pred, and avoid bundling the jump insn when it is true.

[Bug rtl-optimization/93561] [bounds checking] memory overflow for spill_for

2020-02-06 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93561 --- Comment #3 from vfdff --- thanks very much!

[Bug c/93561] New: [bounds checking] memory overflow for spill_for

2020-02-04 Thread zhongyunde at huawei dot com
: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- In funcion spill_for, there is following code: mode = PSEUDO_REGNO_MODE (regno); ... for (i = 0; i < rclass_size; i++) { hard_regno = ira_class_hard_r

[Bug tree-optimization/93102] [optimization] is it legal to avoid accessing const local array from stack ?

2019-12-30 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93102 --- Comment #2 from vfdff --- do you mean the optimization memtioned https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47980 Yes, it can be with optimized option '-fmerge-all-constants', but it doesn't active in default.

[Bug c/93102] New: [optimization] is it legal to avoid accessing const local array from stack ?

2019-12-30 Thread zhongyunde at huawei dot com
: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- test code: int foo (int m, int n) { const int C2029[10] = {0,1,2,3,2,3,0,1,2,3}; int index, sum = 0; for (index

[Bug middle-end/90354] [7 regression] Skip the not first insn when traversing the insn node

2019-10-22 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90354 --- Comment #6 from vfdff --- (In reply to Richard Biener from comment #5) > (In reply to Richard Biener from comment #2) > > Which target? Which GCC version did work for you? > > Which target are you working on? Since you mark this as regress

[Bug tree-optimization/90837] Generate infinite loop when using -ftree-vrp

2019-06-12 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90837 --- Comment #4 from vfdff --- this is an invalid issue, thanks

[Bug tree-optimization/90837] New: Generate infinite loop when using -ftree-vrp

2019-06-11 Thread zhongyunde at huawei dot com
: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- Created attachment 46481 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46481&action=edit a simplified test case compile loop.c with follow command

[Bug middle-end/90354] [7.3 regression] Skip the not first insn when traversing the insn node

2019-06-01 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90354 --- Comment #4 from vfdff --- Another issue, it is not suiteable for some target supported more than 2 insns issued together ? But the following code already exist very long without problem. /* ??? Hopefully multiple delay slots are not annul

[Bug middle-end/90354] [7.3 regression] Skip the not first insn when traversing the insn node

2019-05-06 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90354 --- Comment #3 from vfdff --- I work on GCC 7.3, in function scan_trace, control = pat->insn (0), so it only check whether or not a jump_insn for the first insn of sequence. for (prev = insn, insn = NEXT_INSN (insn); insn; prev =

[Bug c++/90354] [7.3 regression] Skip the not first insn when traversing the insn node

2019-05-05 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90354 vfdff changed: What|Removed |Added CC||zhongyunde at huawei dot com --- Comment #1

[Bug c++/90354] New: [7.3 regression] Skip the not first insn when traversing the insn node

2019-05-05 Thread zhongyunde at huawei dot com
Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- simplified testcase base on g++.eh/ia64-1.C: ~/ICE ยป cat exp1.C

[Bug c/90267] [7.3 regression] wrong code generated wth -O2 as missing data dependence base on memory

2019-04-27 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90267 --- Comment #3 from vfdff --- but it doesn't warning anything, even with -Wstrict-aliasing -Wall. Accord to http://blog.sina.com.cn/s/blog_74caf0ce010173up.html, We expect an warning similar the following infomation. warning: dereferencing typ

[Bug c/90267] New: [7.3 regression] wrong code generated wth -O2 as missing data dependence base on memory

2019-04-26 Thread zhongyunde at huawei dot com
Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- Created attachment 46254 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46254&action=edit a simple t

[Bug rtl-optimization/56069] [7 Regression] RA pessimization

2019-04-11 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56069 vfdff changed: What|Removed |Added CC||zhongyunde at huawei dot com --- Comment #20

[Bug c/90042] New: [7.3 regression] Unreadable preprocessed files format

2019-04-10 Thread zhongyunde at huawei dot com
Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- the preprocessed file base gcc 7.3 # 1570 "/usr1/bmtest/zhongyunde/SAC_C11/SAC/UT/linux_hcc_SD6186/../../CODE/SRS/SAC_SRSMEAS_EQSINR3I.c

[Bug c/90027] misalign variable access by piece load/store even when define STRICT_ALIGNMENT nonzero

2019-04-09 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90027 --- Comment #2 from vfdff --- for deja testcase: gcc.c-torture/execute/20010518-2.c as the struct a_struct define with __attribute__ ((packed)), so the member variable b also not aligned with 4 bytes, is this case undefined behavior ? typedef

[Bug c/90027] New: misalign variable access by piece load/store even when define STRICT_ALIGNMENT nonzero

2019-04-09 Thread zhongyunde at huawei dot com
Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- base gcc 7.3.0, in function expand_expr_real_1 we can see the follow code: else if (SLOW_UNALIGNED_ACCESS

[Bug c/89887] the local array data will be laid in different section by different optimization level

2019-04-01 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89887 --- Comment #8 from vfdff --- an static variable out put in assemble is decided by an special option flag_toplevel_reorder ? /* Traditionally we do not eliminate static variables when not optimizing and when not doing toplevel reo

[Bug c/89886] the local array data will be laid in different section by different optimization level

2019-04-01 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89886 --- Comment #4 from vfdff --- Created attachment 46067 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46067&action=edit the history of patch merged

[Bug c/89886] the local array data will be laid in different section by different optimization level

2019-04-01 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89886 --- Comment #3 from vfdff --- A further thing, I think a 'static variables' will be put out in assemble, it does not mean it is referenced ? 8dfbf71d (hubicka 2010-05-14 23:39:39 + 1286) /* Return true when all references to VNODE must be

[Bug c/89886] the local array data will be laid in different section by different optimization level

2019-04-01 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89886 --- Comment #2 from vfdff --- it was worked in function varpool_node::finalize_decl (tree decl) /* Set definition first before calling notice_global_symbol so that it is available to notice_global_symbol. */ node->definition = true; n

[Bug c/89887] the local array data will be laid in different section by different optimization level

2019-03-29 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89887 --- Comment #6 from vfdff --- Yes, I agree with your point, it is not a bug. I doubt there is something prevent us finding the array not be touched with the option -fno-toplevel-reorder -O2 (based on gcc 7.3), and we may get better performance i

[Bug c/89887] the local array data will be laid in different section by different optimization level

2019-03-29 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89887 --- Comment #4 from vfdff --- I check that base on gcc-431, and find the local array will be placed in read only section, i.e. gcc-431 can found the array not be touched with the option -fno-toplevel-reorder. so is it a regression ? ~/GCC/gcc-

[Bug c/89887] the local array data will be laid in different section by different optimization level

2019-03-29 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89887 --- Comment #2 from vfdff --- Add option -fno-toplevel-reorder for O2, then aucSubFrmType.1820 will also be placed in section data. /opt/buildtools/gcc-7.3.0/bin/gcc dd.c -O2 -S -fno-toplevel-reorder

[Bug c/89887] the local array data will be laid in different section by different optimization level

2019-03-29 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89887 vfdff changed: What|Removed |Added CC||zhongyunde at huawei dot com --- Comment #1

[Bug c/89887] New: the local array data will be laid in different section by different optimization level

2019-03-29 Thread zhongyunde at huawei dot com
Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- file the simple testcase dd.c, compiled with the following command: pekpcsi2:~ # /opt/buildtools/gcc-7.3.0/bin

[Bug c/89886] New: the local array data will be laid in different section by different optimization level

2019-03-29 Thread zhongyunde at huawei dot com
Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- Created attachment 46057 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46057&action=edit simple t

[Bug c/83855] New: [performance] Improve cse optimization for insn with inout ops

2018-01-15 Thread zhongyunde at huawei dot com
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- Created attachment 43132 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43132&action=edit patch Now, as we define match

[Bug c/83854] New: [performance] Improve cse optimization for insn with inout ops

2018-01-15 Thread zhongyunde at huawei dot com
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- Now, as we define match_dup in target insn in *.md, so when the cse only try to replace the SRC and DEST of memory in function cse_insn

[Bug tree-optimization/67199] New: ICE with compile bug related to vector_size

2015-08-12 Thread zhongyunde at huawei dot com
-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- testcase: __attribute__ ((vector_size (16))) g_73 = {0x15FE687EL, 0x5827DF98L, 0xF8411272L, 0x235E695EL}; __attribute__ ((vector_size (16))) g_1124; int func_1

[Bug regression/67181] New: wrong dependence may cause runtime bug on some target with vliw

2015-08-11 Thread zhongyunde at huawei dot com
Priority: P3 Component: regression Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- as we known , some target with vliw, then some insns can be issued at the same cycle. in file sched-deps.c, the following code

[Bug tree-optimization/66335] a dump bug related to loop invariant in before_dom_children

2015-05-29 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66335 --- Comment #3 from vfdff --- (In reply to Richard Biener from comment #2) > No, it's working as intended - we just print where we _could_ hoist it to > (together with the cost). you mean function `determine_max_movement` will check the cost, so

[Bug tree-optimization/66335] a dump bug related to loop invariant in before_dom_children

2015-05-29 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66335 --- Comment #1 from vfdff --- I suggest using the code following code similar to fix the issue. for (bsi = gsi_start_phis (bb); !gsi_end_p (bsi); gsi_next (&bsi)) { stmt = gsi_stmt (bsi); ... ... ... ...

[Bug tree-optimization/66335] New: a dump bug related to loop invariant in before_dom_children

2015-05-29 Thread zhongyunde at huawei dot com
Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- in function invariantness_dom_walker::before_dom_children based on gcc 4.9.2 , we can see the following code: if

[Bug middle-end/66084] ICE:internal compiler error: in fold_convert_loc, at fold-const.c:1974

2015-05-12 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66084 --- Comment #4 from vfdff --- ok, it is ok based on gcc 4.9.2, thanks. $GCC492/gcc ticket_1634.c -O2

[Bug c/66084] ICE:internal compiler error: in fold_convert_loc, at fold-const.c:1974

2015-05-09 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66084 --- Comment #1 from vfdff --- the following try can fix the issue, but need consider the reason why the gcc_assert is added original ? [zhongyunde@linux-root ~/6183_hcc/gcc/gcc-4.7.0/gcc]$svn diff fold-const.c Index: fold-const.c ==

[Bug c/66084] New: ICE:internal compiler error: in fold_convert_loc, at fold-const.c:1974

2015-05-09 Thread zhongyunde at huawei dot com
Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Target Milestone: --- Created attachment 35509 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35509&action=edit a small case compile with

[Bug c/65842] combine is overly cautious when operating on side effect operands references

2015-04-22 Thread zhongyunde at huawei dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65842 --- Comment #1 from vfdff --- (gdb) p debug_rtx (newpat) (set (reg:SI 191 [ g_123$6+4 ]) (and:SI (mem/c:SI (pre_modify:SI (reg/f:SI 164) (plus:SI (reg/f:SI 164) (const_int -12 [0xfff4]))) [4 g_123+4 S4

[Bug c/65842] New: combine is overly cautious when operating on side effect operands references

2015-04-21 Thread zhongyunde at huawei dot com
: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zhongyunde at huawei dot com Created attachment 35382 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35382&action=edit float32 is a custom define type, so default gc