This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
In this patch a new reload-rewrite pattern detector is composed to handle the following pattern in the loop being vectorized: x = *p; ... y = *p; or *p = x; ... y = *p; In both cases, *p is reloaded because there may exist other defs to another memref that may alias with p. However, aliasing is eliminated with alias checks. Then we can safely replace the last statement in above cases by y = x. The following rewrite pattern is also detected: *p = x; ... *p = y; The first write is redundant due to the fact that there is no aliasing between p and other pointers. In this case we don't need to vectorize this write. Here we replace it with a dummy statement z = x. Bootstrapped and tested on x86-64. OK for trunk? thanks, Cong
Attachment:
patch-reload-rewrite-pattern.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |