[PATCH] D88808: [X86] Defer the creation of LCMPXCHG16B_SAVE_RBX until finalize-isel

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 5 14:10:11 PDT 2020


craig.topper added a comment.

In D88808#2312741 <https://reviews.llvm.org/D88808#2312741>, @rnk wrote:

> Can we go even later? See https://reviews.llvm.org/rGcda6b0924257f162cc9299dae2d4bb134fac5d38, which goes all the way to X86ExpandPseudo.

The mwaitx patch is making the decision about frame pointer being used in the custom inserter same as this patch.



================
Comment at: llvm/test/CodeGen/X86/pr42064.ll:46
+  %14 = bitcast %struct.SomeArrays* %3 to i8*
+  call void @llvm.memset.p0i8.i64(i8* nonnull align 8 dereferenceable(48) %14, i8 0, i64 48, i1 false)
+  %15 = invoke nonnull align 8 dereferenceable(48) %struct.SomeArrays* @"??4SomeArrays@@QEAAAEAU0@$$QEAU0@@Z"(%struct.SomeArrays* nonnull %2, %struct.SomeArrays* nonnull align 8 dereferenceable(48) %3)
----------------
rnk wrote:
> Can this be reduced a little? I'm guessing something here, maybe these stack memsets, are increasing the alignment of a stack object during ISel, which causes us to use a base pointer. You probably only need one funclet and one of whatever increases the alignment to trigger the bug.
Probably I didn't look very closely.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D88808/new/

https://reviews.llvm.org/D88808



More information about the llvm-commits mailing list