Add lfence after ret in retpoline thunk. Index: lib/Target/X86/X86IndirectThunks.cpp --- lib/Target/X86/X86IndirectThunks.cpp.orig +++ lib/Target/X86/X86IndirectThunks.cpp @@ -249,6 +249,7 @@ void RetpolineThunkInserter::populateThunk(MachineFunc CallTarget->back().setPreInstrSymbol(MF, TargetSym); BuildMI(CallTarget, DebugLoc(), TII->get(RetOpc)); + BuildMI(CallTarget, DebugLoc(), TII->get(X86::LFENCE)); } FunctionPass *llvm::createX86IndirectThunksPass() {