// Assemble at least kMinInstructionsForSnippet instructions by repeating
// the snippet for debug/analysis. This is so that the user clearly
// understands that the inside instructions are repeated.
- if (BenchmarkPhaseSelector > BenchmarkPhaseSelectorE::StopBeforeAllCodegen) {
+ if (BenchmarkPhaseSelector > BenchmarkPhaseSelectorE::PrepareSnippet) {
const int MinInstructionsForSnippet = 4 * Instructions.size();
const int LoopBodySizeForSnippet = 2 * Instructions.size();
auto Snippet = assembleSnippet(BC, Repetitor, MinInstructionsForSnippet,
// Assemble NumRepetitions instructions repetitions of the snippet for
// measurements.
- if (BenchmarkPhaseSelector > BenchmarkPhaseSelectorE::StopBeforeFullCodegen) {
+ if (BenchmarkPhaseSelector > BenchmarkPhaseSelectorE::PrepareAndAssembleSnippet) {
auto Snippet = assembleSnippet(BC, Repetitor, InstrBenchmark.NumRepetitions,
LoopBodySize);
if (Error E = Snippet.takeError())
object::OwningBinary<object::ObjectFile> &ObjectFile = RC.ObjectFile;
if (DumpObjectToDisk &&
- BenchmarkPhaseSelector > BenchmarkPhaseSelectorE::StopBeforeFullCodegen) {
+ BenchmarkPhaseSelector > BenchmarkPhaseSelectorE::PrepareAndAssembleSnippet) {
auto ObjectFilePath = writeObjectFile(ObjectFile.getBinary()->getData());
if (Error E = ObjectFilePath.takeError()) {
InstrBenchmark.Error = toString(std::move(E));
"it is possible to stop the benchmarking process after some phase"),
cl::cat(BenchmarkOptions),
cl::values(
- clEnumValN(exegesis::BenchmarkPhaseSelectorE::StopBeforeAllCodegen,
+ clEnumValN(exegesis::BenchmarkPhaseSelectorE::PrepareSnippet,
"prepare-snippet",
"Only generate the minimal instruction sequence"),
- clEnumValN(exegesis::BenchmarkPhaseSelectorE::StopBeforeFullCodegen,
+ clEnumValN(exegesis::BenchmarkPhaseSelectorE::PrepareAndAssembleSnippet,
"prepare-and-assemble-snippet",
"Same as prepare-snippet, but also dumps an excerpt of the "
"sequence (hex encoded)"),
- clEnumValN(exegesis::BenchmarkPhaseSelectorE::StopBeforeMeasurements,
+ clEnumValN(exegesis::BenchmarkPhaseSelectorE::AssembleMeasuredCode,
"assemble-measured-code",
"Same as prepare-and-assemble-snippet, but also creates the "
"full sequence "