forked from OSchip/llvm-project
f59329b083
When generating coverage regions, we were doing a linear search through the existing regions in order to try to merge related ones. Most of the time this would find what it was looking for in a small number of steps and it wasn't a big deal, but in cases with many regions and few mergeable ones this leads to an absurd compile time regression. This changes the coverage mapping logic to do a single sort and then merge as we go, which is a bit simpler and about 100 times faster. I've also added FIXMEs on a couple of behaviours that seem a little suspect, while keeping them behaving as they were - I'll look into these soon. The test changes here are mostly tedious reorganization, because the ordering of regions we output has become slightly (but not completely) more consistent from the almost completely arbitrary ordering we got before. llvm-svn: 218738 |
||
---|---|---|
.. | ||
Inputs | ||
break.c | ||
builtinmacro.c | ||
casts.c | ||
classtemplate.cpp | ||
continue.c | ||
header.cpp | ||
if.c | ||
includehell.cpp | ||
ir.c | ||
label.cpp | ||
logical.cpp | ||
loopmacro.c | ||
loops.cpp | ||
macroception.c | ||
macroparams.c | ||
macroparams2.c | ||
macros.c | ||
nestedclass.cpp | ||
objc.m | ||
preprocessor.c | ||
return.c | ||
switch.c | ||
templates.cpp | ||
test.c | ||
trycatch.cpp |