1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00

[Clang Interpreter] Initial patch for the constexpr interpreter

Summary:
This patch introduces the skeleton of the constexpr interpreter,
capable of evaluating a simple constexpr functions consisting of
if statements. The interpreter is described in more detail in the
RFC. Further patches will add more features.

Reviewers: Bigcheese, jfb, rsmith

Subscribers: bruno, uenoku, ldionne, Tyker, thegameg, tschuett, dexonsmith, mgorny, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64146

llvm-svn: 370584
This commit is contained in:
Nandor Licker 2019-08-31 15:00:38 +00:00
parent d70b0f4887
commit 6918fd5dcf
3 changed files with 41 additions and 0 deletions

View File

@ -10,6 +10,7 @@ static_library("AST") {
"//clang/include/clang/AST:CommentHTMLTags",
"//clang/include/clang/AST:CommentHTMLTagsProperties",
"//clang/include/clang/AST:DeclNodes",
"//clang/lib/AST/Interp",
"//clang/lib/Basic",
"//clang/lib/Lex",
"//llvm/lib/BinaryFormat",

View File

@ -0,0 +1,39 @@
import("//clang/utils/TableGen/clang_tablegen.gni")
clang_tablegen("Opcodes") {
args = [ "-gen-clang-opcodes" ]
td_file = "Opcodes.td"
}
static_library("Interp") {
output_name = "clangInterp"
configs += [ "//llvm/utils/gn/build:clang_code" ]
deps = [
"//clang/lib/AST/Interp:Opcodes",
"//clang/lib/Basic",
"//llvm/lib/Support",
]
sources = [
"Block.cpp",
"ByteCodeEmitter.cpp",
"ByteCodeExprGen.cpp",
"ByteCodeGenError.cpp",
"ByteCodeStmtGen.cpp",
"Context.cpp",
"Descriptor.cpp",
"Disasm.cpp",
"EvalEmitter.cpp",
"Frame.cpp",
"Function.cpp",
"Interp.cpp",
"InterpFrame.cpp",
"InterpStack.cpp",
"InterpState.cpp",
"Pointer.cpp",
"Program.cpp",
"Record.cpp",
"Source.cpp",
"State.cpp",
"Type.cpp",
]
}

View File

@ -14,6 +14,7 @@ executable("clang-tblgen") {
"ClangOpenCLBuiltinEmitter.cpp",
"ClangOptionDocEmitter.cpp",
"ClangSACheckersEmitter.cpp",
"ClangOpcodesEmitter.cpp",
"NeonEmitter.cpp",
"TableGen.cpp",
]