mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-28 06:00:30 +00:00
[Kaleidoscope] Remove the old Kaleidoscope/ORC tutorial series.
This code has been superseded by the new Building A JIT series. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271059 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a827bf1ce5
commit
7a2177551f
@ -1,4 +0,0 @@
|
||||
add_subdirectory(initial)
|
||||
add_subdirectory(lazy_codegen)
|
||||
add_subdirectory(lazy_irgen)
|
||||
add_subdirectory(fully_lazy)
|
@ -1,13 +0,0 @@
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Core
|
||||
ExecutionEngine
|
||||
Object
|
||||
OrcJIT
|
||||
RuntimeDyld
|
||||
Support
|
||||
native
|
||||
)
|
||||
|
||||
add_kaleidoscope_chapter(Kaleidoscope-Orc-fully_lazy
|
||||
toy.cpp
|
||||
)
|
@ -1,21 +0,0 @@
|
||||
//===----------------------------------------------------------------------===/
|
||||
// Kaleidoscope with Orc - Lazy IRGen Version
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
This version of Kaleidoscope with Orc demonstrates fully lazy IR-generation.
|
||||
Building on the lazy-irgen version of the tutorial, this version injects JIT
|
||||
callbacks to defer the bulk of IR-generation and code-generation of functions until
|
||||
they are first called.
|
||||
|
||||
When a function definition is entered, a JIT callback is created and a stub
|
||||
function is built that will call the body of the function indirectly. The body of
|
||||
the function is *not* IRGen'd at this point. Instead, the function pointer for
|
||||
the indirect call is initialized to point at the JIT callback, and the compile
|
||||
action for the callback is initialized with a lambda that IRGens the body of the
|
||||
function and adds it to the JIT. The function pointer is updated by the JIT
|
||||
callback's update action to point at the newly emitted function body, so future
|
||||
calls to the stub will go straight to the body, not through the JIT.
|
||||
|
||||
This directory contains a Makefile that allows the code to be built in a
|
||||
standalone manner, independent of the larger LLVM build infrastructure. To build
|
||||
the program you will need to have 'clang++' and 'llvm-config' in your path.
|
File diff suppressed because it is too large
Load Diff
@ -1,12 +0,0 @@
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Core
|
||||
ExecutionEngine
|
||||
Object
|
||||
RuntimeDyld
|
||||
Support
|
||||
native
|
||||
)
|
||||
|
||||
add_kaleidoscope_chapter(Kaleidoscope-Orc-initial
|
||||
toy.cpp
|
||||
)
|
@ -1,13 +0,0 @@
|
||||
//===----------------------------------------------------------------------===/
|
||||
// Kaleidoscope with Orc - Initial Version
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
This version of Kaleidoscope with Orc demonstrates fully eager compilation. When
|
||||
a function definition or top-level expression is entered it is immediately
|
||||
translated (IRGen'd) to LLVM IR and added to the JIT, where it is code-gen'd to
|
||||
native code and either stored (for function definitions) or executed (for
|
||||
top-level expressions).
|
||||
|
||||
This directory contain a Makefile that allow the code to be built in a
|
||||
standalone manner, independent of the larger LLVM build infrastructure. To build
|
||||
the program you will need to have 'clang++' and 'llvm-config' in your path.
|
File diff suppressed because it is too large
Load Diff
@ -1,12 +0,0 @@
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Core
|
||||
ExecutionEngine
|
||||
Object
|
||||
RuntimeDyld
|
||||
Support
|
||||
native
|
||||
)
|
||||
|
||||
add_kaleidoscope_chapter(Kaleidoscope-Orc-lazy_codegen
|
||||
toy.cpp
|
||||
)
|
@ -1,13 +0,0 @@
|
||||
//===----------------------------------------------------------------------===/
|
||||
// Kaleidoscope with Orc - Initial Version
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
This version of Kaleidoscope with Orc demonstrates lazy code-generation.
|
||||
Unlike the first Kaleidoscope-Orc tutorial, where code-gen was performed as soon
|
||||
as modules were added to the JIT, this tutorial adds a LazyEmittingLayer to defer
|
||||
code-generation until modules are actually referenced. All IR-generation is still
|
||||
performed up-front.
|
||||
|
||||
This directory contain a Makefile that allow the code to be built in a
|
||||
standalone manner, independent of the larger LLVM build infrastructure. To build
|
||||
the program you will need to have 'clang++' and 'llvm-config' in your path.
|
File diff suppressed because it is too large
Load Diff
@ -1,12 +0,0 @@
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
Core
|
||||
ExecutionEngine
|
||||
Object
|
||||
RuntimeDyld
|
||||
Support
|
||||
native
|
||||
)
|
||||
|
||||
add_kaleidoscope_chapter(Kaleidoscope-Orc-lazy_irgen
|
||||
toy.cpp
|
||||
)
|
@ -1,16 +0,0 @@
|
||||
//===----------------------------------------------------------------------===/
|
||||
// Kaleidoscope with Orc - Lazy IRGen Version
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
This version of Kaleidoscope with Orc demonstrates lazy IR-generation.
|
||||
Building on the lazy-codegen version of the tutorial, this version reduces the
|
||||
amount of up-front work that must be done by lazily IRgen'ing ASTs. When a
|
||||
function definition is entered, its AST is added to a map of available
|
||||
definitions. No IRGen is performed at this point and nothing is added to the JIT.
|
||||
When attempting to resolve symbol addresses, the lambda in
|
||||
KaleidoscopeJIT::getSymbolAddress will scan the AST map and generate IR on the
|
||||
fly.
|
||||
|
||||
This directory contains a Makefile that allows the code to be built in a
|
||||
standalone manner, independent of the larger LLVM build infrastructure. To build
|
||||
the program you will need to have 'clang++' and 'llvm-config' in your path.
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user