aboutsummaryrefslogtreecommitdiffstats
path: root/passes/cmds/glift.cc
diff options
context:
space:
mode:
Diffstat (limited to 'passes/cmds/glift.cc')
-rw-r--r--passes/cmds/glift.cc76
1 files changed, 40 insertions, 36 deletions
diff --git a/passes/cmds/glift.cc b/passes/cmds/glift.cc
index b398c3e04..439ded076 100644
--- a/passes/cmds/glift.cc
+++ b/passes/cmds/glift.cc
@@ -431,45 +431,46 @@ struct GliftPass : public Pass {
log("\n");
log(" glift <command> [options] [selection]\n");
log("\n");
- log("Augments the current or specified module with gate-level information flow tracking\n");
- log("(GLIFT) logic using the \"constructive mapping\" approach. Also can set up QBF-SAT\n");
- log("optimization problems in order to optimize GLIFT models or trade off precision and\n");
- log("complexity.\n");
+ log("Augments the current or specified module with gate-level information flow \n");
+ log("tracking (GLIFT) logic using the \"constructive mapping\" approach. Also can set\n");
+ log("up QBF-SAT optimization problems in order to optimize GLIFT models or trade off\n");
+ log("precision and complexity.\n");
log("\n");
log("\n");
log("Commands:\n");
log("\n");
log(" -create-precise-model\n");
- log(" Replaces the current or specified module with one that has corresponding \"taint\"\n");
- log(" inputs, outputs, and internal nets along with precise taint tracking logic.\n");
- log(" For example, precise taint tracking logic for an AND gate is:\n");
+ log(" Replaces the current or specified module with one that has corresponding\n");
+ log(" \"taint\" inputs, outputs, and internal nets along with precise taint\n");
+ log(" tracking logic. For example, precise taint tracking logic for an AND gate\n");
+ log(" is:\n");
log("\n");
log(" y_t = a & b_t | b & a_t | a_t & b_t\n");
log("\n");
log("\n");
log(" -create-imprecise-model\n");
- log(" Replaces the current or specified module with one that has corresponding \"taint\"\n");
- log(" inputs, outputs, and internal nets along with imprecise \"All OR\" taint tracking\n");
- log(" logic:\n");
+ log(" Replaces the current or specified module with one that has corresponding\n");
+ log(" \"taint\" inputs, outputs, and internal nets along with imprecise \"All OR\"\n");
+ log(" taint tracking logic:\n");
log("\n");
log(" y_t = a_t | b_t\n");
log("\n");
log("\n");
log(" -create-instrumented-model\n");
- log(" Replaces the current or specified module with one that has corresponding \"taint\"\n");
- log(" inputs, outputs, and internal nets along with 4 varying-precision versions of taint\n");
- log(" tracking logic. Which version of taint tracking logic is used for a given gate is\n");
- log(" determined by a MUX selected by an $anyconst cell. By default, unless the\n");
- log(" `-no-cost-model` option is provided, an additional wire named `__glift_weight` with\n");
- log(" the `keep` and `minimize` attributes is added to the module along with pmuxes and\n");
- log(" adders to calculate a rough estimate of the number of logic gates in the GLIFT model\n");
- log(" given an assignment for the $anyconst cells. The four versions of taint tracking logic\n");
- log(" for an AND gate are:");
- log("\n");
- log(" y_t = a & b_t | b & a_t | a_t & b_t (like `-create-precise-model`)\n");
+ log(" Replaces the current or specified module with one that has corresponding\n");
+ log(" \"taint\" inputs, outputs, and internal nets along with 4 varying-precision\n");
+ log(" versions of taint tracking logic. Which version of taint tracking logic is\n");
+ log(" used for a given gate is determined by a MUX selected by an $anyconst cell.\n");
+ log(" By default, unless the `-no-cost-model` option is provided, an additional\n");
+ log(" wire named `__glift_weight` with the `keep` and `minimize` attributes is\n");
+ log(" added to the module along with pmuxes and adders to calculate a rough\n");
+ log(" estimate of the number of logic gates in the GLIFT model given an assignment\n");
+ log(" for the $anyconst cells. The four versions of taint tracking logic for an\n");
+ log(" AND gate are:\n");
+ log(" y_t = a & b_t | b & a_t | a_t & b_t (like `-create-precise-model`)\n");
log(" y_t = a_t | a & b_t\n");
log(" y_t = b_t | b & a_t\n");
- log(" y_t = a_t | b_t (like `-create-imprecise-model`)\n");
+ log(" y_t = a_t | b_t (like `-create-imprecise-model`)\n");
log("\n");
log("\n");
log("Options:\n");
@@ -479,27 +480,30 @@ struct GliftPass : public Pass {
log(" (default: label constants as un-tainted)\n");
log("\n");
log(" -keep-outputs\n");
- log(" Do not remove module outputs. Taint tracking outputs will appear in the module ports\n");
- log(" alongside the orignal outputs.\n");
+ log(" Do not remove module outputs. Taint tracking outputs will appear in the\n");
+ log(" module ports alongside the orignal outputs.\n");
log(" (default: original module outputs are removed)\n");
log("\n");
log(" -simple-cost-model\n");
- log(" Do not model logic area. Instead model the number of non-zero assignments to $anyconsts.\n");
- log(" Taint tracking logic versions vary in their size, but all reduced-precision versions are\n");
- log(" significantly smaller than the fully-precise version. A non-zero $anyconst assignment means\n");
- log(" that reduced-precision taint tracking logic was chosen for some gate.\n");
- log(" Only applicable in combination with `-create-instrumented-model`.\n");
- log(" (default: use a complex model and give that wire the \"keep\" and \"minimize\" attributes)\n");
+ log(" Do not model logic area. Instead model the number of non-zero assignments to\n");
+ log(" $anyconsts. Taint tracking logic versions vary in their size, but all\n");
+ log(" reduced-precision versions are significantly smaller than the fully-precise\n");
+ log(" version. A non-zero $anyconst assignment means that reduced-precision taint\n");
+ log(" tracking logic was chosen for some gate. Only applicable in combination with\n");
+ log(" `-create-instrumented-model`. (default: use a complex model and give that\n");
+ log(" wire the \"keep\" and \"minimize\" attributes)\n");
log("\n");
log(" -no-cost-model\n");
- log(" Do not model taint tracking logic area and do not create a `__glift_weight` wire.\n");
- log(" Only applicable in combination with `-create-instrumented-model`.\n");
- log(" (default: model area and give that wire the \"keep\" and \"minimize\" attributes)\n");
+ log(" Do not model taint tracking logic area and do not create a `__glift_weight`\n");
+ log(" wire. Only applicable in combination with `-create-instrumented-model`.\n");
+ log(" (default: model area and give that wire the \"keep\" and \"minimize\"\n");
+ log(" attributes)\n");
log("\n");
log(" -instrument-more\n");
- log(" Allow choice from more versions of (even simpler) taint tracking logic. A total\n");
- log(" of 8 versions of taint tracking logic will be added per gate, including the 4\n");
- log(" versions from `-create-instrumented-model` and these additional versions:\n");
+ log(" Allow choice from more versions of (even simpler) taint tracking logic. A\n");
+ log(" total of 8 versions of taint tracking logic will be added per gate,\n");
+ log(" including the 4 versions from `-create-instrumented-model` and these\n");
+ log(" additional versions:\n");
log("\n");
log(" y_t = a_t\n");
log(" y_t = b_t\n");