|
OpenADFortTk (basic)
|
#include <IntrinsicInfo.h>

Classes | |
| struct | Info |
| struct | Key |
| struct | KeyLT |
Public Types | |
| enum | IntrinsicType_E { FLOAT_INTR, INTEGER_INTR, STRING_INTR, BOOL_INTR, IO_INTR, ARRAY_INTR, COMPILER_INTERNAL_INTR, UNDEFINED_INTR_TYPE } |
| typedef std::map< Key, Info, KeyLT > | IntrinsicMap |
Static Public Member Functions | |
| static bool | isIntrinsic (const WN *aWN_p) |
| static const char * | intrinsicBaseName (INTRINSIC opcode) |
| static const Info & | getIntrinsicInfo (WN *aWN_p) |
| static const IntrinsicMap & | getMap () |
Private Member Functions | |
| IntrinsicInfo () | |
| ~IntrinsicInfo () | |
Static Private Member Functions | |
| static bool | lookupIntrinsicPrefix (const char *str) |
| static bool | lookupIntrinsicInfo (const WN *aWN_p, const Info *anInfo) |
Static Private Attributes | |
| static IntrinsicMap | ourIntrinsicInfoMap |
| static bool | ourInitFlag = false |
Definition at line 8 of file IntrinsicInfo.h.
| typedef std::map<Key,Info,KeyLT> IntrinsicInfo::IntrinsicMap |
Definition at line 70 of file IntrinsicInfo.h.
type of intrinsic
| FLOAT_INTR | |
| INTEGER_INTR | |
| STRING_INTR | |
| BOOL_INTR | |
| IO_INTR | |
| ARRAY_INTR | |
| COMPILER_INTERNAL_INTR | |
| UNDEFINED_INTR_TYPE |
Definition at line 42 of file IntrinsicInfo.h.
| IntrinsicInfo::IntrinsicInfo | ( | ) | [private] |
no def
| IntrinsicInfo::~IntrinsicInfo | ( | ) | [private] |
no def
| const IntrinsicInfo::Info & IntrinsicInfo::getIntrinsicInfo | ( | WN * | aWN_p | ) | [static] |
if this is an intrinsic returns the info
Definition at line 197 of file IntrinsicInfo.cpp.
References DIE, and lookupIntrinsicInfo().

| const IntrinsicInfo::IntrinsicMap & IntrinsicInfo::getMap | ( | ) | [static] |
Definition at line 8 of file IntrinsicInfo.cpp.
References ARRAY_INTR, BOOL_INTR, COMPILER_INTERNAL_INTR, FLOAT_INTR, INTEGER_INTR, ourInitFlag, ourIntrinsicInfoMap, and STRING_INTR.
Referenced by lookupIntrinsicInfo().
| const char * IntrinsicInfo::intrinsicBaseName | ( | INTRINSIC | opcode | ) | [static] |
strips machine type information from the name
Definition at line 215 of file IntrinsicInfo.cpp.
References lookupIntrinsicPrefix(), and WN_intrinsic_name().
Referenced by Open64IRCallsiteIterator::build_func_call_list(), Open64IRInterface::findAllMemRefsAndMapToMemRefExprs(), Open64IRInterface::findTopMemRefHandle(), lookupIntrinsicInfo(), whirl2xaif::xlate_CALL(), and whirl2xaif::xlate_INTRINSIC_OP().

| bool IntrinsicInfo::isIntrinsic | ( | const WN * | aWN_p | ) | [static] |
is this an intrinsic?
Definition at line 192 of file IntrinsicInfo.cpp.
References lookupIntrinsicInfo().
Referenced by Open64IRCallsiteIterator::build_func_call_list(), Open64IRInterface::createExprTree(), Open64IRInterface::findAllMemRefsAndMapToMemRefExprs(), and WN_Call_Return_Type().

| bool IntrinsicInfo::lookupIntrinsicInfo | ( | const WN * | aWN_p, |
| const Info * | anInfo | ||
| ) | [static, private] |
internal lookup
PLM : I see Intrinsic Call apperas only for CASSIGNSTMT at this point. As CASSIGNSTMT is removed from the list of Intrinsics. I am commenting out OPR_INTRINSIC_CALL test case, otherwise it gives and error message on encountering OPR_INTRINSIC_CALL for CASSIGNSTMT.
if (opr==OPR_INTRINSIC_CALL) { get the name and strip machine type information const char* inm = intrinsicBaseName(WN_intrinsic(aWN_p)); finder=getMap().find(Key(opr,inm)); if (finder==getMap().end()) { DIE("IntrinsicInfo::isIntrinsic: no entry for OPR_INTRINSIC_CALL %s ",inm); } }
Definition at line 144 of file IntrinsicInfo.cpp.
References DIE, getMap(), intrinsicBaseName(), and SexpTags::ST.
Referenced by getIntrinsicInfo(), and isIntrinsic().

| bool IntrinsicInfo::lookupIntrinsicPrefix | ( | const char * | str | ) | [static, private] |
return true if 'str' is a valid prefix for an intrinsic name; false otherwise. These prefixes are the machine types the front end attaches to the intrinsic names.
Definition at line 252 of file IntrinsicInfo.cpp.
References prefixTableCmp().
Referenced by intrinsicBaseName().

bool IntrinsicInfo::ourInitFlag = false [static, private] |
Definition at line 87 of file IntrinsicInfo.h.
Referenced by getMap().
IntrinsicInfo::IntrinsicMap IntrinsicInfo::ourIntrinsicInfoMap [static, private] |
Definition at line 86 of file IntrinsicInfo.h.
Referenced by getMap().