[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