[PATCH] D53502: [llvm-exegesis] ExecutionMode is computed upfront for Uops as well

Clement Courbet via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 26 00:15:31 PDT 2018


courbet added inline comments.


================
Comment at: tools/llvm-exegesis/lib/CodeTemplate.h:87
+  // The execution can be made parallel by repeating the same instruction but
+  // making sure each memory access hits a different cache line.
+  PARALLEL_VIA_DISTINCT_MEMORY_ACCESS = 1u << 7,
----------------
s/each memory access hits a different cache line/memory accesses do not alias/


================
Comment at: tools/llvm-exegesis/lib/Latency.cpp:134
 LatencySnippetGenerator::generateCodeTemplates(const Instruction &Instr) const {
+  if (Instr.hasMemoryOperands())
+    return llvm::make_error<BenchmarkFailure>(
----------------
Let's commit this separately.


================
Comment at: tools/llvm-exegesis/lib/MCInstrDescView.h:98
 
+  // Return the Variable that ties together two operands or nullptr if this
+  // instruction has no tied operands.
----------------
I think it would be better to return a `vector<const Variable*>` and deal with unicity at the call site.


================
Comment at: tools/llvm-exegesis/lib/MCInstrDescView.h:141
+
+  // Whether this instruction implicitly reads or write this register.
+  bool isImplicitlyAliasingWith(unsigned reg) const;
----------------
*writes


================
Comment at: tools/llvm-exegesis/lib/Uops.h:38
 
 private:
+  llvm::Expected<CodeTemplate>
----------------
doc ?


Repository:
  rL LLVM

https://reviews.llvm.org/D53502





More information about the llvm-commits mailing list