
Introduction to LLVM [video] - matt_d
https://fosdem.org/2018/schedule/event/introduction/
======
josteink
Youtube mirror, for those who'd like to add it to their "Watch later"-list:

[https://www.youtube.com/watch?v=VKIv_Bkp4pk](https://www.youtube.com/watch?v=VKIv_Bkp4pk)

~~~
collinmanderson
Or for those who want to easily watch on 2x speed.

~~~
jakeogh
mpv does a nice job with that '[' and ']' select any arb speed and '.' steps
frame by frame (with sound).

------
matt_d
Slides and code examples:
[http://www.mshah.io/fosdem18.html](http://www.mshah.io/fosdem18.html)

------
perbu
Mike says in his talk that LLVM started out with the goal of having an
intermediate representation to run optimizations on. Hasn't this always been
the case with compilers in recent times? I seem to recall similar things being
said about the GNU Compiler Collection at a presentation many years ago.

If this is true, what is (was) the appeal of the LLVM project at the time of
the project inception?

~~~
oselhn
As I understand it, difference is more political than technical. GCC is made
to prevent people plug in nonfree parts into compiler. So you cannot plug in
your dynamic library or use part of GCC as library which is artificial
restriction. See this
[https://gcc.gnu.org/ml/gcc/2014-01/msg00247.html](https://gcc.gnu.org/ml/gcc/2014-01/msg00247.html),
[https://channel9.msdn.com/Events/GoingNative/GoingNative-201...](https://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Clang-
Defending-C-from-Murphy-s-Million-Monkeys)

~~~
MaxBarraclough
If you really wanted to, I imagine you could write a proprietary compiler that
generated some serialisation of one of GCC's IRs (GENERIC or GIMPLE), and you
could write a deserialiser for GCC that reads in that IR. Release the
deserialiser under GPL, then you can legally use GCC as the backend for your
proprietary compiler.

This sort of IPC-like hackery often seems to happen when someone is looking to
work around copyleft - they can then break the spirit of the GPL without
breaking the legal obligations.

~~~
pertymcpert
You would still need to use gcc code to operate on the deserialized IR, which
is GPL. Unless you then transform the IR into a proprietary one, in which case
that's not breaking the spirit of the GPL.

~~~
MaxBarraclough
> You would still need to use gcc code to operate on the deserialized IR,
> which is GPL

The GPL's terms would not extend to the program that generated the IR.

A GPL web server can't require a web browser to relicense under GPL, either.
Same idea.

------
t-ob
I attended this talk, and it was one of the highlights of the conference for
me. Mike is a great speaker and I found myself inspired to dive deeper into
LLVM internals afterwards.

------
thefourthchime
Shame the mic is so hot, it's really hard to listen to.

------
marksomnian
[video]

