alexey-bataev wrote:

> Please can you add better comments explaining the process

Improves the rendering info, taken from gathered/buildvector nodes.
Currently, this info is taken only from vector nodes. E.g. if we have 2 nodes: 
vectorized <a1, a2, a3, a4> and gather/buildvector <a2, a1, a3, a4>, the reoder 
info is build only based on the vectorized node (how we need to reshuffle 
vectorized node to build the gathered/buildvector node). It does not take into 
account the neither the ordering within basic block, nor ordering because of 
other gathered/buildvector nodes, as codegen/cost model currently does.
The patch improves this process by using same approach, as codegen/cost model. 
Unfortunately, it cannot be unified with codegen/cost model approach directly 
(see processBuildVector template function, used for codegen/cost), because it 
requires some extra filtering, e.g. if the order comes from multiple nodes, it 
is not profitable to use it in many cases, since it may break the ordering that 
comes from the single node permutation. But the base process is still the same 
and relies on same functions, as codegen/cost model does.

https://github.com/llvm/llvm-project/pull/77529
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to