5#ifndef V8_TORQUE_CSA_GENERATOR_H_
6#define V8_TORQUE_CSA_GENERATOR_H_
17 std::optional<Builtin::Kind>
linkage = std::nullopt)
30 bool always_emit =
false)
override;
33 std::optional<Block*> catch_block);
35 const std::string& catch_name,
const Type* return_type,
37 const std::optional<DefinitionLocation>& exception_object_definition);
44#define EMIT_INSTRUCTION_DECLARATION(T) \
45 void EmitInstruction(const T& instruction, Stack<std::string>* stack) \
48#undef EMIT_INSTRUCTION_DECLARATION
#define EMIT_INSTRUCTION_DECLARATION(T)
std::optional< Stack< std::string > > EmitGraph(Stack< std::string > parameters)
std::optional< Builtin::Kind > linkage_
std::vector< std::string > ProcessArgumentsCommon(const TypeVector ¶meter_types, std::vector< std::string > constexpr_arguments, Stack< std::string > *stack)
void PostCallableExceptionPreparation(const std::string &catch_name, const Type *return_type, std::optional< Block * > catch_block, Stack< std::string > *stack, const std::optional< DefinitionLocation > &exception_object_definition)
static constexpr const char * ARGUMENTS_VARIABLE_STRING
Stack< std::string > EmitBlock(const Block *block)
CSAGenerator(const ControlFlowGraph &cfg, std::ostream &out, std::optional< Builtin::Kind > linkage=std::nullopt)
static void EmitCSAValue(VisitResult result, const Stack< std::string > &values, std::ostream &out)
std::string PreCallableExceptionPreparation(std::optional< Block * > catch_block)
void EmitSourcePosition(SourcePosition pos, bool always_emit=false) override
#define TORQUE_BACKEND_DEPENDENT_INSTRUCTION_LIST(V)
ZoneVector< RpoNumber > & result
std::vector< const Type * > TypeVector