[VE] Disable relative lookup table converter pass for VE
authorKazushi (Jam) Marukawa <marukawa@nec.com>
Sat, 17 Jul 2021 19:32:21 +0000 (04:32 +0900)
committerKazushi (Jam) Marukawa <marukawa@nec.com>
Mon, 19 Jul 2021 10:25:33 +0000 (19:25 +0900)
VE's linker, /opt/nec/ve/bin/nld, doesn't implement relative lookup table.
The relative lookup table is introduced by https://reviews.llvm.org/D94355,
but we need to disable it at the moment.

Reviewed By: simoll

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

llvm/lib/Target/VE/VETargetTransformInfo.h

index 6e6f4d2..0242fa1 100644 (file)
@@ -76,6 +76,16 @@ public:
     // TODO report vregs once vector isel is stable.
     return 0;
   }
+
+  bool shouldBuildRelLookupTables() const {
+    // NEC nld doesn't support relative lookup tables.  It shows following
+    // errors.  So, we disable it at the moment.
+    //   /opt/nec/ve/bin/nld: src/CMakeFiles/cxxabi_shared.dir/cxa_demangle.cpp
+    //   .o(.rodata+0x17b4): reloc against `.L.str.376': error 2
+    //   /opt/nec/ve/bin/nld: final link failed: Nonrepresentable section on
+    //   output
+    return false;
+  }
 };
 
 } // namespace llvm