diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2015-07-28 06:01:57 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2015-07-28 06:01:57 +0000 |
| commit | 786e6db1872ddb2c2dc4cc6c994b25084909a76b (patch) | |
| tree | 07fc4f7a4e98f9e2c0e361e8d2e195c3cfee7dd3 /llvm/docs | |
| parent | 13af03286e718f9542afaf8684ff7a82ab68a5f3 (diff) | |
| download | bcm5719-llvm-786e6db1872ddb2c2dc4cc6c994b25084909a76b.tar.gz bcm5719-llvm-786e6db1872ddb2c2dc4cc6c994b25084909a76b.zip | |
[GMR] Fix a long-standing bug in GlobalsModRef where it failed to clear
out the per-function modref data structures when functions were deleted
or when globals were deleted.
I don't actually know how the global deletion side of this bug hasn't
been hit before, but for the other it just-so-happens that functions
aren't likely to be deleted in the particular part of the LTO pipeline
where we currently enable GMR, so we got lucky.
With this patch, I can self-host with GMR enabled in the normal pass
pipeline!
I was a bit concerned about the compile-time impact of this chang, which
is part of what motivated my prior string of patches to make the
per-function datastructure very dense and fast to walk. With those
changes in place, I can't measure a significant compile time difference
(the difference is around 0.1% which is *way* below the noise) before
and after this patch when building a linked bitcode for all of Clang.
Differential Revision: http://reviews.llvm.org/D11453
llvm-svn: 243385
Diffstat (limited to 'llvm/docs')
0 files changed, 0 insertions, 0 deletions

