[llvm-exegesis] Use MCJIT only for execution
Initially, llvm-exegesis was generating the benchmark code for the host CPU to execute it inside its own process. Thus, MCJIT was reused for fetching function's bytes to fill the assembled_snippet field in the benchmark report. Later, the --mtriple and --benchmark-phase command line options were introduced that are handy for testing snippet generation even if snippet execution is not possible. In that setup, MCJIT is asked to parse an object file for a foreign CPU or operating system that is probably not guaranteed to succeed and was actually observed to fail in https://reviews.llvm.org/D145763. This commit implements a much simplified function's code fetching, assuming the benchmark function is the only function in the object file and it spans across the entire text section (note that MCJIT-based code has more or less the same assumption - see TrackingSectionMemoryManager class). ~~~ Huawei RRI, OS Lab Reviewed By: courbet Differential Revision: https://reviews.llvm.org/D148921
Loading
Please sign in to comment