[PATCH] D69232: [PowerPC] Clear the sideeffect bit for those instructions that didn't have the match pattern
Qing Shan Zhang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Oct 20 20:02:53 PDT 2019
steven.zhang created this revision.
steven.zhang added reviewers: jsji, nemanjai, hfinkel, PowerPC.
Herald added subscribers: shchenz, wuzish, MaskRay, kbarton, hiraditya.
Herald added a project: LLVM.
If the instruction have match pattern, llvm-tblgen will infer the sideeffect bit from the match pattern and it works well. If not, the tblgen will set it as true that hurt the scheduling.
// The mayLoad and mayStore flags default to false.
// Conservatively assume hasSideEffects if it wasn't explicit.
if (InstInfo->hasSideEffects_Unset)
InstInfo->hasSideEffects = true;
PowerPC has some instructions that didn't specify the match pattern(i.e. LXSD etc), which is manually selected post-ra according to the register pressure. We need to clear the sideeffect flag for these instructions.
https://reviews.llvm.org/D69232
Files:
llvm/lib/Target/PowerPC/PPCInstr64Bit.td
llvm/lib/Target/PowerPC/PPCInstrInfo.td
llvm/lib/Target/PowerPC/PPCInstrVSX.td
llvm/test/CodeGen/PowerPC/extract-and-store.ll
llvm/test/CodeGen/PowerPC/mi-scheduling.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D69232.225814.patch
Type: text/x-patch
Size: 7712 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191021/a3110169/attachment.bin>
More information about the llvm-commits
mailing list