_______________________________________________
LLVM Developers mailing list
llvm...@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
Hi Deep,
1) Kind of. There's Doxygen generated from source automatically, which shows you many things e.g., members of a type along with some short documentation (which is taken from the code). It also shows you the inheritance tree related to this typeHere's an example: https://llvm.org/doxygen/classllvm_1_1LoopInfo.htmlIt doesn't really matter what this is for now, but you can see e.g., that LoopInfo inherits from LoopInfoBase. If you scroll down, you can click to different members and go to a more detailed description further down. You can open the dropdown menus (e.g., publicfunctions inherited). And finally, at the top, you can see the file it appears at. In general, I think that if you start clicking stuff, it's going to make sense, it's relatively intuitive.2) Try minimizing the number of parallel threads used. I think by default Ninja uses all the available threads which in most machines will fill up the RAM. To limit them, use the -j argument like this: ninja -j8Another thing that will probably be useful in general is that you can choose to build specific sub-projects instead of building the whole thing, like this: ninja -j8 opt
On Mon, Jan 11, 2021 at 8:07 PM Stefanos Baziotis via llvm-dev <llvm...@lists.llvm.org> wrote:Hi Deep,
1) Kind of. There's Doxygen generated from source automatically, which shows you many things e.g., members of a type along with some short documentation (which is taken from the code). It also shows you the inheritance tree related to this typeHere's an example: https://llvm.org/doxygen/classllvm_1_1LoopInfo.htmlIt doesn't really matter what this is for now, but you can see e.g., that LoopInfo inherits from LoopInfoBase. If you scroll down, you can click to different members and go to a more detailed description further down. You can open the dropdown menus (e.g., publicfunctions inherited). And finally, at the top, you can see the file it appears at. In general, I think that if you start clicking stuff, it's going to make sense, it's relatively intuitive.2) Try minimizing the number of parallel threads used. I think by default Ninja uses all the available threads which in most machines will fill up the RAM. To limit them, use the -j argument like this: ninja -j8Another thing that will probably be useful in general is that you can choose to build specific sub-projects instead of building the whole thing, like this: ninja -j8 optYou can also use -DLLVM_PARALLEL_LINK_JOBS=<number> on your cmake command to limit just the number of linking jobs that can run in parallel. -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON can be a useful build configuration that you gets you debug logging and assertions, but you won't have debug symbols for gdb. There's also -DLLVM_USE_SPLIT_DWARF. All of these options are covered here https://llvm.org/docs/GettingStarted.html#common-problems
Thanks everyone for the advice! I am able to build LLVM now without causing my laptop to thrash. Also as I understand that for auto-complete in LLVM, Linux is not the best place to be. Also, thanks for the Doxygen-generated docs link.Warm regards,
I’ve had good luck using QTCreator for large C++ projects in the past. Unlike CLion, QTCreator is actually free. It may be worth taking a look.
Re CLion: The LLVM *Project* (presumably meaning the Foundation) does not pay core developers. It does pay for some infrastructure staff IIRC.
However, the project is primarily funded by commercial companies (you should be able to find documentation of the contributors on the Foundation website), so I think on that count it would not qualify for the free CLion.
--paulr
On Thu, Jan 14, 2021 at 6:58 PM Deep Majumder