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]

Re: make genattrtab generate smaller code


In message <Pine.LNX.4.44.0309080706100.13736-100000@wotan.suse.de>, Michael Ma
tz writes:
 >> My only concern is that this actually changes the behavior of the
 >> program, in that it may cause attr functions to be called with insns
 >> that would previously never have that function called for them.
 >
 >Correct.  But that would mean the author of the .md file relied on
 >undocumented behaviour.  And given that get_attr_aaa() needs to return
 >sensible results when called from toplevel (i.e. either from the emitters
 >or the scheduler, or whatever) they should also return sensible results
 >when called from inside other get_attr() functions.
 >
 >In addition when and how the get_attr() are called from inside other
 >get_attr() currently totally depends on the expression optimizer in
 >genattrtab, which also depends on the actual insn patterns and
 >define_attr(), hence this was unstable anyway.  So I think the chance of
 >this change breaking some .md files should be small, although of course I
 >don't know.  It's theoretically possible in which case I think we should
 >define the .md file to be wrong.
It has always been the case that callers of get_attr_xxx have had to 
pre-filter out things like CLOBBERs, USEs and SEQUENCEs (ie, things which
are not recognizable insns).

Now, one could argue that's a lame interface and that the get_attr_xxx
functions should do something sensible with those non-recognizable
insns.  That would allow for some minor cleanups.

jeff



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]