diff options
| author | Shinya Sato <shinnya.sato@gmail.com> | 2022-03-03 21:19:17 +0900 |
|---|---|---|
| committer | Shinya Sato <shinnya.sato@gmail.com> | 2022-03-03 21:19:17 +0900 |
| commit | 36edc3d8aef1527aa2b142289bc73e58c60798bc (patch) | |
| tree | 826a732ecd23fab107f9ddd113188692f2cc8d97 /src/config.h | |
| parent | a92f82fc0c1086e52952203728078efd0feac721 (diff) | |
| parent | 350f8ee62029d4441ba08da9d96d0e15d5517b34 (diff) | |
| download | inpla-36edc3d8aef1527aa2b142289bc73e58c60798bc.tar.gz inpla-36edc3d8aef1527aa2b142289bc73e58c60798bc.zip | |
Merge branch 'develop'
Diffstat (limited to '')
| -rw-r--r-- | src/config.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/config.h b/src/config.h new file mode 100644 index 0000000..0a46711 --- /dev/null +++ b/src/config.h @@ -0,0 +1,65 @@ +// Configurations --------------------------------------------------- + +/* Heaps ------------------------------------------ + Choose one among the following three definitions: + -------------------------------------------------- */ +#define FLEX_EXPANDABLE_HEAP // Inserted heaps size can be flexible. +//#define EXPANDABLE_HEAP // Expandable heaps for agents and names +//#define FIXED_HEAP // The heap size is fixed. (Default) + + +#ifdef EXPANDABLE_HEAP +// HOOP_SIZE must be two to power +#define HOOP_SIZE (1 << 18) +#endif + + + + +/* Optimisation ------------------------------------ + Comment out definitions if not needed. + ------------------------------------------------- */ + +// Optimisation inspired by Tail Recursion Optimisation +#define OPTIMISE_IMCODE_TRO + + +// Optimisation of the intermediate codes +/* + * Assign registers as little as possible with expecting cache works. + * Copy propagation and Dead code elimination for LOAD are performed. + * Reg0 is used as a special one that stores results of comparison. + * Some combinations are rewritten. + For instance, `SUBI src $1 dest' becomes `DEC src dest'. +*/ +#define OPTIMISE_IMCODE + + +#ifdef OPTIMISE_IMCODE +// Furthermore optimisations for codes: +// the following can work when the OPTIMISE_IMCODE is defined: + + +// Generate virtual machine codes with two-address notation +#define OPTIMISE_TWO_ADDRESS + +#ifdef OPTIMISE_TWO_ADDRESS +#define OPTIMISE_TWO_ADDRESS_MKAGENT1 // For MKAGENT1 +#define OPTIMISE_TWO_ADDRESS_MKAGENT2 // For MKAGENT2 +#define OPTIMISE_TWO_ADDRESS_MKAGENT3 // For MKAGENT3 +//#define OPTIMISE_TWO_ADDRESS_UNARY // For Unary operator like INC, DEC +#endif + + +#endif +// END Optimisation configuration -------------- + + +#define COUNT_INTERACTION // Count interaction. + + + + +//#define VERBOSE_NODE_USE // Put memory usage of agents and names. +//#define VERBOSE_HOOP_EXPANSION // Put messages when hoops are expanded. +//#define VERBOSE_EQSTACK_EXPANSION // Put messages when Eqstacks are expanded. |
