[llvm-dev] Beginning developer questions

Deep Majumder via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 14 18:58:37 PST 2021


Hi David,
Sorry to annoy you. I have lld enabled via LLVM_ENABLE_LLD=ON. To use -WI
and --gdb-index, I set CMAKE_EXE_LINKER_FLAGS_DEBUG=-WI --gdb-index in
CMakeCache.txt. But that doesn't work out and I get the following error:
c++: error: unrecognized command line option ‘-WI’; did you mean ‘-I’?
c++: error: unrecognized command line option ‘--gdb-index’; did you mean ‘
--no-index’?

Why does this happen?
Warm Regards,
Deep


On Fri, Jan 15, 2021 at 7:39 AM David Blaikie <dblaikie at gmail.com> wrote:

> You'd need gold or lld - ld.bfd doesn't support gdb-index.
>
> On Thu, Jan 14, 2021 at 6:04 PM Deep Majumder
> <deep.majumder2019 at gmail.com> wrote:
> >
> > Hi David,
> > Do you use ld, gold or lld as the linker. I am getting an unknown flag
> error with lld for the --gdb-index.
> > Warm regards,
> > Deep
> >
> > On Thu, Jan 14, 2021, 11:38 PM David Blaikie <dblaikie at gmail.com> wrote:
> >>
> >> gdb startup time can be reduced significantly by using a
> linker-generated index. Compile with -ggnu-pubnames and link with
> -Wl,--gdb-index. I use this configuration (plus Split DWARF, fwiw) and gdb
> startup time is only a few seconds/quite usabel.
> >>
> >> On Thu, Jan 14, 2021 at 9:58 AM Deep Majumder via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >>>
> >>> Hi all,
> >>> As Stefanos had pointed out, GDB takes an awful lot of time to even
> start on a debug build of an executable (say clang). LLDB works better but
> still isn't quite smooth to work with (takes a long time to set
> breakpoints). So what do LLVM devs who use Linux use for debugging, or is
> Windows the predominant platform of development?
> >>> Warm regards,
> >>> Deep
> >>>
> >>> On Wed, Jan 13, 2021, 12:26 AM <paul.robinson at sony.com> wrote:
> >>>>
> >>>> 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
> >>>>
> >>>>
> >>>>
> >>>> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Chris
> Tetreault via llvm-dev
> >>>> Sent: Tuesday, January 12, 2021 1:34 PM
> >>>> To: Deep Majumder <deep.majumder2019 at gmail.com>; LLVM Dev <
> llvm-dev at lists.llvm.org>
> >>>> Subject: Re: [llvm-dev] Beginning developer questions
> >>>>
> >>>>
> >>>>
> >>>> 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.
> >>>>
> >>>>
> >>>>
> >>>> From: llvm-dev <llvm-dev-bounces at lists.llvm.org> On Behalf Of Deep
> Majumder via llvm-dev
> >>>> Sent: Tuesday, January 12, 2021 9:52 AM
> >>>> To: Madhur Amilkanthwar <madhur13490 at gmail.com>
> >>>> Cc: llvm-dev <llvm-dev at lists.llvm.org>
> >>>> Subject: [EXT] Re: [llvm-dev] Beginning developer questions
> >>>>
> >>>>
> >>>>
> >>>> Hi Stefanos and Madhur,
> >>>>
> >>>> Of course it would be great if LLVM is given licenses by JetBrains as
> it would benefit many people(I guess) working on this project who are not
> students.
> >>>>
> >>>> I am a student and so have a free license anyway.
> >>>>
> >>>> Also, thank you David for the link.
> >>>>
> >>>> Warm Regards,
> >>>>
> >>>> Deep
> >>>>
> >>>>
> >>>>
> >>>> On Tue, Jan 12, 2021 at 11:17 PM Madhur Amilkanthwar <
> madhur13490 at gmail.com> wrote:
> >>>>
> >>>> Hi Stefanos,
> >>>>
> >>>> Speaking of CLion, their page says open source projects can qualify
> for free licenses. I am not sure if LLVM community qualifies as per the
> below required qualifications:
> >>>>
> >>>>
> >>>>
> >>>> Do not pay their core project developers.
> >>>>
> >>>> Meet the Open Source definition.
> >>>>
> >>>> Are in active development, i.e. new code commits are submitted
> regularly within the past 3 months.
> >>>>
> >>>> Do not provide paid versions of open source software or any
> commercial services around the Open Source project (e.g. paid support,
> consulting, etc).
> >>>>
> >>>> Are not funded by commercial companies or organizations (NGO,
> educational, research, or governmental).
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On Tue, Jan 12, 2021 at 10:31 PM David Blaikie via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On Tue, Jan 12, 2021 at 7:35 AM Deep Majumder via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >>>>
> >>>> 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,
> >>>>
> >>>>
> >>>> If you're more vim/emacs than IDE - I use
> https://wiki.archlinux.org/index.php/Vim/YouCompleteMe and
> compile_commands.json generated from the ninja build I think (maybe it's
> generated by cmake? I forget)
> >>>>
> >>>>
> >>>> Deep
> >>>>
> >>>>
> >>>>
> >>>> On Tue, Jan 12, 2021 at 10:03 AM Craig Topper <craig.topper at gmail.com>
> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On Mon, Jan 11, 2021 at 8:07 PM Stefanos Baziotis via llvm-dev <
> llvm-dev at 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 type
> >>>>
> >>>> Here's an example:
> https://llvm.org/doxygen/classllvm_1_1LoopInfo.html
> >>>>
> >>>> It 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., public
> >>>>
> >>>> functions 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 -j8
> >>>>
> >>>> Another 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
> >>>>
> >>>>
> >>>>
> >>>> You 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
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> 3) Ok, first of all, if you only care about editing and not debugging
> LLVM (i.e. launching it with a debugger like gdb), then editors like Vim,
> Emacs, 4coder, maybe Sublime Text should do the job. I think most people
> >>>>
> >>>> developing LLVM on Linux use something like this.
> >>>>
> >>>>
> >>>>
> >>>> Now, if you're interested in IDEs and / or debuggers, well, the news
> in Linux is bad IMHO. For example, in my machine, GDB takes _30 seconds_ to
> launch the debug build of opt.
> >>>>
> >>>> So, I couldn't use any IDE because virtually all use GDB under the
> hood. Personally, I switched to Windows + Visual Studio just for this
> reason. That was an insane productivity boost for me.
> >>>>
> >>>> But if you need something that works in Linux, you can maybe try
> LLDB. Hopefully it will be faster. If yes, you can maybe try hooking it in
> an IDE, which I guess won't be trivial.
> >>>>
> >>>>
> >>>>
> >>>> That said, as I don't develop LLVM in Linux, other people might have
> better suggestions.
> >>>>
> >>>>
> >>>>
> >>>> Best,
> >>>>
> >>>> Stefanos
> >>>>
> >>>>
> >>>>
> >>>> Στις Τρί, 12 Ιαν 2021 στις 5:43 π.μ., ο/η Deep Majumder via llvm-dev <
> llvm-dev at lists.llvm.org> έγραψε:
> >>>>
> >>>> Hello everyone,
> >>>>
> >>>> I have been studying the LLVM IR and now want to get into LLVM
> development. I have a few questions regarding that and I would be really
> grateful to get answers for:
> >>>>
> >>>>
> >>>>
> >>>> 1) The LangRef is an excellent guide/reference to the IR. Is there
> something similar for the codebase (the core llvm to be specific)? Or do I
> have to generate that from the source, in which case how do I do that?
> >>>>
> >>>> 2) I tried building just the llvm sub-project, and that is filling up
> my RAM completely during the linking stages, and sends my laptop thrashing.
> I am using Ninja. Is there a way to mitigate this? (I am on Ubuntu 20.04
> Linux, 8 GM RAM, 8 GM swap on an HDD).
> >>>>
> >>>> 3) VSCode, at least on my laptop, is very sluggish with such large a
> project. Is there any recommended development environment for Linux (or at
> least something that has been found to work well)?
> >>>>
> >>>>
> >>>>
> >>>> Thank you for your time!
> >>>>
> >>>> Regards,
> >>>>
> >>>> Deep
> >>>>
> >>>> _______________________________________________
> >>>> LLVM Developers mailing list
> >>>> llvm-dev at lists.llvm.org
> >>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >>>>
> >>>> _______________________________________________
> >>>> LLVM Developers mailing list
> >>>> llvm-dev at lists.llvm.org
> >>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >>>>
> >>>> _______________________________________________
> >>>> LLVM Developers mailing list
> >>>> llvm-dev at lists.llvm.org
> >>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >>>>
> >>>> _______________________________________________
> >>>> LLVM Developers mailing list
> >>>> llvm-dev at lists.llvm.org
> >>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>>
> >>>> Disclaimer: Views, concerns, thoughts, questions, ideas expressed in
> this mail are of my own and my employer has no take in it.
> >>>>
> >>>> Thank You.
> >>>> Madhur D. Amilkanthwar
> >>>
> >>> _______________________________________________
> >>> LLVM Developers mailing list
> >>> llvm-dev at lists.llvm.org
> >>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210115/c242d2f8/attachment.html>


More information about the llvm-dev mailing list