osprey/be/cg/NVISA/vector_loadstore.cxx File Reference

#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"

Include dependency graph for vector_loadstore.cxx:

Go to the source code of this file.

Data Types

type  vector_info_t

Functions/Subroutines

static void Create_VInstruction_Maps (void)
static void Print_Vector (vector_info_t *v)
void Clear_Vector (vector_info_t *v)
BOOL Vector_Is_Empty (vector_info_t *v)
void Start_Vector (vector_info_t *v, OP *op)
BOOL Vector_Is_Load (vector_info_t *v)
BOOL Vector_Is_Store (vector_info_t *v)
TNOP_Qualifier_TN (OP *op)
TNOP_Space_TN (OP *op)
TNOP_Base_TN (OP *op)
TNOP_Offset_TN (OP *op)
TNOP_Storeval_TN (OP *op)
TNVector_Base_TN (vector_info_t *v)
TNVector_Offset_TN (vector_info_t *v, INT index)
INT Vector_Offset_Value (vector_info_t *v, INT index)
TNVector_Storeval_TN (vector_info_t *v, INT index)
void Add_To_Vector (vector_info_t *v, OP *op)
static TOP Choose_Vector_Opcode (vector_info_t *v)
static INT Sizeof_Load_Store (OP *op)
INT Find_Gap_In_Vector (vector_info_t *v, INT start, INT end)
static STGet_Vector_Symbol (vector_info_t *v)
static TY_IDX Get_Vector_Type (vector_info_t *v)
static BOOL Vector_Is_Possible (vector_info_t *v)
static OPEarliest_Vector_Op (vector_info_t *v)
static OPLatest_Vector_Op (vector_info_t *v)
static void Emit_Vector (vector_info_t *v)
static BOOL Vector_Can_Add_Op (vector_info_t *v, OP *op)
static BOOL Is_Potential_Load_Or_Store (OP *op)
static BOOL OP_Interferes_With_Vector (OP *op, vector_info_t *v)
void Create_Vector_Load_Stores (void)

Variables

static BOOL tracing = FALSE
static INT num_vectors = 0
static std::map< TOP, TOP > V2InstructionMap
static std::map< TOP, TOP > V4InstructionMap


Function Documentation

void Add_To_Vector ( vector_info_t v,
OP op 
) [inline]

static TOP Choose_Vector_Opcode ( vector_info_t v  )  [static]

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().

void Create_Vector_Load_Stores ( void   ) 

static void Create_VInstruction_Maps ( void   )  [static]

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]

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]

static BOOL Is_Potential_Load_Or_Store ( OP op  )  [inline, static]

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().

TN* OP_Base_TN ( OP op  )  [inline]

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]

TN* OP_Offset_TN ( OP op  )  [inline]

TN* OP_Qualifier_TN ( OP op  )  [inline]

Definition at line 292 of file vector_loadstore.cxx.

References OP_opnd.

Referenced by Emit_Vector(), and Vector_Can_Add_Op().

TN* OP_Space_TN ( OP op  )  [inline]

Definition at line 297 of file vector_loadstore.cxx.

References OP_opnd.

Referenced by Is_Potential_Load_Or_Store(), and OP_Interferes_With_Vector().

TN* OP_Storeval_TN ( OP op  )  [inline]

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]

static INT Sizeof_Load_Store ( OP op  )  [static]

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]

static BOOL Vector_Can_Add_Op ( vector_info_t v,
OP op 
) [static]

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]

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]

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().


Variable Documentation

INT num_vectors = 0 [static]

BOOL tracing = FALSE [static]

Definition at line 39 of file vector_loadstore.cxx.

std::map<TOP, TOP> V2InstructionMap [static]

std::map<TOP, TOP> V4InstructionMap [static]


Generated on Wed Apr 8 14:28:20 2009 for Open64 by  doxygen 1.5.6