A Brief Introduction to LLVM

  Переглядів 70,514

Morgan Wilde

Morgan Wilde

День тому

КОМЕНТАРІ: 51
@Calm_Energy
@Calm_Energy 5 років тому
I feel like that is such a great way to describe LLVM assembly "strongly typed RISC" yep!
@adennyh
@adennyh 5 років тому
Thanks for this. I felt like learning about LLVM, and this video is nice. You explain it technically enough yet simple enough for non-compiler guy like me to understand.
@sepidet6970
@sepidet6970 5 років тому
Thank you so much for this awesome easy-to-understand explanation
@omicron1100
@omicron1100 10 днів тому
I haven't seen anyone else mention it so I have to say, your slide animations are killer!
@abdulqawisaif4513
@abdulqawisaif4513 6 років тому
Thanks for this nice and simple talk / lecture :)
@kartikch
@kartikch 3 роки тому
This explanation is beautifully. Thanks for this.
@DalasYoo
@DalasYoo 5 років тому
Easy for newbie, thanks
@cameronsmith8986
@cameronsmith8986 11 місяців тому
Great presentation! Thanks!
@supergopi
@supergopi 7 років тому
@Morgan Thanks! learned something new today.
@MorganWilde
@MorganWilde 7 років тому
Glad I could provide some value!
@Jan_Jan_
@Jan_Jan_ 3 місяці тому
This was a great explanation - thank you! :)
@user-hh2lq4bh4n
@user-hh2lq4bh4n 6 місяців тому
Thank You Morgan! This is helpful. Do you have any good video pointers to learning llvm dialects?
@xinboban7762
@xinboban7762 4 роки тому
I have been looking for the slides.
@tiberiushoughton3849
@tiberiushoughton3849 6 років тому
@Morgan thx so much for this explanation and also for doing an episode on the SE (software engineer) podcast
@MorganWilde
@MorganWilde 6 років тому
I appreciate the support Tiberius!
@Miggleness
@Miggleness 5 років тому
I was about to listen to that episode yesterday till they mentioned about Morgan's UKposts video. Now, back to the episode
@openroomxyz
@openroomxyz 2 роки тому
Thanks!
@nobody9860
@nobody9860 11 місяців тому
I think cpython doesn't normally compile python to C and execute? I think it is parsed to some byte code and then run on virtual machine just like Java?
@viktorengelmann3892
@viktorengelmann3892 6 років тому
m*n different compilers for m languages and n targets? nonsense! using a common intermediate level to bring that down to m frontends + n backends has been done forever (also by gcc). The only difference is that gcc connects to its front- and backends at compile-time, so you might need to recompile it with different compiler-flags for different target architectures.
@viktorengelmann3892
@viktorengelmann3892 6 років тому
link-time, to be precise
@MorganWilde
@MorganWilde 6 років тому
Thank you for the clarification.
@diegonayalazo
@diegonayalazo 4 роки тому
Thanks
@cepi24
@cepi24 7 років тому
What is the name of this guy? Are there any other his LLVM talks?
@MorganWilde
@MorganWilde 7 років тому
I'm that guy :). Unfortunately, I haven't made any other talks on LLVM after this one. Thanks for the interest though!
@OttoFazzl
@OttoFazzl 5 років тому
@@MorganWilde you made a very good talk! I am a deep learning engineer and recently Swift got a good bit of attention as a potential deep learning language because of its LLVM compiler infrastructure. So I decided to learn more and this talk is a very good introduction. Thank you!
@avinashreddyt1737
@avinashreddyt1737 7 років тому
@Morgan Wide Hi Morgan, can you suggest me some blog where i can learn more about llvm. I even have a doubt, how can we generate a java bytecode using llvm.
@MorganWilde
@MorganWilde 7 років тому
Everything start with llvm.org/
@cs1070151
@cs1070151 7 років тому
@morgan: Is the optimization 2 * x - x = x really valid? considering 2 * x might overflow.
@MorganWilde
@MorganWilde 7 років тому
Yes, this is a valid mathematical optimization, regardless of the overflow consideration you mentioned.
@Wren6991
@Wren6991 7 років тому
@Sandeep it's also worth noting (specific to C/C++) that overflow behaviour is *undefined*, and compiler is free to do whatever it wants when you use undefined behaviour, including wiping your hard disk, or buying 42 box sets of the Fresh Prince of Bel Air using your credit card. Any code that relies on specific overflow behaviour is also undefined, according to the spec, and therefore its meaning does not need to be preserved. The result is that compilers can produce faster code, like in this example.
@cs1070151
@cs1070151 7 років тому
Luke Wren In case of signed integers, yes. With unsigned, overflow is not undefined behavior (also the reason why we should not used unsigned integers for loop increments and stuff)
@Wren6991
@Wren6991 7 років тому
That's true, you got me :)
@AnujFalcon
@AnujFalcon 2 роки тому
Without LLVM no. of compilers = m*n; with LLVM no. of compilers = m+n (where m = no. of compilers for source to LLVM and n for LLVM to target machine code)
@dankierson
@dankierson 2 роки тому
Jesus Christ, man - up the volume!
@antwanwimberly1729
@antwanwimberly1729 6 місяців тому
WäN - 🇩🇪
@Sina-xw4xp
@Sina-xw4xp 3 роки тому
one again, immutable variable is not a variable it is a constant :)
@3bdoelnaggar
@3bdoelnaggar 3 роки тому
Not a constant because the value of it can be assigned one it assigned cant be changed
@Sina-xw4xp
@Sina-xw4xp 3 роки тому
@@3bdoelnaggar The value of constants is also assigned once inside the code :)
@3bdoelnaggar
@3bdoelnaggar 3 роки тому
@@Sina-xw4xp inside code is constant inside runtime is immutable
@Sina-xw4xp
@Sina-xw4xp 3 роки тому
@@3bdoelnaggar hmm. that depends on the language i guess. some languages allocate the constant value on runtime some don't. in case of rust it is as you said
@abdlwahdsa
@abdlwahdsa 5 років тому
A Pascal llvm compiler in Haskell: github.com/sam46/paskell
@RodrigoCaetanoRocha
@RodrigoCaetanoRocha 5 років тому
For those interested in learning more about compilers and in-depth LLVM tutorials: www.patreon.com/rcor
@dialecticalmonist3405
@dialecticalmonist3405 2 роки тому
"LLVM is not an acronym". Um... ok, great, but could you perhaps say SOMETHING more informative about the name origin?
@scottfranco1962
@scottfranco1962 3 роки тому
There is sooooo much wrong with this presentation. Compilers didn't "used to be monolithic", you are talking about GCC, which didn't have an external intermediate format. Intermediate formats, and modular compilers go back to the 1950's. Second, you don't need a whole new compiler per language. GCC is sufficiently modular to support multiple languages, and this is actually very common.
@MorganWilde
@MorganWilde 3 роки тому
Thanks for the comment!
@wearecomingback5707
@wearecomingback5707 5 років тому
Test
@jett5385
@jett5385 4 роки тому
LLVM is a name ! what? Just find a better name or tell us that is it is an acronym for Low Level Virtual Machine.
@alexrawson8492
@alexrawson8492 3 роки тому
IIRC it doesn't stand for anything, it's just the name
@TheChrisey
@TheChrisey 4 роки тому
Swift is such a simpleton language.
@wearecomingback5707
@wearecomingback5707 5 років тому
Test
How LLVM & Clang work
34:29
tanmay bakshi
Переглядів 53 тис.
Секретная разработка КГБ! Волга «Догонялка» на V8…
1:07:10
Мастерская Синдиката
Переглядів 2,3 млн
What is Low Latency C++? (Part 1) - Timur Doumler - CppNow 2023
1:31:06
you can become a GIGACHAD assembly programmer in 10 minutes (try it RIGHT NOW)
9:48
9. What Compilers Can and Cannot Do
1:18:46
MIT OpenCourseWare
Переглядів 73 тис.
Nvidia CUDA in 100 Seconds
3:13
Fireship
Переглядів 1 млн
Projects Every Programmer Should Try
16:58
ThePrimeTime
Переглядів 298 тис.
Let's Create a Compiler (Pt.1)
1:11:03
Pixeled
Переглядів 430 тис.
Как должен стоять ПК?
1:00
CompShop Shorts
Переглядів 336 тис.
I7 2600K тест в играх и сравнение с AMD Ryzen
17:53
СКОЛЬКО ЕЩЕ БУДЕТ АКТУАЛЕН IPHONE 13?
14:10
DimaViper Live
Переглядів 25 тис.
Сомнительно... Ну Окэй... Распаковал Nothing Phone (2a)
16:19
РасПаковка ДваПаковка
Переглядів 54 тис.