UNPKG

@specs-feup/clava

Version:

A C/C++ source-to-source compiler written in Typescript

108 lines 3.35 kB
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