Bug 48027 - setmem pattern using undesirable RTL
setmem pattern using undesirable RTL
Status: UNCONFIRMED
Product: gcc
Classification: Unclassified
Component: middle-end
4.6.0
: P3 normal
: ---
Assigned To: Not yet assigned to anyone
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-03-07 22:16 UTC by Jakub Jelinek
Modified: 2011-03-30 09:36 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jakub Jelinek 2011-03-07 22:16:59 UTC
As mentioned in http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00335.html
setmem patterns on several targets (but also e.g. dse.c recognizes it) use patterns like
(set (mem:BLK ...) (const_int N))
or
(set (mem:BLK ...) (reg:M X))
for memset (, N, ) and memset (, X, ).  This is a mode mismatch, we should come up with something better, e.g. some RTL expression that gives BLKmode from
VOIDmode/QImode similar to VEC_DUPLICATE that would be used in that case.
Comment 1 rsandifo@gcc.gnu.org 2011-03-30 09:36:31 UTC
For the record, there was an older thread about this too:

http://gcc.gnu.org/ml/gcc-patches/2009-01/msg00158.html