#include <list>#include <map>#include "defs.h"#include "tracing.h"#include "mempool.h"#include "bb.h"#include "op.h"#include "tn.h"#include "vector_loadstore.h"#include "whirl2ops.h"

Go to the source code of this file.
| void Add_To_Vector | ( | vector_info_t * | v, | |
| OP * | op | |||
| ) | [inline] |
Definition at line 338 of file vector_loadstore.cxx.
References i, vector_info_t::index, INT, Is_True, vector_info_t::op, OP_Offset_TN(), TN_value, and Vector_Offset_TN().
Referenced by Create_Vector_Load_Stores(), and Vector_Is_Possible().
| static TOP Choose_Vector_Opcode | ( | vector_info_t * | v | ) | [static] |
Definition at line 359 of file vector_loadstore.cxx.
References vector_info_t::index, vector_info_t::op, OP_code, opc, TOP, V2InstructionMap, and V4InstructionMap.
Referenced by Emit_Vector(), and Vector_Is_Possible().
| void Clear_Vector | ( | vector_info_t * | v | ) | [inline] |
Definition at line 263 of file vector_loadstore.cxx.
References vector_info_t::index.
Referenced by Create_Vector_Load_Stores().
Definition at line 901 of file vector_loadstore.cxx.
References Add_To_Vector(), BB_id, BB_next, BOOL, Clear_Vector(), Create_VInstruction_Maps(), Emit_Vector(), FALSE, FOR_ALL_BB_OPs, fprintf(), Get_Trace(), Is_Potential_Load_Or_Store(), MEM_POOL_Delete(), MEM_POOL_Initialize, MEM_POOL_Pop, MEM_POOL_Push, NULL, num_vectors, OP_Interferes_With_Vector(), Print_OP_No_SrcLine(), REGION_First_BB, Start_Vector(), TFile, TP_EBO, tracing, TRUE, TYPE_MEM_POOL_ALLOC, V2InstructionMap, V4InstructionMap, Vector_Can_Add_Op(), and Vector_Is_Possible().
Referenced by CG_Generate_Code().
Definition at line 44 of file vector_loadstore.cxx.
References V2InstructionMap, and V4InstructionMap.
Referenced by Create_Vector_Load_Stores().
| static OP* Earliest_Vector_Op | ( | vector_info_t * | v | ) | [static] |
Definition at line 569 of file vector_loadstore.cxx.
References i, vector_info_t::index, INT, vector_info_t::op, and OP_Precedes().
Referenced by Emit_Vector(), and Vector_Can_Add_Op().
| static void Emit_Vector | ( | vector_info_t * | v | ) | [static] |
Definition at line 590 of file vector_loadstore.cxx.
References BB_Insert_Op_After(), BB_Insert_Op_Before(), BB_Remove_Op(), Choose_Vector_Opcode(), Earliest_Vector_Op(), FALSE, FmtAssert, fprintf(), i, vector_info_t::index, INT, Latest_Vector_Op(), Mk_OP(), num_vectors, vector_info_t::op, OP_bb, OP_Qualifier_TN(), OP_result, opc, TFile, TOP, tracing, Vector_Base_TN(), Vector_Is_Load(), Vector_Offset_TN(), and Vector_Storeval_TN().
Referenced by Create_Vector_Load_Stores().
| INT Find_Gap_In_Vector | ( | vector_info_t * | v, | |
| INT | start, | |||
| INT | end | |||
| ) | [inline] |
Definition at line 392 of file vector_loadstore.cxx.
References i, INT, vector_info_t::op, Sizeof_Load_Store(), and Vector_Offset_Value().
Referenced by Vector_Is_Possible().
| static ST* Get_Vector_Symbol | ( | vector_info_t * | v | ) | [static] |
Definition at line 406 of file vector_loadstore.cxx.
References NULL, TN_is_symbol, TN_var, and Vector_Base_TN().
Referenced by Get_Vector_Type(), Vector_Can_Add_Op(), and Vector_Is_Possible().
| static TY_IDX Get_Vector_Type | ( | vector_info_t * | v | ) | [static] |
Definition at line 417 of file vector_loadstore.cxx.
References Get_Vector_Symbol(), Get_WN_From_Memory_OP(), KIND_POINTER, vector_info_t::op, ST_type, TY_kind, TY_pointed, wn, and WN_ty().
Referenced by Vector_Can_Add_Op(), and Vector_Is_Possible().
Definition at line 820 of file vector_loadstore.cxx.
References FALSE, Get_WN_From_Memory_OP(), OP_find_opnd_use, OP_load, OP_Space_TN(), OP_store, TN_enum, and TRUE.
Referenced by Create_Vector_Load_Stores().
| static OP* Latest_Vector_Op | ( | vector_info_t * | v | ) | [static] |
Definition at line 580 of file vector_loadstore.cxx.
References i, vector_info_t::index, INT, vector_info_t::op, and OP_Precedes().
Referenced by Emit_Vector().
Definition at line 302 of file vector_loadstore.cxx.
References OP_find_opnd_use, and OP_opnd.
Referenced by OP_Interferes_With_Vector(), Vector_Base_TN(), and Vector_Can_Add_Op().
| static BOOL OP_Interferes_With_Vector | ( | OP * | op, | |
| vector_info_t * | v | |||
| ) | [static] |
Definition at line 837 of file vector_loadstore.cxx.
References FALSE, fprintf(), i, vector_info_t::index, INT, vector_info_t::op, OP_Base_TN(), OP_Offset_TN(), OP_opnd, OP_opnds, OP_result, OP_results, OP_Space_TN(), OP_store, Print_OP_No_SrcLine(), Print_Vector(), TFile, TN_enum, TN_is_register, TN_value, tracing, TRUE, Vector_Base_TN(), Vector_Is_Empty(), Vector_Is_Store(), and Vector_Offset_TN().
Referenced by Create_Vector_Load_Stores().
Definition at line 307 of file vector_loadstore.cxx.
References OP_find_opnd_use, and OP_opnd.
Referenced by Add_To_Vector(), OP_Interferes_With_Vector(), Vector_Can_Add_Op(), and Vector_Offset_TN().
Definition at line 292 of file vector_loadstore.cxx.
References OP_opnd.
Referenced by Emit_Vector(), and Vector_Can_Add_Op().
Definition at line 297 of file vector_loadstore.cxx.
References OP_opnd.
Referenced by Is_Potential_Load_Or_Store(), and OP_Interferes_With_Vector().
Definition at line 312 of file vector_loadstore.cxx.
References OP_find_opnd_use, and OP_opnd.
Referenced by Vector_Can_Add_Op(), and Vector_Storeval_TN().
| static void Print_Vector | ( | vector_info_t * | v | ) | [static] |
Definition at line 255 of file vector_loadstore.cxx.
References fprintf(), i, vector_info_t::index, INT, vector_info_t::op, Print_OP_No_SrcLine(), and TFile.
Referenced by OP_Interferes_With_Vector(), and Vector_Can_Add_Op().
Definition at line 376 of file vector_loadstore.cxx.
References OP_code.
Referenced by Find_Gap_In_Vector(), Vector_Can_Add_Op(), and Vector_Is_Possible().
| void Start_Vector | ( | vector_info_t * | v, | |
| OP * | op | |||
| ) | [inline] |
Definition at line 273 of file vector_loadstore.cxx.
References vector_info_t::index, and vector_info_t::op.
Referenced by Create_Vector_Load_Stores().
| TN* Vector_Base_TN | ( | vector_info_t * | v | ) | [inline] |
Definition at line 317 of file vector_loadstore.cxx.
References vector_info_t::op, and OP_Base_TN().
Referenced by Emit_Vector(), Get_Vector_Symbol(), OP_Interferes_With_Vector(), and Vector_Can_Add_Op().
| static BOOL Vector_Can_Add_Op | ( | vector_info_t * | v, | |
| OP * | op | |||
| ) | [static] |
Definition at line 660 of file vector_loadstore.cxx.
References abs, Earliest_Vector_Op(), FALSE, fprintf(), Get_Vector_Symbol(), Get_Vector_Type(), Get_WN_From_Memory_OP(), i, vector_info_t::index, INT, KIND_POINTER, NULL, vector_info_t::op, OP_Base_TN(), OP_code, OP_load, OP_next, OP_Offset_TN(), OP_Qualifier_TN(), OP_Refs_TN(), OP_result, OP_results, OP_store, OP_Storeval_TN(), Print_OP_No_SrcLine(), Print_Vector(), Sizeof_Load_Store(), struct_ty, TFile, TN_has_value, TN_is_register, TN_register_class, TN_value, tracing, TRUE, TY_align, TY_kind, TY_pointed, TY_size, Vector_Base_TN(), Vector_Is_Empty(), Vector_Is_Load(), Vector_Offset_TN(), Vector_Storeval_TN(), WN_field_id(), and WN_ty().
Referenced by Create_Vector_Load_Stores().
| BOOL Vector_Is_Empty | ( | vector_info_t * | v | ) | [inline] |
Definition at line 268 of file vector_loadstore.cxx.
References vector_info_t::index.
Referenced by OP_Interferes_With_Vector(), and Vector_Can_Add_Op().
| BOOL Vector_Is_Load | ( | vector_info_t * | v | ) | [inline] |
Definition at line 280 of file vector_loadstore.cxx.
References vector_info_t::op, and OP_load.
Referenced by Emit_Vector(), Vector_Can_Add_Op(), and Vector_Is_Possible().
| static BOOL Vector_Is_Possible | ( | vector_info_t * | v | ) | [static] |
Definition at line 432 of file vector_loadstore.cxx.
References Add_To_Vector(), BB_Insert_Op_After(), BB_Remove_Op(), Choose_Vector_Opcode(), Copy_WN_For_Memory_OP(), DevWarn, Dup_OP(), FALSE, Find_Gap_In_Vector(), FmtAssert, Gen_Literal_TN(), Get_Vector_Symbol(), Get_Vector_Type(), Has_Base_Block, i, vector_info_t::index, INT, KIND_POINTER, MAX, NULL, vector_info_t::op, OP_bb, OP_code, OP_find_opnd_use, OP_result, opc, Set_OP_opnd, Set_OP_result, Set_ST_type, Set_STB_align, Set_TY_align, Sizeof_Load_Store(), ST_base, ST_type, STB_align, TN_register_class, TOP, TRUE, TY_align, TY_kind, Unused_TN(), Vector_Is_Load(), and Vector_Offset_Value().
Referenced by Create_Vector_Load_Stores().
| BOOL Vector_Is_Store | ( | vector_info_t * | v | ) | [inline] |
Definition at line 286 of file vector_loadstore.cxx.
References vector_info_t::op, and OP_store.
Referenced by OP_Interferes_With_Vector().
| TN* Vector_Offset_TN | ( | vector_info_t * | v, | |
| INT | index | |||
| ) | [inline] |
Definition at line 323 of file vector_loadstore.cxx.
References vector_info_t::op, and OP_Offset_TN().
Referenced by Add_To_Vector(), Emit_Vector(), OP_Interferes_With_Vector(), Vector_Can_Add_Op(), and Vector_Offset_Value().
| INT Vector_Offset_Value | ( | vector_info_t * | v, | |
| INT | index | |||
| ) | [inline] |
Definition at line 328 of file vector_loadstore.cxx.
References TN_value, and Vector_Offset_TN().
Referenced by Find_Gap_In_Vector(), and Vector_Is_Possible().
| TN* Vector_Storeval_TN | ( | vector_info_t * | v, | |
| INT | index | |||
| ) | [inline] |
Definition at line 333 of file vector_loadstore.cxx.
References vector_info_t::op, and OP_Storeval_TN().
Referenced by Emit_Vector(), and Vector_Can_Add_Op().
INT num_vectors = 0 [static] |
Definition at line 40 of file vector_loadstore.cxx.
Referenced by Create_Vector_Load_Stores(), Emit_Vector(), PROJECTED_KERNEL::Project(), and PF_LG::Volume().
BOOL tracing = FALSE [static] |
Definition at line 39 of file vector_loadstore.cxx.
std::map<TOP, TOP> V2InstructionMap [static] |
Definition at line 41 of file vector_loadstore.cxx.
Referenced by Choose_Vector_Opcode(), Create_Vector_Load_Stores(), and Create_VInstruction_Maps().
std::map<TOP, TOP> V4InstructionMap [static] |
Definition at line 42 of file vector_loadstore.cxx.
Referenced by Choose_Vector_Opcode(), Create_Vector_Load_Stores(), and Create_VInstruction_Maps().
1.5.6