- User Since
- May 4 2017, 2:45 PM (11 w, 4 h)
Just a note: this isn't fully completed yet. I still have to add tests and do some verification, but I wanted to make it's on the right track.
refactored code and removed unnecessary SCCNodes
- added memory access info to index callgraph edges
- renamed functions
Mon, Jul 17
Tue, Jun 27
Added names to dump-summary in llvm-lto2.
Mon, Jun 26
Jun 20 2017
Updated GlobalValue loop.
Added test, further cleanup.
Jun 19 2017
Jun 16 2017
Fixes according to comments.
Jun 15 2017
Jun 13 2017
Jun 12 2017
Use FileCheck rather than egrep
Jun 10 2017
Removed extraneous formatting.
Jun 9 2017
Addressed some updates from the comments.
Oops - got rid of old llvm-dis code.
Jun 5 2017
Addressed comments. Formatted with clang-format, so that's why there are so many extra changes in the diff.
- Added hidden "set-importing" flag to llvm-dis to set the IsImporting boolean for testing.
- Ran clang-format
- Added comment
- Smaller test
May 29 2017
@pcc @mehdi_amini I've simplified the tests using your recommendations. Note that to get lazy loading to work with llvm-dis, I had to set the IsImporting bool to true - I'm not sure if this is correct, but I couldn't set the value to true otherwise. Should I add a flag to allow enabling/disabling it instead of hardcoding it?
May 26 2017
May 25 2017
Thanks! This was a good chance to look closely at the code to start learning how it works.
One note: this manifests with ThinLTO, but it might be a more generic metadata issue. Are you able to reproduce without ThinLTO (and maybe with a single file?)
The bug only happens when lazy loading Metadata. Lazy loading occurs when module level metadata is being imported by ThinLTO (see https://reviews.llvm.org/diffusion/L/browse/llvm/trunk/lib/Bitcode/Reader/MetadataLoader.cpp;303885$781). I believe this is the only path that leads to lazy loading, so I don't think it can happen elsewhere.