UNPKG

@specs-feup/clava

Version:

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

52 lines 1.82 kB
import BenchmarkInstance from "@specs-feup/lara/api/lara/benchmark/BenchmarkInstance.js"; import { JavaClasses } from "@specs-feup/lara/api/lara/util/JavaTypes.js"; import { Joinpoint } from "../../Joinpoints.js"; import CMaker from "../../clava/cmake/CMaker.js"; /** * Instance of a Clava benchmark. * * Implements _compilePrivate and .getKernel(). */ export default abstract class ClavaBenchmarkInstance extends BenchmarkInstance { cmaker: CMaker | undefined; cmakerProvider: () => CMaker; constructor(name: string); setCMakerProvider(cmakerProvider: () => CMaker): void; /** * The output folder for this BenchmarkInstance. */ private getOutputFolder; protected compilationEngineProvider(name: string): CMaker; /** * Allows to customize the CMake options used during compilation. * * @param name * @returns */ protected getCMaker(): CMaker; protected compilePrivate(): JavaClasses.File | undefined; /** * Speciallized implementation for Clava that automatically saves and restores the AST, extending classes just need to implement addCode() and loadPrologue(). */ protected loadPrivate(): void; protected closePrivate(): void; protected loadCached(astFile: JavaClasses.File): void; /** * Looks for #pragma kernel, returns target of that pragma */ getKernel(): Joinpoint; /*** FUNCTIONS TO IMPLEMENT ***/ /** * Configuration that is required by the benchmarks (e.g., setting the standard) */ protected abstract loadPrologue(): void; /** * Adds the code to the AST, can assume the AST is empty. */ protected abstract addCode(): void; /** * */ protected abstract closeEpilogue(): void; } //# sourceMappingURL=ClavaBenchmarkInstance.d.ts.map