add main, fix warnings not intended
[cparser] / driver / firm_cmdline.c
index 1a578cb..d15e13f 100644 (file)
@@ -58,6 +58,7 @@ struct a_firm_opt firm_opt = {
   /* deconv          = */ FALSE,
   /* cc_opt          = */ TRUE,
   /* bool_opt        = */ FALSE,
+  /* end_melt        = */ FALSE,
   /* freestanding;   = */ FALSE,
   /* fp_model        = */ fp_model_precise,
   /* lower_ll        = */ FALSE,
@@ -158,11 +159,11 @@ static const struct params {
   { X("no-scalar-replace"),      &firm_opt.scalar_replace,   0, "firm: disable scalar replacement" },
   { X("confirm"),                &firm_opt.confirm,          1, "firm: enable Confirm optimization" },
   { X("no-confirm"),             &firm_opt.confirm,          0, "firm: disable Confirm optimization" },
-  { X("opt-mul"),                &firm_opt.muls,             0, "firm: enable multiplication optimization" },
+  { X("opt-mul"),                &firm_opt.muls,             1, "firm: enable multiplication optimization" },
   { X("no-opt-mul"),             &firm_opt.muls,             0, "firm: disable multiplication optimization" },
-  { X("opt-div"),                &firm_opt.divs,             0, "firm: enable division optimization" },
+  { X("opt-div"),                &firm_opt.divs,             1, "firm: enable division optimization" },
   { X("no-opt-div"),             &firm_opt.divs,             0, "firm: disable division optimization" },
-  { X("opt-mod"),                &firm_opt.mods,             0, "firm: enable remainder optimization" },
+  { X("opt-mod"),                &firm_opt.mods,             1, "firm: enable remainder optimization" },
   { X("no-opt-mod"),             &firm_opt.mods,             0, "firm: disable remainder optimization" },
   { X("opt-fragile-ops"),        &firm_opt.fragile_ops,      1, "firm: enable fragile ops optimization" },
   { X("no-opt-fragile-ops"),     &firm_opt.fragile_ops,      0, "firm: disable fragile ops optimization" },
@@ -198,6 +199,8 @@ static const struct params {
   { X("no-opt-cc"),              &firm_opt.cc_opt,           0, "firm: disable calling conventions optimization" },
   { X("bool"),                   &firm_opt.bool_opt,         1, "firm: enable bool simplification optimization" },
   { X("no-bool"),                &firm_opt.bool_opt,         0, "firm: disable bool simplification optimization" },
+  { X("end-melt"),               &firm_opt.end_melt,         1, "firm: enable end block melting" },
+  { X("no-end-melt"),            &firm_opt.end_melt,         0, "firm: disable end block melting" },
   { X("freestanding"),           &firm_opt.freestanding,     1, "firm: freestanding environment" },
   { X("hosted"),                 &firm_opt.freestanding,     0, "firm: hosted environment" },
 
@@ -323,6 +326,7 @@ static void disable_opts(void) {
   firm_opt.deconv          = FALSE;
   firm_opt.cc_opt          = FALSE;
   firm_opt.bool_opt        = FALSE;
+  firm_opt.end_melt        = FALSE;
   firm_opt.freestanding    = TRUE;
 }  /* disable_opts */