[PATCH] D14094: Add multikey_qsort to STLExtras.h

Jim Grosbach via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 26 15:12:26 PDT 2015


grosbach added inline comments.

================
Comment at: include/llvm/ADT/STLExtras.h:376
@@ +375,3 @@
+    ++Pos;
+    goto tailcall;
+  }
----------------
ruiu wrote:
> grosbach wrote:
> > Does the compiler not auto-recognize the tail call pattern here? If not, it seems like it should.
> Unlike Scheme we cannot assume that the tail call optimization is always in place. If a compiler does tail call optimization only in -O2 and not in -O0, this code could cause SEGV only in -O0 for some input. That would be confusing. So I think this is needed.
I'm not sure I agree. -O0 vs. -O2 (or -Os) builds of the compiler (and Debug vs. Release in general) already have radically different memory usage patterns and algorithmic behavior (various +asserts stuff has n^2 algorithms, e.g.).

Is this a theoretical concern, or are you seeing crashes on real examples with a debug build of the compiler?


http://reviews.llvm.org/D14094





More information about the llvm-commits mailing list