diff options
author | Daya S Khudia <dskhudia@fb.com> | 2019-03-19 05:24:57 +0300 |
---|---|---|
committer | Facebook Github Bot <facebook-github-bot@users.noreply.github.com> | 2019-03-19 05:29:39 +0300 |
commit | 0d8f88c12dce0f9167a5ee93aa2a851aa99ff864 (patch) | |
tree | ac4aa73dcdee946f3ebca7a220d67cfd92a232d2 /src/GenerateKernelU8S8S32ACC32.cc | |
parent | 1351790c8ca6418ab36697274c4d6f3cea3c140c (diff) |
Dump generated kernels in files
Summary: Dump generated kernels in files for debugging purposes.
Reviewed By: jianyuh
Differential Revision: D14449803
fbshipit-source-id: 58d2b5bc8402ef800a6eeaf573abd2a9ee4f95f4
Diffstat (limited to 'src/GenerateKernelU8S8S32ACC32.cc')
-rw-r--r-- | src/GenerateKernelU8S8S32ACC32.cc | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/GenerateKernelU8S8S32ACC32.cc b/src/GenerateKernelU8S8S32ACC32.cc index ab0625c..203dd9a 100644 --- a/src/GenerateKernelU8S8S32ACC32.cc +++ b/src/GenerateKernelU8S8S32ACC32.cc @@ -149,10 +149,15 @@ CodeGenBase<uint8_t, int8_t, int32_t, int32_t>::getOrCreate<inst_set_t::avx2>( code_.init(rt_.getCodeInfo()); asmjit::X86Assembler assembler(&code_); asmjit::X86Emitter* a = assembler.asEmitter(); - // ToDo: Dump in a file for debugging - // code dumping/logging - // asmjit::FileLogger logger(stderr); - // code_.setLogger(&logger); +#if defined(FBGEMM_LOG_CODE) + // generated code logging + FILE* codeLogfile = + fopen(getCodeLoggingFile<inst_set_t::avx2>(accum, mc, nc).c_str(), "w"); + asmjit::FileLogger* codeLogger = new asmjit::FileLogger(codeLogfile); + if (codeLogger) { + code_.setLogger(codeLogger); + } +#endif constexpr int kBlock = PackingTraits<int8_t, int32_t, inst_set_t::avx2>::KCB; constexpr int nBlock = PackingTraits<int8_t, int32_t, inst_set_t::avx2>::NCB; @@ -328,6 +333,12 @@ CodeGenBase<uint8_t, int8_t, int32_t, int32_t>::getOrCreate<inst_set_t::avx2>( return nullptr; } codeCache_[kernelSig] = fn; + +#if defined(FBGEMM_LOG_CODE) + fclose(codeLogfile); + delete codeLogger; +#endif + return fn; } |