# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-EXTRACT_ALL = no
+EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
# hierarchy of group names into alphabetical order. If set to NO (the default)
# the group names will appear in their defined order.
-SORT_GROUP_NAMES = NO
+SORT_GROUP_NAMES = YES
# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
# sorted by fully-qualified names, including namespaces. If set to
#include "../begin.h"
+/**
+ * @ingroup adt
+ * @defgroup plist pointer lists (deprecated)
+ * @{
+ */
+
typedef struct plist_element plist_element_t;
typedef struct plist plist_t;
#define foreach_plist(list, el) \
for (el = plist_first(list); el; el = plist_element_get_next(el))
+/** @} */
+
#include "../end.h"
#endif
/**
* Returns the value of "key".
- * This is a wrapper for pmap_get(pmap *map); It allows to express the
+ * This is a wrapper for pmap_get(map, key); It allows to express the
* intended type of the set elements (instead of weakly typed void*).
*/
#define pmap_get(type, map, key) ((type*)pmap_get(map, key))
/**
* Returns the first element of a pset.
- * This is a wrapper for pset_first(pmap *map); It allows to express the
+ * This is a wrapper for pset_first(set); It allows to express the
* intended type of the set elements (instead of weakly typed void*).
*
* @param type destination type of the pointers in the set
/**
* Returns the next element of a pset.
- * This is a wrapper for pset_next(pmap *map); It allows to express the
+ * This is a wrapper for pset_next(set); It allows to express the
* intended type of the set elements (instead of weakly typed void*).
*
* @param type destination type of the pointers in the set
/**
* Returns the first element of a set.
- * This is a wrapper for set_first(set *set); It allows to express the
+ * This is a wrapper for set_first(set); It allows to express the
* intended type of the set elements (instead of weakly typed void*).
*
* @param set the set to iterate
/**
* Returns the next element of a set.
- * This is a wrapper for set_next(set *set); It allows to express the
+ * This is a wrapper for set_next(set); It allows to express the
* intended type of the set elements (instead of weakly typed void*).
*
* @param set the set to iterate
#include "firm_types.h"
#include "begin.h"
+/**
+ * @defgroup initalization Library Initialization
+ * The functions in this section deal with initialization and deinitalization
+ * of the libFirm library.
+ * @{
+ */
+
/**
* Initializes the firm library. Allocates default data structures.
*/
FIRM_API const char *ir_get_version_build(void);
/**
- * a list of firm kinds
+ * A list of firm kinds.
* Most important datastructures in firm contain a firm_kind field at the
* beginning so given void* pointer you can usually still guess the kind
* of thing the pointer points to.
* This is used in debug helper functions and printers.
*/
-typedef enum {
+typedef enum firm_kind {
k_BAD = 0, /**< An invalid firm node. */
k_entity, /**< An entity. */
k_type, /**< A type. */
*/
FIRM_API firm_kind get_kind(const void *firm_thing);
+/** @} */
+
#include "end.h"
#endif
#include "firm_types.h"
#include "begin.h"
+/**
+ * @addtogroup iroptimize
+ * @{
+ */
+
/**
* The Multiplication replacement can consist of the following instructions.
*/
-typedef enum instr {
+typedef enum insn_kind {
LEA, /**< the LEA instruction */
SHIFT, /**< the SHIFT instruction */
SUB, /**< the SUB instruction */
/**
* Optimization flags.
*/
-typedef enum {
+typedef enum arch_dep_opts_t {
arch_dep_none = 0,
- arch_dep_mul_to_shift = 1, /**< optimize Mul into Shift/Add/Sub */
- arch_dep_div_by_const = 2, /**< optimize Div into Shift/Add/Mulh */
- arch_dep_mod_by_const = 4 /**< optimize Mod into Shift/Add/Mulh */
+ arch_dep_mul_to_shift = 1u << 0, /**< optimize Mul into Shift/Add/Sub */
+ arch_dep_div_by_const = 1u << 1, /**< optimize Div into Shift/Add/Mulh */
+ arch_dep_mod_by_const = 1u << 2 /**< optimize Mod into Shift/Add/Mulh */
} arch_dep_opts_t;
ENUM_BITSET(arch_dep_opts_t)
/**
* Sets the optimizations that shall be applied.
- * @param opts An optimization bit mask.
+ * @param opts An optimization bit mask.
*/
FIRM_API void arch_dep_set_opts(arch_dep_opts_t opts);
*/
FIRM_API ir_node *arch_dep_replace_mod_by_const(ir_node *irn);
+/** @} */
+
#include "end.h"
#endif
} loop_element;
/** Tests whether a given pointer points to a loop.
- * @note only works reliably if @p thing points to something with a #firm_kind
+ * @note only works reliably if @p thing points to something with a ::firm_kind
* header */
FIRM_API int is_ir_loop(const void *thing);
* An enum for the type kinds.
* For each type kind exists a typecode to identify it.
*/
-typedef enum {
+typedef enum tp_opcode {
tpo_uninitialized = 0, /* not a type opcode */
tpo_class, /**< A class type. */
tpo_struct, /**< A struct type. */