Index: lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp =================================================================== --- lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp +++ lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp @@ -266,7 +266,7 @@ } bool NVPTXFavorNonGenericAddrSpaces::runOnFunction(Function &F) { - if (DisableFavorNonGeneric) + if (DisableFavorNonGeneric || skipFunction(F)) return false; bool Changed = false; Index: lib/Target/NVPTX/NVPTXImageOptimizer.cpp =================================================================== --- lib/Target/NVPTX/NVPTXImageOptimizer.cpp +++ lib/Target/NVPTX/NVPTXImageOptimizer.cpp @@ -50,6 +50,9 @@ : FunctionPass(ID) {} bool NVPTXImageOptimizer::runOnFunction(Function &F) { + if (skipFunction(F)) + return false; + bool Changed = false; InstrToDelete.clear(); Index: lib/Target/NVPTX/NVPTXInferAddressSpaces.cpp =================================================================== --- lib/Target/NVPTX/NVPTXInferAddressSpaces.cpp +++ lib/Target/NVPTX/NVPTXInferAddressSpaces.cpp @@ -419,6 +419,9 @@ } bool NVPTXInferAddressSpaces::runOnFunction(Function &F) { + if (skipFunction(F)) + return false; + // Collects all generic address expressions in postorder. std::vector Postorder = collectGenericAddressExpressions(F); Index: lib/Target/NVPTX/NVPTXLowerAlloca.cpp =================================================================== --- lib/Target/NVPTX/NVPTXLowerAlloca.cpp +++ lib/Target/NVPTX/NVPTXLowerAlloca.cpp @@ -62,6 +62,9 @@ // Main function for this pass. // ============================================================================= bool NVPTXLowerAlloca::runOnBasicBlock(BasicBlock &BB) { + if (skipBasicBlock(BB)) + return false; + bool Changed = false; for (auto &I : BB) { if (auto allocaInst = dyn_cast(&I)) {