=====
Talks
=====
----
2025
----
* An introduction to building and using LLVM libc - Peter Smith

  * `slides <https://fosdem.org/2025/events/attachments/fosdem-2025-5456-an-introduction-to-building-and-using-llvm-libc/slides/237989/Fosdem202_76Bilu2.pdf>`__
  * `videos <https://fosdem.org/2025/schedule/event/fosdem-2025-5456-an-introduction-to-building-and-using-llvm-libc/>`__

----
2024
----
* A C/C++ Toolchain for your GPU - Joseph Huber

  * `slides <https://llvm.org/devmtg/2024-10/slides/techtalk/Huber-A-CPlusPlus-Toolchain-for-Your-GPU.pdf>`__
  * `videos <https://www.youtube.com/watch?v=4TxGWis1mws>`__
  * `phoronix <https://www.phoronix.com/news/AMD-Standard-C-Code-GPUs>`__

* Modern Embedded Development with LLVM - Petr Hosek

  * `slides <https://llvm.org/devmtg/2024-10/slides/techtalk/Hosek-ModernEmbeddedDevelopment-with-LLVM.pdf>`__
  * `videos <https://www.youtube.com/watch?v=5hHQi-Uj34I>`__

* Using llvm-libc in LLVM Embedded Toolchain for Arm - Peter Smith

  * `slides <https://llvm.org/devmtg/2024-10/slides/lightning/Smith-Using-llvm-libc.pdf>`__
  * `videos <https://www.youtube.com/watch?v=ctgkbaYwT_I>`__

* RISC-V Support into LLVM libc - Challenges and Solutions for 32-bit and 64-bit - Mikhail R. Gadelha

  * `slides <https://llvm.org/devmtg/2024-10/slides/quicktalks/Gadelha-RISC-V-SupportIntoLLVM-libc.pdf>`__
  * `videos <https://www.youtube.com/watch?v=GytmaH64wFo>`__

* Project Hand-in-Hand - The beginning of a beautiful friendship - Michael Jones & Christopher Di Bella

  * `slides <https://llvm.org/devmtg/2024-10/slides/techtalk/Jones-DiBella-hand-in-hand.pdf>`__
  * `videos <https://www.youtube.com/watch?v=VAEO86YtTHA>`__

* LLVM libc math library - Current status and future directions - Tue Ly

  * `slides <https://llvm.org/devmtg/2024-10/slides/techtalk/Ly-LLVM-libc-math-library-CurrentStatus.pdf>`__
  * `videos <https://www.youtube.com/watch?v=-8zb8rHbvcQ>`__

* Half-precision in LLVM libc - Nicolas Celik

  * `slides <https://llvm.org/devmtg/2024-10/slides/studenttalks/Celik-Half-precision-in-LLVM-libc.pdf>`__
  * `videos <https://www.youtube.com/watch?v=H6aOFSVwSSM>`__

----
2023
----
* Math functions in LLVM libc or yet another correctly rounded libm - Tue Ly

  * `slides <https://drive.google.com/file/d/1Gchrc3AXKXAWFI1nk8Y1x8UsoQSp8XjF/view>`__
  * `video <https://www.youtube.com/watch?v=kBSJqVWNQLY>`__

* The LLVM C Library for GPUs - Joseph Huber

  * `slides <https://llvm.org/devmtg/2023-10/slides/techtalks/Huber-LibCforGPUs.pdf>`__
  * `video <https://www.youtube.com/watch?v=_LLGc48GYHc>`__

* The Challenges of Implementing the C Standard Library in C++ - Sivachandra Reddy

  * `slides <https://github.com/boostcon/cppnow_presentations_2023/blob/main/cppnow_slides/The_Challenges_of_Implementing_the_C_Standard_Library_in_Cpp.pdf>`__
  * `video <https://www.youtube.com/watch?v=cuVrWUGSIgM>`__

----
2022
----
* Using LLVM's libc - Sivachandra Reddy, Michael Jones, Tue Ly

  * `slides <https://llvm.org/devmtg/2022-11/slides/Tutorial1-UsingLLVM-libc.pdf>`__
  * `video <https://www.youtube.com/watch?v=OpY4lnpnbq4>`__

* Using modern CPU instructions to improve LLVM's libc math library - Tue Ly

  * `slides <https://llvm.org/devmtg/2022-11/slides/QuickTalk7-UsingModernCPUInstructionsToImproveLLVM-libcMathLib>`__
  * `video <https://www.youtube.com/watch?v=9bvdbdn0nMA>`__

* Approximating at Scale: How strto float in LLVM’s libc is faster - Michael Jones

  * `slides <https://llvm.org/devmtg/2022-11/slides/QuickTalk3-ApproximatingatScale-StringToFloat.pdf>`__
  * `video <https://www.youtube.com/watch?v=s-UjbTV8p6g>`__
