Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/marian-nmt/FBGEMM.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaya S Khudia <dskhudia@fb.com>2019-03-19 05:24:57 +0300
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>2019-03-19 05:29:39 +0300
commit0d8f88c12dce0f9167a5ee93aa2a851aa99ff864 (patch)
treeac4aa73dcdee946f3ebca7a220d67cfd92a232d2 /src/GenerateKernelU8S8S32ACC32.cc
parent1351790c8ca6418ab36697274c4d6f3cea3c140c (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.cc19
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;
}