In order to better support adding in new implementations of
FunctionExecutor, this patch makes some small changes so that it is
easier to add new ones in. FunctionExecutorImpl is renamed to
InProcessFunctionExecutorImpl to better reflect how it will be placed
relative to the soon-to-be introduced subprocess executor and a new
function is created to create executors so selection can be done more
easily. In addition, a new CLI flag, -execution-mode, which can be used
to select between the different executors.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Time | Test | |
---|---|---|
60,060 ms | x64 debian > MLIR.Examples/standalone::test.toy |
Event Timeline
llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp | ||
---|---|---|
195 | A runnable configuration exists outside of how it's executed, it feels weird to have this here. Why isn't this a member of BenchmarkRunner ? | |
204 | Why do we need Key ? | |
205 | [nit] use switch, even if it's only one option for now, I think it's more readable for enums. |
Address reviewer feedback.
llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp | ||
---|---|---|
195 | Good point. I've switched it over to being a member of BenchmarkRunner. | |
204 | I'm using a BenchmarkKey in https://reviews.llvm.org/D151025 (and touching it in some previous patches in the stack) to pass around memory annotations, and the way I have it structured currently, I pass the key to the FunctionExecutorImpl for setup. I can move this to another diff/change this around if desired. |
llvm/tools/llvm-exegesis/lib/BenchmarkRunner.h | ||
---|---|---|
128 | [nit] createFunctionExecutor ? |
[nit] createFunctionExecutor ?