Index: llvm/lib/Target/X86/X86TargetMachine.cpp
--- llvm/lib/Target/X86/X86TargetMachine.cpp.orig
+++ llvm/lib/Target/X86/X86TargetMachine.cpp
@@ -575,6 +575,7 @@ void X86PassConfig::addPreEmitPass() {
   addPass(createX86EvexToVexInsts());
   addPass(createX86DiscriminateMemOpsPass());
   addPass(createX86InsertPrefetchPass());
+  addPass(createX86FixupGadgetsPass());
   addPass(createX86InsertX87waitPass());
 }
 
@@ -594,6 +595,8 @@ void X86PassConfig::addPreEmitPass2() {
   addPass(createX86SpeculativeExecutionSideEffectSuppression());
   addPass(createX86IndirectThunksPass());
   addPass(createX86ReturnThunksPass());
+
+  addPass(createX86RetCleanPass());
 
   // Insert extra int3 instructions after trailing call instructions to avoid
   // issues in the unwinder.
