LLVM
8.0.1
|
#include "llvm/CodeGen/GCMetadata.h"
#include "llvm/CodeGen/GCStrategy.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Functions | |
INITIALIZE_PASS_BEGIN (LowerIntrinsics, "gc-lowering", "GC Lowering", false, false) FunctionPass *llvm | |
static bool | CouldBecomeSafePoint (Instruction *I) |
CouldBecomeSafePoint - Predicate to conservatively determine whether the instruction could introduce a safe point. More... | |
static bool | InsertRootInitializers (Function &F, ArrayRef< AllocaInst *> Roots) |
INITIALIZE_PASS (GCMachineCodeAnalysis, "gc-analysis", "Analyze Machine Code For Garbage Collection", false, false) GCMachineCodeAnalysis | |
|
static |
CouldBecomeSafePoint - Predicate to conservatively determine whether the instruction could introduce a safe point.
Definition at line 118 of file GCRootLowering.cpp.
References F(), and llvm::Intrinsic::gcroot.
Referenced by InsertRootInitializers().
INITIALIZE_PASS | ( | GCMachineCodeAnalysis | , |
"gc-analysis" | , | ||
"Analyze Machine Code For Garbage Collection" | , | ||
false | , | ||
false | |||
) |
Definition at line 245 of file GCRootLowering.cpp.
References llvm::AnalysisUsage::addRequired(), assert(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::MCContext::createTempSymbol(), llvm::MachineBasicBlock::end(), llvm::MachineFunctionPass::getAnalysisUsage(), llvm::MachineFunction::getContext(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::MachineFunction::getFrameInfo(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineFunction::getFunction(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasGC(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::MachineFrameInfo::isDeadObjectIndex(), MI, llvm::TargetRegisterInfo::needsStackRealignment(), llvm::AnalysisUsage::setPreservesAll(), TII, and UINT64_MAX.
Definition at line 82 of file GCRootLowering.cpp.
References llvm::AnalysisUsage::addPreserved(), llvm::AnalysisUsage::addRequired(), assert(), llvm::Module::begin(), E, llvm::Module::end(), llvm::Pass::getAnalysisUsage(), llvm::GCModuleInfo::getFunctionInfo(), llvm::PassRegistry::getPassRegistry(), I, llvm::initializeLowerIntrinsicsPass(), and MI.
|
static |
Definition at line 144 of file GCRootLowering.cpp.
References llvm::BasicBlock::begin(), CouldBecomeSafePoint(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::dyn_cast(), E, llvm::Instruction::eraseFromParent(), F(), llvm::Intrinsic::gcread, llvm::Intrinsic::gcroot, llvm::Intrinsic::gcwrite, llvm::ConstantPointerNull::get(), llvm::CallBase::getArgOperand(), llvm::CallBase::getCalledFunction(), llvm::Function::getEntryBlock(), llvm::Function::getIntrinsicID(), llvm::GCFunctionInfo::getStrategy(), llvm::Function::hasGC(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::Instruction::insertAfter(), llvm::SmallVectorTemplateBase< T >::push_back(), llvm::Value::replaceAllUsesWith(), runOnFunction(), SI, llvm::SmallVectorBase::size(), llvm::Value::stripPointerCasts(), and llvm::Value::takeName().