mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Add a new semantics attribute to disable SIL verification on a function
This provides a way to disable verification per function instead of the entire module.
This commit is contained in:
@@ -11,7 +11,13 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "swift/SILOptimizer/OptimizerBridging.h"
|
||||
#include "../../IRGen/IRGenModule.h"
|
||||
#include "swift/AST/SemanticAttrs.h"
|
||||
#include "swift/SIL/DynamicCasts.h"
|
||||
#include "swift/SIL/OSSALifetimeCompletion.h"
|
||||
#include "swift/SIL/SILCloner.h"
|
||||
#include "swift/SILOptimizer/Analysis/Analysis.h"
|
||||
#include "swift/SILOptimizer/IPO/ClosureSpecializer.h"
|
||||
#include "swift/SILOptimizer/Utils/CFGOptUtils.h"
|
||||
#include "swift/SILOptimizer/Utils/ConstantFolding.h"
|
||||
#include "swift/SILOptimizer/Utils/Devirtualize.h"
|
||||
@@ -21,11 +27,6 @@
|
||||
#include "swift/SILOptimizer/Utils/SILOptFunctionBuilder.h"
|
||||
#include "swift/SILOptimizer/Utils/SpecializationMangler.h"
|
||||
#include "swift/SILOptimizer/Utils/StackNesting.h"
|
||||
#include "swift/SILOptimizer/IPO/ClosureSpecializer.h"
|
||||
#include "swift/SIL/DynamicCasts.h"
|
||||
#include "swift/SIL/OSSALifetimeCompletion.h"
|
||||
#include "swift/SIL/SILCloner.h"
|
||||
#include "../../IRGen/IRGenModule.h"
|
||||
|
||||
using namespace swift;
|
||||
|
||||
@@ -63,6 +64,10 @@ void SILPassManager::runSwiftFunctionVerification(SILFunction *f) {
|
||||
if (DisableSwiftVerification)
|
||||
return;
|
||||
|
||||
if (f->hasSemanticsAttr(semantics::NO_SIL_VERIFICATION)) {
|
||||
return;
|
||||
}
|
||||
|
||||
getSwiftPassInvocation()->beginVerifyFunction(f);
|
||||
verifyFunctionFunction({getSwiftPassInvocation()}, {f});
|
||||
getSwiftPassInvocation()->endVerifyFunction();
|
||||
|
||||
Reference in New Issue
Block a user