ikudrin (Igor Kudrin)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 6 2015, 10:51 PM (98 w, 16 h)

Recent Activity

Fri, Jul 21

ikudrin committed rL308728: [ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo()..
[ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo().
Fri, Jul 21, 4:27 AM
ikudrin closed D35537: [ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo(). by committing rL308728: [ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo()..
Fri, Jul 21, 4:27 AM · lld

Tue, Jul 18

ikudrin created D35537: [ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo()..
Tue, Jul 18, 3:06 AM · lld

Mon, Jul 17

ikudrin added a comment to D34692: [LLD][ELF] Add support for multiple passes to createThunks().

This is a copy of a comment from D34689.

Mon, Jul 17, 7:11 AM
ikudrin added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

It is possible that a precreated thunk section stays empty in the first pass, but is used in the next pass. In that case, it isn't added into ISR in ThunkCreator::mergeThunks(). For example:

$ cat a.s
	.global _start, foo
.section .text.start,"ax",%progbits
_start:
	bl _start
.section .text.dummy1,"ax",%progbits
.space 0xfffffe
.section .text.foo,"ax",%progbits
foo:
	bl _start
$ llvm-mc -filetype=obj -triple=thumbv7a-none-linux-gnueabi a.s -o a.o
$ ld.lld a.o -o a.out
$ objdump -d a.out
a.out:     file format elf32-littlearm
Mon, Jul 17, 5:17 AM

Fri, Jul 14

ikudrin committed rL308003: [ELF] Fix writing the content of the .got section in a wrong place..
[ELF] Fix writing the content of the .got section in a wrong place.
Fri, Jul 14, 1:11 AM
ikudrin closed D34232: [ELF] Fix writing the content of the .got section in a wrong place. by committing rL308003: [ELF] Fix writing the content of the .got section in a wrong place..
Fri, Jul 14, 1:11 AM · lld

Thu, Jul 13

ikudrin added inline comments to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.
Thu, Jul 13, 8:01 AM
ikudrin added inline comments to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.
Thu, Jul 13, 4:13 AM

Mon, Jun 26

ikudrin added inline comments to D34612: [ELF] Do not add a .tbss section into a PT_LOAD segment in case of using a linker script..
Mon, Jun 26, 8:52 PM · lld
ikudrin created D34612: [ELF] Do not add a .tbss section into a PT_LOAD segment in case of using a linker script..
Mon, Jun 26, 3:27 AM · lld

Jun 21 2017

ikudrin committed rL305983: [ELF] Add an apostrophe after a file name when reporting discarded sections..
[ELF] Add an apostrophe after a file name when reporting discarded sections.
Jun 21 2017, 9:08 PM
ikudrin closed D34442: [ELF] Add an apostrophe after a file name when reporting discarded sections. by committing rL305983: [ELF] Add an apostrophe after a file name when reporting discarded sections..
Jun 21 2017, 9:08 PM · lld
ikudrin added a comment to D34232: [ELF] Fix writing the content of the .got section in a wrong place..

As far as I could check, other sections are not affected by the similar problem. Most of them don't call relocate*() methods. InputSection::writeTo uses unshifted Buf when calling relocate(). And EhInputSection avoids the problem because SectionBase::getOffset() doesn't add OutSecOff for them.

Jun 21 2017, 8:55 PM · lld
ikudrin added a comment to D34232: [ELF] Fix writing the content of the .got section in a wrong place..

Ping.

Jun 21 2017, 4:44 AM · lld
ikudrin created D34442: [ELF] Add an apostrophe after a file name when reporting discarded sections..
Jun 21 2017, 4:43 AM · lld

Jun 14 2017

ikudrin created D34232: [ELF] Fix writing the content of the .got section in a wrong place..
Jun 14 2017, 10:30 PM · lld

Feb 19 2017

ikudrin committed rL295605: [llvm-cov] Respect Windows line endings when parsing demangled symbols..
[llvm-cov] Respect Windows line endings when parsing demangled symbols.
Feb 19 2017, 6:38 AM
ikudrin closed D30096: [llvm-cov] Respect Windows line endings when parsing demangled symbols by committing rL295605: [llvm-cov] Respect Windows line endings when parsing demangled symbols..
Feb 19 2017, 6:38 AM

Feb 17 2017

ikudrin created D30096: [llvm-cov] Respect Windows line endings when parsing demangled symbols.
Feb 17 2017, 7:39 AM

Nov 8 2016

ikudrin added a comment to D26150: [libc++abi] Fix test_exception_storage_nodynmem on MacOS.

Done: rL286337.

Nov 8 2016, 8:25 PM
ikudrin committed rL286337: [libc++abi] Remove the test for checking using of fallback malloc in case of….
[libc++abi] Remove the test for checking using of fallback malloc in case of…
Nov 8 2016, 8:24 PM
ikudrin added a comment to D26150: [libc++abi] Fix test_exception_storage_nodynmem on MacOS.

The test is too implementation-specific, and trying to override a function like calloc makes it fragile. Unfortunately, I didn't find a better way to test the library's behavior in case of memory exhaustion, but now I believe that this test doesn't add any significant value. I'm going to remove it if no one objects.

Nov 8 2016, 7:30 PM

Nov 7 2016

ikudrin added a comment to D25608: [libclang] Make tests for python bindings pass on Windows..

Ping.

Nov 7 2016, 1:54 AM
ikudrin added a comment to D26150: [libc++abi] Fix test_exception_storage_nodynmem on MacOS.

This test is extremely fragile. Maybe, it is better to disable it, or even delete it altogether.

Nov 7 2016, 1:45 AM

Oct 20 2016

ikudrin added a comment to D25608: [libclang] Make tests for python bindings pass on Windows..

Ping.

Oct 20 2016, 2:39 AM

Oct 18 2016

ikudrin committed rL284464: [libclang] Add missing cursor kinds to python bindings..
[libclang] Add missing cursor kinds to python bindings.
Oct 18 2016, 2:51 AM
ikudrin closed D25673: [libclang] Add missing cursor kinds to python bindings. by committing rL284464: [libclang] Add missing cursor kinds to python bindings..
Oct 18 2016, 2:51 AM
ikudrin committed rL284463: [libclang] Fix a failure in a test for python bindings on CursorKind..
[libclang] Fix a failure in a test for python bindings on CursorKind.
Oct 18 2016, 2:39 AM
ikudrin closed D25470: [libclang] Fix a failure in a test for python bindings on CursorKind.OVERLOAD_CANDIDATE. by committing rL284463: [libclang] Fix a failure in a test for python bindings on CursorKind..
Oct 18 2016, 2:39 AM

Oct 17 2016

ikudrin retitled D25673: [libclang] Add missing cursor kinds to python bindings. from to [libclang] Add missing cursor kinds to python bindings..
Oct 17 2016, 6:27 AM

Oct 14 2016

ikudrin accepted D25539: [Coverage] Support for C++17 switch initializers.

LGTM.

Oct 14 2016, 7:07 AM
ikudrin accepted D25572: [Coverage] Support for C++17 if initializers.

LGTM.

Oct 14 2016, 7:07 AM
ikudrin retitled D25608: [libclang] Make tests for python bindings pass on Windows. from to [libclang] Make tests for python bindings pass on Windows..
Oct 14 2016, 4:20 AM

Oct 11 2016

ikudrin retitled D25470: [libclang] Fix a failure in a test for python bindings on CursorKind.OVERLOAD_CANDIDATE. from to [libclang] Fix a failure in a test for python bindings on CursorKind.OVERLOAD_CANDIDATE..
Oct 11 2016, 6:17 AM

Oct 7 2016

ikudrin committed rL283531: Recommit r282692: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals….
Recommit r282692: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals…
Oct 7 2016, 2:01 AM
ikudrin closed D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion. by committing rL283531: Recommit r282692: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals….
Oct 7 2016, 2:01 AM

Sep 30 2016

ikudrin reopened D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion..

@rmaprath: There are some issues in the test which upset build bots and I need some time to fix them. You don't need to wait for me, I'll put my patch on the top of yours when my fix is ready.

Sep 30 2016, 4:54 AM

Sep 29 2016

ikudrin committed rL282703: Revert r282692: Use fallback_malloc to allocate __cxa_eh_globals in case of….
Revert r282692: Use fallback_malloc to allocate __cxa_eh_globals in case of…
Sep 29 2016, 1:20 AM

Sep 28 2016

ikudrin committed rL282692: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of….
[libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of…
Sep 28 2016, 11:47 PM
ikudrin closed D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion. by committing rL282692: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of….
Sep 28 2016, 11:46 PM

Sep 18 2016

ikudrin added a comment to D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion..

The patch is under review for a long time and the described problem is still here. As we've seen the issue in practice, I'm sure that others may also run into it, and I do believe it should be fixed, one way or another.

Sep 18 2016, 11:55 PM

Sep 1 2016

ikudrin added a comment to D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion..

Ping...

Sep 1 2016, 4:30 AM

Aug 31 2016

ikudrin committed rL280199: [Coverage] Suppress creating a code region if the same area is covered by an….
[Coverage] Suppress creating a code region if the same area is covered by an…
Aug 31 2016, 12:12 AM
ikudrin closed D23987: [Coverage] Suppress creating a code region if the same area is covered by an expansion region. by committing rL280199: [Coverage] Suppress creating a code region if the same area is covered by an….
Aug 31 2016, 12:12 AM
ikudrin committed rL280198: [Coverage] Make sorting criteria for CounterMappingRegions local..
[Coverage] Make sorting criteria for CounterMappingRegions local.
Aug 31 2016, 12:09 AM
ikudrin closed D24034: [Coverage] Make sorting criteria for CounterMappingRegions local. by committing rL280198: [Coverage] Make sorting criteria for CounterMappingRegions local..
Aug 31 2016, 12:09 AM

Aug 30 2016

ikudrin added inline comments to D23987: [Coverage] Suppress creating a code region if the same area is covered by an expansion region..
Aug 30 2016, 9:19 AM
ikudrin added a dependency for D23987: [Coverage] Suppress creating a code region if the same area is covered by an expansion region.: D24034: [Coverage] Make sorting criteria for CounterMappingRegions local..
Aug 30 2016, 9:12 AM
ikudrin added a dependent revision for D24034: [Coverage] Make sorting criteria for CounterMappingRegions local.: D23987: [Coverage] Suppress creating a code region if the same area is covered by an expansion region..
Aug 30 2016, 9:12 AM
ikudrin updated the diff for D23987: [Coverage] Suppress creating a code region if the same area is covered by an expansion region..
  • Removed a default value in emitSourceRegions(), added the corresponding argument to its call in EmptyCoverageMappingBuilder::write().
  • Removed an additional sorting step in CounterCoverageMappingBuilder::write(), the patch is now depends on the extended sorting creteria in CoverageMappingWriter::write(), see D24034.
Aug 30 2016, 9:12 AM
ikudrin retitled D24034: [Coverage] Make sorting criteria for CounterMappingRegions local. from to [Coverage] Make sorting criteria for CounterMappingRegions local..
Aug 30 2016, 9:04 AM

Aug 29 2016

ikudrin committed rL279962: [Coverage] Prevent creating a redundant counter if a nested body ends with a….
[Coverage] Prevent creating a redundant counter if a nested body ends with a…
Aug 29 2016, 4:57 AM
ikudrin closed D23160: [Coverage] Prevent creating a redundant counter if a nested body ends with a macro. by committing rL279962: [Coverage] Prevent creating a redundant counter if a nested body ends with a….
Aug 29 2016, 4:57 AM
ikudrin added a comment to D23987: [Coverage] Suppress creating a code region if the same area is covered by an expansion region..

This patch fixes the following issue:

$ cat > test.cpp << EOF
void dummy() {}
Aug 29 2016, 4:49 AM
ikudrin added a comment to D23160: [Coverage] Prevent creating a redundant counter if a nested body ends with a macro..

I figured out that the last issue is an independent one, so I prepared a separate fix for it: D23987.

Aug 29 2016, 3:35 AM
ikudrin retitled D23987: [Coverage] Suppress creating a code region if the same area is covered by an expansion region. from to [Coverage] Suppress creating a code region if the same area is covered by an expansion region..
Aug 29 2016, 3:32 AM

Aug 10 2016

ikudrin added a comment to D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion..

The issue in the current implementation of the libc++abi library looks like a time bomb. Even though its probability could be considered as very low, in fact, it depends on the type of an application. At least, we ran into it in our environment.

Aug 10 2016, 3:07 AM

Aug 5 2016

ikudrin committed rL277833: Fix gdb pretty printers to work with Python 3..
Fix gdb pretty printers to work with Python 3.
Aug 5 2016, 9:56 AM
ikudrin closed D23202: Fix gdb pretty printers to work with Python 3. by committing rL277833: Fix gdb pretty printers to work with Python 3..
Aug 5 2016, 9:56 AM
ikudrin added a comment to D23202: Fix gdb pretty printers to work with Python 3..

They are really helpful, especially for looking into things like SmallVector, which uses AlignedCharArrayUnion to store items. Personally, I'd prefer debug dumpers for QtCreator, but this variant is more universal.

Aug 5 2016, 9:28 AM
ikudrin retitled D23202: Fix gdb pretty printers to work with Python 3. from to Fix gdb pretty printers to work with Python 3..
Aug 5 2016, 6:37 AM
ikudrin added a comment to D23160: [Coverage] Prevent creating a redundant counter if a nested body ends with a macro..

I've reduced the last sample to the following:

    0|    1|void dummy() {}
     |    2|
    0|    3|#define MACRO_1 dummy()
     |    4|
    1|    5|#define MACRO_2 MACRO_1
     |    6|
    1|    7|int main() {
    1|    8|  int i = 0;
    1|    9|  if (i > 5)
    1|   10|    MACRO_2;
------------------
|  |      1|    5|#define MACRO_2 MACRO_1
|  |  ------------------
|  |  |  |      0|    3|#define MACRO_1 dummy()
|  |  ------------------
------------------
    1|   11|  return 0;
    1|   12|}

Right now, I don't have a good idea how to fix this.

Aug 5 2016, 6:09 AM

Aug 4 2016

ikudrin added a comment to D23160: [Coverage] Prevent creating a redundant counter if a nested body ends with a macro..
In D23160#506061, @vsk wrote:

I guess it never makes sense to have two regions with the exact same start/end loc, and different counters. Do you think we should add assertions in llvm (either in llvm-cov, or in the coverage reader) which guard against this?

Aug 4 2016, 10:43 PM
ikudrin added a comment to D23160: [Coverage] Prevent creating a redundant counter if a nested body ends with a macro..

The motivation sample:

$ cat > test.cpp << EOF
void dummy() {}
Aug 4 2016, 6:16 AM
ikudrin retitled D23160: [Coverage] Prevent creating a redundant counter if a nested body ends with a macro. from to [Coverage] Prevent creating a redundant counter if a nested body ends with a macro..
Aug 4 2016, 5:22 AM

Jun 23 2016

ikudrin added a comment to D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion..

This patch is under review for more than two months, and I believe I've addressed all the comments. Could someone take a look at it, please?

Jun 23 2016, 9:38 AM

Jun 13 2016

ikudrin added a comment to D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion..

Ping.

Jun 13 2016, 2:10 AM

Jun 7 2016

ikudrin committed rL271995: Reapply [Coverage] Fix an assertion failure if the definition of an unused….
Reapply [Coverage] Fix an assertion failure if the definition of an unused…
Jun 7 2016, 3:14 AM

Jun 6 2016

ikudrin committed rL271976: Revert [Coverage] Fix an assertion failure if the definition of an unused….
Revert [Coverage] Fix an assertion failure if the definition of an unused…
Jun 6 2016, 9:18 PM
ikudrin committed rL271969: [Coverage] Fix an assertion failure if the definition of an unused function….
[Coverage] Fix an assertion failure if the definition of an unused function…
Jun 6 2016, 7:23 PM
ikudrin closed D20997: [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files. by committing rL271969: [Coverage] Fix an assertion failure if the definition of an unused function….
Jun 6 2016, 7:23 PM
ikudrin added a comment to D20878: [Coverage] Do not push a new region after a CXXTryStmt.

I agree that it'd be expensive to put a new counter after each function call. Even if there is no throw statement within a TU, called functions still may raise exceptions.
Anyway, if we come across a try statement, we can guess that some exceptions are expected and do our best to support constructions like this:

try {
  ...
}
catch (...) {
  ...
  throw;
}
Jun 6 2016, 5:47 PM
ikudrin updated the diff for D20997: [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files..
  • Use StartFileID and EndFileID variables to eliminate redundant calls to SM.getFileID().
  • Add comment strings to asserts.
Jun 6 2016, 5:05 PM

Jun 4 2016

ikudrin retitled D20997: [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files. from to [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files..
Jun 4 2016, 4:36 AM

Jun 2 2016

ikudrin added a comment to D20878: [Coverage] Do not push a new region after a CXXTryStmt.

So, our tool isn't accurate in the case of throwing an exception. Is there a case where this patch makes things better than they were before? Is it possible to improve handling of exceptions instead?

Jun 2 2016, 2:34 AM

May 20 2016

ikudrin abandoned D20287: [Coverage] Ensure that the hash for a used function is non-zero..

This change is not needed anymore because the whole issue was fixed in D20286.

May 20 2016, 2:26 AM
ikudrin committed rL270194: [Coverage] Fix an issue where improper coverage mapping data could be loaded….
[Coverage] Fix an issue where improper coverage mapping data could be loaded…
May 20 2016, 2:20 AM
ikudrin closed D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function. by committing rL270194: [Coverage] Fix an issue where improper coverage mapping data could be loaded….
May 20 2016, 2:20 AM

May 19 2016

ikudrin added inline comments to D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function..
May 19 2016, 10:11 AM
ikudrin updated the diff for D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function..
  • Rebased to the top
  • Extracted the code of filling the mapping records collection, including duplicate resolution logic, into a separate function.
May 19 2016, 7:45 AM

May 18 2016

ikudrin updated the diff for D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function..
  • Added the class to check if the coverage mapping data is dummy or real.
  • New implementations also works for simple functions with zero hash, so D20287 is not needed anymore.
  • The test case was extended to check simple inline functions in addition to regular ones.
May 18 2016, 8:23 AM
ikudrin added a comment to D20287: [Coverage] Ensure that the hash for a used function is non-zero..

On the other hand, I wonder what is the real root cause of the problem. The dummy function record does not have its 'own' profile counts, so

if (std::error_code EC = ProfileReader.getFunctionCounts(
            Record.FunctionName, Record.FunctionHash, Counts)) {

call in CoverageMapping::load (..)

method should return the the counts of the used function even with zero functionhash. What did I miss?

May 18 2016, 2:23 AM
ikudrin committed rL269887: [Coverage] Ensure that coverage mapping data has an expected alignment in….
[Coverage] Ensure that coverage mapping data has an expected alignment in…
May 18 2016, 12:49 AM
ikudrin closed D20285: [Coverage] Ensure that coverage mapping data has an expected alignment in 'covmapping' files. by committing rL269887: [Coverage] Ensure that coverage mapping data has an expected alignment in….
May 18 2016, 12:49 AM

May 16 2016

ikudrin added inline comments to D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function..
May 16 2016, 9:45 AM
ikudrin added a comment to D20287: [Coverage] Ensure that the hash for a used function is non-zero..

Does anyone known, why we need dummy coverage mapping records for unused functions? How are they used? Isn't it better to remove these dummy records to prevent confusion with the real ones?

May 16 2016, 9:29 AM
ikudrin added a comment to D20287: [Coverage] Ensure that the hash for a used function is non-zero..

The motivation sample (using llvm-cov with D20286 applied):

$ cat > sample.h << EOF
inline int sample_func(int A) {
  return A;
}
EOF
$ cat > dummy.cpp << EOF
#include "sample.h"
EOF
$ cat > sample.cpp << EOF
#include "sample.h"
May 16 2016, 9:16 AM
ikudrin added a dependent revision for D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function.: D20287: [Coverage] Ensure that the hash for a used function is non-zero..
May 16 2016, 9:11 AM
ikudrin added a dependency for D20287: [Coverage] Ensure that the hash for a used function is non-zero.: D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function..
May 16 2016, 9:11 AM
ikudrin retitled D20287: [Coverage] Ensure that the hash for a used function is non-zero. from to [Coverage] Ensure that the hash for a used function is non-zero..
May 16 2016, 9:11 AM
ikudrin added a comment to D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function..

The motivation sample for this patch is the following:

$ cat > sample.h << EOF
inline int sample_func(int A) {
  if (A > 0)
    return A;
  return 0;
}
EOF
$ cat > dummy.cpp << EOF
#include "sample.h"
EOF
$ cat > sample.cpp << EOF
#include "sample.h"
May 16 2016, 8:54 AM
ikudrin added a dependency for D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function.: D20285: [Coverage] Ensure that coverage mapping data has an expected alignment in 'covmapping' files..
May 16 2016, 8:38 AM
ikudrin added a dependent revision for D20285: [Coverage] Ensure that coverage mapping data has an expected alignment in 'covmapping' files.: D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function..
May 16 2016, 8:38 AM
ikudrin retitled D20286: [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function. from to [Coverage] Fix an issue where improper coverage mapping data could be loaded for an inline function..
May 16 2016, 8:37 AM
ikudrin retitled D20285: [Coverage] Ensure that coverage mapping data has an expected alignment in 'covmapping' files. from to [Coverage] Ensure that coverage mapping data has an expected alignment in 'covmapping' files..
May 16 2016, 7:18 AM
ikudrin added a comment to D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion..

Ping?..

May 16 2016, 5:31 AM

May 10 2016

ikudrin added a comment to D17815: [libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion..

Ping...

May 10 2016, 3:25 AM

May 5 2016

ikudrin committed rL268620: [Coverage] Combine counts of expansion regions if there are no code regions….
[Coverage] Combine counts of expansion regions if there are no code regions…
May 5 2016, 2:45 AM
ikudrin closed D18831: [Coverage] Combine counts of expansion region if there are no code regions for the same area. by committing rL268620: [Coverage] Combine counts of expansion regions if there are no code regions….
May 5 2016, 2:45 AM