SSAReconstruct.xcc

Sebastian Hack (sebastian.hackens-lyon.fr). Quentin Colombet (quentin.colombetens-lyon.fr).

Copyright 2002 - 2007 STMicroelectronics.

This program is free software; you can redistribute it and/or modify it under the terms of either (at your option): the GNU General Public License (GPL) version 2; the GNU Lesser General Public License (LGPL) version 2.1; any later version of these licences as published by the Free Software Foundation.

OperationArgumentList_memory— This OperationArgumentList memory.
static inline Memory
OperationArgumentList_memory(const_OperationArgumentList this)
{
  return OperationArgumentList_MEMORY(this);
}

OperationArgumentList_isEmpty -- True iff this OperationArgumentList is empty. OperationArgumentList_isSingle -- True iff this OperationArgumentList has a single entry.

#define OperationArgumentList_isEmpty(this)     IDList_isEmpty(OperationArgumentList____(this))
#define OperationArgumentList_isSingle(this)    IDList_isSingle(OperationArgumentList____(this))
OperationArgumentList_count— Count items in the OperationArgumentList.
Return
The count of items in the OperationArgumentList.
static inline int32_t
OperationArgumentList_count(const_OperationArgumentList this) {
  return OperationArgumentList_COUNT(this);
}
OperationArgumentList_firstItem— First item of the OperationArgumentList.
Return
Pointer to the firstItem.
static inline OperationArgument
OperationArgumentList_firstItem(const_OperationArgumentList this) {
  return (OperationArgument)OperationArgumentList_FIRSTITEM(this);
}
OperationArgumentList_lastItem— Last item of the OperationArgumentList.
Return
Pointer to the lastItem.
static inline OperationArgument
OperationArgumentList_lastItem(const_OperationArgumentList this) {
  return (OperationArgument)OperationArgumentList_LASTITEM(this);
}
OperationArgumentList_FOREACH_OperationArgument— Iterate from firstItem to lastItem OperationArgument.

Exiting OperationArgumentList_FOREACH_OperationArgument with +break+ or +return+ is allowed.

+iter+
OperationArgument set to each item.
#define OperationArgumentList_FOREACH_OperationArgument(this, opAndIdx) { \
  IDList_FOREACH(OperationArgumentList____(this), OperationArgument_, opAndIdx) {
#define OperationArgumentList_FOREACH_SYNC IDList_FOREACH_SYNC
#define OperationArgumentList_ENDEACH_OperationArgument \
  } IDList_ENDEACH; \
}
OperationArgumentList_FORBACK_OperationArgument— Iterate from lastItem to firstItem OperationArgument.

Exiting OperationArgumentList_FORBACK with +break+ or +return+ is allowed.

+iter+
OperationArgument set to each item.
#define OperationArgumentList_FORBACK_OperationArgument(this, opAndIdx) { \
  IDList_FORBACK(OperationArgumentList____(this), OperationArgument_, opAndIdx) {
#define OperationArgumentList_ENDBACK_OperationArgument \
  } IDList_ENDBACK; \
}
OperationArgumentList_push— Make and push an item as lastItem on the OperationArgumentList.
Return
The pushed OperationArgument.
static inline OperationArgument
OperationArgumentList_push(OperationArgumentList this) {
  return (OperationArgument)IDList_push(OperationArgumentList____(this), sizeof(OperationArgument_));
}
OperationArgumentList_PUSH— Macro used to OperationArgumentList_push value types.
#define OperationArgumentList_PUSH(this, value) \
  IDList_PUSH(OperationArgumentList____(this), OperationArgument_, value)
OperationArgumentList_put— Make and put an item as firstItem on the OperationArgumentList.
+itemSize+
The item size in bytes.
Return
The put OperationArgument.
static inline OperationArgument
OperationArgumentList_put(OperationArgumentList this) {
  return (OperationArgument)IDList_put(OperationArgumentList____(this), sizeof(OperationArgument_));
}
OperationArgumentList_insert— Make and insert an item before a given item on the OperationArgumentList.
+before+
The item to insert before.
Return
The inserted OperationArgument.
static inline OperationArgument
OperationArgumentList_insert(OperationArgumentList this, OperationArgument before) {
  return (OperationArgument)IDList_insert(OperationArgumentList____(this), before, sizeof(OperationArgument_));
}
OperationArgumentList_append— Make and append an item after a given item on the OperationArgumentList.
+after+
The item to append after.
Return
The inserted OperationArgument.
static inline OperationArgument
OperationArgumentList_append(OperationArgumentList this, OperationArgument after) {
  return (OperationArgument)IDList_append(OperationArgumentList____(this), after, sizeof(OperationArgument_));
}
OperationArgumentList_pop— Pop and release the lastItem OperationArgumentList item.
static inline void
OperationArgumentList_pop(OperationArgumentList this, IDListItemRelease release) {
  IDList_pop(OperationArgumentList____(this), release);
}
OperationArgumentList_drop— Drop and release the firstItem OperationArgumentList item.
static inline void
OperationArgumentList_drop(OperationArgumentList this, IDListItemRelease release) {
  IDList_drop(OperationArgumentList____(this), release);
}
OperationArgumentList_remove— Remove and release an item from this OperationArgumentList.
static inline void
OperationArgumentList_remove(OperationArgumentList this, OperationArgument item, IDListItemRelease release) {
  IDList_remove(OperationArgumentList____(this), item, release);
}
OperationArgumentList_rotate— Rotate the list so that item at +index+ becomes firstItem (index 0).
static inline void
OperationArgumentList_rotate(OperationArgumentList this, int32_t index) {
  IDList_rotate(OperationArgumentList____(this), index);
}
OperationResultList_memory— This OperationResultList memory.
static inline Memory
OperationResultList_memory(const_OperationResultList this)
{
  return OperationResultList_MEMORY(this);
}

OperationResultList_isEmpty -- True iff this OperationResultList is empty. OperationResultList_isSingle -- True iff this OperationResultList has a single entry.

#define OperationResultList_isEmpty(this)       IDList_isEmpty(OperationResultList____(this))
#define OperationResultList_isSingle(this)      IDList_isSingle(OperationResultList____(this))
OperationResultList_count— Count items in the OperationResultList.
Return
The count of items in the OperationResultList.
static inline int32_t
OperationResultList_count(const_OperationResultList this) {
  return OperationResultList_COUNT(this);
}
OperationResultList_firstItem— First item of the OperationResultList.
Return
Pointer to the firstItem.
static inline OperationResult
OperationResultList_firstItem(const_OperationResultList this) {
  return (OperationResult)OperationResultList_FIRSTITEM(this);
}
OperationResultList_lastItem— Last item of the OperationResultList.
Return
Pointer to the lastItem.
static inline OperationResult
OperationResultList_lastItem(const_OperationResultList this) {
  return (OperationResult)OperationResultList_LASTITEM(this);
}
OperationResultList_FOREACH_OperationResult— Iterate from firstItem to lastItem OperationResult.

Exiting OperationResultList_FOREACH_OperationResult with +break+ or +return+ is allowed.

+iter+
OperationResult set to each item.
#define OperationResultList_FOREACH_OperationResult(this, opAndIdx) { \
  IDList_FOREACH(OperationResultList____(this), OperationResult_, opAndIdx) {
#define OperationResultList_FOREACH_SYNC IDList_FOREACH_SYNC
#define OperationResultList_ENDEACH_OperationResult \
  } IDList_ENDEACH; \
}
OperationResultList_FORBACK_OperationResult— Iterate from lastItem to firstItem OperationResult.

Exiting OperationResultList_FORBACK with +break+ or +return+ is allowed.

+iter+
OperationResult set to each item.
#define OperationResultList_FORBACK_OperationResult(this, opAndIdx) { \
  IDList_FORBACK(OperationResultList____(this), OperationResult_, opAndIdx) {
#define OperationResultList_ENDBACK_OperationResult \
  } IDList_ENDBACK; \
}
OperationResultList_push— Make and push an item as lastItem on the OperationResultList.
Return
The pushed OperationResult.
static inline OperationResult
OperationResultList_push(OperationResultList this) {
  return (OperationResult)IDList_push(OperationResultList____(this), sizeof(OperationResult_));
}
OperationResultList_PUSH— Macro used to OperationResultList_push value types.
#define OperationResultList_PUSH(this, value) \
  IDList_PUSH(OperationResultList____(this), OperationResult_, value)
OperationResultList_put— Make and put an item as firstItem on the OperationResultList.
+itemSize+
The item size in bytes.
Return
The put OperationResult.
static inline OperationResult
OperationResultList_put(OperationResultList this) {
  return (OperationResult)IDList_put(OperationResultList____(this), sizeof(OperationResult_));
}
OperationResultList_insert— Make and insert an item before a given item on the OperationResultList.
+before+
The item to insert before.
Return
The inserted OperationResult.
static inline OperationResult
OperationResultList_insert(OperationResultList this, OperationResult before) {
  return (OperationResult)IDList_insert(OperationResultList____(this), before, sizeof(OperationResult_));
}
OperationResultList_append— Make and append an item after a given item on the OperationResultList.
+after+
The item to append after.
Return
The inserted OperationResult.
static inline OperationResult
OperationResultList_append(OperationResultList this, OperationResult after) {
  return (OperationResult)IDList_append(OperationResultList____(this), after, sizeof(OperationResult_));
}
OperationResultList_pop— Pop and release the lastItem OperationResultList item.
static inline void
OperationResultList_pop(OperationResultList this, IDListItemRelease release) {
  IDList_pop(OperationResultList____(this), release);
}
OperationResultList_drop— Drop and release the firstItem OperationResultList item.
static inline void
OperationResultList_drop(OperationResultList this, IDListItemRelease release) {
  IDList_drop(OperationResultList____(this), release);
}
OperationResultList_remove— Remove and release an item from this OperationResultList.
static inline void
OperationResultList_remove(OperationResultList this, OperationResult item, IDListItemRelease release) {
  IDList_remove(OperationResultList____(this), item, release);
}
OperationResultList_contains— Test if this OperationResultList contains the given OperationResult.
static inline bool
OperationResultList_contains(const_OperationResultList this, OperationResult item) {
  return IDList_contains(OperationResultList____(this), item);
}
OperationResultList_transfer— Transfer all items from this OperationResultList at the end of that OperationResultList.
static inline void
OperationResultList_transfer(OperationResultList this, OperationResultList that) {
  IDList_transfer(OperationResultList____(this), OperationResultList____(that));
}
OperationResultList_sort— Sort this OperationResultList according to the +compare+ compare function.
Return
False iff this IDList was already sorted.
static inline bool
OperationResultList_sort(OperationResultList this, IDListItemCompare compare) {
   return IDList_sort(OperationResultList____(this), compare);
}

Set the definition Index references a temporary only in results

void
DefUses_setDef(DefUses this, struct Operation_*def, int32_t index);

Add the usage represented by use operation and index to the list of uses. Index references a temporary only in arguments Post: this.USES = this.USES@pre->including(OperationArgument(use, index))

void
DefUses_addUse(DefUses this, struct Operation_*use, int32_t index);

Add the usage represented by use operation and index to the list of uses iff it was not already in the list. Index references a temporary only in arguments Post: this.USES = this.USES@pre->including(OperationArgument(use, index)) Return true if element has been added, false if it already inside

bool
DefUses_addUniqueUse(DefUses this, struct Operation_*use, int32_t index);

Remove the usage represented by use operation and index. Post: result = true implies let usage = this.USES->any(it | it.OPERATION = use and it.INDEX = index) in this.USES = this.USES@pre->excluding(usage) Return: True if such usage has been found, false otherwise

bool
DefUses_removeUse(DefUses this, struct Operation_*use, int32_t index);

printArgIdx is here for backward compatibility. We should remove it when we update tests references.

bool
DefUses_pretty(DefUses this, FILE* file, bool printArgIdx);