diff options
Diffstat (limited to 'passes/cmds/glift.cc')
-rw-r--r-- | passes/cmds/glift.cc | 76 |
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"); |