SlideShare a Scribd company logo
B.P. PODDAR INSTITUTE OF MANAGEMENT
AND TECHNOLOGY
BY--------
DEBANKA KHAN(9013)
CHAYAN PATHAK(9041)
DIGANTA GHOSH(9050)
DEBAJYOTI ROY CHOWDHURY (9032)
Topic:- LLVM Compiler
Contents
❖ What’s LLVM?
❖ History of LLVM
❖ How Is LLVM Different From GCC?
❖ How A LLVM Compiler Works?
❖ Automatic code optimization with LLVM
❖ Components
❖ What LLVM doesn’t do
What’s LLVM?
As per the official site(https://llvm.org/):
The LLVM Project is a collection of modular and reusable
compiler and toolchain technologies.The name "LLVM" itself is
not an acronym; it is the full name of the project.
LLVM is a compiler and a toolkit for building compilers,
which are programs that convert instructions into a form
that can be read and executed by a computer.
History of LLVM
The LLVM project started in 2000 at the
University of Illinois at Urbana–Champaign,
under the direction of Vikram Adve and Chris
Lattner. LLVM was originally developed as a
research infrastructure to investigate
dynamic compilation techniques for static
and dynamic programming languages.Now,
LLVM is a brand that applies to the LLVM
umbrella project, the LLVM intermediate
representation (IR), the LLVM debugger, the
LLVM implementation of the C++ Standard
Library etc. LLVM is written in C++.
The LLVM logo
How Is LLVM Different From GCC?
LLVM and the GNU Compiler Collection (GCC) are both compilers. The
difference is that GCC supports a number of programming languages while
LLVM isn’t a compiler for any given language. LLVM is a framework to
generate object code from any kind of source code.
How A LLVM Compiler Works?
LLVM can provide the middle layers of a complete compiler system, taking
intermediate representation (IR) code from a compiler and emitting an optimized
IR. On the front end, the LLVM compiler infrastructure uses clang — a compiler for
programming languages C, C++ and CUDA — to turn source code into an interim
format. Then the LLVM clang code generator on the back end turns the interim
format into final machine code.
Automatic code optimization with LLVM
LLVM doesn’t just compile the
IR to native machine code. You
can also programmatically
direct it to optimize the code
with a high degree of
granularity, all the way through
the linking process. The
optimizations can be quite
aggressive, including things like
inlining functions, eliminating
dead code (including unused
type declarations and function
arguments), and unrolling
loops.
Components
LLVM
Umbrella
Back Ends
Front Ends
Intermediate
Representation
C++ Standard
Library
Debugger
LLVM has become an umbrella project containing multiple components.
What LLVM doesn’t do
❖ LLVM does not parse a language’s grammar. Many tools already do that
job, like lex/yacc, flex/bison, Lark, and ANTLR.
❖ there are still common parts of languages that LLVM doesn’t provide
primitives for. Many languages have some manner of garbage-collected
memory management, either as the main way to manage memory or as an
adjunct to strategies like RAII (which C++ and Rust use). LLVM doesn’t give
you a garbage-collector mechanism, but it does provide tools to implement
garbage collection
But now, LLVM is developing quickly, with a major release every six months
or so. And the pace of development is likely to only pick up
LLVM Compiler

More Related Content

What's hot (20)

PPTX
Linux Kernel Booting Process (2) - For NLKB
shimosawa
 
PPTX
Linux device drivers
Abhishek Sagar
 
PDF
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Anne Nicolas
 
PPT
Shell Scripting
Gaurav Shinde
 
PPTX
Linux Initialization Process (2)
shimosawa
 
PDF
Interpreter, Compiler, JIT from scratch
National Cheng Kung University
 
PDF
from Binary to Binary: How Qemu Works
Zhen Wei
 
PDF
Valgrind
aidanshribman
 
PDF
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Linaro
 
PPTX
Linux Initialization Process (1)
shimosawa
 
PPTX
Linux Kernel Tour
samrat das
 
PDF
Memory Compaction in Linux Kernel.pdf
Adrian Huang
 
PPTX
Code optimization
Pradip Bhattarai
 
PDF
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
The Linux Foundation
 
PDF
How A Compiler Works: GNU Toolchain
National Cheng Kung University
 
PPTX
Integrated Register Allocation introduction
Shiva Chen
 
PDF
Debugging linux kernel tools and techniques
Satpal Parmar
 
PDF
Performance Analysis Tools for Linux Kernel
lcplcp1
 
PDF
Vim Rocks!
Kent Chen
 
Linux Kernel Booting Process (2) - For NLKB
shimosawa
 
Linux device drivers
Abhishek Sagar
 
Kernel Recipes 2015: Linux Kernel IO subsystem - How it works and how can I s...
Anne Nicolas
 
Shell Scripting
Gaurav Shinde
 
Linux Initialization Process (2)
shimosawa
 
Interpreter, Compiler, JIT from scratch
National Cheng Kung University
 
from Binary to Binary: How Qemu Works
Zhen Wei
 
Valgrind
aidanshribman
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Linaro
 
Linux Initialization Process (1)
shimosawa
 
Linux Kernel Tour
samrat das
 
Memory Compaction in Linux Kernel.pdf
Adrian Huang
 
Code optimization
Pradip Bhattarai
 
Rootlinux17: Hypervisors on ARM - Overview and Design Choices by Julien Grall...
The Linux Foundation
 
How A Compiler Works: GNU Toolchain
National Cheng Kung University
 
Integrated Register Allocation introduction
Shiva Chen
 
Debugging linux kernel tools and techniques
Satpal Parmar
 
Performance Analysis Tools for Linux Kernel
lcplcp1
 
Vim Rocks!
Kent Chen
 

Similar to LLVM Compiler (20)

PDF
.NET Core, ASP.NET Core Course, Session 3
Amin Mesbahi
 
PDF
Bn1005 demo ppt core java
conline training
 
PDF
6. The grid-COMPUTING OGSA and WSRF
Dr Sandeep Kumar Poonia
 
PPTX
Intro to Microsoft.NET
rchakra
 
PPT
Chapter 1 introduction to java technology
sshhzap
 
PPT
Dotnet framework
Nitu Pandey
 
PPTX
JAVA PROGRAMING NOTE FOR BEGINNERS 20242
boatengsolo963
 
PPT
2-Lec - History of OOP and Java (1) .ppt
AqeelAbbas94
 
PPTX
Selenium Training in Mohali
E2MATRIX
 
PPTX
Selenium Training in Ludhiana
E2MATRIX
 
PPTX
Selenium Training in Chandigarh
E2MATRIX
 
PPTX
C vs JAVA.pptx
AmitSingh770691
 
PPTX
Selenium Training in Jalandhar
E2MATRIX
 
PPTX
Selenium Training in Phagwara
E2MATRIX
 
PPTX
Selenium Training in Amritsar
E2MATRIX
 
PPTX
c# usage,applications and advantages
mohamed drahem
 
PDF
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
ssuserbe139c
 
DOCX
Analysis
venkatesh anantha
 
PPTX
Chapter 1.pptx compiler design lecture note
adugnanegero
 
PPTX
Features of java unit 1
RubaNagarajan
 
.NET Core, ASP.NET Core Course, Session 3
Amin Mesbahi
 
Bn1005 demo ppt core java
conline training
 
6. The grid-COMPUTING OGSA and WSRF
Dr Sandeep Kumar Poonia
 
Intro to Microsoft.NET
rchakra
 
Chapter 1 introduction to java technology
sshhzap
 
Dotnet framework
Nitu Pandey
 
JAVA PROGRAMING NOTE FOR BEGINNERS 20242
boatengsolo963
 
2-Lec - History of OOP and Java (1) .ppt
AqeelAbbas94
 
Selenium Training in Mohali
E2MATRIX
 
Selenium Training in Ludhiana
E2MATRIX
 
Selenium Training in Chandigarh
E2MATRIX
 
C vs JAVA.pptx
AmitSingh770691
 
Selenium Training in Jalandhar
E2MATRIX
 
Selenium Training in Phagwara
E2MATRIX
 
Selenium Training in Amritsar
E2MATRIX
 
c# usage,applications and advantages
mohamed drahem
 
CLR_via_CSharp_(Jeffrey_Richter_4th_Edition).pdf
ssuserbe139c
 
Chapter 1.pptx compiler design lecture note
adugnanegero
 
Features of java unit 1
RubaNagarajan
 
Ad

Recently uploaded (20)

PDF
MOBILE AND WEB BASED REMOTE BUSINESS MONITORING SYSTEM
ijait
 
PPTX
原版一样(Acadia毕业证书)加拿大阿卡迪亚大学毕业证办理方法
Taqyea
 
PDF
PRIZ Academy - Change Flow Thinking Master Change with Confidence.pdf
PRIZ Guru
 
PPTX
Break Statement in Programming with 6 Real Examples
manojpoojary2004
 
PDF
monopile foundation seminar topic for civil engineering students
Ahina5
 
PPTX
Presentation on Foundation Design for Civil Engineers.pptx
KamalKhan563106
 
PPTX
ISO/IEC JTC 1/WG 9 (MAR) Convenor Report
Kurata Takeshi
 
DOCX
8th International Conference on Electrical Engineering (ELEN 2025)
elelijjournal653
 
PPTX
drones for disaster prevention response.pptx
NawrasShatnawi1
 
PPTX
The Role of Information Technology in Environmental Protectio....pptx
nallamillisriram
 
PPTX
MobileComputingMANET2023 MobileComputingMANET2023.pptx
masterfake98765
 
PPTX
Pharmaceuticals and fine chemicals.pptxx
jaypa242004
 
PPTX
Benefits_^0_Challigi😙🏡💐8fenges[1].pptx
akghostmaker
 
PPTX
Hashing Introduction , hash functions and techniques
sailajam21
 
PDF
Additional Information in midterm CPE024 (1).pdf
abolisojoy
 
PDF
Zilliz Cloud Demo for performance and scale
Zilliz
 
PDF
Unified_Cloud_Comm_Presentation anil singh ppt
anilsingh298751
 
PDF
Ethics and Trustworthy AI in Healthcare – Governing Sensitive Data, Profiling...
AlqualsaDIResearchGr
 
PDF
Water Design_Manual_2005. KENYA FOR WASTER SUPPLY AND SEWERAGE
DancanNgutuku
 
PDF
6th International Conference on Machine Learning Techniques and Data Science ...
ijistjournal
 
MOBILE AND WEB BASED REMOTE BUSINESS MONITORING SYSTEM
ijait
 
原版一样(Acadia毕业证书)加拿大阿卡迪亚大学毕业证办理方法
Taqyea
 
PRIZ Academy - Change Flow Thinking Master Change with Confidence.pdf
PRIZ Guru
 
Break Statement in Programming with 6 Real Examples
manojpoojary2004
 
monopile foundation seminar topic for civil engineering students
Ahina5
 
Presentation on Foundation Design for Civil Engineers.pptx
KamalKhan563106
 
ISO/IEC JTC 1/WG 9 (MAR) Convenor Report
Kurata Takeshi
 
8th International Conference on Electrical Engineering (ELEN 2025)
elelijjournal653
 
drones for disaster prevention response.pptx
NawrasShatnawi1
 
The Role of Information Technology in Environmental Protectio....pptx
nallamillisriram
 
MobileComputingMANET2023 MobileComputingMANET2023.pptx
masterfake98765
 
Pharmaceuticals and fine chemicals.pptxx
jaypa242004
 
Benefits_^0_Challigi😙🏡💐8fenges[1].pptx
akghostmaker
 
Hashing Introduction , hash functions and techniques
sailajam21
 
Additional Information in midterm CPE024 (1).pdf
abolisojoy
 
Zilliz Cloud Demo for performance and scale
Zilliz
 
Unified_Cloud_Comm_Presentation anil singh ppt
anilsingh298751
 
Ethics and Trustworthy AI in Healthcare – Governing Sensitive Data, Profiling...
AlqualsaDIResearchGr
 
Water Design_Manual_2005. KENYA FOR WASTER SUPPLY AND SEWERAGE
DancanNgutuku
 
6th International Conference on Machine Learning Techniques and Data Science ...
ijistjournal
 
Ad

LLVM Compiler

  • 1. B.P. PODDAR INSTITUTE OF MANAGEMENT AND TECHNOLOGY BY-------- DEBANKA KHAN(9013) CHAYAN PATHAK(9041) DIGANTA GHOSH(9050) DEBAJYOTI ROY CHOWDHURY (9032) Topic:- LLVM Compiler
  • 2. Contents ❖ What’s LLVM? ❖ History of LLVM ❖ How Is LLVM Different From GCC? ❖ How A LLVM Compiler Works? ❖ Automatic code optimization with LLVM ❖ Components ❖ What LLVM doesn’t do
  • 3. What’s LLVM? As per the official site(https://llvm.org/): The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.The name "LLVM" itself is not an acronym; it is the full name of the project. LLVM is a compiler and a toolkit for building compilers, which are programs that convert instructions into a form that can be read and executed by a computer.
  • 4. History of LLVM The LLVM project started in 2000 at the University of Illinois at Urbana–Champaign, under the direction of Vikram Adve and Chris Lattner. LLVM was originally developed as a research infrastructure to investigate dynamic compilation techniques for static and dynamic programming languages.Now, LLVM is a brand that applies to the LLVM umbrella project, the LLVM intermediate representation (IR), the LLVM debugger, the LLVM implementation of the C++ Standard Library etc. LLVM is written in C++. The LLVM logo
  • 5. How Is LLVM Different From GCC? LLVM and the GNU Compiler Collection (GCC) are both compilers. The difference is that GCC supports a number of programming languages while LLVM isn’t a compiler for any given language. LLVM is a framework to generate object code from any kind of source code.
  • 6. How A LLVM Compiler Works? LLVM can provide the middle layers of a complete compiler system, taking intermediate representation (IR) code from a compiler and emitting an optimized IR. On the front end, the LLVM compiler infrastructure uses clang — a compiler for programming languages C, C++ and CUDA — to turn source code into an interim format. Then the LLVM clang code generator on the back end turns the interim format into final machine code.
  • 7. Automatic code optimization with LLVM LLVM doesn’t just compile the IR to native machine code. You can also programmatically direct it to optimize the code with a high degree of granularity, all the way through the linking process. The optimizations can be quite aggressive, including things like inlining functions, eliminating dead code (including unused type declarations and function arguments), and unrolling loops.
  • 8. Components LLVM Umbrella Back Ends Front Ends Intermediate Representation C++ Standard Library Debugger LLVM has become an umbrella project containing multiple components.
  • 9. What LLVM doesn’t do ❖ LLVM does not parse a language’s grammar. Many tools already do that job, like lex/yacc, flex/bison, Lark, and ANTLR. ❖ there are still common parts of languages that LLVM doesn’t provide primitives for. Many languages have some manner of garbage-collected memory management, either as the main way to manage memory or as an adjunct to strategies like RAII (which C++ and Rust use). LLVM doesn’t give you a garbage-collector mechanism, but it does provide tools to implement garbage collection But now, LLVM is developing quickly, with a major release every six months or so. And the pace of development is likely to only pick up