From f774e6446f7b8b293ad82543e1470089d3bcab58 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sat, 5 Jul 2025 13:53:26 -0500 Subject: [PATCH] xo-jit: prefer xo::bp spelling to xo::ref::brw --- xo-jit/include/xo/jit/MachPipeline.hpp | 28 +++++++++--------- xo-jit/include/xo/jit/activation_record.hpp | 8 +++--- xo-jit/include/xo/jit/type2llvm.hpp | 26 ++++++++--------- xo-jit/src/jit/MachPipeline.cpp | 32 ++++++++++----------- xo-jit/src/jit/activation_record.cpp | 8 +++--- xo-jit/src/jit/type2llvm.cpp | 26 ++++++++--------- 6 files changed, 64 insertions(+), 64 deletions(-) diff --git a/xo-jit/include/xo/jit/MachPipeline.hpp b/xo-jit/include/xo/jit/MachPipeline.hpp index 74748581..9839ebe3 100644 --- a/xo-jit/include/xo/jit/MachPipeline.hpp +++ b/xo-jit/include/xo/jit/MachPipeline.hpp @@ -72,7 +72,7 @@ namespace xo { // ----- access ----- llvm::Module * current_module() { return llvm_module_.get(); } - ref::brw llvm_cx() { return llvm_cx_; } + bp llvm_cx() { return llvm_cx_; } llvm::IRBuilder<> * llvm_current_ir_builder() { return llvm_toplevel_ir_builder_.get(); } /** target triple = string describing target host for codegen **/ @@ -109,8 +109,8 @@ namespace xo { * @c llvm::Type instances are *immortal* (llvm interns them into opaque global lookup tables) **/ llvm::Type * codegen_type(TypeDescr td); - llvm::Value * codegen_constant(ref::brw expr); - llvm::Function * codegen_primitive(ref::brw expr); + llvm::Value * codegen_constant(bp expr); + llvm::Function * codegen_primitive(bp expr); /** like @ref codegen_primitive , but create wrapper function that accepts (and discards) * environment pointer as first argument. @@ -118,7 +118,7 @@ namespace xo { * Implementation consists of tail call to natural primitive, that skips the unused * environment pointer **/ - llvm::Function * codegen_primitive_wrapper(ref::brw expr, + llvm::Function * codegen_primitive_wrapper(bp expr, llvm::IRBuilder<> & ir_builder); /** Generate closure for invoking a primitive function. @@ -126,17 +126,17 @@ namespace xo { * to support function-pointer-like behavior for a target function * that may resolve to primitive-or-lambda at runtime **/ - llvm::Value * codegen_primitive_closure(ref::brw expr, + llvm::Value * codegen_primitive_closure(bp expr, llvm::IRBuilder<> & ir_builder); - llvm::Value * codegen_apply(ref::brw expr, + llvm::Value * codegen_apply(bp expr, llvm::Value * envptr, llvm::IRBuilder<> & ir_builder); /* NOTE: codegen_lambda() needs to be reentrant too. * for example can have a lambda in apply position. */ - llvm::Function * codegen_lambda_decl(ref::brw expr); - llvm::Function * codegen_lambda_defn(ref::brw expr, llvm::IRBuilder<> & ir_builder); + llvm::Function * codegen_lambda_decl(bp expr); + llvm::Function * codegen_lambda_defn(bp expr, llvm::IRBuilder<> & ir_builder); /** Generate closure for invoking a lambda (user-defined function). * See @ref MachPipeline::codegen_apply for invocation * Same ABI as @ref MachPipeline::codegen_primitive_closure @@ -147,21 +147,21 @@ namespace xo { * @ref MachPipeline::codegen_toplevel and friends are responsible for * assembling and propagating this. **/ - llvm::Value * codegen_lambda_closure(ref::brw lambda, + llvm::Value * codegen_lambda_closure(bp lambda, llvm::Value * envptr, llvm::IRBuilder<> & ir_builder); - llvm::Value * codegen_variable(ref::brw var, + llvm::Value * codegen_variable(bp var, llvm::Value * envptr, llvm::IRBuilder<> & ir_builder); - llvm::Value * codegen_ifexpr(ref::brw ifexpr, + llvm::Value * codegen_ifexpr(bp ifexpr, llvm::Value * envptr, llvm::IRBuilder<> & ir_builder); - llvm::Value * codegen(ref::brw expr, + llvm::Value * codegen(bp expr, llvm::Value * envptr, llvm::IRBuilder<> & ir_builder); - llvm::Value * codegen_toplevel(ref::brw expr); + llvm::Value * codegen_toplevel(bp expr); // ----- jit online execution ----- @@ -190,7 +190,7 @@ namespace xo { static void init_once(); /** helper function. find all lambda expressions in AST @p expr **/ - std::vector> find_lambdas(ref::brw expr) const; + std::vector> find_lambdas(bp expr) const; public: /** codegen helper for a user-defined function. diff --git a/xo-jit/include/xo/jit/activation_record.hpp b/xo-jit/include/xo/jit/activation_record.hpp index 73c9e52e..4b39eed3 100644 --- a/xo-jit/include/xo/jit/activation_record.hpp +++ b/xo-jit/include/xo/jit/activation_record.hpp @@ -133,13 +133,13 @@ namespace xo { const runtime_binding_detail & binding); #ifdef NOT_USING - llvm::AllocaInst * create_runtime_localenv_alloca(ref::brw llvm_cx, + llvm::AllocaInst * create_runtime_localenv_alloca(bp llvm_cx, //const llvm::DataLayout & data_layout, llvm::Function * llvm_fn, llvm::IRBuilder<> & fn_ir_builder); #endif - runtime_binding_detail create_entry_block_alloca(ref::brw llvm_cx, + runtime_binding_detail create_entry_block_alloca(bp llvm_cx, //const llvm::DataLayout & data_layout, llvm::Function * llvm_fn, llvm::IRBuilder<> & fn_ir_builder, @@ -161,7 +161,7 @@ namespace xo { * then use the localenv copy exclusively. * @return value representing localenv slot address **/ - llvm::Value * runtime_localenv_slot_addr(ref::brw llvm_cx, + llvm::Value * runtime_localenv_slot_addr(bp llvm_cx, llvm::StructType * localenv_llvm_type, llvm::AllocaInst * localenv_alloca, int i_slot, @@ -177,7 +177,7 @@ namespace xo { * - for stackonly parameters, use individual @c llvm::AllocaInst instances * - create custom @c llvm::StructType for captured parameters, also initially stack-allocated **/ - bool bind_locals(ref::brw llvm_cx, + bool bind_locals(bp llvm_cx, //const llvm::DataLayout & data_layout, llvm::Function * llvm_fn, llvm::IRBuilder<> & ir_builder); diff --git a/xo-jit/include/xo/jit/type2llvm.hpp b/xo-jit/include/xo/jit/type2llvm.hpp index fb108a3e..f0efc87f 100644 --- a/xo-jit/include/xo/jit/type2llvm.hpp +++ b/xo-jit/include/xo/jit/type2llvm.hpp @@ -28,7 +28,7 @@ namespace xo { /** establish suitable llvm representation for a c++ type (described by @p td) * llvm types are unique'd, at least within @p llvm_cx **/ - static llvm::Type * td_to_llvm_type(xo::ref::brw llvm_cx, + static llvm::Type * td_to_llvm_type(xo::bp llvm_cx, TypeDescr td); /** establish llvm representation for a function type @@ -41,7 +41,7 @@ namespace xo { * to either {primitive functions, functions-requiring-closures}, * with choice deferred until runtime **/ - static llvm::FunctionType * function_td_to_lvtype(xo::ref::brw llvm_cx, + static llvm::FunctionType * function_td_to_lvtype(xo::bp llvm_cx, TypeDescr fn_td, bool wrapper_flag = false); @@ -55,7 +55,7 @@ namespace xo { * to either {primitive functions, functions-requiring-closures}, * with choice deferred until runtime **/ - static llvm::PointerType * function_td_to_llvm_fnptr_type(xo::ref::brw llvm_cx, + static llvm::PointerType * function_td_to_llvm_fnptr_type(xo::bp llvm_cx, TypeDescr fn_td, bool wrapper_flag); @@ -79,8 +79,8 @@ namespace xo { * (primitive or lambda) with name @c foo **/ static llvm::StructType * - create_closureapi_lvtype(xo::ref::brw llvm_cx, - xo::ref::brw fn); + create_closureapi_lvtype(xo::bp llvm_cx, + xo::bp fn); /** establish llvm abstract representation for a closure: * struct with @@ -121,7 +121,7 @@ namespace xo { * localenv. **/ static llvm::StructType * - function_td_to_closureapi_lvtype(xo::ref::brw llvm_cx, + function_td_to_closureapi_lvtype(xo::bp llvm_cx, TypeDescr fn_td, const std::string & hint_name); @@ -150,8 +150,8 @@ namespace xo { * @return struct type. typename will be @c e.foo for lambda with name @c foo **/ static llvm::StructType * - create_localenv_llvm_type(xo::ref::brw llvm_cx, - xo::ref::brw lambda); + create_localenv_llvm_type(xo::bp llvm_cx, + xo::bp lambda); /** establish llvm rep'n for a pointer to an abstract local environment: * @@ -169,7 +169,7 @@ namespace xo { * +-------+ **/ static llvm::PointerType * - env_api_llvm_ptr_type(xo::ref::brw llvm_cx); + env_api_llvm_ptr_type(xo::bp llvm_cx); /** function type: * @code @@ -184,18 +184,18 @@ namespace xo { * returns function-pointer type **/ static llvm::PointerType * - require_localenv_unwind_llvm_fnptr_type(xo::ref::brw llvm_cx, + require_localenv_unwind_llvm_fnptr_type(xo::bp llvm_cx, llvm::PointerType * hint_envptr_llvm_type = nullptr); private: /** establish llvm representation for a struct type described by @p struct_td **/ - static llvm::StructType * struct_td_to_llvm_type(xo::ref::brw llvm_cx, + static llvm::StructType * struct_td_to_llvm_type(xo::bp llvm_cx, TypeDescr struct_td); /** establish llvm representation for a pointer type described by @p pointer_td **/ - static llvm::PointerType * pointer_td_to_llvm_type(xo::ref::brw llvm_cx, + static llvm::PointerType * pointer_td_to_llvm_type(xo::bp llvm_cx, TypeDescr pointer_td); /** establish llvm abstract representation for a local environment: @@ -219,7 +219,7 @@ namespace xo { * @see type2llvm::function_td_to_llvm_closure_type **/ static llvm::StructType * - env_api_llvm_type(xo::ref::brw llvm_cx); + env_api_llvm_type(xo::bp llvm_cx); }; /*type2llvm*/ } /*namespace jit*/ diff --git a/xo-jit/src/jit/MachPipeline.cpp b/xo-jit/src/jit/MachPipeline.cpp index d45f03db..5c48c655 100644 --- a/xo-jit/src/jit/MachPipeline.cpp +++ b/xo-jit/src/jit/MachPipeline.cpp @@ -138,7 +138,7 @@ namespace xo { } llvm::Value * - MachPipeline::codegen_constant(ref::brw expr) + MachPipeline::codegen_constant(bp expr) { TypeDescr td = expr->value_td(); @@ -165,7 +165,7 @@ namespace xo { } llvm::Function * - MachPipeline::codegen_primitive(ref::brw expr) + MachPipeline::codegen_primitive(bp expr) { constexpr bool c_debug_flag = true; @@ -250,7 +250,7 @@ namespace xo { } /*codegen_primitive*/ llvm::Function * - MachPipeline::codegen_primitive_wrapper(ref::brw expr, + MachPipeline::codegen_primitive_wrapper(bp expr, llvm::IRBuilder<> & /*ir_builder*/) { constexpr bool c_debug_flag = true; @@ -368,7 +368,7 @@ namespace xo { } /*codegen_primitive_wrapper*/ llvm::Value * - MachPipeline::codegen_primitive_closure(ref::brw expr, + MachPipeline::codegen_primitive_closure(bp expr, llvm::IRBuilder<> & ir_builder) { constexpr bool c_debug_flag = true; @@ -391,7 +391,7 @@ namespace xo { } /*codegen_primitive_closure*/ llvm::Value * - MachPipeline::codegen_apply(ref::brw apply, + MachPipeline::codegen_apply(bp apply, llvm::Value * envptr, llvm::IRBuilder<> & ir_builder) { @@ -632,13 +632,13 @@ namespace xo { } /*codegen_apply*/ - std::vector> - MachPipeline::find_lambdas(ref::brw expr) const + std::vector> + MachPipeline::find_lambdas(bp expr) const { - std::vector> retval_v; + std::vector> retval_v; expr->visit_preorder( - [&retval_v](ref::brw x) + [&retval_v](bp x) { if (x->extype() == exprtype::lambda) { retval_v.push_back(Lambda::from(x)); @@ -649,7 +649,7 @@ namespace xo { } /*find_lambdas*/ llvm::Function * - MachPipeline::codegen_lambda_decl(ref::brw lambda) + MachPipeline::codegen_lambda_decl(bp lambda) { constexpr bool c_debug_flag = true; @@ -709,7 +709,7 @@ namespace xo { } /*codegen_lambda_decl*/ llvm::Function * - MachPipeline::codegen_lambda_defn(ref::brw lambda, + MachPipeline::codegen_lambda_defn(bp lambda, llvm::IRBuilder<> & /*ir_builder*/) { constexpr bool c_debug_flag = true; @@ -810,7 +810,7 @@ namespace xo { } /*codegen_lambda_defn*/ llvm::Value * - MachPipeline::codegen_lambda_closure(ref::brw lambda, + MachPipeline::codegen_lambda_closure(bp lambda, llvm::Value * envptr, llvm::IRBuilder<> & ir_builder) { @@ -837,7 +837,7 @@ namespace xo { } /*codegen_lambda_closure*/ llvm::Value * - MachPipeline::codegen_variable(ref::brw var, + MachPipeline::codegen_variable(bp var, llvm::Value * /*envptr*/, llvm::IRBuilder<> & ir_builder) { @@ -865,7 +865,7 @@ namespace xo { } /*codegen_variable*/ llvm::Value * - MachPipeline::codegen_ifexpr(ref::brw expr, + MachPipeline::codegen_ifexpr(bp expr, llvm::Value * envptr, llvm::IRBuilder<> & ir_builder) { @@ -951,7 +951,7 @@ namespace xo { } /*codegen_ifexpr*/ llvm::Value * - MachPipeline::codegen(ref::brw expr, + MachPipeline::codegen(bp expr, llvm::Value * envptr, llvm::IRBuilder<> & ir_builder) { @@ -988,7 +988,7 @@ namespace xo { } /*codegen*/ llvm::Value * - MachPipeline::codegen_toplevel(ref::brw expr) + MachPipeline::codegen_toplevel(bp expr) { /* - Pass 1. * get set of lambdas. diff --git a/xo-jit/src/jit/activation_record.cpp b/xo-jit/src/jit/activation_record.cpp index 5d0fd3ad..32b711bc 100644 --- a/xo-jit/src/jit/activation_record.cpp +++ b/xo-jit/src/jit/activation_record.cpp @@ -82,7 +82,7 @@ namespace xo { /* in kaleidoscope7.cpp: CreateEntryBlockAlloca */ runtime_binding_detail - activation_record::create_entry_block_alloca(ref::brw llvm_cx, + activation_record::create_entry_block_alloca(bp llvm_cx, //const llvm::DataLayout & data_layout, llvm::Function * llvm_fn, llvm::IRBuilder<> & fn_ir_builder, @@ -129,7 +129,7 @@ namespace xo { #ifdef NOT_USING llvm::AllocaInst * - activation_record::create_runtime_localenv_alloca(ref::brw llvm_cx, + activation_record::create_runtime_localenv_alloca(bp llvm_cx, //const llvm::DataLayout & data_layout, llvm::Function * llvm_fn, llvm::IRBuilder<> & ir_builder) @@ -161,7 +161,7 @@ namespace xo { #endif llvm::Value * - activation_record::runtime_localenv_slot_addr(ref::brw llvm_cx, + activation_record::runtime_localenv_slot_addr(bp llvm_cx, llvm::StructType * localenv_llvm_type, llvm::AllocaInst * localenv_alloca, int i_slot, @@ -195,7 +195,7 @@ namespace xo { } /*runtime_localenv_slot_addr*/ bool - activation_record::bind_locals(ref::brw llvm_cx, + activation_record::bind_locals(bp llvm_cx, //const llvm::DataLayout & data_layout, llvm::Function * llvm_fn, llvm::IRBuilder<> & ir_builder) diff --git a/xo-jit/src/jit/type2llvm.cpp b/xo-jit/src/jit/type2llvm.cpp index 8bfb2a3b..6b2a9161 100644 --- a/xo-jit/src/jit/type2llvm.cpp +++ b/xo-jit/src/jit/type2llvm.cpp @@ -19,7 +19,7 @@ namespace xo { **/ llvm::Type * - type2llvm::td_to_llvm_type(xo::ref::brw llvm_cx, TypeDescr td) { + type2llvm::td_to_llvm_type(xo::bp llvm_cx, TypeDescr td) { auto & llvm_cx_ref = llvm_cx->llvm_cx_ref(); if (td->is_function()) { @@ -58,7 +58,7 @@ namespace xo { * that represented by @p fn_td **/ llvm::FunctionType * - type2llvm::function_td_to_lvtype(xo::ref::brw llvm_cx, + type2llvm::function_td_to_lvtype(xo::bp llvm_cx, TypeDescr fn_td, bool wrapper_flag) { @@ -118,7 +118,7 @@ namespace xo { } /*function_td_to_llvm_type*/ llvm::PointerType * - type2llvm::function_td_to_llvm_fnptr_type(xo::ref::brw llvm_cx, + type2llvm::function_td_to_llvm_fnptr_type(xo::bp llvm_cx, TypeDescr /*fn_td*/, bool /*wrapper_flag*/) { @@ -144,7 +144,7 @@ namespace xo { * Generate llvm::Type correspoinding to a TypeDescr for a struct. **/ llvm::StructType * - type2llvm::struct_td_to_llvm_type(xo::ref::brw llvm_cx, + type2llvm::struct_td_to_llvm_type(xo::bp llvm_cx, TypeDescr struct_td) { // see @@ -205,7 +205,7 @@ namespace xo { } /*struct_td_to_llvm_type*/ llvm::PointerType * - type2llvm::pointer_td_to_llvm_type(xo::ref::brw llvm_cx + type2llvm::pointer_td_to_llvm_type(xo::bp llvm_cx , TypeDescr pointer_td ) { @@ -229,7 +229,7 @@ namespace xo { } /*pointer_td_llvm_type*/ llvm::PointerType * - type2llvm::require_localenv_unwind_llvm_fnptr_type(xo::ref::brw llvm_cx, + type2llvm::require_localenv_unwind_llvm_fnptr_type(xo::bp llvm_cx, llvm::PointerType * /*envptr_llvm_type*/) { #ifdef OBSOLETE @@ -265,7 +265,7 @@ namespace xo { } /*require_localenv_unwind_llvm_fnptr_type*/ llvm::StructType * - type2llvm::env_api_llvm_type(xo::ref::brw llvm_cx) + type2llvm::env_api_llvm_type(xo::bp llvm_cx) { /* _env_api: base type for a local environment */ llvm::StructType * env_llvm_type @@ -293,7 +293,7 @@ namespace xo { } /*env_api_llvm_type*/ llvm::PointerType * - type2llvm::env_api_llvm_ptr_type(xo::ref::brw llvm_cx) + type2llvm::env_api_llvm_ptr_type(xo::bp llvm_cx) { #ifdef OBSOLETE llvm::StructType * env_llvm_type = env_api_llvm_type(llvm_cx); @@ -303,8 +303,8 @@ namespace xo { } /*env_api_llvm_ptr_type*/ llvm::StructType * - type2llvm::create_closureapi_lvtype(xo::ref::brw llvm_cx, - xo::ref::brw fn) + type2llvm::create_closureapi_lvtype(xo::bp llvm_cx, + xo::bp fn) { constexpr const char * c_prefix = "c."; @@ -317,7 +317,7 @@ namespace xo { } /*create_closureapi_lvtype*/ llvm::StructType * - type2llvm::function_td_to_closureapi_lvtype(xo::ref::brw llvm_cx, + type2llvm::function_td_to_closureapi_lvtype(xo::bp llvm_cx, TypeDescr fn_td, const std::string & hint_name) { @@ -368,8 +368,8 @@ namespace xo { } /*function_td_to_closureapi_lvtype*/ llvm::StructType * - type2llvm::create_localenv_llvm_type(xo::ref::brw llvm_cx, - xo::ref::brw lambda) + type2llvm::create_localenv_llvm_type(xo::bp llvm_cx, + xo::bp lambda) { constexpr const char * c_prefix = "e.";