break;
}
-#ifndef PPTEST
case 'E': {
const expression_t* const expr = va_arg(ap, const expression_t*);
print_expression(expr);
print_type_ext(type, sym, NULL);
break;
}
-#endif
case 'K': {
const token_t* const token = va_arg(ap, const token_t*);
/* gvn_pre = */ FALSE, /* currently buggy */
/* cond_eval = */ FALSE,
/* if_conversion = */ FALSE,
- /* loop_unrolling = */ FALSE, /* currently buggy */
/* func_calls = */ TRUE,
/* do_inline = */ FALSE,
/* auto_inline = */ TRUE,
{ X("no-cond-eval"), &firm_opt.cond_eval, 0, "firm: disable partial condition evaluation optimization" },
{ X("if-conv"), &firm_opt.if_conversion, 1, "firm: enable if-conversion optimization" },
{ X("no-if-conv"), &firm_opt.if_conversion, 0, "firm: disable if-conversion optimization" },
- { X("opt-loop-unrolling"), &firm_opt.loop_unrolling, 1, "firm: enable loop-unrolling optimization" },
- { X("no-opt-loop-unrolling"), &firm_opt.loop_unrolling, 0, "firm: disable loop-unrolling optimization" },
{ X("opt-func-call"), &firm_opt.func_calls, 1, "firm: enable function call optimization" },
{ X("no-opt-func-call"), &firm_opt.func_calls, 0, "firm: disable function call optimization" },
{ X("reassociation"), &firm_opt.reassoc, 1, "firm: enable reassociation" },
firm_opt.gvn_pre = FALSE;
firm_opt.cond_eval = FALSE;
firm_opt.if_conversion = FALSE;
- firm_opt.loop_unrolling = FALSE;
firm_opt.func_calls = FALSE;
firm_opt.do_inline = FALSE;
firm_opt.auto_inline = FALSE;
and partial redundancy elimination */
a_byte cond_eval; /**< enable condition evaluation */
a_byte if_conversion; /**< enable if-conversion */
- a_byte loop_unrolling; /**< enable automatic loop unrolling */
a_byte func_calls; /**< enable function call optimization */
a_byte do_inline; /**< do automatic inlining */
a_byte auto_inline; /**< current automatic inlining state */
irg_verify(irg, VRFY_ENFORCE_SSA);
}
- if (firm_opt.loop_unrolling) {
- timer_push(TV_LOOP_UNROLL);
- optimize_loop_unrolling(irg);
- timer_pop();
- DUMP_ONE_C(firm_dump.ir_graph && firm_dump.all_phases, irg, "loop");
- CHECK_ONE(firm_opt.check_all, irg);
- }
-
if (firm_opt.load_store) {
timer_push(TV_LOAD_STORE);
optimize_load_store(irg);
/* fallthrough */
case 2:
firm_option("inline");
- firm_option("no-strength-red");
firm_option("deconv");
firm_be_option("omitfp");
break;
#set -x
WORKDIR="release"
-VERSION="0.9"
+VERSION="0.9.1"
RELEASEDIR="cparser-$VERSION"
FULLRELEASEDIR="$WORKDIR/$RELEASEDIR"
RELEASEFILE="cparser-$VERSION.tar.bz2"
#ifndef SYMBOL_H
#define SYMBOL_H
-typedef struct symbol_t symbol_t;
-typedef struct pp_definition pp_definition;
+typedef struct symbol_t symbol_t;
+typedef struct pp_definition_t pp_definition_t;
#endif
#define SYMBOL_T_H
#include <stdbool.h>
+#include "symbol.h"
#include "ast.h"
#include "token_t.h"
-struct pp_definition {
+struct pp_definition_t {
+ symbol_t *symbol;
source_position_t source_position;
- bool expanding;
+ pp_definition_t *parent_expansion;
+ size_t expand_pos;
+ size_t list_len;
token_t replacement_list[];
};
struct symbol_t {
- const char *string;
- unsigned short ID;
- unsigned short pp_ID;
- declaration_t *declaration;
- pp_definition *pp_define;
+ const char *string;
+ unsigned short ID;
+ unsigned short pp_ID;
+ declaration_t *declaration;
+ pp_definition_t *pp_definition;
};
#endif