libxmp/libxmpf in Omni Compiler
1.3.4
|
Go to the documentation of this file.
12 #define _SortedChunkTableInitSize 256
14 #define DIV_CEILING(m,n) (((m)-1)/(n)+1)
16 #define forallMemoryChunkOrder(cp) for(MemoryChunkOrder_t *_cp1_=((cp)=_mallocStack.head->next)->next; \
18 (cp)=_cp1_, _cp1_=_cp1_->next)
20 #define forallMemoryChunkOrderRev(cp) for(MemoryChunkOrder_t *_cp1_=((cp)=_mallocStack.tail->prev)->prev; \
22 (cp)=_cp1_, _cp1_=_cp1_->prev)
25 #define forallResourceSet(rs) for(ResourceSet_t *_rs1_=((rs)=_headResourceSet->next)->next; \
27 (rs)=_rs1_, _rs1_=_rs1_->next)
29 #define forallResourceSetRev(rs) for(ResourceSet_t *_rs1_=((rs)=_tailResourceSet->prev)->prev; \
31 (rs)=_rs1_, _rs1_=_rs1_->prev)
33 #define forallMemoryChunk(chk,rs) for(MemoryChunk_t *_chk1_=((chk)=(rs)->headChunk->next)->next; \
35 (chk)=_chk1_, _chk1_=_chk1_->next)
37 #define forallMemoryChunkRev(chk,rs) for(MemoryChunk_t *_chk1_=((chk)=(rs)->tailChunk->prev)->prev; \
39 (chk) = _chk1_, _chk1_=_chk1_->prev)
41 #define forallCoarrayInfo(ci,chk) for(CoarrayInfo_t *_ci1_ = ((ci)=(chk)->headCoarray->next)->next; \
43 (ci) = _ci1_, _ci1_=_ci1_->next)
45 #define IsFirstCoarrayInfo(ci) ((ci)->prev->prev == NULL)
46 #define IsLastCoarrayInfo(ci) ((ci)->next->next == NULL)
47 #define IsOnlyCoarrayInfo(ci) (IsFirstCoarrayInfo(ci) && IsLastCoarrayInfo(ci))
49 #define IsFirstMemoryChunk(chk) ((chk)->prev->prev == NULL)
50 #define IsLastMemoryChunk(chk) ((chk)->next->next == NULL)
51 #define IsEmptyMemoryChunk(chk) ((chk)->headCoarray->next->next == NULL)
53 #define IsEmptyResourceSet(rs) ((rs)->headChunk->next->next == NULL)
MEMORY MANAGEMENT STRUCTURE-I (for automatic deallocation) runtime resource corresponding to a proced...
Definition: _xmpco_alloc.h:64
MEMORY MANAGEMENT STRUCTURE-III (for binary search for memory chunk) table of memory chunks sorted in...
Definition: _xmpco_alloc.h:121
size_t nbytes
Definition: _xmpco_alloc.h:82
MemoryChunk_t * chunk
Definition: _xmpco_alloc.h:114
int corank
Definition: _xmpco_alloc.h:99
char * name
Definition: _xmpco_alloc.h:65
CoarrayInfo_t * headCoarray
Definition: _xmpco_alloc.h:84
MemoryChunkOrder_t * prev
Definition: _xmpco_alloc.h:112
char * baseAddr
Definition: _xmpco_alloc.h:97
size_t size
Definition: _xmpco_alloc.h:98
BOOL isGarbage
Definition: _xmpco_alloc.h:80
CoarrayInfo_t * tailCoarray
Definition: _xmpco_alloc.h:85
void * desc
Definition: _xmpco_alloc.h:83
MemoryChunk_t * tailChunk
Definition: _xmpco_alloc.h:67
char * name
Definition: _xmpco_alloc.h:96
ResourceSet_t * parent
Definition: _xmpco_alloc.h:79
CoarrayInfo_t * prev
Definition: _xmpco_alloc.h:93
int * cosize
Definition: _xmpco_alloc.h:102
#define BOOL
Definition: xmpco_internal.h:14
MemoryChunk_t * chunk
Definition: _xmpco_alloc.h:123
_XMP_nodes_t * nodes
Definition: _xmpco_alloc.h:103
char * orgAddr
Definition: _xmpco_alloc.h:81
MemoryChunk_t * headChunk
Definition: _xmpco_alloc.h:66
structure for each malloc/free call Every memory chunk is linked both:
Definition: _xmpco_alloc.h:76
MemoryChunk_t * next
Definition: _xmpco_alloc.h:78
MemoryChunkOrder_t * next
Definition: _xmpco_alloc.h:113
MEMORY MANAGEMENT STRUCTURE-II (for dynamic ALLOCATE/DEALLOCATE stmts.
Definition: _xmpco_alloc.h:111
Definition: xmp_data_struct.h:40
MemoryChunk_t * prev
Definition: _xmpco_alloc.h:77
CoarrayInfo_t * next
Definition: _xmpco_alloc.h:94
structure for each coarray variable One or more coarrays can be linked from a single memory chunk and...
Definition: _xmpco_alloc.h:92
unsigned long orgAddr
Definition: _xmpco_alloc.h:122
MemoryChunk_t * parent
Definition: _xmpco_alloc.h:95
int * lcobound
Definition: _xmpco_alloc.h:100
int * ucobound
Definition: _xmpco_alloc.h:101