|
LLVM
8.0.1
|
#include "llvm/Transforms/Scalar/MakeGuardsExplicit.h"#include "llvm/Analysis/GuardUtils.h"#include "llvm/IR/InstIterator.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/Intrinsics.h"#include "llvm/IR/IRBuilder.h"#include "llvm/Pass.h"#include "llvm/Transforms/Scalar.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 80 of file MakeGuardsExplicit.cpp.
References llvm::SmallVectorBase::empty(), llvm::Intrinsic::experimental_deoptimize, llvm::Intrinsic::experimental_guard, F(), llvm::Intrinsic::getDeclaration(), llvm::Module::getFunction(), llvm::Intrinsic::getName(), llvm::GlobalValue::getParent(), llvm::Function::getReturnType(), I, llvm::instructions(), llvm::isGuard(), llvm::SmallVectorTemplateBase< T >::push_back(), runOnFunction(), llvm::Function::setCallingConv(), 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 111 of file MakeGuardsExplicit.cpp.
References llvm::PreservedAnalyses::all(), explicifyGuards(), and llvm::PreservedAnalyses::none().
Definition at line 58 of file MakeGuardsExplicit.cpp.
References assert(), B, llvm::Instruction::eraseFromParent(), llvm::Intrinsic::experimental_widenable_condition, llvm::CallBase::getCallingConv(), llvm::BranchInst::getCondition(), llvm::Instruction::getParent(), llvm::BasicBlock::getTerminator(), llvm::BranchInst::isConditional(), llvm::makeGuardControlFlowExplicit(), and llvm::BranchInst::setCondition().
Referenced by explicifyGuards().
1.8.13