LLVM 17.0.0git
|
#include "llvm/Transforms/Scalar/MakeGuardsExplicit.h"
#include "llvm/Analysis/GuardUtils.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Utils/GuardUtils.h"
Go to the source code of this file.
Functions | |
static void | turnToExplicitForm (CallInst *Guard, Function *DeoptIntrinsic) |
static bool | explicifyGuards (Function &F) |
INITIALIZE_PASS (MakeGuardsExplicitLegacyPass, "make-guards-explicit", "Lower the guard intrinsic to explicit control flow form", false, false) PreservedAnalyses MakeGuardsExplicitPass | |
Definition at line 66 of file MakeGuardsExplicit.cpp.
References llvm::SmallVectorBase< Size_T >::empty(), F, llvm::Intrinsic::getDeclaration(), llvm::Intrinsic::getName(), I, instructions, llvm::isGuard(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and turnToExplicitForm().
Referenced by INITIALIZE_PASS().
INITIALIZE_PASS | ( | MakeGuardsExplicitLegacyPass | , |
"make-guards-explicit" | , | ||
"Lower the guard intrinsic to explicit control flow form" | , | ||
false | , | ||
false | |||
) |
Definition at line 97 of file MakeGuardsExplicit.cpp.
References llvm::PreservedAnalyses::all(), explicifyGuards(), F, and llvm::PreservedAnalyses::none().
Definition at line 56 of file MakeGuardsExplicit.cpp.
References assert(), llvm::Instruction::eraseFromParent(), llvm::Instruction::getParent(), llvm::BasicBlock::getTerminator(), llvm::isWidenableBranch(), and llvm::makeGuardControlFlowExplicit().
Referenced by explicifyGuards().