-#include "firm_types.h"
-/**
- * A type telling where to add hidden parameters.
- */
-typedef enum add_hidden_params {
- ADD_HIDDEN_ALWAYS_IN_FRONT = 0, /**< always add hidden parameters in front (default). */
- ADD_HIDDEN_ALWAYS_LAST = 1, /**< always add hidden parameters last, did not work for variadic functions. */
- ADD_HIDDEN_SMART = 2 /**< add hidden parameters last for non-variadic and first for variadic functions. */
-} add_hidden;
-
-/**
- * Additional flags for the lowering.
- */
-enum lowering_flags {
- LF_NONE = 0, /**< no additional flags */
- LF_COMPOUND_PARAM = 1, /**< lower calls with compound parameters */
- LF_COMPOUND_RETURN = 2, /**< lower calls with compound returns */
- LF_RETURN_HIDDEN = 4, /**< return the hidden address instead of void */
- LF_SMALL_CMP_IN_REGS = 8 /**< return small compound values in registers */
-};
-
-/** Maximum number of registers that can be used to return compound values. */
-#define MAX_REGISTER_RET_VAL 2
-
-/**
- * A struct containing all control parameters for
- * lower_compound_ret_calls().
- */
-typedef struct {
- int def_ptr_alignment; /**< Default alignment for data pointer. */
- unsigned flags; /**< A bitmask of enum lowering_flags. */
- add_hidden hidden_params; /**< Where to add hidden parameters. */