reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
399 LLVM_DEBUG(dbgs() << "********** " << getPassName() << " : " << MF.getName() 405 !MF.getFunction().hasFnAttribute(Attribute::SpeculativeLoadHardening)) 408 Subtarget = &MF.getSubtarget<X86Subtarget>(); 409 MRI = &MF.getRegInfo(); 414 PS.emplace(MF, &X86::GR64_NOSPRegClass); 416 if (MF.begin() == MF.end()) 416 if (MF.begin() == MF.end()) 422 hardenEdgesWithLFENCE(MF); 429 MachineBasicBlock &Entry = *MF.begin(); 433 bool HasVulnerableLoad = hasVulnerableLoad(MF); 437 SmallVector<BlockCondInfo, 16> Infos = collectBlockCondInfo(MF); 499 canonicalizePHIOperands(MF); 507 auto CMovs = tracePredStateThroughCFG(MF, Infos); 517 for (MachineBasicBlock &MBB : MF) { 532 unfoldCallAndJumpLoads(MF); 535 auto IndirectBrCMovs = tracePredStateThroughIndirectBranches(MF); 542 tracePredStateThroughBlocksAndHarden(MF); 554 LLVM_DEBUG(dbgs() << "Final speculative load hardened function:\n"; MF.dump(); 555 dbgs() << "\n"; MF.verify(this));