[PATCH] D98730: [AArch64][GlobalISel] Fall back if disabling neon/fp in the translator.
Amara Emerson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 17 15:44:13 PDT 2021
aemerson updated this revision to Diff 331398.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D98730/new/
https://reviews.llvm.org/D98730
Files:
llvm/lib/CodeGen/GlobalISel/Utils.cpp
llvm/test/CodeGen/AArch64/GlobalISel/lifetime-marker-no-dce.mir
Index: llvm/test/CodeGen/AArch64/GlobalISel/lifetime-marker-no-dce.mir
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/AArch64/GlobalISel/lifetime-marker-no-dce.mir
@@ -0,0 +1,24 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
+# RUN: llc -mtriple aarch64 -run-pass=aarch64-prelegalizer-combiner -global-isel -verify-machineinstrs %s -o - | FileCheck %s
+# Check that we don't DCE the lifetime markers even though they don't have any users.
+---
+name: test_lifetime_no_dce
+alignment: 4
+tracksRegLiveness: true
+frameInfo:
+ maxAlignment: 4
+stack:
+ - { id: 0, size: 4, alignment: 4 }
+machineFunctionInfo: {}
+body: |
+ bb.1:
+ ;%0:_(p0) = G_FRAME_INDEX %stack.0.slot
+ ; CHECK-LABEL: name: test_lifetime_no_dce
+ ; CHECK: LIFETIME_START %stack.0
+ ; CHECK: LIFETIME_END %stack.0
+ ; CHECK: RET_ReallyLR
+ LIFETIME_START %stack.0
+ LIFETIME_END %stack.0
+ RET_ReallyLR
+
+...
Index: llvm/lib/CodeGen/GlobalISel/Utils.cpp
===================================================================
--- llvm/lib/CodeGen/GlobalISel/Utils.cpp
+++ llvm/lib/CodeGen/GlobalISel/Utils.cpp
@@ -200,6 +200,10 @@
// Don't delete frame allocation labels.
if (MI.getOpcode() == TargetOpcode::LOCAL_ESCAPE)
return false;
+ // LIFETIME markers should be preserved even if they seem dead.
+ if (MI.getOpcode() == TargetOpcode::LIFETIME_START ||
+ MI.getOpcode() == TargetOpcode::LIFETIME_END)
+ return false;
// If we can move an instruction, we can remove it. Otherwise, it has
// a side-effect of some sort.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D98730.331398.patch
Type: text/x-patch
Size: 1669 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210317/80b8ada5/attachment.bin>
More information about the llvm-commits
mailing list