Code cleanup. (#1596)
This commit is contained in:
Родитель
c9a4a44714
Коммит
362defac90
|
@ -359,6 +359,10 @@ bool VerifyRootSignatureWithShaderPSV(_In_ const DxilVersionedRootSignatureDesc
|
|||
_In_ uint32_t PSVSize,
|
||||
_In_ llvm::raw_ostream &DiagStream);
|
||||
|
||||
// standalone verification
|
||||
bool VerifyRootSignature(_In_ const DxilVersionedRootSignatureDesc *pDesc,
|
||||
_In_ llvm::raw_ostream &DiagStream);
|
||||
|
||||
} // namespace hlsl
|
||||
|
||||
#endif // __DXC_ROOTSIGNATURE__
|
||||
|
|
|
@ -1679,4 +1679,17 @@ bool VerifyRootSignatureWithShaderPSV(const DxilVersionedRootSignatureDesc *pDes
|
|||
return true;
|
||||
}
|
||||
|
||||
bool VerifyRootSignature(_In_ const DxilVersionedRootSignatureDesc *pDesc,
|
||||
_In_ llvm::raw_ostream &DiagStream) {
|
||||
try {
|
||||
RootSignatureVerifier RSV;
|
||||
DiagnosticPrinterRawOStream DiagPrinter(DiagStream);
|
||||
RSV.VerifyRootSignature(pDesc, DiagPrinter);
|
||||
} catch (...) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace hlsl
|
||||
|
|
|
@ -191,14 +191,9 @@ void PrintUnescapedString(StringRef Name, raw_ostream &Out) {
|
|||
std::unique_ptr<llvm::Module> LoadModuleFromBitcode(llvm::MemoryBuffer *MB,
|
||||
llvm::LLVMContext &Ctx,
|
||||
std::string &DiagStr) {
|
||||
raw_string_ostream DiagStream(DiagStr);
|
||||
llvm::DiagnosticPrinterRawOStream DiagPrinter(DiagStream);
|
||||
LLVMContext::DiagnosticHandlerTy OrigHandler = Ctx.getDiagnosticHandler();
|
||||
void *OrigContext = Ctx.getDiagnosticContext();
|
||||
Ctx.setDiagnosticHandler(PrintDiagnosticHandler, &DiagPrinter, true);
|
||||
// Note: the DiagStr is not used.
|
||||
ErrorOr<std::unique_ptr<llvm::Module>> pModule(
|
||||
llvm::parseBitcodeFile(MB->getMemBufferRef(), Ctx));
|
||||
Ctx.setDiagnosticHandler(OrigHandler, OrigContext);
|
||||
if (std::error_code ec = pModule.getError()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -351,23 +346,23 @@ llvm::Instruction *SkipAllocas(llvm::Instruction *I) {
|
|||
llvm::Instruction *FindAllocaInsertionPt(llvm::Instruction* I) {
|
||||
Function *F = I->getParent()->getParent();
|
||||
if (F)
|
||||
return F->getEntryBlock().getFirstInsertionPt();
|
||||
return &*F->getEntryBlock().getFirstInsertionPt();
|
||||
else // BB with no parent function
|
||||
return I->getParent()->getFirstInsertionPt();
|
||||
return &*I->getParent()->getFirstInsertionPt();
|
||||
}
|
||||
llvm::Instruction *FindAllocaInsertionPt(llvm::Function* F) {
|
||||
return F->getEntryBlock().getFirstInsertionPt();
|
||||
return &*F->getEntryBlock().getFirstInsertionPt();
|
||||
}
|
||||
llvm::Instruction *FirstNonAllocaInsertionPt(llvm::Instruction* I) {
|
||||
return SkipAllocas(FindAllocaInsertionPt(I));
|
||||
}
|
||||
llvm::Instruction *FirstNonAllocaInsertionPt(llvm::BasicBlock* BB) {
|
||||
return SkipAllocas(
|
||||
BB->getFirstInsertionPt());
|
||||
&*BB->getFirstInsertionPt());
|
||||
}
|
||||
llvm::Instruction *FirstNonAllocaInsertionPt(llvm::Function* F) {
|
||||
return SkipAllocas(
|
||||
F->getEntryBlock().getFirstInsertionPt());
|
||||
&*F->getEntryBlock().getFirstInsertionPt());
|
||||
}
|
||||
|
||||
bool IsHLSLObjectType(llvm::Type *Ty) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче