[llvm] 3187a4f - [AArch64][GlobalISel] Add legalizer support for the @llvm.get.dynamic.area.offset intrinsic.

Amara Emerson via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 20 17:13:41 PDT 2021


Author: Amara Emerson
Date: 2021-08-20T17:13:34-07:00
New Revision: 3187a4f3f1d4d68a75a21154569db1232a62a57d

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

LOG: [AArch64][GlobalISel] Add legalizer support for the @llvm.get.dynamic.area.offset intrinsic.

This is just 0 on AArch64.

Added: 
    llvm/test/CodeGen/AArch64/GlobalISel/legalize-intrinsic-get-dynamic-area-offset.mir

Modified: 
    llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
index c0d6a9eeef63..9a27a19d65d8 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
@@ -23,6 +23,7 @@
 #include "llvm/CodeGen/TargetOpcodes.h"
 #include "llvm/CodeGen/ValueTypes.h"
 #include "llvm/IR/DerivedTypes.h"
+#include "llvm/IR/Intrinsics.h"
 #include "llvm/IR/IntrinsicsAArch64.h"
 #include "llvm/IR/Type.h"
 #include "llvm/Support/MathExtras.h"
@@ -967,6 +968,12 @@ bool AArch64LegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
     MI.eraseFromParent();
     return true;
   }
+  case Intrinsic::get_dynamic_area_offset: {
+    MachineIRBuilder &MIB = Helper.MIRBuilder;
+    MIB.buildConstant(MI.getOperand(0).getReg(), 0);
+    MI.eraseFromParent();
+    return true;
+  }
   }
 
   return true;

diff  --git a/llvm/test/CodeGen/AArch64/GlobalISel/legalize-intrinsic-get-dynamic-area-offset.mir b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-intrinsic-get-dynamic-area-offset.mir
new file mode 100644
index 000000000000..a15755413253
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/legalize-intrinsic-get-dynamic-area-offset.mir
@@ -0,0 +1,39 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
+
+# RUN:llc %s -verify-machineinstrs -mtriple=aarch64-unknown-unknown -run-pass=legalizer -o - | FileCheck %s
+
+...
+---
+name:            test_64
+alignment:       4
+tracksRegLiveness: true
+machineFunctionInfo: {}
+body:             |
+  bb.0:
+    liveins:
+    ; CHECK-LABEL: name: test_64
+    ; CHECK: %v:_(s64) = G_CONSTANT i64 0
+    ; CHECK: $x0 = COPY %v(s64)
+    ; CHECK: RET_ReallyLR implicit $x0
+    %v:_(s64) = G_INTRINSIC_W_SIDE_EFFECTS intrinsic(@llvm.get.dynamic.area.offset)
+    $x0 = COPY %v(s64)
+    RET_ReallyLR implicit $x0
+
+...
+---
+name:            test_32
+alignment:       4
+tracksRegLiveness: true
+machineFunctionInfo: {}
+body:             |
+  bb.0:
+    liveins:
+    ; CHECK-LABEL: name: test_32
+    ; CHECK: %v:_(s32) = G_CONSTANT i32 0
+    ; CHECK: $w0 = COPY %v(s32)
+    ; CHECK: RET_ReallyLR implicit $w0
+    %v:_(s32) = G_INTRINSIC_W_SIDE_EFFECTS intrinsic(@llvm.get.dynamic.area.offset)
+    $w0 = COPY %v(s32)
+    RET_ReallyLR implicit $w0
+
+...


        


More information about the llvm-commits mailing list