enum an_os_support {
OS_SUPPORT_LINUX, /**< create code for Linux OS */
- OS_SUPPORT_MINGW /**< create code for MinGW WIN32 */
+ OS_SUPPORT_MINGW, /**< create code for MinGW WIN32 */
+ OS_SUPPORT_MACHO /**< create code for MacOS Mach-O */
} an_os_support;
enum a_debug_mode {
a_byte reassoc; /**< enable reassociation */
a_byte cse; /**< enable common-subexpression elimination */
a_byte control_flow; /**< enable control flow optimizations */
- a_byte code_place; /**< enable global common-subexpression elimination
- and code placement */
+ a_byte combo; /**< enable combined CCE, UCE and GVN */
+ a_byte gcse; /**< enable global common-subexpression elimination */
a_byte gvn_pre; /**< enable global common-subexpression elimination
and partial redundancy elimination */
a_byte cond_eval; /**< enable condition evaluation */
a_byte precise_exc; /**< use precise exception context */
a_byte use_DivMod; /**< use DivMod nodes */
a_byte remove_unused; /**< remove unused functions */
- a_byte jmp_tbls; /**< create jump table for switch */
a_byte cloning; /**< enable procedure cloning */
a_byte auto_sync; /**< automatically create Sync nodes */
a_byte alias_analysis; /**< enable Alias Analysis */
a_byte strict_alias; /**< enable strict Alias Analysis (using type based AA) */
a_byte no_alias; /**< no aliasing possible. */
- a_byte luffig; /**< enable fluffy load/store optimization */
+ a_byte sync; /**< use Syncs to remove unnecessary memory dependencies */
a_byte deconv; /**< enable conv node optimization */
a_byte cc_opt; /**< optimize calling conventions */
a_byte bool_opt; /**< perform bool simplification */
+ a_byte shape_blocks; /**< block shaping */
a_byte freestanding; /**< if set, freestanding mode is enabled */
a_byte fp_model; /**< fp model */
a_byte lower_ll; /**< lower double word access */
char *ycomp_host; /**< The host, yComp is running on */
int ycomp_port; /**< The port, yComp is listening on */
int clone_threshold; /**< The threshold value for procedure cloning. */
+ unsigned inline_maxsize; /**< Maximum function size for inlining. */
+ unsigned inline_threshold;/**< Inlining benefice threshold. */
a_byte vrfy_edges; /**< verify edges */
a_byte grs_simd_opt;
a_byte grs_create_pattern;
extern struct a_firm_ext_grs firm_ext_grs;
-/**
- * prints the firm version number
- */
-void print_firm_version(FILE *f);
-
/**
* called by the generic command line parser
* to handle the --firm= or -f options