[llvm] b16372c - [PowerPC][MC] Set 'future' as default CPU type of XCOFF

Qiu Chaofan via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 12 19:17:31 PDT 2023


Author: Qiu Chaofan
Date: 2023-07-13T10:15:34+08:00
New Revision: b16372c5fc65a6a7c14c19f01b17ac15a964d21f

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

LOG: [PowerPC][MC] Set 'future' as default CPU type of XCOFF

For Power on Linux (both LE and BE), ELFObjectFile returns 'future' as
default CPU type if mcpu is not specified, so that all necessary
features will be enabled in MC.

While for XCOFF, the default CPU type is always null, which makes tools
like llvm-objdump not able to recognize prefixed instructions, unless
specifying --mcpu=pwr10 or --mattr=+prefix-instrs manually.

Reviewed By: nemanjai

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

Added: 
    

Modified: 
    llvm/include/llvm/Object/XCOFFObjectFile.h
    llvm/lib/Object/XCOFFObjectFile.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/Object/XCOFFObjectFile.h b/llvm/include/llvm/Object/XCOFFObjectFile.h
index 1f8ba6f32634ee..5f51aacfabc085 100644
--- a/llvm/include/llvm/Object/XCOFFObjectFile.h
+++ b/llvm/include/llvm/Object/XCOFFObjectFile.h
@@ -715,6 +715,8 @@ class XCOFFObjectFile : public ObjectFile {
                                                  uint32_t Distance);
 
   static bool classof(const Binary *B) { return B->isXCOFF(); }
+
+  std::optional<StringRef> tryGetCPUName() const override;
 }; // XCOFFObjectFile
 
 typedef struct {

diff  --git a/llvm/lib/Object/XCOFFObjectFile.cpp b/llvm/lib/Object/XCOFFObjectFile.cpp
index b6d0180c47fb31..fa4917e354e92b 100644
--- a/llvm/lib/Object/XCOFFObjectFile.cpp
+++ b/llvm/lib/Object/XCOFFObjectFile.cpp
@@ -1217,6 +1217,10 @@ ObjectFile::createXCOFFObjectFile(MemoryBufferRef MemBufRef,
   return XCOFFObjectFile::create(FileType, MemBufRef);
 }
 
+std::optional<StringRef> XCOFFObjectFile::tryGetCPUName() const {
+  return StringRef("future");
+}
+
 bool XCOFFSymbolRef::isFunction() const {
   if (!isCsectSymbol())
     return false;


        


More information about the llvm-commits mailing list