Загрузка страницы

2018 EuroLLVM Developers’ Meeting: J. Absar “Scalar Evolution - Demystified”

http://llvm.org/devmtg/2018-04/

Scalar Evolution - Demystified - J. Absar, Arm

Slides: http://llvm.org/devmtg/2018-04/slides/Absar-ScalarEvolution.pdf

This is a tutorial/technical-talk proposal for an illustrative and in-depth exposition of Scalar Evolution in LLVM. Scalar Evolution is an LLVM analysis that is used to analyse, categorize and simplify expressions in loops. Many optimizations such as - generalized loop-strength-reduction, parallelisation by induction variable (vectorization), and loop-invariant expression elimination - rely on SCEV analysis.

However, SCEV is also a complex topic. This tutorial delves into how exactly LLVM performs the SCEV magic and how it can be used effectively to implement and analyse different optimisations.

This tutorial will cover the following topics:

What is SCEV? How does it help improve performance? SCEV in action (using simple clear examples).
hain of Recurrences - which forms the mathematical basis of SCEV.
Simplifying/rewriting rules in CR that SCEV uses to simplify expressions evolving out of induction variables. Terminology and SCEV Expression Types (e.g. AddRec) that is common currency that one should get familiar with when trying to understand and use SCEV in any context.
LLVM SCEV implementation of CR - what's present and what's missing?
How to use SCEV analysis to write your own optimisation pass? Usage of SCEV by LSR (Loop Strength Reduce) and others.
How to generate analysis info out of SCEV and how to interpret them.
The last talk on SCEV was in LLVM-Dev 2009. This tutorial will be complementary to that and go further with examples, discussions and evolution of scalar-evolution in llvm since then. The author has previously given a talk on machine scheduler in llvm - https://www.youtube.com/watch?v=brpomKUynEA&t=310s

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com

Видео 2018 EuroLLVM Developers’ Meeting: J. Absar “Scalar Evolution - Demystified” канала LLVM
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
3 мая 2018 г. 4:19:12
00:50:37
Другие видео канала
2018 LLVM Developers’ Meeting: L. Hames & B. Loggins “Updating ORC JIT for Concurrency”2018 LLVM Developers’ Meeting: L. Hames & B. Loggins “Updating ORC JIT for Concurrency”2018 LLVM Developers’ Meeting: J. Bastien “Migrating to C++14, and beyond!”2018 LLVM Developers’ Meeting: J. Bastien “Migrating to C++14, and beyond!”2020 LLVM Developers’ Meeting: I. Yakubova “Adding a Subtarget Support to LLVM in Five Minutes”2020 LLVM Developers’ Meeting: I. Yakubova “Adding a Subtarget Support to LLVM in Five Minutes”2017 LLVM Developers’ Meeting: N. Hawes & A. Lorenz “Adding Index‐While‐Building and  ..."2017 LLVM Developers’ Meeting: N. Hawes & A. Lorenz “Adding Index‐While‐Building and ..."2020 LLVM Developers’ Meeting: P. Reames “An Update on Optimizing Multiple Exit Loops”2020 LLVM Developers’ Meeting: P. Reames “An Update on Optimizing Multiple Exit Loops”2018 LLVM Developers’ Meeting: M. Gadelha “Refuting False Bugs in the Clang Static Analyzer  ...”2018 LLVM Developers’ Meeting: M. Gadelha “Refuting False Bugs in the Clang Static Analyzer ...”2017 LLVM Developers’ Meeting: “GlobalISel: Past, Present, and Future ”2017 LLVM Developers’ Meeting: “GlobalISel: Past, Present, and Future ”2020 LLVM Developers’ Meeting: “(OpenMP) Parallelism-Aware Optimizations”2020 LLVM Developers’ Meeting: “(OpenMP) Parallelism-Aware Optimizations”2016 LLVM Developers’ Meeting: P. Padlewski “Devirtualization in LLVM”2016 LLVM Developers’ Meeting: P. Padlewski “Devirtualization in LLVM”07 An Anatomy of Optimized Matrix Multiplication on AArch6407 An Anatomy of Optimized Matrix Multiplication on AArch642022 LLVM Dev Mtg: MLIR for Functional Programming2022 LLVM Dev Mtg: MLIR for Functional Programming2012 EuroLLVM Developers’ Meeting: L. Smith “Introduction”2012 EuroLLVM Developers’ Meeting: L. Smith “Introduction”2020 LLVM in HPC Workshop: Autotuning Search Space for Loop Transformations2020 LLVM in HPC Workshop: Autotuning Search Space for Loop Transformations2019 LLVM Developers’ Meeting: O. Cazalet-Hyams “Improving the Optimized Debugging Experience”2019 LLVM Developers’ Meeting: O. Cazalet-Hyams “Improving the Optimized Debugging Experience”2022 EuroLLVM Dev Mtg “Developing an LLVM backend for the KV3 Kalray VLIW core”2022 EuroLLVM Dev Mtg “Developing an LLVM backend for the KV3 Kalray VLIW core”2019 LLVM Developers’ Meeting: J. Doerfert “The Attributor: A Versatile Inter-procedural Fixpoint..”2019 LLVM Developers’ Meeting: J. Doerfert “The Attributor: A Versatile Inter-procedural Fixpoint..”2018 LLVM Developers’ Meeting: S. Moll “Stories from RV: The LLVM vectorization ecosystem ”2018 LLVM Developers’ Meeting: S. Moll “Stories from RV: The LLVM vectorization ecosystem ”2020 LLVM Developers’ Meeting: E. Stepanov “Memory tagging in LLVM and Android”2020 LLVM Developers’ Meeting: E. Stepanov “Memory tagging in LLVM and Android”2016 EuroLLVM Developers' Meeting: Kristof Beyls "Towards ameliorating measurement bias ..."2016 EuroLLVM Developers' Meeting: Kristof Beyls "Towards ameliorating measurement bias ..."2019 LLVM Developers’ Meeting: V. Keles & D. Sanders “Generating Optimized Code with GlobalISel”2019 LLVM Developers’ Meeting: V. Keles & D. Sanders “Generating Optimized Code with GlobalISel”2019 LLVM Developers’ Meeting: S. Tallam “Propeller: Profile Guided Large Scale Performance...”2019 LLVM Developers’ Meeting: S. Tallam “Propeller: Profile Guided Large Scale Performance...”
Яндекс.Метрика