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] |
Richard Sandiford wrote:Jim,I don't want to make a fuss, but for the record, as someone involved in writing these changes, I feel very uncomfortable seeing a patch like this being applied without a maintainer approving it.
I'll approve it after the fact, just to make it tidy.
I'm curious why the language about subregs of mems was removed. We still have code that can create them. Search for INSN_SCHEDULING in combine.c and recog.c. This is a bit of a historical artifact. Originally, we allowed subregs of mem knowing that reload would fix them. When RISC and instruction scheduling support was added, this stuff was disabled to that we could schedule the explicit memory reference that reload would otherwise implicitly generate, but this was only done for targets that have insn scheduling support. 17 years or so later the INSN_SCHEDULING checks are still there, which means we can still generate subregs of mems for targets that don't enable insn scheduling. Granted, there aren't many targets that don't enable scheduling nowadays, but it would still be nice if this was fixed.
The docs say that the upper bits of paradoxical subregs are always undefined. This is not true for paradoxical subregs of mems when LOAD_EXTEND_OP is defined. See the use in combine. Of course, this assumes that we still have subregs of mems.
Another possible issue here are the subregs generated by PROMOTE_MODE. These are a bit different that the subregs you describe here. These are always paradoxical, and they always have well defined upper bits, either sign-extended or zero-extended, or on 32-bit itanium ptr-extended. See the SUBREG_PROMOTED_* docs and uses.
Jim
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |