Is there a way to speed up parsing?

Hello!

I’ve tried to use libclang and, first of all, for test purposes I’ve indexed LLVM with it (using clang_indexSourceFile with empty callbacks). But the whole process takes about an hour, which is very slow. As far as I know libclang is used in some IDEs as a code assistance provider, but how it could be if it consumes so much time on relatively big projects? The project which I’d like to open is even bigger then LLVM (Mozilla). Is there a way to speed up parsing - for example to parse headers only once (create precompiled header for each parsed header), and then reuse this information in other translation units? Maybe this will lead to some inaccuracy because contexts are different, but performance is a showstopper for me :(. I’m ready to try to hack clang:) if somebody who is familiar with clang will give me a short briefing on how this could be done in principle (or maybe this is just impossible).

Also I have to say that this is a great project and you guys are awesome! To thank you, I have included a link to a cat in a slipper:
http://0.tqn.com/d/cats/1/0/5/I/3/jasp_slipper291x227.jpg

Best regards,

Zurab