[PATCH] D92449: [X86] Sink x86_amx load in AMX type lowering.
Pengfei Wang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 2 21:59:52 PST 2020
pengfei added inline comments.
================
Comment at: llvm/lib/Target/X86/X86LowerAMXType.cpp:100
+ make_range(Start->getIterator(), End->getIterator())) {
+ if (Inst.mayThrow())
+ return &Inst;
----------------
LuoYuanke wrote:
> LuoYuanke wrote:
> > craig.topper wrote:
> > > craig.topper wrote:
> > > > Does this prevent sinking across a call that may change the memory being loaded?
> > > Or atomics, or anything with side effects.
> > Thank you for review. Yes. I want to prevent all the scenario that may change the memory being loaded. I'll check how many scenario we need to prevent from sinking.
> @craig.topper , I do some study, but I still don't understand why load can't sink across atomic instruction or side effect instruction. I notice in MergedLoadStoreMotion::isStoreSinkBarrierInRange(), it only check myThrow() and alias.
I only noticed we chain the memory operations during building the DAG and these side effect instructions. Do we have such rules for middle end passes?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D92449/new/
https://reviews.llvm.org/D92449
More information about the llvm-commits
mailing list