[PATCH] D155089: [PowerPC][MC] Set 'future' as default CPU type of AIX

Qiu Chaofan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 12 08:07:46 PDT 2023


qiucf created this revision.
qiucf added reviewers: PowerPC, nemanjai, shchenz, Esme, hubert.reinterpretcast, sfertile.
Herald added a subscriber: hiraditya.
Herald added a project: All.
qiucf requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

For 64-bit 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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D155089

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


Index: llvm/lib/Object/XCOFFObjectFile.cpp
===================================================================
--- llvm/lib/Object/XCOFFObjectFile.cpp
+++ llvm/lib/Object/XCOFFObjectFile.cpp
@@ -1217,6 +1217,12 @@
   return XCOFFObjectFile::create(FileType, MemBufRef);
 }
 
+std::optional<StringRef> XCOFFObjectFile::tryGetCPUName() const {
+  if (is64Bit())
+    return StringRef("future");
+  return std::nullopt;
+}
+
 bool XCOFFSymbolRef::isFunction() const {
   if (!isCsectSymbol())
     return false;
Index: llvm/include/llvm/Object/XCOFFObjectFile.h
===================================================================
--- llvm/include/llvm/Object/XCOFFObjectFile.h
+++ llvm/include/llvm/Object/XCOFFObjectFile.h
@@ -715,6 +715,8 @@
                                                  uint32_t Distance);
 
   static bool classof(const Binary *B) { return B->isXCOFF(); }
+
+  std::optional<StringRef> tryGetCPUName() const override;
 }; // XCOFFObjectFile
 
 typedef struct {


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D155089.539565.patch
Type: text/x-patch
Size: 983 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230712/33124bf4/attachment.bin>


More information about the llvm-commits mailing list