2019 LLVM Developers’ Meeting: “Writing Loop Optimizations in LLVM”

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ต.ค. 2024
  • llvm.org/devmtg...
    -
    Writing Loop Optimizations in LLVM - Kit Barton, Ettore Tiotto, Hal Finkel, Michael Kruse, Johannes Doerfert
    Slides: Coming Soon
    -
    LLVM contains an evolving set of classes and tools specifically designed to interact with loops. The Loop and LoopInfo classes are being continually improved, as are supporting data structures such as the Data Dependence Graph (DDG) and Program Dependence Graph (PDG). The pass manager infrastructure (both New and Legacy pass managers) provide infrastructure to write both function passes and loop passes. However, putting all of these concepts together to write a functioning loop optimization pass can still be a somewhat daunting task.
    This tutorial will start by introducing basic terminology that is used within LLVM to describe loops (for example, many of the concepts introduced in reviews.llvm.o.... It will then look at the Loop and LoopInfo classes, and go over the interfaces they have to work with loops. It will provide examples of how these classes can be used to implement different types of loop optimizations, using examples from both the Loop Fusion and Loop Distribution passes. It will discuss the differences between a function pass and a loop pass, including a discussion of the advantages and disadvantages of each one when writing loop optimizations. It will also provide guidance on when each type of pass should be used. Finally, it will go through many of the useful utility functions that need to be used in order to write a loop optimization efficiently (e.g., updating the dominator tree, updating Scalar Evolution, etc.).
    -
    Videos Filmed & Edited by Bash Films: www.BashFilms.com

ความคิดเห็น • 2

  • @Kazooie
    @Kazooie 4 ปีที่แล้ว +1

    Loved this talk! So much good info available here :)

  • @BHARATHKUMAR-gr9km
    @BHARATHKUMAR-gr9km 2 ปีที่แล้ว

    Sir I am stuck too badly. Please help me
    I have vectoradd. Cpp and in an empty directory using clang++ I have compiled the vectoradd.cpp on llvm using - - save-Temps so that I will get. S files.
    Now my task is using those 3 .S files need to generate executable binay. Please help me
    command: clang++ -std=c+17 - O3 - fsycl - - save-Temps - fsycl-targets=nvptx64-nvidia-cuda - - cuda-path=/usr/local/Cuda.. /vectoradd.cpp ( I have typed here manually)