https://github.com/shader-slang/slang
Raw File
Tip revision: 768e62f6c7541439e2edc18dad5fb3846d2e05f9 authored by Yong He on 10 October 2022, 22:59:45 UTC
Support multi-level break + single-return conversion + general inline. (#2436)
Tip revision: 768e62f
slang-ir-lower-error-handling.h
// slang-ir-lower-error-handling.h
#pragma once

namespace Slang
{

struct IRModule;
class DiagnosticSink;

/// Lower error handling related opcodes and function calls to use standard control flow.
/// A function with an error code type will be translated into a function that returns `Result<T,E>`, which can be
/// further lowered to standard return values and `out` parameters in a separate pass.
/// Call sites (`IRTryCall`) to error-throwing function will be rewritten to conform to the new function signature.
/// `IRThrow` will be replaced with `IRReturn(IRMakeErrorResult(e))`.
/// 
void lowerErrorHandling(IRModule* module, DiagnosticSink* sink);

}
back to top