Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
C++ stl container-based loop is very common, but its low representation looks
like irregular, not
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89713
--- Comment #2 from Feng Xue ---
Yes, people seldom write an empty loop in real application. These loops are
always by-products of some loop optimizations, such as loop unswitch and loop
split etc. Pragma does be a means to pass loop information
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89713
--- Comment #3 from Feng Xue ---
Yes, people seldom write an empty loop in real application. These loops are
always by-products of some loop optimizations, such as loop unswitch and loop
split etc. Pragma does be a means to pass loop information
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Supposed a function as the following, in which 'cond', 'S1' and 'S2' are
completely irrele
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Current regional RA uses a top-down allocation order, which may not properly
split a long live range that crosses sub-region with high register
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90168
--- Comment #2 from Feng Xue ---
(In reply to Eric Botcazou from comment #1)
> > Supposed a function as the following, in which 'cond', 'S1' and 'S2' are
> > completely irrelevant, means they do not access same variables(in term of
> > RA, they o
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90174
--- Comment #1 from Feng Xue ---
Created attachment 46218
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46218&action=edit
asm file generated by gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90174
--- Comment #2 from Feng Xue ---
Created attachment 46219
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46219&action=edit
asm file generated by llvm
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90174
--- Comment #3 from Feng Xue ---
Created attachment 46237
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46237&action=edit
test case for aarch64
Add another case composed for aarch64.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90174
--- Comment #5 from Feng Xue ---
> I would say that top-down algorithm behaves better than bottom-up one. I
> implemented Callahan-Koblentz (bottom-up algorithm) in GCC about 10 years
> ago and it behaved worse than the current one. I think a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90174
--- Comment #7 from Feng Xue ---
Created attachment 46293
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46293&action=edit
asm file 2 generated by gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90174
--- Comment #6 from Feng Xue ---
Created attachment 46292
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46292&action=edit
test case with less live ranges
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90174
--- Comment #8 from Feng Xue ---
Created attachment 46294
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46294&action=edit
asm file 2 generated by llvm
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90168
--- Comment #4 from Feng Xue ---
(In reply to Andrew Pinski from comment #3)
> >or to use float type to hold frequency?
>
> This won't work correctly as floating point is different between hosts.
> There has been some usage of floating point in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90174
--- Comment #9 from Feng Xue ---
(In reply to Feng Xue from comment #5)
> > I would say that top-down algorithm behaves better than bottom-up one. I
> > implemented Callahan-Koblentz (bottom-up algorithm) in GCC about 10 years
> > ago and it b
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Created attachment 46318
--> https://gcc.gnu.org/bugzilla/attachment.cgi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90401
--- Comment #2 from Feng Xue ---
(In reply to Richard Biener from comment #1)
> Huh. IPA-CP dump difference:
>
> @@ -26,6 +26,8 @@
> Unknown VR
> callsite int caller(int, int&)/2 -> int callee(int&)/1 :
> param 0: UNKNO
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92712
Feng Xue changed:
What|Removed |Added
CC||fxue at os dot
amperecomputing.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94234
Feng Xue changed:
What|Removed |Added
Resolution|--- |FIXED
Status|NEW
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97066
--- Comment #1 from Feng Xue ---
Both cases will be simplified with new pattern, and this is correct. Will
change test code to make that not happen.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89134
--- Comment #11 from Feng Xue ---
Actually, I am working on adding optimizations to enable this opportunity,
which can be discomposed to two sub-problems: breaking-loop transformation
mentioned above, and empty-loop elimination. I have worked out
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
For recursive function, IPA does not allow constant propagation on parameter
that is used to control recursion. It
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92133
--- Comment #2 from Feng Xue ---
(In reply to Martin Liška from comment #1)
> Let me take a look.
I've created a patch
(https://gcc.gnu.org/ml/gcc-patches/2019-10/msg01260.html), could you take a
time to review it?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92133
--- Comment #5 from Feng Xue ---
(In reply to Thomas Koenig from comment #4)
> Author: tkoenig
> Date: Sun Nov 3 22:33:53 2019
> New Revision: 277760
>
> URL: https://gcc.gnu.org/viewcvs?rev=277760&root=gcc&view=rev
> Log:
> 2019-11-03 Thomas
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91089
Feng Xue changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91088
Feng Xue changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91682
Feng Xue changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|---
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
If ao_ref represents a constant data, stmt_may_clobber_ref_p_1() and
call_may_clobber_ref_p() can return false. But
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92689
--- Comment #2 from Feng Xue ---
int fn();
int goo(const int *p)
{
return fn();
}
int data;
int foo (const int *p)
{
int i;
int t;
data = *p;
for (i = 0; i < 100; i++)
{
int t = *p + 1;
goo (&t
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92689
--- Comment #6 from Feng Xue ---
Good case. I did missed something, a const pointer does not imply it is
restrict and for a real const data, we can even create a non-const pointer
alias to it by using explicit type cast.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92133
--- Comment #9 from Feng Xue ---
Ok. For any followups on this, I'll create new tracker.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92133
--- Comment #11 from Feng Xue ---
--param ipa-cp-eval-threshold=1 -param ipcp-unit-growth=80 is enough.
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
If possible, IVOPTs can transform memory accesses to make them use same base,
which can decrease register pressure in loop. But it does not
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Function loop_only_exit_p() in tree-ssa-loop-niter.c:
for (i = 0; i < loop->num_nodes; i++)
{
fo
-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
In function determine_group_iv_cost_address(),
/* Uses in a group can share setup code, so only add setup cost once. */
cost -= cost.scratch
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
>From address IVs with same base and index, ivopts always pick up one with
non-zero offset. This does not incur extra cost on architecture l
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89713
Feng Xue changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90401
Feng Xue changed:
What|Removed |Added
Status|UNCONFIRMED |RESOLVED
Resolution|---
NCONFIRMED
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Current IPA-cp only detects conditional statemen
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
IPA-cp always adds execution cost of switch default case into
-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Find code snippet in simplify_stmt_for_jump_threading ():
if (vr->kind () == VR_RANGE)
{
size_t i, j;
find_case_label_ra
: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
A piece of code n recursive_inlining()/ipa-inline.c:
while (!heap.empty ())
{
struct cgraph_edge *curr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91194
Feng Xue changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91088
--- Comment #3 from Feng Xue ---
I've already created a patch under review. Please give some comments. Here it
is: https://gcc.gnu.org/ml/gcc-patches/2019-07/msg00959.html
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91089
--- Comment #2 from Feng Xue ---
I've already created a patch under review. Please give some comments. Here it
is: https://gcc.gnu.org/ml/gcc-patches/2019-07/msg00937.html
: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Some might be a bug, and some might be redundant.
ipa-prop.c:
In function ipcp_modif_dom_walker::before_dom_children
: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Caught a segfault when compiling pr63766.C with debug version gcc.
pr63766.C:48:1: internal compiler error
: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Given a SSA_NAME pointer, its type information is discarded by
ao_ref_init_from_ptr_and_size() when
Severity: normal
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Current IPA only supports CP on by-ref argument assigned
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
CCP could not fold the following expression to a constant "8":
size_t foo (char *a, size_t n)
{
char *
-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
In function ssa_propagation_engine::ssa_propagate(), a call chain below might
lead to a reference to uninitialized data.
ssa_propagate() -> ssa_prop_i
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113091
Feng Xue changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
-param=vect-induction-float=
Common Joined UInteger Var(param_vect_induction_float) Init(1) IntegerRage(0,
1) Param Optimization
^^^
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
For function create_specialized_node(), the "node" to operated on seems al
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104377
--- Comment #1 from Feng Xue ---
(In reply to Feng Xue from comment #0)
> For function create_specialized_node(), the "node" to operated on seems
> always to be an original cgraph node, never a clone node. From call graph
> related to the functi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102513
Feng Xue changed:
What|Removed |Added
CC||fxue at os dot
amperecomputing.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104377
--- Comment #4 from Feng Xue ---
(In reply to Martin Jambor from comment #2)
> (In reply to Feng Xue from comment #1)
> >
> > OK. I does missed something. Here we could not hold assumption that
> > ipcp_decision_stage() only sees raw cgraph nod
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102513
--- Comment #10 from Feng Xue ---
(In reply to Martin Jambor from comment #8)
> I am about to thest the following patch. In longer-run, it would be better
> to never generate lattice values outside of the value_range but there is an
> ordering
: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
In a loop reduction path containing a lane-reduced operation
(DOT_PROD/SAD/WIDEN_SUM), current
: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
This function may contain buggy code, which was introduced due to recent
support to the new ABD pattern. It calls "vect_recog_absolute_difference"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114769
--- Comment #3 from Feng Xue ---
When half_type is null, and call chain would be:
vect_supportable_direct_optab_p (vinfo, sum_type, SAD_EXPR, NULL, ...)
-> get_vectype_for_scalar_type (vinfo, NULL)
-> get_related_vectype_for_scalar_type
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
The purpose of the function is to peel off type casts to find
: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Does the below condition code miss the case of "SAD_EXPR", in function
vect_get_smallest_scalar_type():
if (assign)
{
scalar_type =
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115060
--- Comment #3 from Feng Xue ---
Linaro reported a regression:
https://linaro.atlassian.net/browse/GNU-1226
Actually, this is not, but exposes a new bug in
vect_look_through_possible_promotion. The function fails to figure out root
definition i
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671
Feng Xue changed:
What|Removed |Added
CC||fxue at os dot
amperecomputing.com
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
By means of user-defined new operator, it is possible that a field is
initialized before constructor.
#include
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107066
--- Comment #3 from Feng Xue ---
Got it. Thanks for that.
: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Created attachment 51413
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51413&action=edit
testcase
Compiling attached testcase with option "-f
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
There is no initialization for vr1->result_vdef, and it may contain non-zero
garbage value.
: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
In the code snippet:
if (lhs)
{
if (gsi_replace (gsi, new_stmt, true
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102451
--- Comment #2 from Feng Xue ---
(In reply to Richard Biener from comment #1)
> Confirmed. Mind fixing it by recording the basic-block index before
> removing/replacing?
OK.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102400
Feng Xue changed:
What|Removed |Added
Resolution|--- |FIXED
Status|NEW
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102451
Feng Xue changed:
What|Removed |Added
Status|NEW |RESOLVED
Resolution|---
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
This occurs after commit "Loosen loop crossing restriction in threader"
(ec0124e0acb556cdf5dba0e8d0ca6b69d9537fcc).
In function ‘void mark_stack_region_used(p
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102681
--- Comment #4 from Feng Xue ---
(In reply to Martin Sebor from comment #3)
> Simply initializing the variable as in the patch below avoids the warning.
> The control flow in the code is sufficiently opaque to make it worthwhile
> from a readab
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
By ipa_param_adjustments::modify_call(), a call statement with return value
might be replaced to a new void
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99951
--- Comment #2 from Feng Xue ---
Can we report error in verify_ssa() when a non-default SSA's defining statement
has NULL bb, which is always a case that the statement is removed somewhere?
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Found two places that redundant mark_irreducible_loops() is called after
loop_optimizer_init (LOOPS_NORMAL), since "LOOPS_NORMAL&quo
++
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Created attachment 50805
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50805&action=edit
Source file
Reproduce ICE using the command:
g++ -fpreprocessed TimeControl.ii -st
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100802
Feng Xue changed:
What|Removed |Added
Status|RESOLVED|VERIFIED
--- Comment #2 from Feng Xue ---
V
-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
tree ct = TYPE_CANONICAL (t);
if (!ct)
;
else if (TYPE_CANONICAL (t) != ct)
^ should be ct?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98782
Feng Xue changed:
What|Removed |Added
CC||fxue at os dot
amperecomputing.com
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Since "execute_pass_list ()" has an action of clearing dominance information,
two free_dominance_info() afte
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98815
--- Comment #2 from Feng Xue ---
If we step into free_dominance_info(dir), it is a wrapper of
free_dominance_info (cfun, dir), which means it assumes a non-NULL "cfun".
Additionally, please go through calling stack of free_dominance_info():
f
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Function "ipa_prop_read_jump_functions()" in ipa-prop.c:
ipa_check_create_node_params ();
ipa_check_create
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Large-size source codes might exceed representation space of linemap. When this
happens, UNKNOWN_LOCATION(0) would inserted to the end of linemap
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
In the function "remap_gimple_op_r" of tree-inlining.cc:
...
if (TREE_CODE (*tp) == SSA_NAME)
{
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
In the function "materialize_cgraph" of lto.cc:
/* Start the appropriate timer depending on the mode t
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107828
Feng Xue changed:
What|Removed |Added
Resolution|INVALID |---
Status|RESOLVED
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Compile the following code with "-O2" on AArch64.
#include
#include
jmp_buf ex_buf;
__attribute__
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108117
--- Comment #6 from Feng Xue ---
(In reply to Andrew Pinski from comment #2)
> https://en.cppreference.com/w/c/program/setjmp
I think that most programmers are not aware of this, neither I for sure. Usage
of volatile here is not that intuitive
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108117
--- Comment #8 from Feng Xue ---
(In reply to Andrew Pinski from comment #7)
> (In reply to Feng Xue from comment #6)
> > (In reply to Andrew Pinski from comment #2)
> > > https://en.cppreference.com/w/c/program/setjmp
> >
> > I think that most
Priority: P3
Component: ipa
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
CC: marxin at gcc dot gnu.org
Target Milestone: ---
Created attachment 54296
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54296&
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108445
--- Comment #1 from Feng Xue ---
Created attachment 54297
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54297&action=edit
testcase
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Gcc fails to vectorize the below testcase on aarch64.
int test(unsigned array[8]);
int foo(char *a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113091
--- Comment #2 from Feng Xue ---
(In reply to Richard Biener from comment #1)
> It's the logic
>
> FOR_EACH_VEC_ELT (SLP_TREE_SCALAR_STMTS (node), i, stmt_info)
> {
> if (svisited.contains (stmt_info))
> continue;
> st
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113091
--- Comment #3 from Feng Xue ---
The function vect_bb_vectorization_profitable_p resorts to a recursive way to
identify scalar use, for this case, setting STMT_VINFO_LIVE_P or not would not
change scalar cost computation.
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: fxue at os dot amperecomputing.com
Target Milestone: ---
Given a partial vector-sized slp node in loop, code generation would utilize
inter-iteration parallelism to archive full
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113104
--- Comment #2 from Feng Xue ---
(In reply to Richard Biener from comment #1)
> See my proposal on the mailing list to lift the restriction of sticking to a
> single vector size, I think this is another example showing this. If you
> use BB lev
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113091
--- Comment #6 from Feng Xue ---
(In reply to Richard Sandiford from comment #5)
> > The issue here is that because the "outer" pattern consumes
> > patt_64 = (int) patt_63 it should have adjusted _2 = (int) _1
> > stmt-to-vectorize
> > as bein
1 - 100 of 113 matches
Mail list logo