- This patch adds in the GOFF mangling support to the LLVM data layout string. A corresponding additional line has been added into the data layout section in the language reference documentation.
- Furthermore, this patch also sets the right data layout string for the z/OS target in the SystemZ backend.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
SystemZ specific parts LGTM, but it would be good to have someone else review the common code / IR changes as well.
Looking at the common code parts, it seems the behavior of MM_GOFF is actually identical to MM_ELF. Is this correct? If so, do we really need a different format type here?
At a future point, we will be changing the local and global prefixes. At that point we would still need a separate MM_GOFF field. I feel it would be a bit better to enforce it from now itself.
Nope. I'll update the patch.
Nope. I've added it. There should also be a change to the MCAsmInfo fields (PrivateGlobalPrefix and PrivateLabelPrefix). These will be added in when the MCAsmInfo interfaces for z/OS are put up.
llvm/docs/LangRef.rst | ||
---|---|---|
2596 | Comment needs to be update now. |
clang/test/CodeGen/target-data.c | ||
---|---|---|
256 | If you add so many RUN lines at once, please use unittests instead. This would cost some test execution time |
clang/test/CodeGen/target-data.c | ||
---|---|---|
256 | We're essentially matching what was available for the systemz elf target (above lines) for the z/OS target. Is there a real concern for the execution time here for moving it to a separate unit test. If we did, it would seem to "stand out" for just the z/OS target. |
clang/test/CodeGen/target-data.c | ||
---|---|---|
256 | This is a real concern. Perhaps you can also move the SYstemZ ELF tests to a unit test. |
clang/test/CodeGen/target-data.c | ||
---|---|---|
256 | It also doesn't appear useful to enumerate every combination when the patch doesn't touch these combination individually. I.e. if you add z/OS condition to arch8 code, then having a test is fine. If you don't touch it, I don't think you should enumerate {elf,goff} * {z10,arch8,z196,arch9,...} |
- Reduced the number of test lines in target-data.c, since we don't have to check for every combination of arch,cpu for the SystemZ target (for both elf and z/OS)
If you add so many RUN lines at once, please use unittests instead. This would cost some test execution time