[GlobalIsel][X86] Add handling for G_FRAME_INDEX/G_GLOBAL_VALUE
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 15 Jun 2023 11:53:29 +0000 (12:53 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 15 Jun 2023 11:57:43 +0000 (12:57 +0100)
Replace the legacy legalizer versions

llvm/lib/Target/X86/X86LegalizerInfo.cpp

index 83efc74..8b55c37 100644 (file)
@@ -290,6 +290,8 @@ X86LegalizerInfo::X86LegalizerInfo(const X86Subtarget &STI,
       .widenScalarToNextPow2(1, /*Min*/ 32)
       .clampScalar(1, s32, sMaxScalar);
 
+  getActionDefinitionsBuilder({G_FRAME_INDEX, G_GLOBAL_VALUE}).legalFor({p0});
+
   // sext, zext, and anyext
   getActionDefinitionsBuilder({G_SEXT, G_ZEXT, G_ANYEXT})
       .legalIf([=](const LegalityQuery &Query) {
@@ -474,10 +476,6 @@ void X86LegalizerInfo::setLegalizerInfo32bit() {
     LegacyInfo.setAction({MemOp, 1, p0}, LegacyLegalizeActions::Legal);
   }
 
-  // Pointer-handling
-  LegacyInfo.setAction({G_FRAME_INDEX, p0}, LegacyLegalizeActions::Legal);
-  LegacyInfo.setAction({G_GLOBAL_VALUE, p0}, LegacyLegalizeActions::Legal);
-
   // Merge/Unmerge
   for (const auto &Ty : {s16, s32, s64}) {
     LegacyInfo.setAction({G_MERGE_VALUES, Ty}, LegacyLegalizeActions::Legal);