@specs-feup/clava
Version:
A C/C++ source-to-source compiler written in Typescript
108 lines • 3.35 kB
TypeScript
import MemoiTarget from "./MemoiTarget.js";
declare class MemoiGen {
private _target;
private _isEmpty;
private _isOnline;
private _isUpdateAlways;
private _approxBits;
private _isProf;
private _profReportFiles;
private _tableSize;
private _isDebug;
private _applyPolicy;
private _isZeroSim;
private _isResetFunc;
constructor(target: MemoiTarget);
/**
* Sets whether to generate a reset function.
* */
setResetFunc(isResetFunc?: boolean): void;
/**
* Sets whether to generate code for a 0% sim.
* */
setZeroSim(isZeroSim?: boolean): void;
/**
* Sets whether to generate an empty table in the final application.
* */
setEmpty(isEmpty?: boolean): void;
/**
* Sets whether to generate update code in the final application.
* */
setOnline(isOnline?: boolean): void;
/**
* Sets whether to always update the table on a miss, even if not vacant.
* */
setUpdateAlways(isUpdateAlways?: boolean): void;
/**
* Sets the approximation bits in the final application.
* Defaults to 0.
* */
setApproxBits(bits?: number): void;
/**
* Sets the table size in the final application.
* Defaults to 65536.
* */
setTableSize(size?: number): void;
/**
* Sets whether to generate debug code in the final application.
* */
setDebug(isDebug?: boolean): void;
/**
* Sets the apply policy.
* Defaults to MemoiApplyPolicy.NOT_EMPTY.
*/
setApplyPolicy(policy?: MemoiGen.ApplyPolicy): void;
/**
* Checks files with the given names for reports matching the current target.
* @param names - the paths of the report files
*/
setProfFromFileNames(...names: string[]): void;
/**
* Checks dir for reports matching the current target.
* @param dir - The path to the directory of the report files
*/
setProfFromDir(dir: string): void;
/**
* Generates a table for all calls of the target function.
*
* If a profiling reports are provided, the reports are used to
* determine whether to generate for all target or for each single
* target.
*/
generate(): Set<string>;
/**
* Generates a table for each call of the target function.
*
* If a profiling reports are provided, the reports are used to
* determine whether to generate for all target or for each single
* target.
*/
generateEach(): Set<string>;
/**
* Generates a table for all calls of the target function.
*
* If a profiling reports are provided, the reports are used to
* determine whether to generate for all target or for each single
* target.
*/
generateAll(): Set<string>;
private generateFromReport;
private _generateEach;
private _generateAll;
generatePerfectInst(): void;
private generateGeneric;
private addMainDebug;
private checkParams;
}
declare namespace MemoiGen {
enum ApplyPolicy {
ALWAYS = "ALWAYS",
NOT_EMPTY = "NOT_EMPTY",
OVER_25_PCT = "OVER_25_PCT",
OVER_50_PCT = "OVER_50_PCT",
OVER_75_PCT = "OVER_75_PCT",
OVER_90_PCT = "OVER_90_PCT"
}
}
export default MemoiGen;
//# sourceMappingURL=MemoiGen.d.ts.map