#include "src/torque/csa-generator.h"
#include <optional>
#include "src/common/globals.h"
#include "src/torque/global-context.h"
#include "src/torque/type-oracle.h"
#include "src/torque/types.h"
#include "src/torque/utils.h"
namespace v8::internal::torque {
std::optional<Stack<std::string>> CSAGenerator::EmitGraph(
Stack<std::string> parameters) { … }
Stack<std::string> CSAGenerator::EmitBlock(const Block* block) { … }
void CSAGenerator::EmitSourcePosition(SourcePosition pos, bool always_emit) { … }
void CSAGenerator::EmitInstruction(
const PushUninitializedInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(
const PushBuiltinPointerInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(
const NamespaceConstantInstruction& instruction,
Stack<std::string>* stack) { … }
std::vector<std::string> CSAGenerator::ProcessArgumentsCommon(
const TypeVector& parameter_types,
std::vector<std::string> constexpr_arguments, Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const CallIntrinsicInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const CallCsaMacroInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(
const CallCsaMacroAndBranchInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const MakeLazyNodeInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const CallBuiltinInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(
const CallBuiltinPointerInstruction& instruction,
Stack<std::string>* stack) { … }
std::string CSAGenerator::PreCallableExceptionPreparation(
std::optional<Block*> catch_block) { … }
void CSAGenerator::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) { … }
void CSAGenerator::EmitInstruction(const CallRuntimeInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const BranchInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(
const ConstexprBranchInstruction& instruction, Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const GotoInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const GotoExternalInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const ReturnInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const PrintErrorInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const AbortInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const UnsafeCastInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const LoadReferenceInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const StoreReferenceInstruction& instruction,
Stack<std::string>* stack) { … }
namespace {
std::string GetBitFieldSpecialization(const Type* container,
const BitField& field) { … }
}
void CSAGenerator::EmitInstruction(const LoadBitFieldInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitInstruction(const StoreBitFieldInstruction& instruction,
Stack<std::string>* stack) { … }
void CSAGenerator::EmitCSAValue(VisitResult result,
const Stack<std::string>& values,
std::ostream& out) { … }
}