[PATCH] D28786: [ExecutionDepsFix] Kill clearance at function calls

Marina Yatsina via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 17 05:48:26 PST 2017


myatsina added inline comments.


================
Comment at: lib/CodeGen/ExecutionDepsFix.cpp:491
+  // We have no idea which registers the callee may use.
+  if (MI->isCall()) {
+    for (unsigned i = 0, e = NumRegs; i != e; ++i)
----------------
Isn't it enough to do this only in the primary pass?


================
Comment at: lib/CodeGen/ExecutionDepsFix.cpp:646
 
+  // We will make two passes through the list of undef regs. The first
+  // (backward) to determine legality of inserting the dependency breaking
----------------
Better not mix 2 different issues in one patch, so please separate this optimization (and the related pickBestRegisterForUndef changes) to another review with a dedicated test. 
Please also upload here a patch (+test) that relate just to the "call" clearance calculation.


================
Comment at: test/CodeGen/X86/break-false-dep.ll:313
   %nextj = add i64 %phi_j, 1
+;AVX-LABEL:@loopclearance2
   ; Register use, plus us clobbering 7-15 above, basically forces xmm7 here as
----------------
Isn't this suppose to be part of the https://reviews.llvm.org/D28759 patch?


https://reviews.llvm.org/D28786





More information about the llvm-commits mailing list