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]

[patch][DF] Remove DF_REF_SUBREG, add DF_REF_CALL_FUNCTION_USAGE


Hello,

For my delay-slot filler, I need to be able to see if a ref is in
CALL_INSN_FUNCTION_USAGE to see if a REG is a valid candidate to fill
a CALL_INSN delay slot. If a ref is a real use in the pattern of the
call insn then the insn can't be delayed, but if it's only a use in
CALL_INSN_FUNCTION_USAGE then it can be safely delayed.

To see if a ref comes from CALL_INSN_FUNCTION_USAGE is much harder,
you have to walk the whole list to find the location, or scan the call
insn pattern to make sure the USE or CLOBBER of the ref location does
not appear there. To make this task a lot easier, this patch marks
refs in CALL_INSN_FUNCTION_USAGE with a new ref flag
DF_REF_CALL_FUNCTION_USAGE.

DF_REF_SUBREG is almost unused and it's easy enough to see if a ref is
to a REG in a SUBREG by looking at the code of the ref location. So I
removed DF_REF_SUBREG and hi-jacked its bit for
DF_REF_CALL_FUNCTION_USAGE.

Bootstrapped&tested on powerpc64-unknown-linux-gnu unix{,-m32).
OK for trunk?

Ciao!
Steven

Attachment: DF_REF_CALL_FUNCTION_USAGE.diff.txt
Description: Text document


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