[llvm] e52007c - [SystemZ][z/OS] Stricter condition for HLASM class instantiation

Anirudh Prasad via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 1 12:56:55 PDT 2021


Author: Anirudh Prasad
Date: 2021-06-01T15:56:50-04:00
New Revision: e52007cac4faf07ad2776136015fcbfc076ddd84

URL: https://github.com/llvm/llvm-project/commit/e52007cac4faf07ad2776136015fcbfc076ddd84
DIFF: https://github.com/llvm/llvm-project/commit/e52007cac4faf07ad2776136015fcbfc076ddd84.diff

LOG: [SystemZ][z/OS] Stricter condition for HLASM class instantiation

- A lot of lit tests simply specify the arch minus the triple. On z/OS, this could result in a scenario of some-other-triple-unknown-ibm-zos. This points to an incorrect triple + arch combo.
- To prevent this, isOSzOS change is switched in favour of isOSBinFormatGOFF.
- This is because, the GOFF format is set only if the triple is systemz and if the operating system is GOFF. And currently, there are no other architectures/os's using the GOFF file format.
- An argument could be made that the problematic tests be fixed to explicitly specify the arch-vendor-triple string, but there's a large number of these tests, and adding this stricter scope ensures that we aren't instantiating the incorrect instance of the AsmParser for other platforms when run on z/OS.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D103343

Added: 
    

Modified: 
    llvm/lib/MC/MCParser/AsmParser.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index f2e25b9ff5229..2383a02fb8e10 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -6374,7 +6374,7 @@ bool parseAssignmentExpression(StringRef Name, bool allow_redef,
 MCAsmParser *llvm::createMCAsmParser(SourceMgr &SM, MCContext &C,
                                      MCStreamer &Out, const MCAsmInfo &MAI,
                                      unsigned CB) {
-  if (C.getTargetTriple().isOSzOS())
+  if (C.getTargetTriple().isSystemZ() && C.getTargetTriple().isOSzOS())
     return new HLASMAsmParser(SM, C, Out, MAI, CB);
 
   return new AsmParser(SM, C, Out, MAI, CB);


        


More information about the llvm-commits mailing list