MFFS: Move From FPSCR.
MTFSF: Move To FPSCR Fields under control masks.
LLVM currently doesn't model these bits well. Setting hasSideEffects prevents may-raise-exception FP instructions scheduled across MFFS/MTFSF.
Paths
| Differential D84729
[PowerPC] Set hasSideEffects for MFFS and MTFSF AbandonedPublic Authored by qiucf on Jul 27 2020, 11:36 PM.
Details
Summary MFFS: Move From FPSCR. MTFSF: Move To FPSCR Fields under control masks. LLVM currently doesn't model these bits well. Setting hasSideEffects prevents may-raise-exception FP instructions scheduled across MFFS/MTFSF.
Diff Detail Event TimelineHarbormaster returned this revision to the author for changes because remote builds failed.Jul 28 2020, 12:46 AM Comment Actions Please adding a scheduling test(i.e. checking the dependency between MFFS and floating operations) to show your change fixing what you want.
Comment Actions Ah, setting them as scheduling boundary seems a better approach. I'll abandon this patch to create new one.
Revision Contents
Diff 281457 llvm/lib/Target/PowerPC/PPCInstrInfo.tdllvm/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll
llvm/test/CodeGen/PowerPC/fpscr-barrier.ll
|
Please add necessary comments here to indicate why we want to set this flag for the read instr.