HomePhabricator

[FileManager] Do not call 'real_path' in getFile().

Description

[FileManager] Do not call 'real_path' in getFile().

Summary:
This partially rolls back the change in D48903:
https://github.com/llvm-mirror/clang/commit/89aa7f45a1f728144935289d4ce69d8522999de0#diff-0025af005307891b5429b6a834823d5eR318

real_path can be very expensive on real file systems, and calling it on each
opened file can slow down the compilation. This also slows down deserialized
ASTs for which real paths need to be recalculated for each input files again.

For clangd code completion latency (using preamble):
Before


After

Reviewers: ilya-biryukov, simark

Reviewed By: ilya-biryukov

Subscribers: kadircet, cfe-commits

Differential Revision: https://reviews.llvm.org/D51159

Details

Committed
ioericAug 24 2018, 1:59 AM
Reviewer
ilya-biryukov
Differential Revision
D51159: [FileManager] Do not call 'real_path' in getFile().
Parents
rL340597: [PDB] Make variables.test to pass using a 32-bit compiler too
Branches
Unknown
Tags
Unknown