UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IRGeneratorPass.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2// uLang IR Analysis Public API
3
4#pragma once
5
8
9namespace uLang
10{
11
14{
15public:
16
18 {
19 ULANG_ASSERTF(!_Program, "Destructor called without clean up.");
20 }
21
23 {
24 ULANG_ASSERTF(!_Program, "Initialize called without a paired clean up.");
25 _Program = ProgramContext._Program;
26 _Diagnostics = BuildContext._Diagnostics;
27 _TargetVM = BuildContext._Params._TargetVM;
28 }
29
30 virtual void CleanUp(void) override
31 {
32 _Program.Reset();
33 _Diagnostics.Reset();
34 }
35
36 //~ Begin IIrGeneratorPass interface
37 virtual void ProcessAst() const override
38 {
39 ULANG_ASSERTF(_Program, "ProcesAst called without initializing.");
40
41 GenerateIr(_Program.AsRef(), _Diagnostics.AsRef(), _TargetVM);
42 }
43 //~ End IIrGeneratorPass interface
44private:
46 TSPtr<CDiagnostics> _Diagnostics;
47 SBuildParams::EWhichVM _TargetVM;
48}; // CIrGeneratorPass
49
50} // namespace uLang
#define ULANG_ASSERTF(expr, format,...)
Definition Common.h:290
Generates an IR from the Ast in the CSemanticProgram. The CSemanticProgram is updated with the genera...
Definition IRGeneratorPass.h:14
~CIrGeneratorPass()
Definition IRGeneratorPass.h:17
virtual void CleanUp(void) override
Definition IRGeneratorPass.h:30
virtual void Initialize(const SBuildContext &BuildContext, const SProgramContext &ProgramContext) override
Definition IRGeneratorPass.h:22
virtual void ProcessAst() const override
Definition IRGeneratorPass.h:37
Definition IIRGeneratorPass.h:11
Definition SharedPointer.h:77
Definition VVMEngineEnvironment.h:23
bool GenerateIr(const TSRef< CSemanticProgram > &Program, const TSRef< CDiagnostics > &Diagnostics, SBuildParams::EWhichVM TargetVM)
Stand-alone IR generator, use _AstProject to fill in _IrProject in CSemanticProgram.
Definition IRGenerator.cpp:2758
Definition DetourTileCache.cpp:72
Definition CompilerTypes.h:170
EWhichVM
Definition CompilerTypes.h:142
Definition CompilerTypes.h:194