I feel like that is such a great way to describe LLVM assembly "strongly typed RISC" yep!
@adennyh5 років тому
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.
@sepidet69705 років тому
Thank you so much for this awesome easy-to-understand explanation
@omicron110010 днів тому
I haven't seen anyone else mention it so I have to say, your slide animations are killer!
@abdulqawisaif45136 років тому
Thanks for this nice and simple talk / lecture :)
@kartikch3 роки тому
This explanation is beautifully. Thanks for this.
@DalasYoo5 років тому
Easy for newbie, thanks
@cameronsmith898611 місяців тому
Great presentation! Thanks!
@supergopi7 років тому
@Morgan Thanks! learned something new today.
@MorganWilde7 років тому
Glad I could provide some value!
@Jan_Jan_3 місяці тому
This was a great explanation - thank you! :)
@user-hh2lq4bh4n6 місяців тому
Thank You Morgan! This is helpful. Do you have any good video pointers to learning llvm dialects?
@xinboban77624 роки тому
I have been looking for the slides.
@tiberiushoughton38496 років тому
@Morgan thx so much for this explanation and also for doing an episode on the SE (software engineer) podcast
@MorganWilde6 років тому
I appreciate the support Tiberius!
@Miggleness5 років тому
I was about to listen to that episode yesterday till they mentioned about Morgan's UKposts video. Now, back to the episode
@openroomxyz2 роки тому
Thanks!
@nobody986011 місяців тому
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?
@viktorengelmann38926 років тому
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.
@viktorengelmann38926 років тому
link-time, to be precise
@MorganWilde6 років тому
Thank you for the clarification.
@diegonayalazo4 роки тому
Thanks
@cepi247 років тому
What is the name of this guy? Are there any other his LLVM talks?
@MorganWilde7 років тому
I'm that guy :). Unfortunately, I haven't made any other talks on LLVM after this one. Thanks for the interest though!
@OttoFazzl5 років тому
@@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!
@avinashreddyt17377 років тому
@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.
@MorganWilde7 років тому
Everything start with llvm.org/
@cs10701517 років тому
@morgan: Is the optimization 2 * x - x = x really valid? considering 2 * x might overflow.
@MorganWilde7 років тому
Yes, this is a valid mathematical optimization, regardless of the overflow consideration you mentioned.
@Wren69917 років тому
@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.
@cs10701517 років тому
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)
@Wren69917 років тому
That's true, you got me :)
@AnujFalcon2 роки тому
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)
@dankierson2 роки тому
Jesus Christ, man - up the volume!
@antwanwimberly17296 місяців тому
WäN - 🇩🇪
@Sina-xw4xp3 роки тому
one again, immutable variable is not a variable it is a constant :)
@3bdoelnaggar3 роки тому
Not a constant because the value of it can be assigned one it assigned cant be changed
@Sina-xw4xp3 роки тому
@@3bdoelnaggar The value of constants is also assigned once inside the code :)
@3bdoelnaggar3 роки тому
@@Sina-xw4xp inside code is constant inside runtime is immutable
@Sina-xw4xp3 роки тому
@@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
@abdlwahdsa5 років тому
A Pascal llvm compiler in Haskell: github.com/sam46/paskell
@RodrigoCaetanoRocha5 років тому
For those interested in learning more about compilers and in-depth LLVM tutorials: www.patreon.com/rcor
@dialecticalmonist34052 роки тому
"LLVM is not an acronym". Um... ok, great, but could you perhaps say SOMETHING more informative about the name origin?
@scottfranco19623 роки тому
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.
@MorganWilde3 роки тому
Thanks for the comment!
@wearecomingback57075 років тому
Test
@jett53854 роки тому
LLVM is a name ! what? Just find a better name or tell us that is it is an acronym for Low Level Virtual Machine.
@alexrawson84923 роки тому
IIRC it doesn't stand for anything, it's just the name