Hi all,
I have got a lot of useful advice from many different people in this
thread. Is it possible for me to make a page in the wiki or a section
perhaps summarising all of these points?
Warm regards,
Deep
On Fri, Jan 15, 2021 at 8:32 AM David Blaikie <dblaikie at gmail.com>
wrote:
> Ah, It's "-Wl,--gdb-index" the character after 'W' is
lower-case L,
> not upper case i. (L for Linker). And it's a comma, not a space,
> between "-Wl" and "--gdb-index"
>
> On Thu, Jan 14, 2021 at 6:58 PM Deep Majumder
> <deep.majumder2019 at gmail.com> wrote:
> >
> > 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/20210124/5105da7a/attachment.html>