See Part 1 (https://reviews.llvm.org/D39050) for an overview of the new functionality.
Part 1 added a new -index-store-path option that added a new FrontendAction – WrappingIndexRecordAction – to collect indexing information during compilation. Part 2 contained the changes to write the collected information out to the directory supplied by the -index-store-path option in the LLVM Bitstream format, as a collection of unit and record files.
This part adds a new IndexStore library to help clients read and manage the indexing data in index store directory. It abstracts away the directory layout and file format of the store and, combined with the new DirectoryWatcher, also notifies clients whenever a unit file is updated.