Skip to content

Commit b9db8c6

Browse files
committed
update_lkg
1 parent 02b7723 commit b9db8c6

File tree

12 files changed

+114
-74
lines changed

12 files changed

+114
-74
lines changed

lkg/skip_printer.ll.bz2

5.63 KB
Binary file not shown.

lkg/skip_server.ll.bz2

-13.5 KB
Binary file not shown.

lkg/skip_to_llvm.ll.bz2

-10.2 KB
Binary file not shown.

src/CMakeLists.txt

Lines changed: 85 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,102 @@
1-
set(RUNTIME_PATH ${CMAKE_CURRENT_SOURCE_DIR}/runtime)
2-
set(RUNTIME_TOOLS_PATH ${RUNTIME_PATH}/tools)
3-
set(RUNTIME_NATIVE_PATH ${RUNTIME_PATH}/native)
4-
set(PREAMBLE ${CMAKE_CURRENT_BINARY_DIR}/runtime/native/lib/preamble.ll)
5-
6-
set(PHASE src)
7-
8-
add_subdirectory(runtime) # Sets PRELUDE_SOURCES.${PHASE}.
9-
add_subdirectory(frontend) # Sets FRONTEND_SOURCES.
10-
add_subdirectory(utils) # Sets UTILS_SOURCES.
11-
add_subdirectory(project) # Sets PROJECT_SOURCES.
12-
add_subdirectory(native) # Sets COMPILER_SOURCES.
13-
add_subdirectory(server)
14-
add_subdirectory(tools)
15-
add_subdirectory(nuclide)
1+
if(EXTERN_LKG)
2+
message("************************************************************************")
3+
message("************************************************************************")
4+
message("** Using external LKG: ${EXTERN_LKG} **")
5+
message("************************************************************************")
6+
message("************************************************************************")
167

17-
set(PHASE)
188

19-
# ------------------------------------------------------------------------------
9+
if(NOT EXISTS ${EXTERN_LKG}/bin/skip_to_llvm)
10+
message(FATAL_ERROR "${EXTERN_LKG}/bin/skip_to_llvm not found. Did you already build skip_to_llvm in your external LKG?")
11+
endif()
2012

21-
# Bootstrap takes the current src/ code and promotes it to lkg/
13+
# When using an external LKG we don't want to actually depend on it - just use
14+
# it. It's up to the user to rebuild it properly.
2215

23-
set(CHECK_LKG_COMMANDS)
24-
set(UPDATE_LKG_COMMANDS)
16+
add_executable(skip_to_llvm.lkg IMPORTED GLOBAL)
17+
set_target_properties(skip_to_llvm.lkg PROPERTIES
18+
IMPORTED_LOCATION ${EXTERN_LKG}/bin/skip_to_llvm
19+
OUTPUT_NAME skip_to_llvm
20+
RUNTIME_OUTPUT_DIRECTORY ${EXTERN_LKG}/bin
21+
)
2522

26-
set(src_ll ${CMAKE_CURRENT_BINARY_DIR}/native/lkg_prep_skip_to_llvm.ll)
27-
set(stage_ll ${CMAKE_CURRENT_BINARY_DIR}/skip_to_llvm.ll)
28-
set(lkg_ll ${LKG_DIR}/skip_to_llvm.ll.bz2)
29-
set(cmd awk '{print >out}; /; -* END OF PREAMBLE -*/{out=\"${stage_ll}\"}' out=/dev/null ${src_ll})
30-
add_command_target(
31-
stage_skip_to_llvm_ll
32-
OUTPUT ${stage_ll}
33-
COMMAND "${cmd}"
34-
DEPENDS ${src_ll}
35-
)
23+
return()
24+
endif()
3625

37-
set(SRC_RUNTIME ${CMAKE_SOURCE_DIR}/src/runtime)
38-
set(TESTS_RUNTIME ${CMAKE_SOURCE_DIR}/tests/runtime)
39-
set(LKG_RUNTIME ${CMAKE_SOURCE_DIR}/lkg/runtime)
26+
set(PHASE lkg)
27+
add_subdirectory(runtime/native)
28+
set(PHASE)
4029

41-
add_custom_target(build_lkg
42-
DEPENDS stage_skip_to_llvm_ll
30+
# This is needed for the cxx targets defined in this file.
31+
if(CMAKE_COMPILER_IS_GNUCXX AND
32+
CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0)
33+
add_compile_options(-faligned-new)
34+
endif()
35+
36+
recursiveGlobSources(EXTC_FILES
37+
${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/include/skip/*-extc.h
38+
${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/include/skip/plugin/skip_plugin.h
39+
${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/include/skip/rvmi/rvmi.h
4340
)
4441

45-
add_custom_target(check_lkg
46-
COMMAND ${TOOLS_DIR}/check_lkg_file ${stage_ll} ${lkg_ll}
47-
COMMAND ${TOOLS_DIR}/check_lkg_file ${SRC_RUNTIME}/CMakeLists.txt ${LKG_RUNTIME}/CMakeLists.txt
48-
COMMAND ${TOOLS_DIR}/check_lkg_file ${SRC_RUNTIME}/native ${LKG_RUNTIME}/native
49-
COMMAND ${TOOLS_DIR}/check_lkg_file ${SRC_RUNTIME}/tools ${LKG_RUNTIME}/tools
50-
DEPENDS stage_skip_to_llvm_ll
42+
set(preamble_ll ${CMAKE_CURRENT_BINARY_DIR}/tmp/preamble.ll)
43+
44+
add_custom_command(
45+
OUTPUT ${preamble_ll}
46+
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/runtime/tools/gen_preamble
47+
preamble
48+
--compiler ${CLANG_EXECUTABLE}
49+
-o ${preamble_ll}
50+
$<$<OR:$<CONFIG:Release>,$<CONFIG:RelWithDebInfo>,$<CONFIG:MinSizeRel>>:--ndebug>
51+
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/runtime/tools/gen_preamble ${EXTC_FILES}
5152
)
5253

53-
add_custom_target(update_lkg_compiler
54-
COMMAND ${TOOLS_DIR}/check_lkg_file --update ${stage_ll} ${lkg_ll}
55-
# Using rsync like this copies only if changed
56-
COMMAND rsync -rc ${SRC_RUNTIME}/CMakeLists.txt ${LKG_RUNTIME}/CMakeLists.txt
57-
COMMAND rsync -rc --delete ${SRC_RUNTIME}/native/ ${LKG_RUNTIME}/native
58-
COMMAND rsync -rc --delete ${SRC_RUNTIME}/tools/ ${LKG_RUNTIME}/tools
59-
DEPENDS stage_skip_to_llvm_ll
54+
55+
add_custom_target(lkg)
56+
57+
set(ll ${CMAKE_CURRENT_SOURCE_DIR}/skip_to_llvm.ll.bz2)
58+
set(gen_ll ${CMAKE_CURRENT_BINARY_DIR}/tmp/skip_to_llvm.gen.ll)
59+
set(gen_o ${CMAKE_CURRENT_BINARY_DIR}/tmp/skip_to_llvm.gen.o)
60+
61+
add_custom_command(
62+
OUTPUT ${gen_ll}
63+
COMMAND cat ${preamble_ll} > ${gen_ll}
64+
COMMAND bzcat ${ll} >> ${gen_ll}
65+
DEPENDS ${preamble_ll} ${ll}
6066
)
6167

62-
add_custom_target(update_lkg
63-
DEPENDS update_lkg_compiler
68+
add_custom_command(
69+
OUTPUT ${gen_o}
70+
COMMAND echo Building LKG skip_to_llvm.o
71+
COMMAND ${CLANG_EXECUTABLE} -fPIC -c -o ${gen_o} ${gen_ll}
72+
DEPENDS ${gen_ll}
6473
)
6574

66-
add_custom_target(check_runtimes
67-
COMMAND ${TOOLS_DIR}/check_runtime_file ${SRC_RUNTIME} ${TESTS_RUNTIME}
68-
)
69-
add_dependencies(test check_runtimes)
75+
add_executable(skip_to_llvm.lkg
76+
${gen_o}
77+
${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/src/sk_standalone.cpp
78+
)
79+
set_target_properties(skip_to_llvm.lkg
80+
PROPERTIES
81+
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin
82+
OUTPUT_NAME skip_to_llvm
83+
)
84+
target_link_libraries(skip_to_llvm.lkg skip_runtime.lkg)
7085

71-
add_custom_target(check_pretty_printed
72-
COMMAND ${TOOLS_DIR}/check_pretty_printed ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/pretty_printed.testok
73-
DEPENDS skip_printer
74-
)
75-
add_dependencies(test check_pretty_printed)
86+
#add_command_target(
87+
# skip_to_llvm.lkg
88+
# OUTPUT ${binary_name}
89+
# COMMAND echo Building LKG skip_to_llvm
90+
# COMMAND
91+
# ${CLANG_EXECUTABLE}
92+
# -o ${binary_name}
93+
# ${gen_ll}
94+
# ${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/src/sk_standalone.cpp
95+
# `pkg-config --cflags --libs ${CMAKE_CURRENT_BINARY_DIR}/runtime/native/native_cc.pc`
96+
# -pthread
97+
# DEPENDS
98+
# skip_runtime.lkg ${gen_ll} native_cc.lkg
99+
# ${CMAKE_CURRENT_SOURCE_DIR}/runtime/native/src/sk_standalone.cpp
100+
# )
76101

77-
add_custom_target(check_cpp_format
78-
COMMAND ${CMAKE_SOURCE_DIR}/tools/check_cpp_format ${CMAKE_SOURCE_DIR} ${CLANG_EXECUTABLE}
79-
)
80-
add_dependencies(test check_cpp_format)
102+
add_dependencies(lkg skip_to_llvm.lkg)

src/runtime/native/include/skip/String.h

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/runtime/native/include/skip/VTable.h

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/runtime/native/include/skip/objects.h

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/runtime/native/src/sk_standalone.cpp

Lines changed: 14 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/runtime/native/src/util.cpp

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/runtime/tools/common.py

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/runtime/tools/skip_native_compile.py

Lines changed: 1 addition & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/runtime/tools/skip_to_native

Lines changed: 0 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)