Recommit r246175 - Add Kaleidoscope regression tests, with a fix to make sure

the kaleidoscope 'library' functions aren't dead-stripped in release builds.

llvm-svn: 246201
This commit is contained in:
Lang Hames 2015-08-27 20:31:44 +00:00
parent a3e8c48df2
commit 9cc11d6337
15 changed files with 53 additions and 21 deletions

View File

@ -566,7 +566,7 @@ if we add:
/// putchard - putchar that takes a double and returns 0.
extern "C" double putchard(double X) {
putchar((char)X);
fputc((char)X, stderr);
return 0;
}

View File

@ -13,3 +13,5 @@ set(LLVM_LINK_COMPONENTS
add_kaleidoscope_chapter(Kaleidoscope-Ch4
toy.cpp
)
export_executable_symbols(Kaleidoscope-Ch4)

View File

@ -631,14 +631,14 @@ static void MainLoop() {
//===----------------------------------------------------------------------===//
/// putchard - putchar that takes a double and returns 0.
extern "C" double putchard(double X) {
putchar((char)X);
__attribute__((used)) extern "C" double putchard(double X) {
fputc((char)X, stderr);
return 0;
}
/// printd - printf that takes a double prints it as "%f\n", returning 0.
extern "C" double printd(double X) {
printf("%f\n", X);
__attribute__((used)) extern "C" double printd(double X) {
fprintf(stderr, "%f\n", X);
return 0;
}

View File

@ -13,3 +13,5 @@ set(LLVM_LINK_COMPONENTS
add_kaleidoscope_chapter(Kaleidoscope-Ch5
toy.cpp
)
export_executable_symbols(Kaleidoscope-Ch5)

View File

@ -905,14 +905,14 @@ static void MainLoop() {
//===----------------------------------------------------------------------===//
/// putchard - putchar that takes a double and returns 0.
extern "C" double putchard(double X) {
putchar((char)X);
__attribute__((used)) extern "C" double putchard(double X) {
fputc((char)X, stderr);
return 0;
}
/// printd - printf that takes a double prints it as "%f\n", returning 0.
extern "C" double printd(double X) {
printf("%f\n", X);
__attribute__((used)) extern "C" double printd(double X) {
fprintf(stderr, "%f\n", X);
return 0;
}

View File

@ -13,3 +13,5 @@ set(LLVM_LINK_COMPONENTS
add_kaleidoscope_chapter(Kaleidoscope-Ch6
toy.cpp
)
export_executable_symbols(Kaleidoscope-Ch6)

View File

@ -1023,14 +1023,14 @@ static void MainLoop() {
//===----------------------------------------------------------------------===//
/// putchard - putchar that takes a double and returns 0.
extern "C" double putchard(double X) {
putchar((char)X);
__attribute__((used)) extern "C" double putchard(double X) {
fputc((char)X, stderr);
return 0;
}
/// printd - printf that takes a double prints it as "%f\n", returning 0.
extern "C" double printd(double X) {
printf("%f\n", X);
__attribute__((used)) extern "C" double printd(double X) {
fprintf(stderr, "%f\n", X);
return 0;
}

View File

@ -13,3 +13,5 @@ set(LLVM_LINK_COMPONENTS
add_kaleidoscope_chapter(Kaleidoscope-Ch7
toy.cpp
)
export_executable_symbols(Kaleidoscope-Ch7)

View File

@ -1189,14 +1189,14 @@ static void MainLoop() {
//===----------------------------------------------------------------------===//
/// putchard - putchar that takes a double and returns 0.
extern "C" double putchard(double X) {
putchar((char)X);
__attribute__((used)) extern "C" double putchard(double X) {
fputc((char)X, stderr);
return 0;
}
/// printd - printf that takes a double prints it as "%f\n", returning 0.
extern "C" double printd(double X) {
printf("%f\n", X);
__attribute__((used)) extern "C" double printd(double X) {
fprintf(stderr, "%f\n", X);
return 0;
}

View File

@ -9,3 +9,5 @@ set(LLVM_LINK_COMPONENTS
add_kaleidoscope_chapter(Kaleidoscope-Ch8
toy.cpp
)
export_executable_symbols(Kaleidoscope-Ch8)

View File

@ -1383,14 +1383,14 @@ static void MainLoop() {
//===----------------------------------------------------------------------===//
/// putchard - putchar that takes a double and returns 0.
extern "C" double putchard(double X) {
putchar((char)X);
__attribute__((used)) extern "C" double putchard(double X) {
fputc((char)X, stderr);
return 0;
}
/// printd - printf that takes a double prints it as "%f\n", returning 0.
extern "C" double printd(double X) {
printf("%f\n", X);
__attribute__((used)) extern "C" double printd(double X) {
fprintf(stderr, "%f\n", X);
return 0;
}

View File

@ -1,3 +1,7 @@
if(LLVM_BUILD_EXAMPLES)
set(ENABLE_EXAMPLES 1)
endif()
configure_lit_site_cfg(
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
@ -96,6 +100,16 @@ if(TARGET ocaml_llvm)
)
endif()
if(LLVM_BUILD_EXAMPLES)
list(APPEND LLVM_TEST_DEPENDS
Kaleidoscope-Ch3
Kaleidoscope-Ch4
Kaleidoscope-Ch5
Kaleidoscope-Ch6
Kaleidoscope-Ch7
)
endif()
add_lit_testsuite(check-llvm "Running the LLVM regression tests"
${CMAKE_CURRENT_BINARY_DIR}
PARAMS llvm_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg

View File

@ -146,6 +146,7 @@ lit.site.cfg: FORCE
@$(ECHOPATH) s=@HOST_ARCH@=$(HOST_ARCH)=g >> lit.tmp
@$(ECHOPATH) s=@HAVE_LIBZ@=$(HAVE_LIBZ)=g >> lit.tmp
@$(ECHOPATH) s=@HAVE_DIA_SDK@=0=g >> lit.tmp
@$(ECHOPATH) s=@ENABLE_EXAMPLES@=$(BUILD_EXAMPLES)=g >> lit.tmp
@sed -f lit.tmp $(PROJ_SRC_DIR)/lit.site.cfg.in > $@
@-rm -f lit.tmp

View File

@ -258,6 +258,12 @@ for pattern in [r"\bbugpoint\b(?!-)",
r"\byaml2obj\b",
r"\byaml-bench\b",
r"\bverify-uselistorder\b",
r"\bKaleidoscope-Ch3\b",
r"\bKaleidoscope-Ch4\b",
r"\bKaleidoscope-Ch5\b",
r"\bKaleidoscope-Ch6\b",
r"\bKaleidoscope-Ch7\b",
r"\bKaleidoscope-Ch8\b",
# Handle these specially as they are strings searched
# for during testing.
r"\| \bcount\b",

View File

@ -35,6 +35,7 @@ config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
config.have_zlib = "@HAVE_LIBZ@"
config.have_dia_sdk = @HAVE_DIA_SDK@
config.enable_ffi = "@LLVM_ENABLE_FFI@"
config.test_examples = "@ENABLE_EXAMPLES@"
# Support substitution of the tools_dir with user parameters. This is
# used when we can't determine the tool dir at configuration time.