PandA-2024.02
|
Add to the call graph the function calls associated with the floating point primitive operations. More...
#include <soft_float_cg_ext.hpp>
Public Member Functions | |
soft_float_cg_ext (const ParameterConstRef _parameters, const application_managerRef AppM, unsigned int _function_id, const DesignFlowManagerConstRef design_flow_manager) | |
Constructor. More... | |
~soft_float_cg_ext () override | |
Destructor. More... | |
DesignFlowStep_Status | InternalExec () override |
Fixes the var_decl duplication. More... | |
bool | HasToBeExecuted () const override |
Check if this step has actually to be executed. More... | |
Public Member Functions inherited from FunctionFrontendFlowStep | |
FunctionFrontendFlowStep (const application_managerRef AppM, const unsigned int function_id, const FrontendFlowStepType frontend_flow_step_type, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters) | |
Constructor. More... | |
~FunctionFrontendFlowStep () override | |
Destructor. More... | |
void | ComputeRelationships (DesignFlowStepSet &relationship, const DesignFlowStep::RelationshipType relationship_type) override |
Compute the relationships of a step with other steps. More... | |
std::string | GetSignature () const override |
Return the signature of this step. More... | |
std::string | GetName () const override |
Return the name of this design step. More... | |
DesignFlowStep_Status | Exec () final |
Execute the step. More... | |
unsigned int | CGetBBVersion () const |
unsigned int | GetBitValueVersion () const |
void | PrintInitialIR () const override |
Dump the initial intermediate representation. More... | |
void | PrintFinalIR () const override |
Dump the final intermediate representation. More... | |
Public Member Functions inherited from FrontendFlowStep | |
FrontendFlowStep (const application_managerRef AppM, const FrontendFlowStepType frontend_flow_step_type, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters) | |
Constructor. More... | |
~FrontendFlowStep () override | |
Destructor. More... | |
virtual std::string | GetKindText () const |
Return the name of the type of this frontend flow step. More... | |
DesignFlowStepFactoryConstRef | CGetDesignFlowStepFactory () const override |
Return the factory to create this type of steps. More... | |
void | PrintTreeManager (const bool before) const |
Dump the tree manager. More... | |
Public Member Functions inherited from DesignFlowStep | |
DesignFlowStep (const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters) | |
Constructor. More... | |
virtual | ~DesignFlowStep () |
Destructor. More... | |
virtual void | Initialize () |
Initialize the step (i.e., like a constructor, but executed just before exec. More... | |
DesignFlowStep_Status | GetStatus () const |
Return the status of this design step. More... | |
virtual void | WriteDot (std::ostream &out) const |
Write the label for a dot graph. More... | |
bool | IsComposed () const |
Returns if this step is composed. More... | |
int | CGetDebugLevel () const |
Return the debug level of the step. More... | |
Private Types | |
enum | InterfaceType { INTERFACE_TYPE_NONE = 0, INTERFACE_TYPE_INPUT = 1, INTERFACE_TYPE_OUTPUT = 2, INTERFACE_TYPE_REAL = 4 } |
Private Member Functions | |
tree_nodeRef | int_type_for (const tree_nodeRef &type, bool use_internal) const |
bool | signature_lowering (function_decl *f_decl) const |
void | ssa_lowering (ssa_name *ssa, bool internal_type) const |
void | replaceWithCall (const FloatFormatRef &specFF, const std::string &fu_name, std::vector< tree_nodeRef > args, const tree_nodeRef ¤t_statement, const tree_nodeRef ¤t_tree_node, const std::string ¤t_scrp) |
Replace current_tree_node with a call_expr to fu_name function specialized with specFF fp format in current_statement. More... | |
bool | RecursiveExaminate (const tree_nodeRef ¤t_statement, const tree_nodeRef ¤t_tree_node, int castRename) |
Recursive examine tree node. More... | |
tree_nodeRef | generate_interface (const blocRef &bb, tree_nodeRef stmt, const tree_nodeRef &ssa, FloatFormatRef inFF, FloatFormatRef outFF) const |
Generate necessary statements to convert ssa variable from inFF to outFF and insert them after stmt in bb. More... | |
tree_nodeRef | cstCast (uint64_t in, const FloatFormatRef &inFF, const FloatFormatRef &outFF) const |
Cast real type constant from inFF to outFF format. More... | |
tree_nodeRef | floatNegate (const tree_nodeRef &op, const FloatFormatRef &ff) const |
Generate float negate operation based on given floating-point format. More... | |
tree_nodeRef | floatAbs (const tree_nodeRef &op, const FloatFormatRef &ff) const |
Generate float absolute value operation based on given floating-point format. More... | |
const CustomUnorderedSet< std::pair< FrontendFlowStepType, FunctionRelationship > > | ComputeFrontendRelationships (const DesignFlowStep::RelationshipType relationship_type) const override |
Return the set of analyses in relationship with this design step. More... | |
Static Private Member Functions | |
static bool | lowering_needed (const ssa_name *ssa) |
Private Attributes | |
CustomUnorderedSet< unsigned int > | already_visited |
Already visited tree node (used to avoid infinite recursion) More... | |
const tree_managerRef | TreeM |
Tree manager. More... | |
const tree_manipulationRef | tree_man |
tree manipulation More... | |
function_decl * | fd |
bool | isTopFunction |
std::vector< tree_nodeRef > | topReturn |
bool | bindingCompleted |
std::vector< tree_nodeRef > | paramBinding |
FunctionVersionRef | _version |
tree_nodeRef | int_type |
tree_nodeRef | int_ptr_type |
CustomMap< ssa_name *, bool > | viewConvert |
std::vector< tree_nodeRef > | nopConvert |
CustomMap< ssa_name *, std::tuple< FloatFormatRef, std::vector< unsigned int > > > | inputInterface |
SSA variable which requires cast renaming from standard to user-defined float format in all but given statements. More... | |
CustomMap< ssa_name *, std::tuple< FloatFormatRef, std::vector< tree_nodeRef > > > | outputInterface |
SSA variable which requires cast renaming from user-defined to standard float format in given statements only. More... | |
CustomMap< ssa_name *, std::set< unsigned int > > | hwParam |
Hardware implemented functions need parameters specified as real_type, thus it is necessary to add a view_convert. More... | |
std::vector< ssa_name * > | hwReturn |
Hardware implemented functions return values as real_type, thus a view_convert is necessary. More... | |
Static Private Attributes | |
static CustomMap< CallGraph::vertex_descriptor, FunctionVersionRef > | funcFF |
Floating-point function version map. More... | |
static CustomMap< unsigned int, std::array< tree_nodeRef, 8 > > | versioning_args |
Static arguments list to feed specialization parameters of versioned functions. More... | |
static bool | inline_math = false |
static bool | inline_conversion = false |
static tree_nodeRef | float32_type |
static tree_nodeRef | float32_ptr_type |
static tree_nodeRef | float64_type |
static tree_nodeRef | float64_ptr_type |
Additional Inherited Members | |
Public Types inherited from FrontendFlowStep | |
using | FunctionRelationship = enum { ALL_FUNCTIONS, CALLED_FUNCTIONS, CALLING_FUNCTIONS, SAME_FUNCTION, WHOLE_APPLICATION } |
The different relationship type between function analysis. More... | |
Public Types inherited from DesignFlowStep | |
enum | RelationshipType { DEPENDENCE_RELATIONSHIP, INVALIDATION_RELATIONSHIP, PRECEDENCE_RELATIONSHIP } |
The relationship type. More... | |
Static Public Member Functions inherited from FunctionFrontendFlowStep | |
static const std::string | ComputeSignature (const FrontendFlowStepType frontend_flow_step_type, const unsigned int function_id) |
Compute the signature of a function frontend flow step. More... | |
Static Public Member Functions inherited from FrontendFlowStep | |
static void | CreateSteps (const DesignFlowManagerConstRef design_flow_manager, const CustomUnorderedSet< std::pair< FrontendFlowStepType, FunctionRelationship >> &frontend_relationships, const application_managerConstRef application_manager, DesignFlowStepSet &relationships) |
Create the relationship steps of a step with other steps starting from already specified dependencies between frontend flow steps. More... | |
static const std::string | EnumToKindText (const FrontendFlowStepType frontend_flow_step_type) |
Given a frontend flow step type, return the name of the type. More... | |
Protected Member Functions inherited from FunctionFrontendFlowStep | |
void | WriteBBGraphDot (const std::string &filename) const |
Write the current version of statement list in dot format. More... | |
Protected Attributes inherited from FunctionFrontendFlowStep | |
const FunctionBehaviorRef | function_behavior |
The function behavior of the function to be analyzed. More... | |
const unsigned int | function_id |
The index of the function to be analyzed. More... | |
unsigned int | bb_version |
The version of the basic block intermediate representation on which this step has been applied. More... | |
unsigned int | bitvalue_version |
The version of the bitvalue information on which this step has been applied. More... | |
Protected Attributes inherited from FrontendFlowStep | |
const application_managerRef | AppM |
The application manager. More... | |
const FrontendFlowStepType | frontend_flow_step_type |
The type of this step. More... | |
unsigned int | print_counter |
Print counter. More... | |
Protected Attributes inherited from DesignFlowStep | |
bool | composed |
True if this step represents a composition of design flow steps (e.g., a flow); must be set by specialized constructors. More... | |
const Wrefcount< const DesignFlowManager > | design_flow_manager |
The design flow manager. More... | |
const ParameterConstRef | parameters |
Set of input parameters. More... | |
int | debug_level |
The debug level. More... | |
const int | output_level |
The output level. More... | |
Add to the call graph the function calls associated with the floating point primitive operations.
Definition at line 76 of file soft_float_cg_ext.hpp.
|
private |
Enumerator | |
---|---|
INTERFACE_TYPE_NONE | |
INTERFACE_TYPE_INPUT | |
INTERFACE_TYPE_OUTPUT | |
INTERFACE_TYPE_REAL |
Definition at line 94 of file soft_float_cg_ext.hpp.
soft_float_cg_ext::soft_float_cg_ext | ( | const ParameterConstRef | _parameters, |
const application_managerRef | AppM, | ||
unsigned int | _function_id, | ||
const DesignFlowManagerConstRef | design_flow_manager | ||
) |
Constructor.
Param | is the set of the parameters |
AppM | is the application manager |
fun_id | is the function index |
design_flow_manager | is the design flow manager |
Definition at line 157 of file soft_float_cg_ext.cpp.
References _version, FrontendFlowStep::AppM, DesignFlowStep::debug_level, DEBUG_LEVEL_NONE, float32_ptr_type, float32_type, float32FF(), float64_ptr_type, float64_type, float64FF(), test_panda::format, FloatFormat::FPException_IEEE, FloatFormat::FPException_Overflow, FloatFormat::FPException_Saturation, FloatFormat::FPRounding_NearestEven, FloatFormat::FPRounding_Truncate, FloatFormat::FromString(), funcFF, FunctionFrontendFlowStep::function_id, GET_CLASS, GET_INDEX_CONST_NODE, GET_NODE, tree_manipulation::GetCustomIntegerType(), tree_manipulation::GetPointerType(), INDENT_OUT_MEX, inline_conversion, inline_math, int_ptr_type, int_type, DesignFlowStep::output_level, OUTPUT_LEVEL_VERBOSE, DesignFlowStep::parameters, tree_helper::print_function_name(), tree_helper::print_type(), SplitString(), STR, strip_fname(), lenet_tvm::target, THROW_ASSERT, THROW_ERROR, THROW_UNREACHABLE, THROW_WARNING, tree_man, TreeM, U, and ~soft_float_cg_ext().
|
overridedefault |
|
overrideprivatevirtual |
Return the set of analyses in relationship with this design step.
relationship_type | is the type of relationship to be considered |
Implements FrontendFlowStep.
Definition at line 416 of file soft_float_cg_ext.cpp.
References ABORTED, ALL_FUNCTIONS, CALLED_FUNCTIONS, DesignFlowStep::DEPENDENCE_RELATIONSHIP, EMPTY, DesignFlowStep::GetStatus(), DesignFlowStep::INVALIDATION_RELATIONSHIP, NONEXISTENT, DesignFlowStep::PRECEDENCE_RELATIONSHIP, SAME_FUNCTION, SKIPPED, SUCCESS, THROW_UNREACHABLE, UNCHANGED, UNEXECUTED, UNNECESSARY, and WHOLE_APPLICATION.
|
private |
Cast real type constant from inFF to outFF format.
in | Real type constant bits represented as inFF |
inFF | Input floating point format |
outFF | Output floating point format |
Definition at line 1171 of file soft_float_cg_ext.cpp.
References FloatFormat::FPException_IEEE, FloatFormat::FPRounding_NearestEven, tree_manipulation::GetCustomIntegerType(), max, ONE, STR, THROW_ASSERT, THROW_ERROR, tree_man, TreeM, and U.
Referenced by RecursiveExaminate().
|
private |
Generate float absolute value operation based on given floating-point format.
op | Negate operand |
ff | Floating-point format |
Definition at line 1460 of file soft_float_cg_ext.cpp.
References BUILTIN_SRCP, tree_manipulation::create_binary_operation(), tree_manipulation::GetCustomIntegerType(), ONE, THROW_ERROR, tree_man, TreeM, and U.
Referenced by RecursiveExaminate().
|
private |
Generate float negate operation based on given floating-point format.
op | Negate operand |
ff | Floating-point format |
Definition at line 1444 of file soft_float_cg_ext.cpp.
References BUILTIN_SRCP, tree_manipulation::create_binary_operation(), tree_manipulation::GetCustomIntegerType(), THROW_ERROR, tree_man, TreeM, and U.
Referenced by RecursiveExaminate().
|
private |
Generate necessary statements to convert ssa variable from inFF to outFF and insert them after stmt in bb.
bb | Generated operations will be inserted in this basic block |
stmt | Generated statements will be inserted after this statement, if nullptr they will be inserted at the beginning of the BB |
ssa | Real type ssa_name tree reindex to be converted from inFF to outFF |
inFF | Input float format, if nullptr will be deduced as standard IEEE 754 type from ssa bitwidth |
outFF | Output float format, if nullptr will be deduced as standard IEEE 754 type from ssa bitwidth |
Definition at line 1353 of file soft_float_cg_ext.cpp.
References FrontendFlowStep::AppM, test_panda::args, BUILTIN_SRCP, tree_helper::CGetType(), tree_manipulation::CloneFunction(), tree_manipulation::CreateCallExpr(), tree_manipulation::CreateGimpleAssign(), tree_manipulation::CreateNopExpr(), DesignFlowStep::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, FLOAT_CAST_FU_NAME, funcFF, FunctionFrontendFlowStep::function_id, GET_CONST_NODE, tree_manipulation::GetBooleanType(), tree_manipulation::GetCustomIntegerType(), tree_helper::GetFunctionReturnType(), tree_manipulation::GetSignedIntegerType(), tree_node::GetString(), INDENT_DBG_MEX, INLINE, inline_conversion, tree_helper::IsSameType(), ONE, FunctionCallOpt::RequestCallOpt(), STR, THROW_ASSERT, tree_man, TreeM, and U.
Referenced by InternalExec().
|
overridevirtual |
Check if this step has actually to be executed.
Reimplemented from FunctionFrontendFlowStep.
Definition at line 465 of file soft_float_cg_ext.cpp.
References FunctionFrontendFlowStep::bb_version, and FunctionFrontendFlowStep::HasToBeExecuted().
|
private |
Definition at line 987 of file soft_float_cg_ext.cpp.
References _version, tree_helper::CGetPointedType(), float32_ptr_type, float32_type, float64_ptr_type, float64_type, int_type, tree_helper::IsPointerType(), tree_helper::Size(), and THROW_ASSERT.
Referenced by InternalExec(), RecursiveExaminate(), signature_lowering(), and ssa_lowering().
|
overridevirtual |
Fixes the var_decl duplication.
Implements FunctionFrontendFlowStep.
Definition at line 470 of file soft_float_cg_ext.cpp.
References _version, FrontendFlowStep::AppM, test_panda::arg, BB_ENTRY, bindingCompleted, function_decl::body, BUILTIN_SRCP, tree_helper::CGetType(), tree_manipulation::create_unary_operation(), tree_manipulation::CreateGimpleAssign(), tree_manipulation::CreateNopExpr(), DesignFlowStep::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, bloc::ENTRY_BLOCK_ID, fd, float32_type, float32FF(), float64_type, float64FF(), funcFF, FunctionFrontendFlowStep::function_behavior, FunctionFrontendFlowStep::function_id, generate_interface(), GET_CONST_NODE, GET_INDEX_CONST_NODE, GET_INDEX_NODE, GET_NODE, hwParam, hwReturn, INDENT_DBG_MEX, inputInterface, int_type_for(), INTERFACE_TYPE_NONE, isTopFunction, function_decl::list_of_args, lowering_needed(), nopConvert, outputInterface, param, paramBinding, DesignFlowStep::parameters, phi, tree_helper::print_type(), RecursiveExaminate(), signature_lowering(), tree_helper::Size(), sl, ssa_lowering(), STR, SUCCESS, THROW_ASSERT, topReturn, ToString(), tree_man, TreeM, U, UNCHANGED, and viewConvert.
Definition at line 978 of file soft_float_cg_ext.cpp.
References tree_helper::CGetPointedType(), tree_helper::IsPointerType(), tree_helper::IsRealType(), and ssa_name::type.
Referenced by InternalExec(), RecursiveExaminate(), and ssa_lowering().
|
private |
Recursive examine tree node.
current_statement | is the current analyzed statement |
current_tree_node | is the current tree node |
castRename | is the required interface type bitmask reported using InterfaceType enum |
Definition at line 1539 of file soft_float_cg_ext.cpp.
References _version, CallGraphManager::addCallPointAndExpand(), already_visited, FrontendFlowStep::AppM, test_panda::arg, test_panda::args, bindingCompleted, BUILTIN_WAIT_CALL, CASE_BINARY_EXPRESSION, CASE_CPP_NODES, CASE_CST_NODES, CASE_DECL_NODES, CASE_FAKE_NODES, CASE_GIMPLE_NODES, CASE_PRAGMA_NODES, CASE_QUATERNARY_EXPRESSION, CASE_TERNARY_EXPRESSION, CASE_TYPE_NODES, CASE_UNARY_EXPRESSION, tree_helper::CGetPointedType(), tree_helper::CGetType(), convert_fp_to_bits(), tree_manipulation::create_unary_operation(), tree_manipulation::CreateCallExpr(), cstCast(), DesignFlowStep::debug_level, DEBUG_LEVEL_NONE, DEBUG_LEVEL_VERY_PEDANTIC, FunctionEdgeInfo::direct_call, fd, float32_type, float32FF(), float64_type, float64FF(), floatAbs(), floatNegate(), funcFF, FunctionFrontendFlowStep::function_behavior, FunctionFrontendFlowStep::function_id, GET_CONST_NODE, GET_INDEX_CONST_NODE, tree_node::get_kind(), GET_NODE, tree_manipulation::GetBooleanType(), tree_manipulation::GetCustomIntegerType(), tree_manipulation::GetPointerType(), tree_manipulation::GetSignedIntegerType(), hwParam, hwReturn, INDENT_DBG_MEX, tree_node::index, INLINE, inline_conversion, inline_math, inputInterface, int_type_for(), INTERFACE_TYPE_INPUT, INTERFACE_TYPE_NONE, INTERFACE_TYPE_OUTPUT, INTERFACE_TYPE_REAL, tree_helper::IsLoad(), tree_helper::IsPointerType(), tree_helper::IsRealType(), tree_helper::IsStore(), isTopFunction, tree_helper::IsUnsignedIntegerType(), function_decl::list_of_args, lowering_needed(), MEMCPY, MEMSET, NODE_NOT_YET_SUPPORTED_EC, nopConvert, outputInterface, paramBinding, DesignFlowStep::parameters, tree_helper::print_function_name(), replaceWithCall(), FunctionCallOpt::RequestCallOpt(), tree_helper::Size(), STR, strip_fname(), THROW_ASSERT, THROW_ERROR, THROW_ERROR_CODE, THROW_UNREACHABLE, topReturn, tree_man, TreeM, and viewConvert.
Referenced by InternalExec().
|
private |
Replace current_tree_node with a call_expr to fu_name function specialized with specFF fp format in current_statement.
specFF | FP format for fu_name function specialization |
fu_name | Function name |
args | Function arguments |
current_statement | |
current_tree_node | |
current_scrp |
Definition at line 1481 of file soft_float_cg_ext.cpp.
References CallGraphManager::addCallPointAndExpand(), already_visited, FrontendFlowStep::AppM, tree_manipulation::CloneFunction(), tree_manipulation::CreateCallExpr(), DesignFlowStep::debug_level, DEBUG_LEVEL_NONE, DEBUG_LEVEL_VERY_PEDANTIC, FunctionEdgeInfo::direct_call, funcFF, FunctionFrontendFlowStep::function_id, GET_INDEX_CONST_NODE, tree_manipulation::GetBooleanType(), tree_manipulation::GetSignedIntegerType(), INDENT_DBG_MEX, ONE, STR, THROW_ASSERT, tree_man, TreeM, U, and versioning_args.
Referenced by RecursiveExaminate().
|
private |
Definition at line 1004 of file soft_float_cg_ext.cpp.
References _version, FrontendFlowStep::AppM, test_panda::arg, tree_helper::CGetPointedType(), tree_list::chan, tree_node_dup::create_tree_node(), DesignFlowStep::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, GET_CONST_NODE, GET_NODE, tree_manipulation::GetPointerType(), INDENT_DBG_MEX, tree_node::index, int_type_for(), tree_helper::IsFunctionType(), tree_helper::IsPointerType(), tree_helper::IsRealType(), function_decl::list_of_args, tree_helper::print_type(), RENAME, tree_helper::Size(), STR, tree_man, TreeM, decl_node::type, U, and tree_list::valu.
Referenced by InternalExec().
Definition at line 1080 of file soft_float_cg_ext.cpp.
References FrontendFlowStep::AppM, function_decl::body, BUILTIN_SRCP, ssa_name::CGetDefStmt(), ssa_name::CGetUseStmts(), tree_manipulation::create_unary_operation(), tree_manipulation::CreateGimpleAssign(), DesignFlowStep::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, fd, FunctionFrontendFlowStep::function_id, GET_CONST_NODE, GET_INDEX_NODE, GET_NODE, INDENT_DBG_MEX, tree_node::index, int_type_for(), lowering_needed(), STR, THROW_ASSERT, ToString(), tree_node::ToString(), tree_man, TreeM, ssa_name::type, and ssa_name::var.
Referenced by InternalExec().
|
private |
Definition at line 117 of file soft_float_cg_ext.hpp.
Referenced by int_type_for(), InternalExec(), RecursiveExaminate(), signature_lowering(), and soft_float_cg_ext().
|
private |
Already visited tree node (used to avoid infinite recursion)
Definition at line 103 of file soft_float_cg_ext.hpp.
Referenced by RecursiveExaminate(), and replaceWithCall().
|
private |
Definition at line 114 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().
|
private |
Definition at line 111 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), RecursiveExaminate(), and ssa_lowering().
|
staticprivate |
Definition at line 88 of file soft_float_cg_ext.hpp.
Referenced by int_type_for(), and soft_float_cg_ext().
|
staticprivate |
Definition at line 87 of file soft_float_cg_ext.hpp.
Referenced by int_type_for(), InternalExec(), RecursiveExaminate(), and soft_float_cg_ext().
|
staticprivate |
Definition at line 90 of file soft_float_cg_ext.hpp.
Referenced by int_type_for(), and soft_float_cg_ext().
|
staticprivate |
Definition at line 89 of file soft_float_cg_ext.hpp.
Referenced by int_type_for(), InternalExec(), RecursiveExaminate(), and soft_float_cg_ext().
|
staticprivate |
Floating-point function version map.
Header include.
design_flows include frontend_analysis Behavior include Graph include Parameter include STL include Tree include Utility include
Definition at line 80 of file soft_float_cg_ext.hpp.
Referenced by generate_interface(), InternalExec(), RecursiveExaminate(), replaceWithCall(), and soft_float_cg_ext().
Hardware implemented functions need parameters specified as real_type, thus it is necessary to add a view_convert.
Definition at line 135 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().
|
private |
Hardware implemented functions return values as real_type, thus a view_convert is necessary.
Definition at line 138 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().
Definition at line 86 of file soft_float_cg_ext.hpp.
Referenced by generate_interface(), RecursiveExaminate(), and soft_float_cg_ext().
Definition at line 85 of file soft_float_cg_ext.hpp.
Referenced by RecursiveExaminate(), and soft_float_cg_ext().
|
private |
SSA variable which requires cast renaming from standard to user-defined float format in all but given statements.
Definition at line 129 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().
|
private |
Definition at line 120 of file soft_float_cg_ext.hpp.
Referenced by soft_float_cg_ext().
|
private |
Definition at line 119 of file soft_float_cg_ext.hpp.
Referenced by int_type_for(), and soft_float_cg_ext().
|
private |
Definition at line 112 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().
|
private |
Definition at line 126 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().
|
private |
SSA variable which requires cast renaming from user-defined to standard float format in given statements only.
Definition at line 132 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().
|
private |
Definition at line 115 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().
|
private |
Definition at line 113 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().
|
private |
tree manipulation
Definition at line 109 of file soft_float_cg_ext.hpp.
Referenced by cstCast(), floatAbs(), floatNegate(), generate_interface(), InternalExec(), RecursiveExaminate(), replaceWithCall(), signature_lowering(), soft_float_cg_ext(), and ssa_lowering().
|
private |
Tree manager.
Definition at line 106 of file soft_float_cg_ext.hpp.
Referenced by cstCast(), floatAbs(), floatNegate(), generate_interface(), InternalExec(), RecursiveExaminate(), replaceWithCall(), signature_lowering(), soft_float_cg_ext(), and ssa_lowering().
|
staticprivate |
Static arguments list to feed specialization parameters of versioned functions.
Definition at line 83 of file soft_float_cg_ext.hpp.
Referenced by replaceWithCall().
Definition at line 123 of file soft_float_cg_ext.hpp.
Referenced by InternalExec(), and RecursiveExaminate().