mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-28 22:55:52 +00:00
Initial support for the CMake build system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56419 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cd4c73aa70
commit
3d01fc7de8
137
CMakeLists.txt
Normal file
137
CMakeLists.txt
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
cmake_minimum_required(VERSION 2.6.1)
|
||||||
|
|
||||||
|
set(PACKAGE_NAME llvm)
|
||||||
|
set(PACKAGE_VERSION svn)
|
||||||
|
set(PACKAGE_BUGREPORT "ofv@wanadoo.es")
|
||||||
|
#set(PACKAGE_BUGREPORT "llvmbugs@cs.uiuc.edu")
|
||||||
|
|
||||||
|
include(FindPerl)
|
||||||
|
|
||||||
|
set(LLVM_MAIN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
set(LLVM_MAIN_INCLUDE_DIR ${LLVM_MAIN_SRC_DIR}/include/llvm)
|
||||||
|
set(LLVM_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
set(LLVM_TOOLS_BINARY_DIR ${LLVM_BINARY_DIR}/bin)
|
||||||
|
set(LLVM_EXAMPLES_BINARY_DIR ${LLVM_BINARY_DIR}/examples)
|
||||||
|
|
||||||
|
# TODO: Support user-specified targets:
|
||||||
|
set(LLVM_TARGETS_TO_BUILD X86)
|
||||||
|
|
||||||
|
if( NOT MSVC )
|
||||||
|
set(CMAKE_CXX_LINK_EXECUTABLE "sh -c \"${CMAKE_CXX_LINK_EXECUTABLE}\"")
|
||||||
|
endif( NOT MSVC )
|
||||||
|
|
||||||
|
# TODO: Eliminate?
|
||||||
|
get_filename_component(llvm_include_path ${LLVM_MAIN_SRC_DIR}/include ABSOLUTE)
|
||||||
|
|
||||||
|
#get_filename_component(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm ABSOLUTE)
|
||||||
|
set(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm)
|
||||||
|
|
||||||
|
# Add path for custom modules
|
||||||
|
set(CMAKE_MODULE_PATH
|
||||||
|
${CMAKE_MODULE_PATH}
|
||||||
|
"${LLVM_MAIN_SRC_DIR}/cmake"
|
||||||
|
"${LLVM_MAIN_SRC_DIR}/cmake/modules"
|
||||||
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set(LLVM_ON_WIN32 1)
|
||||||
|
set(LLVM_ON_UNIX 0)
|
||||||
|
set(LTDL_SHLIB_EXT ".dll")
|
||||||
|
set(EXEEXT ".exe")
|
||||||
|
# Maximum path length is 160 for non-unicode paths
|
||||||
|
set(MAXPATHLEN 160)
|
||||||
|
else(WIN32)
|
||||||
|
if(UNIX)
|
||||||
|
set(LLVM_ON_WIN32 0)
|
||||||
|
set(LLVM_ON_UNIX 1)
|
||||||
|
set(LTDL_SHLIB_EXT ".so")
|
||||||
|
set(EXEEXT "")
|
||||||
|
# FIXME: Maximum path length is currently set to 'safe' fixed value
|
||||||
|
set(MAXPATHLEN 2024)
|
||||||
|
else(UNIX)
|
||||||
|
MESSAGE(SEND_ERROR "Unable to determine platform")
|
||||||
|
endif(UNIX)
|
||||||
|
endif(WIN32)
|
||||||
|
|
||||||
|
if( EXISTS ${LLVM_TOOLS_BINARY_DIR}/llvm-config )
|
||||||
|
set(HAVE_LLVM_CONFIG 1)
|
||||||
|
endif( EXISTS ${LLVM_TOOLS_BINARY_DIR}/llvm-config )
|
||||||
|
# find_file(HAVE_LLVM_CONFIG llvm-config ${LLVM_TOOLS_BINARY_DIR})
|
||||||
|
# message(STATUS ${HAVE_LLVM_CONFIG})
|
||||||
|
|
||||||
|
if( MSVC )
|
||||||
|
message(STATUS "Configuring using MSVC hack.")
|
||||||
|
include(config-w32)
|
||||||
|
else( MSVC )
|
||||||
|
message(STATUS "Configuring traditional style.")
|
||||||
|
include(config-ix)
|
||||||
|
endif( MSVC )
|
||||||
|
|
||||||
|
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_TOOLS_BINARY_DIR} )
|
||||||
|
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib )
|
||||||
|
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib )
|
||||||
|
|
||||||
|
# set(CMAKE_VERBOSE_MAKEFILE true)
|
||||||
|
|
||||||
|
add_definitions( -D__STDC_LIMIT_MACROS )
|
||||||
|
|
||||||
|
if( LLVM_ON_UNIX )
|
||||||
|
add_definitions( -DLLVM_ON_UNIX )
|
||||||
|
else( LLVM_ON_UNIX )
|
||||||
|
add_definitions( -DLLVM_ON_WIN32 )
|
||||||
|
endif( LLVM_ON_UNIX )
|
||||||
|
|
||||||
|
if( MSVC )
|
||||||
|
add_definitions( -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS )
|
||||||
|
add_definitions( -D_SCL_SECURE_NO_WARNINGS -DCRT_NONSTDC_NO_WARNINGS )
|
||||||
|
add_definitions( -D_SCL_SECURE_NO_DEPRECATE )
|
||||||
|
endif( MSVC )
|
||||||
|
|
||||||
|
include_directories( ${LLVM_BINARY_DIR}/include ${llvm_include_path})
|
||||||
|
#link_directories( d:/dev/lib )
|
||||||
|
|
||||||
|
#add_subdirectory(lib)
|
||||||
|
|
||||||
|
include(AddLLVM)
|
||||||
|
include(AddPartiallyLinkedObject)
|
||||||
|
|
||||||
|
add_subdirectory(lib/Support)
|
||||||
|
add_subdirectory(lib/System)
|
||||||
|
add_subdirectory(utils/TableGen)
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${llvm_builded_incs_dir}/Intrinsics.gen
|
||||||
|
COMMAND tblgen -gen-intrinsic -I ${llvm_include_path} ${llvm_include_path}/llvm/Intrinsics.td -o ${llvm_builded_incs_dir}/Intrinsics.gen
|
||||||
|
DEPENDS tblgen
|
||||||
|
COMMENT "Building intrinsics.gen...")
|
||||||
|
|
||||||
|
add_custom_target(intrinsics_gen ALL
|
||||||
|
DEPENDS ${llvm_builded_incs_dir}/Intrinsics.gen)
|
||||||
|
|
||||||
|
add_subdirectory(lib/VMCore)
|
||||||
|
add_subdirectory(lib/CodeGen)
|
||||||
|
add_subdirectory(lib/CodeGen/SelectionDAG)
|
||||||
|
add_subdirectory(lib/CodeGen/AsmPrinter)
|
||||||
|
add_subdirectory(lib/Bitcode/Reader)
|
||||||
|
add_subdirectory(lib/Bitcode/Writer)
|
||||||
|
add_subdirectory(lib/Transforms/Utils)
|
||||||
|
add_subdirectory(lib/Transforms/Instrumentation)
|
||||||
|
add_subdirectory(lib/Transforms/Scalar)
|
||||||
|
add_subdirectory(lib/Transforms/IPO)
|
||||||
|
add_subdirectory(lib/Transforms/Hello)
|
||||||
|
add_subdirectory(lib/Linker)
|
||||||
|
add_subdirectory(lib/Analysis)
|
||||||
|
add_subdirectory(lib/Analysis/IPA)
|
||||||
|
add_subdirectory(lib/Target/X86)
|
||||||
|
add_subdirectory(lib/Target/X86/AsmPrinter)
|
||||||
|
add_subdirectory(lib/ExecutionEngine)
|
||||||
|
add_subdirectory(lib/ExecutionEngine/Interpreter)
|
||||||
|
add_subdirectory(lib/ExecutionEngine/JIT)
|
||||||
|
add_subdirectory(lib/Target)
|
||||||
|
add_subdirectory(lib/AsmParser)
|
||||||
|
add_subdirectory(lib/Debugger)
|
||||||
|
# TODO: lib/Target/CBackEnd
|
||||||
|
add_subdirectory(lib/Archive)
|
||||||
|
|
||||||
|
add_subdirectory(tools)
|
||||||
|
|
||||||
|
add_subdirectory(examples)
|
93
cmake/config-ix.cmake
Executable file
93
cmake/config-ix.cmake
Executable file
@ -0,0 +1,93 @@
|
|||||||
|
|
||||||
|
# include checks
|
||||||
|
include(CheckIncludeFile)
|
||||||
|
check_include_file(argz.h HAVE_ARGZ_H)
|
||||||
|
check_include_file(assert.h HAVE_ASSERT_H)
|
||||||
|
check_include_file(dirent.h HAVE_DIRENT_H)
|
||||||
|
check_include_file(dl.h HAVE_DL_H)
|
||||||
|
check_include_file(dld.h HAVE_DLD_H)
|
||||||
|
check_include_file(dlfcn.h HAVE_DLFCN_H)
|
||||||
|
check_include_file(errno.h HAVE_ERRNO_H)
|
||||||
|
check_include_file(execinfo.h HAVE_EXECINFO_H)
|
||||||
|
check_include_file(fcntl.h HAVE_FCNTL_H)
|
||||||
|
check_include_file(inttypes.h HAVE_INTTYPES_H)
|
||||||
|
check_include_file(limits.h HAVE_LIMITS_H)
|
||||||
|
check_include_file(link.h HAVE_LINK_H)
|
||||||
|
check_include_file(malloc.h HAVE_MALLOC_H)
|
||||||
|
check_include_file(malloc/malloc.h HAVE_MALLOC_MALLOC_H)
|
||||||
|
check_include_file(memory.h HAVE_MEMORY_H)
|
||||||
|
check_include_file(ndir.h HAVE_NDIR_H)
|
||||||
|
check_include_file(pthread.h HAVE_PTHREAD_H)
|
||||||
|
check_include_file(setjmp.h HAVE_SETJMP_H)
|
||||||
|
check_include_file(signal.h HAVE_SIGNAL_H)
|
||||||
|
check_include_file(stdint.h HAVE_STDINT_H)
|
||||||
|
check_include_file(stdio.h HAVE_STDIO_H)
|
||||||
|
check_include_file(stdlib.h HAVE_STDLIB_H)
|
||||||
|
check_include_file(sys/dir.h HAVE_SYS_DIR_H)
|
||||||
|
check_include_file(sys/dl.h HAVE_SYS_DL_H)
|
||||||
|
check_include_file(sys/mman.h HAVE_SYS_MMAN_H)
|
||||||
|
check_include_file(sys/ndir.h HAVE_SYS_NDIR_H)
|
||||||
|
check_include_file(sys/param.h HAVE_SYS_PARAM_H)
|
||||||
|
check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H)
|
||||||
|
check_include_file(sys/stat.h HAVE_SYS_STAT_H)
|
||||||
|
check_include_file(sys/time.h HAVE_SYS_TIME_H)
|
||||||
|
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
|
||||||
|
check_include_file(unistd.h HAVE_UNISTD_H)
|
||||||
|
check_include_file(utime.h HAVE_UTIME_H)
|
||||||
|
|
||||||
|
# function checks
|
||||||
|
include(CheckSymbolExists)
|
||||||
|
check_symbol_exists(getpagesize unistd.h HAVE_GETPAGESIZE)
|
||||||
|
check_symbol_exists(getrusage sys/resource.h HAVE_GETRUSAGE)
|
||||||
|
check_symbol_exists(setrlimit sys/resource.h HAVE_SETRLIMIT)
|
||||||
|
check_symbol_exists(isinf cmath HAVE_ISINF_IN_CMATH)
|
||||||
|
check_symbol_exists(isinf math.h HAVE_ISINF_IN_MATH_H)
|
||||||
|
check_symbol_exists(isnan cmath HAVE_ISNAN_IN_CMATH)
|
||||||
|
check_symbol_exists(isnan math.h HAVE_ISNAN_IN_MATH_H)
|
||||||
|
check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO)
|
||||||
|
check_symbol_exists(pthread_mutex_lock pthread.h HAVE_PTHREAD_MUTEX_LOCK)
|
||||||
|
|
||||||
|
if( MINGW )
|
||||||
|
# tbi: Comprobar que existen las librerias:
|
||||||
|
set(HAVE_LIBIMAGEHLP 1)
|
||||||
|
set(HAVE_LIBPSAPI 1)
|
||||||
|
# include(CheckLibraryExists)
|
||||||
|
# CHECK_LIBRARY_EXISTS(imagehlp ??? . HAVE_LIBIMAGEHLP)
|
||||||
|
endif( MINGW )
|
||||||
|
|
||||||
|
# Classes
|
||||||
|
include(CheckCxxHashmap)
|
||||||
|
include(CheckCxxHashset)
|
||||||
|
check_hashmap()
|
||||||
|
check_hashset()
|
||||||
|
|
||||||
|
# FIXME: Signal handler return type, currently hardcoded to 'void'
|
||||||
|
set(RETSIGTYPE void)
|
||||||
|
|
||||||
|
# Disable multithreading for now
|
||||||
|
set(ENABLE_THREADS 0)
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${LLVM_MAIN_INCLUDE_DIR}/Config/config.h.cmake
|
||||||
|
${LLVM_BINARY_DIR}/include/llvm/Config/config.h
|
||||||
|
)
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${LLVM_MAIN_INCLUDE_DIR}/ADT/iterator.cmake
|
||||||
|
${LLVM_BINARY_DIR}/include/llvm/ADT/iterator.h
|
||||||
|
)
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${LLVM_MAIN_INCLUDE_DIR}/Support/DataTypes.h.cmake
|
||||||
|
${LLVM_BINARY_DIR}/include/llvm/Support/DataTypes.h
|
||||||
|
)
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${LLVM_MAIN_INCLUDE_DIR}/ADT/hash_map.cmake
|
||||||
|
${LLVM_BINARY_DIR}/include/llvm/ADT/hash_map.h
|
||||||
|
)
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${LLVM_MAIN_INCLUDE_DIR}/ADT/hash_set.cmake
|
||||||
|
${LLVM_BINARY_DIR}/include/llvm/ADT/hash_set.h
|
||||||
|
)
|
9
cmake/config-w32.cmake
Executable file
9
cmake/config-w32.cmake
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
# tbi: Configurar ficheros.
|
||||||
|
configure_file(${llvm_include_path}/llvm/ADT/hash_map.h.in ${llvm_builded_incs_dir}/ADT/hash_map.h)
|
||||||
|
configure_file(${llvm_include_path}/llvm/ADT/hash_set.h.in ${llvm_builded_incs_dir}/ADT/hash_set.h)
|
||||||
|
configure_file(${llvm_include_path}/llvm/ADT/iterator.h.in ${llvm_builded_incs_dir}/ADT/iterator.h)
|
||||||
|
configure_file(${llvm_include_path}/llvm/Support/DataTypes.h.in ${llvm_builded_incs_dir}/Support/DataTypes.h)
|
||||||
|
configure_file(${llvm_include_path}/llvm/Config/config.h.in ${llvm_builded_incs_dir}/Config/config.h)
|
||||||
|
|
||||||
|
file(READ ${llvm_include_path}/../win32/config.h vc_config_text)
|
||||||
|
file(APPEND ${llvm_builded_incs_dir}/Config/config.h ${vc_config_text})
|
39
cmake/modules/AddLLVM.cmake
Executable file
39
cmake/modules/AddLLVM.cmake
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
include(LLVMConfig)
|
||||||
|
|
||||||
|
macro(add_llvm_library name)
|
||||||
|
add_library( ${name} ${ARGN} )
|
||||||
|
set( llvm_libs ${llvm_libs} ${name} PARENT_SCOPE)
|
||||||
|
endmacro(add_llvm_library name)
|
||||||
|
|
||||||
|
|
||||||
|
macro(add_llvm_executable name)
|
||||||
|
add_executable(${name} ${ARGN})
|
||||||
|
if( LLVM_LINK_COMPONENTS )
|
||||||
|
llvm_config(${name} ${LLVM_LINK_COMPONENTS})
|
||||||
|
endif( LLVM_LINK_COMPONENTS )
|
||||||
|
if( MSVC )
|
||||||
|
target_link_libraries(${name} ${llvm_libs})
|
||||||
|
else( MSVC )
|
||||||
|
add_dependencies(${name} llvm-config.target)
|
||||||
|
set_target_properties(${name}
|
||||||
|
PROPERTIES
|
||||||
|
LINK_FLAGS "-L ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
|
||||||
|
if( MINGW )
|
||||||
|
target_link_libraries(${name} DbgHelp psapi)
|
||||||
|
elseif( CMAKE_HOST_UNIX )
|
||||||
|
target_link_libraries(${name} dl)
|
||||||
|
endif( MINGW )
|
||||||
|
endif( MSVC )
|
||||||
|
endmacro(add_llvm_executable name)
|
||||||
|
|
||||||
|
|
||||||
|
macro(add_llvm_tool name)
|
||||||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_TOOLS_BINARY_DIR})
|
||||||
|
add_llvm_executable(${name} ${ARGN})
|
||||||
|
endmacro(add_llvm_tool name)
|
||||||
|
|
||||||
|
|
||||||
|
macro(add_llvm_example name)
|
||||||
|
# set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_EXAMPLES_BINARY_DIR})
|
||||||
|
add_llvm_executable(${name} ${ARGN})
|
||||||
|
endmacro(add_llvm_example name)
|
21
cmake/modules/AddPartiallyLinkedObject.cmake
Executable file
21
cmake/modules/AddPartiallyLinkedObject.cmake
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
macro(add_partially_linked_object lib)
|
||||||
|
if( MSVC )
|
||||||
|
add_llvm_library( ${lib} ${ARGN})
|
||||||
|
else( MSVC )
|
||||||
|
set(pll ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${lib}.o)
|
||||||
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
|
||||||
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
|
||||||
|
add_library( ${lib} STATIC ${ARGN})
|
||||||
|
add_custom_command(OUTPUT ${pll}
|
||||||
|
MESSAGE "Building ${lib}.o..."
|
||||||
|
DEPENDS ${lib}
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib
|
||||||
|
COMMAND ar x ${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||||
|
COMMAND ld -r *${CMAKE_CXX_OUTPUT_EXTENSION} -o ${pll}
|
||||||
|
COMMAND rm -f *${CMAKE_CXX_OUTPUT_EXTENSION}
|
||||||
|
)
|
||||||
|
add_custom_target(${lib}_pll ALL DEPENDS ${pll})
|
||||||
|
set( llvm_libs ${llvm_libs} ${pll} PARENT_SCOPE)
|
||||||
|
endif( MSVC )
|
||||||
|
endmacro(add_partially_linked_object lib)
|
53
cmake/modules/CheckCxxHashmap.cmake
Executable file
53
cmake/modules/CheckCxxHashmap.cmake
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
# - Check if for hash_map.
|
||||||
|
# CHECK_HASHMAP ()
|
||||||
|
#
|
||||||
|
|
||||||
|
include(CheckCXXSourceCompiles)
|
||||||
|
|
||||||
|
macro(CHECK_HASHMAP)
|
||||||
|
message(STATUS "Checking for C++ hash_map implementation...")
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <ext/hash_map>
|
||||||
|
int main() {
|
||||||
|
__gnu_cxx::hash_map<int, int> t;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
HAVE_GNU_EXT_HASH_MAP
|
||||||
|
)
|
||||||
|
if(HAVE_GNU_EXT_HASH_MAP)
|
||||||
|
message(STATUS "C++ hash_map found in 'ext' dir in namespace __gnu_cxx::")
|
||||||
|
endif(HAVE_GNU_EXT_HASH_MAP)
|
||||||
|
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <ext/hash_map>
|
||||||
|
int main() {
|
||||||
|
std::hash_map<int, int> t;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
HAVE_STD_EXT_HASH_MAP
|
||||||
|
)
|
||||||
|
if(HAVE_STD_EXT_HASH_MAP)
|
||||||
|
message(STATUS "C++ hash_map found in 'ext' dir in namespace std::")
|
||||||
|
endif(HAVE_STD_EXT_HASH_MAP)
|
||||||
|
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <hash_map>
|
||||||
|
int main() {
|
||||||
|
hash_map<int, int> t;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
HAVE_GLOBAL_HASH_MAP
|
||||||
|
)
|
||||||
|
if(HAVE_GLOBAL_HASH_MAP)
|
||||||
|
message(STATUS "C++ hash_map found in global namespace")
|
||||||
|
endif(HAVE_GLOBAL_HASH_MAP)
|
||||||
|
|
||||||
|
if(NOT HAVE_GNU_EXT_HASH_MAP)
|
||||||
|
if(NOT HAVE_STD_EXT_HASH_MAP)
|
||||||
|
if(NOT HAVE_GLOBAL_HASH_MAP)
|
||||||
|
message(STATUS "C++ hash_map not found")
|
||||||
|
endif(NOT HAVE_GLOBAL_HASH_MAP)
|
||||||
|
endif(NOT HAVE_STD_EXT_HASH_MAP)
|
||||||
|
endif(NOT HAVE_GNU_EXT_HASH_MAP)
|
||||||
|
|
||||||
|
endmacro(CHECK_HASHMAP)
|
52
cmake/modules/CheckCxxHashset.cmake
Executable file
52
cmake/modules/CheckCxxHashset.cmake
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
# - Check if for hash_set.
|
||||||
|
# CHECK_HASHSET ()
|
||||||
|
#
|
||||||
|
|
||||||
|
include(CheckCXXSourceCompiles)
|
||||||
|
|
||||||
|
macro(CHECK_HASHSET)
|
||||||
|
message(STATUS "Checking for C++ hash_set implementation...")
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <ext/hash_set>
|
||||||
|
int main() {
|
||||||
|
__gnu_cxx::hash_set<int> t;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
HAVE_GNU_EXT_HASH_SET
|
||||||
|
)
|
||||||
|
if(HAVE_GNU_EXT_HASH_SET)
|
||||||
|
message(STATUS "C++ hash_set found in 'ext' dir in namespace __gnu_cxx::")
|
||||||
|
endif(HAVE_GNU_EXT_HASH_SET)
|
||||||
|
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <ext/hash_set>
|
||||||
|
int main() {
|
||||||
|
std::hash_set<int> t;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
HAVE_STD_EXT_HASH_SET
|
||||||
|
)
|
||||||
|
if(HAVE_STD_EXT_HASH_SET)
|
||||||
|
message(STATUS "C++ hash_set found in 'ext' dir in namespace std::")
|
||||||
|
endif(HAVE_STD_EXT_HASH_SET)
|
||||||
|
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#include <hash_set>
|
||||||
|
int main() {
|
||||||
|
hash_set<int> t;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
HAVE_GLOBAL_HASH_SET
|
||||||
|
)
|
||||||
|
if(HAVE_GLOBAL_HASH_SET)
|
||||||
|
message(STATUS "C++ hash_set found in global namespace")
|
||||||
|
endif(HAVE_GLOBAL_HASH_SET)
|
||||||
|
|
||||||
|
if(NOT HAVE_GNU_EXT_HASH_SET)
|
||||||
|
if(NOT HAVE_STD_EXT_HASH_SET)
|
||||||
|
if(NOT HAVE_GLOBAL_HASH_SET)
|
||||||
|
message(STATUS "C++ hash_set not found")
|
||||||
|
endif(NOT HAVE_GLOBAL_HASH_SET)
|
||||||
|
endif(NOT HAVE_STD_EXT_HASH_SET)
|
||||||
|
endif(NOT HAVE_GNU_EXT_HASH_SET)
|
||||||
|
endmacro(CHECK_HASHSET)
|
52
cmake/modules/FindBison.cmake
Executable file
52
cmake/modules/FindBison.cmake
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
# - Try to find Bison
|
||||||
|
# Once done this will define
|
||||||
|
#
|
||||||
|
# BISON_FOUND - system has Bison
|
||||||
|
# BISON_EXECUTABLE - path of the bison executable
|
||||||
|
# BISON_VERSION - the version string, like "2.5.31"
|
||||||
|
#
|
||||||
|
|
||||||
|
MACRO(FIND_BISON)
|
||||||
|
FIND_PROGRAM(BISON_EXECUTABLE NAMES bison)
|
||||||
|
|
||||||
|
IF(BISON_EXECUTABLE)
|
||||||
|
SET(BISON_FOUND TRUE)
|
||||||
|
|
||||||
|
EXECUTE_PROCESS(COMMAND ${BISON_EXECUTABLE} --version
|
||||||
|
OUTPUT_VARIABLE _BISON_VERSION
|
||||||
|
)
|
||||||
|
string (REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" BISON_VERSION "${_bison_VERSION}")
|
||||||
|
ENDIF(BISON_EXECUTABLE)
|
||||||
|
|
||||||
|
IF(BISON_FOUND)
|
||||||
|
IF(NOT Bison_FIND_QUIETLY)
|
||||||
|
MESSAGE(STATUS "Found Bison: ${BISON_EXECUTABLE}")
|
||||||
|
ENDIF(NOT Bison_FIND_QUIETLY)
|
||||||
|
ELSE(BISON_FOUND)
|
||||||
|
IF(Bison_FIND_REQUIRED)
|
||||||
|
MESSAGE(FATAL_ERROR "Could not find Bison")
|
||||||
|
ENDIF(Bison_FIND_REQUIRED)
|
||||||
|
ENDIF(BISON_FOUND)
|
||||||
|
ENDMACRO(FIND_BISON)
|
||||||
|
|
||||||
|
MACRO(BISON_GENERATOR _PREFIX _Y_INPUT _H_OUTPUT _CPP_OUTPUT)
|
||||||
|
IF(BISON_EXECUTABLE)
|
||||||
|
GET_FILENAME_COMPONENT(_Y_DIR ${_Y_INPUT} PATH)
|
||||||
|
ADD_CUSTOM_COMMAND(
|
||||||
|
OUTPUT ${_CPP_OUTPUT}
|
||||||
|
OUTPUT ${_H_OUTPUT}
|
||||||
|
DEPENDS ${_Y_INPUT}
|
||||||
|
COMMAND ${BISON_EXECUTABLE}
|
||||||
|
ARGS
|
||||||
|
-p ${_PREFIX} -o"${_CPP_OUTPUT}"
|
||||||
|
--defines="${_H_OUTPUT}" ${_Y_INPUT}
|
||||||
|
WORKING_DIRECTORY ${_Y_DIR}
|
||||||
|
)
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(
|
||||||
|
${_CPP_OUTPUT} ${_H_OUTPUT}
|
||||||
|
GENERATED
|
||||||
|
)
|
||||||
|
ELSE(BISON_EXECUTABLE)
|
||||||
|
MESSAGE(SEND_ERROR "Can't find bison program, and it's required")
|
||||||
|
ENDIF(BISON_EXECUTABLE)
|
||||||
|
ENDMACRO(BISON_GENERATOR)
|
57
cmake/modules/LLVMConfig.cmake
Executable file
57
cmake/modules/LLVMConfig.cmake
Executable file
@ -0,0 +1,57 @@
|
|||||||
|
macro(llvm_config executable link_components)
|
||||||
|
if( MSVC )
|
||||||
|
msvc_llvm_config(${executable} ${link_components})
|
||||||
|
else( MSVC )
|
||||||
|
nix_llvm_config(${executable} ${link_components})
|
||||||
|
endif( MSVC )
|
||||||
|
endmacro(llvm_config executable link_components)
|
||||||
|
|
||||||
|
|
||||||
|
macro(msvc_llvm_config executable link_components)
|
||||||
|
foreach(c ${link_components})
|
||||||
|
message(STATUS ${c})
|
||||||
|
if( c STREQUAL "jit" )
|
||||||
|
message(STATUS "linking jit")
|
||||||
|
set_target_properties(${executable}
|
||||||
|
PROPERTIES
|
||||||
|
LINK_FLAGS "/INCLUDE:_X86TargetMachineModule")
|
||||||
|
endif( c STREQUAL "jit" )
|
||||||
|
endforeach(c)
|
||||||
|
target_link_libraries(${executable} ${llvm_libs})
|
||||||
|
endmacro(msvc_llvm_config executable link_components)
|
||||||
|
|
||||||
|
|
||||||
|
macro(nix_llvm_config executable link_components)
|
||||||
|
set(lc "")
|
||||||
|
foreach(c ${LLVM_LINK_COMPONENTS})
|
||||||
|
set(lc "${lc} ${c}")
|
||||||
|
endforeach(c)
|
||||||
|
if( NOT HAVE_LLVM_CONFIG )
|
||||||
|
target_link_libraries(${executable}
|
||||||
|
"`${LLVM_TOOLS_BINARY_DIR}/llvm-config --libs ${lc}`")
|
||||||
|
else( NOT HAVE_LLVM_CONFIG )
|
||||||
|
# tbi: Error handling.
|
||||||
|
if( NOT PERL_FOUND )
|
||||||
|
message(FATAL_ERROR "Perl required but not found!")
|
||||||
|
endif( NOT PERL_FOUND )
|
||||||
|
execute_process(
|
||||||
|
COMMAND sh -c "${PERL_EXECUTABLE} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/llvm-config --libs ${lc}"
|
||||||
|
RESULT_VARIABLE rv
|
||||||
|
OUTPUT_VARIABLE libs
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
if(NOT rv EQUAL 0)
|
||||||
|
message(FATAL_ERROR "llvm-config failed for executable ${executable}")
|
||||||
|
endif(NOT rv EQUAL 0)
|
||||||
|
string(REPLACE " " ";" libs ${libs})
|
||||||
|
foreach(c ${libs})
|
||||||
|
if(c MATCHES ".*\\.o")
|
||||||
|
get_filename_component(fn ${c} NAME)
|
||||||
|
target_link_libraries(${executable}
|
||||||
|
${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${fn})
|
||||||
|
else(c MATCHES ".*\\.o")
|
||||||
|
string(REPLACE "-l" "" fn ${c})
|
||||||
|
target_link_libraries(${executable} ${fn})
|
||||||
|
endif(c MATCHES ".*\\.o")
|
||||||
|
endforeach(c)
|
||||||
|
endif( NOT HAVE_LLVM_CONFIG )
|
||||||
|
endmacro(nix_llvm_config executable link_components)
|
1
examples/CMakeLists.txt
Normal file
1
examples/CMakeLists.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
add_subdirectory(Fibonacci)
|
5
examples/Fibonacci/CMakeLists.txt
Normal file
5
examples/Fibonacci/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
|
||||||
|
|
||||||
|
add_llvm_example(Fibonacci
|
||||||
|
fibonacci.cpp
|
||||||
|
)
|
150
include/llvm/ADT/hash_map.cmake
Normal file
150
include/llvm/ADT/hash_map.cmake
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
//===-- llvm/ADT/hash_map - "Portable" wrapper around hash_map --*- C++ -*-===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file was developed by the LLVM research group and is distributed under
|
||||||
|
// the University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This file provides a wrapper around the mysterious <hash_map> header file
|
||||||
|
// that seems to move around between GCC releases into and out of namespaces at
|
||||||
|
// will. #including this header will cause hash_map to be available in the
|
||||||
|
// global namespace.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#ifndef LLVM_ADT_HASH_MAP
|
||||||
|
#define LLVM_ADT_HASH_MAP
|
||||||
|
|
||||||
|
// Compiler Support Matrix
|
||||||
|
//
|
||||||
|
// Version Namespace Header File
|
||||||
|
// 2.95.x :: hash_map
|
||||||
|
// 3.0.4 std ext/hash_map
|
||||||
|
// 3.1 __gnu_cxx ext/hash_map
|
||||||
|
// HP aCC6 std stdex/rw/hashm*ap.h
|
||||||
|
// MS VC++ stdext hash_map
|
||||||
|
|
||||||
|
#cmakedefine HAVE_GNU_EXT_HASH_MAP
|
||||||
|
#cmakedefine HAVE_STD_EXT_HASH_MAP
|
||||||
|
#cmakedefine HAVE_GLOBAL_HASH_MAP
|
||||||
|
#cmakedefine HAVE_RW_STDEX_HASH_MAP_H
|
||||||
|
|
||||||
|
#if defined(HAVE_GNU_EXT_HASH_MAP)
|
||||||
|
// This is for GCC-3.1+ which puts hash in ext/hash_map
|
||||||
|
# include <ext/hash_map>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE __gnu_cxx
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// GCC 3.0.x puts hash_map in <ext/hash_map> and in the std namespace.
|
||||||
|
#elif defined(HAVE_STD_EXT_HASH_MAP)
|
||||||
|
# include <ext/hash_map>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE std
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Older compilers such as GCC before version 3.0 do not keep
|
||||||
|
// extensions in the `ext' directory, and ignore the `std' namespace.
|
||||||
|
#elif defined(HAVE_GLOBAL_HASH_MAP)
|
||||||
|
# include <hash_map>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE std
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// HP aCC doesn't include an SGI-like hash_map. For this platform (or
|
||||||
|
// any others using Rogue Wave Software's Tools.h++ library), we wrap
|
||||||
|
// around them in std::
|
||||||
|
#elif defined(HAVE_RW_STDEX_HASH_MAP_H)
|
||||||
|
# include <rw/stdex/hashmap.h>
|
||||||
|
# include <rw/stdex/hashmmap.h>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE std
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Support Microsoft VC++.
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
# include <hash_map>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE stdext
|
||||||
|
using std::_Distance;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Give a warning if we couldn't find it, instead of (or in addition to)
|
||||||
|
// randomly doing something dumb.
|
||||||
|
#else
|
||||||
|
# warning "Autoconfiguration failed to find the hash_map header file."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// we wrap Rogue Wave Tools.h++ rw_hashmap into something SGI-looking, here:
|
||||||
|
#ifdef HAVE_RW_STDEX_HASH_MAP_H
|
||||||
|
namespace HASH_NAMESPACE {
|
||||||
|
|
||||||
|
template <class DataType> struct hash {
|
||||||
|
unsigned int operator()(const unsigned int& x) const {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename KeyType,
|
||||||
|
typename ValueType,
|
||||||
|
class _HashFcn = hash<KeyType>,
|
||||||
|
class _EqualKey = equal_to<KeyType>,
|
||||||
|
class _A = allocator <ValueType> >
|
||||||
|
class hash_map : public rw_hashmap<KeyType, ValueType, class _HashFcn,
|
||||||
|
class _EqualKey, class _A> {
|
||||||
|
};
|
||||||
|
|
||||||
|
template <typename KeyType,
|
||||||
|
typename ValueType,
|
||||||
|
class _HashFcn = hash<KeyType>,
|
||||||
|
class _EqualKey = equal_to<KeyType>,
|
||||||
|
class _A = allocator <ValueType> >
|
||||||
|
class hash_multimap : public rw_hashmultimap<KeyType, ValueType, class _HashFcn,
|
||||||
|
class _EqualKey, class _A> {
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end HASH_NAMESPACE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Include vector because ext/hash_map includes stl_vector.h and leaves
|
||||||
|
// out specializations like stl_bvector.h, causing link conflicts.
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
|
||||||
|
// GCC and VC++ have differing ways of implementing hash_maps. As it's not
|
||||||
|
// standardized, that's to be expected. This adapter class allows VC++
|
||||||
|
// hash_map to use GCC's hash classes.
|
||||||
|
namespace stdext {
|
||||||
|
template<class Key> struct hash;
|
||||||
|
|
||||||
|
// Provide a hash function for unsigned ints...
|
||||||
|
template<> struct hash<unsigned int> {
|
||||||
|
inline size_t operator()(unsigned int Val) const {
|
||||||
|
return Val;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class Key> class hash_compare<Key, std::less<Key> > {
|
||||||
|
std::less<Key> comp;
|
||||||
|
public:
|
||||||
|
enum { bucket_size = 4 };
|
||||||
|
enum { min_buckets = 8 };
|
||||||
|
hash_compare() {}
|
||||||
|
hash_compare(std::less<Key> pred) : comp(pred) {}
|
||||||
|
size_t operator()(const Key& key) const { return hash<Key>()(key); }
|
||||||
|
bool operator()(const Key& k1, const Key& k2) const { return comp(k1, k2); }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
using HASH_NAMESPACE::hash_map;
|
||||||
|
using HASH_NAMESPACE::hash_multimap;
|
||||||
|
using HASH_NAMESPACE::hash;
|
||||||
|
|
||||||
|
#include "llvm/ADT/HashExtras.h"
|
||||||
|
|
||||||
|
#endif
|
111
include/llvm/ADT/hash_set.cmake
Normal file
111
include/llvm/ADT/hash_set.cmake
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
//===-- llvm/ADT/hash_set - "Portable" wrapper around hash_set --*- C++ -*-===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file was developed by the LLVM research group and is distributed under
|
||||||
|
// the University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
// vim:ft=cpp
|
||||||
|
//
|
||||||
|
// This file provides a wrapper around the mysterious <hash_set> header file
|
||||||
|
// that seems to move around between GCC releases into and out of namespaces at
|
||||||
|
// will. #including this header will cause hash_set to be available in the
|
||||||
|
// global namespace.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#ifndef LLVM_ADT_HASH_SET
|
||||||
|
#define LLVM_ADT_HASH_SET
|
||||||
|
|
||||||
|
// Compiler Support Matrix
|
||||||
|
//
|
||||||
|
// Version Namespace Header File
|
||||||
|
// 2.95.x :: hash_set
|
||||||
|
// 3.0.4 std ext/hash_set
|
||||||
|
// 3.1 __gnu_cxx ext/hash_set
|
||||||
|
// HP aCC6 std stdex/rw/hashset.h
|
||||||
|
// MS VC++ stdext hash_set
|
||||||
|
|
||||||
|
#cmakedefine HAVE_GNU_EXT_HASH_SET
|
||||||
|
#cmakedefine HAVE_STD_EXT_HASH_SET
|
||||||
|
#cmakedefine HAVE_GLOBAL_HASH_SET
|
||||||
|
#cmakedefine HAVE_RW_STDEX_HASH_SET_H
|
||||||
|
|
||||||
|
// GCC versions 3.1 and later put hash_set in <ext/hash_set> and in
|
||||||
|
// the __gnu_cxx namespace.
|
||||||
|
#if defined(HAVE_GNU_EXT_HASH_SET)
|
||||||
|
# include <ext/hash_set>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE __gnu_cxx
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// GCC 3.0.x puts hash_set in <ext/hash_set> and in the std namespace.
|
||||||
|
#elif defined(HAVE_STD_EXT_HASH_SET)
|
||||||
|
# include <ext/hash_set>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE std
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Older compilers such as GCC before version 3.0 do not keep
|
||||||
|
// extensions in the `ext' directory, and ignore the `std' namespace.
|
||||||
|
#elif defined(HAVE_GLOBAL_HASH_SET)
|
||||||
|
# include <hash_set>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE std
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// HP aCC doesn't include an SGI-like hash_set. For this platform (or
|
||||||
|
// any others using Rogue Wave Software's Tools.h++ library), we wrap
|
||||||
|
// around them in std::
|
||||||
|
#elif defined(HAVE_RW_STDEX_HASH_SET_H)
|
||||||
|
# include <rw/stdex/hashset.h>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE std
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Support Microsoft VC++.
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
# include <hash_set>
|
||||||
|
# ifndef HASH_NAMESPACE
|
||||||
|
# define HASH_NAMESPACE stdext
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Give a warning if we couldn't find it, instead of (or in addition to)
|
||||||
|
// randomly doing something dumb.
|
||||||
|
#else
|
||||||
|
# warning "Autoconfiguration failed to find the hash_set header file."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// we wrap Rogue Wave Tools.h++ rw_hashset into something SGI-looking, here:
|
||||||
|
#ifdef HAVE_RW_STDEX_HASH_SET_H
|
||||||
|
namespace HASH_NAMESPACE {
|
||||||
|
|
||||||
|
/*
|
||||||
|
template <class DataType> struct hash {
|
||||||
|
unsigned int operator()(const unsigned int& x) const {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
template <typename ValueType,
|
||||||
|
class _HashFcn = hash<ValueType>,
|
||||||
|
class _EqualKey = equal_to<ValueType>,
|
||||||
|
class _A = allocator <ValueType> >
|
||||||
|
class hash_set :
|
||||||
|
public rw_hashset<ValueType, class _HashFcn, class _EqualKey, class _A> {
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end HASH_NAMESPACE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
using HASH_NAMESPACE::hash_set;
|
||||||
|
|
||||||
|
// Include vector because ext/hash_set includes stl_vector.h and leaves
|
||||||
|
// out specializations like stl_bvector.h, causing link conflicts.
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
#include "llvm/ADT/HashExtras.h"
|
||||||
|
|
||||||
|
#endif
|
79
include/llvm/ADT/iterator.cmake
Normal file
79
include/llvm/ADT/iterator.cmake
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
//===-- llvm/ADT/iterator - Portable wrapper around <iterator> --*- C++ -*-===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file was developed by the LLVM research group and is distributed under
|
||||||
|
// the University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This file provides a wrapper around the mysterious <iterator> header file.
|
||||||
|
// In GCC 2.95.3, the file defines a bidirectional_iterator class (and other
|
||||||
|
// friends), instead of the standard iterator class. In GCC 3.1, the
|
||||||
|
// bidirectional_iterator class got moved out and the new, standards compliant,
|
||||||
|
// iterator<> class was added. Because there is nothing that we can do to get
|
||||||
|
// correct behavior on both compilers, we have this header with #ifdef's. Gross
|
||||||
|
// huh?
|
||||||
|
//
|
||||||
|
// By #includ'ing this file, you get the contents of <iterator> plus the
|
||||||
|
// following classes in the global namespace:
|
||||||
|
//
|
||||||
|
// 1. bidirectional_iterator
|
||||||
|
// 2. forward_iterator
|
||||||
|
//
|
||||||
|
// The #if directives' expressions are filled in by Autoconf.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#ifndef LLVM_ADT_ITERATOR
|
||||||
|
#define LLVM_ADT_ITERATOR
|
||||||
|
|
||||||
|
#include <iterator>
|
||||||
|
|
||||||
|
#undef HAVE_BI_ITERATOR
|
||||||
|
#undef HAVE_STD_ITERATOR
|
||||||
|
#undef HAVE_FWD_ITERATOR
|
||||||
|
|
||||||
|
// defined by Kevin
|
||||||
|
#define HAVE_STD_ITERATOR 1
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
# define HAVE_BI_ITERATOR 0
|
||||||
|
# define HAVE_STD_ITERATOR 1
|
||||||
|
# define HAVE_FWD_ITERATOR 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !HAVE_BI_ITERATOR
|
||||||
|
# if HAVE_STD_ITERATOR
|
||||||
|
/// If the bidirectional iterator is not defined, we attempt to define it in
|
||||||
|
/// terms of the C++ standard iterator. Otherwise, we import it with a "using"
|
||||||
|
/// statement.
|
||||||
|
///
|
||||||
|
template<class Ty, class PtrDiffTy>
|
||||||
|
struct bidirectional_iterator
|
||||||
|
: public std::iterator<std::bidirectional_iterator_tag, Ty, PtrDiffTy> {
|
||||||
|
};
|
||||||
|
# else
|
||||||
|
# error "Need to have standard iterator to define bidirectional iterator!"
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
using std::bidirectional_iterator;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !HAVE_FWD_ITERATOR
|
||||||
|
# if HAVE_STD_ITERATOR
|
||||||
|
/// If the forward iterator is not defined, attempt to define it in terms of
|
||||||
|
/// the C++ standard iterator. Otherwise, we import it with a "using" statement.
|
||||||
|
///
|
||||||
|
template<class Ty, class PtrDiffTy>
|
||||||
|
struct forward_iterator
|
||||||
|
: public std::iterator<std::forward_iterator_tag, Ty, PtrDiffTy> {
|
||||||
|
};
|
||||||
|
# else
|
||||||
|
# error "Need to have standard iterator to define forward iterator!"
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
using std::forward_iterator;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
558
include/llvm/Config/config.h.cmake
Normal file
558
include/llvm/Config/config.h.cmake
Normal file
@ -0,0 +1,558 @@
|
|||||||
|
|
||||||
|
/**************************************
|
||||||
|
** Created by Kevin from config.h.in **
|
||||||
|
***************************************/
|
||||||
|
|
||||||
|
/* Define if dlopen(0) will open the symbols of the program */
|
||||||
|
#undef CAN_DLOPEN_SELF
|
||||||
|
|
||||||
|
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
||||||
|
systems. This function is required for `alloca.c' support on those systems.
|
||||||
|
*/
|
||||||
|
#undef CRAY_STACKSEG_END
|
||||||
|
|
||||||
|
/* Define to 1 if using `alloca.c'. */
|
||||||
|
#undef C_ALLOCA
|
||||||
|
|
||||||
|
/* Define if CBE is enabled for printf %a output */
|
||||||
|
#undef ENABLE_CBE_PRINTF_A
|
||||||
|
|
||||||
|
/* Define if position independent code is enabled */
|
||||||
|
#undef ENABLE_PIC
|
||||||
|
|
||||||
|
/* Define if threads enabled */
|
||||||
|
#cmakedefine ENABLE_THREADS ${ENABLE_THREADS}
|
||||||
|
|
||||||
|
/* Define to 1 if you have `alloca', as a function or macro. */
|
||||||
|
#undef HAVE_ALLOCA
|
||||||
|
|
||||||
|
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||||
|
*/
|
||||||
|
#undef HAVE_ALLOCA_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `argz_append' function. */
|
||||||
|
#undef HAVE_ARGZ_APPEND
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `argz_create_sep' function. */
|
||||||
|
#undef HAVE_ARGZ_CREATE_SEP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <argz.h> header file. */
|
||||||
|
#cmakedefine HAVE_ARGZ_H ${HAVE_ARGZ_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `argz_insert' function. */
|
||||||
|
#undef HAVE_ARGZ_INSERT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `argz_next' function. */
|
||||||
|
#undef HAVE_ARGZ_NEXT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `argz_stringify' function. */
|
||||||
|
#undef HAVE_ARGZ_STRINGIFY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <assert.h> header file. */
|
||||||
|
#cmakedefine HAVE_ASSERT_H ${HAVE_ASSERT_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `backtrace' function. */
|
||||||
|
#undef HAVE_BACKTRACE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `bcopy' function. */
|
||||||
|
#undef HAVE_BCOPY
|
||||||
|
|
||||||
|
/* Does not have bi-directional iterator */
|
||||||
|
#undef HAVE_BI_ITERATOR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `ceilf' function. */
|
||||||
|
#undef HAVE_CEILF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `closedir' function. */
|
||||||
|
#undef HAVE_CLOSEDIR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <ctype.h> header file. */
|
||||||
|
#undef HAVE_CTYPE_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
|
||||||
|
*/
|
||||||
|
#cmakedefine HAVE_DIRENT_H ${HAVE_DIRENT_H}
|
||||||
|
|
||||||
|
/* Define if you have the GNU dld library. */
|
||||||
|
#undef HAVE_DLD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dld.h> header file. */
|
||||||
|
#cmakedefine HAVE_DLD_H ${HAVE_DLD_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `dlerror' function. */
|
||||||
|
#undef HAVE_DLERROR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
|
#cmakedefine HAVE_DLFCN_H ${HAVE_DLFCN_H}
|
||||||
|
|
||||||
|
/* Define if dlopen() is available on this platform. */
|
||||||
|
#undef HAVE_DLOPEN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dl.h> header file. */
|
||||||
|
#cmakedefine HAVE_DL_H ${HAVE_DL_H}
|
||||||
|
|
||||||
|
/* Define if the dot program is available */
|
||||||
|
#undef HAVE_DOT
|
||||||
|
|
||||||
|
/* Define if the dotty program is available */
|
||||||
|
#undef HAVE_DOTTY
|
||||||
|
|
||||||
|
/* Define if you have the _dyld_func_lookup function. */
|
||||||
|
#undef HAVE_DYLD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <errno.h> header file. */
|
||||||
|
#cmakedefine HAVE_ERRNO_H ${HAVE_ERRNO_H}
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `error_t'. */
|
||||||
|
#undef HAVE_ERROR_T
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <execinfo.h> header file. */
|
||||||
|
#cmakedefine HAVE_EXECINFO_H ${HAVE_EXECINFO_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||||
|
#cmakedefine HAVE_FCNTL_H ${HAVE_FCNTL_H}
|
||||||
|
|
||||||
|
/* Set to 1 if the finite function is found in <ieeefp.h> */
|
||||||
|
#undef HAVE_FINITE_IN_IEEEFP_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `floorf' function. */
|
||||||
|
#undef HAVE_FLOORF
|
||||||
|
|
||||||
|
/* Does not have forward iterator */
|
||||||
|
#undef HAVE_FWD_ITERATOR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getcwd' function. */
|
||||||
|
#undef HAVE_GETCWD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getpagesize' function. */
|
||||||
|
#cmakedefine HAVE_GETPAGESIZE ${HAVE_GETPAGESIZE}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getrlimit' function. */
|
||||||
|
#undef HAVE_GETRLIMIT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `getrusage' function. */
|
||||||
|
#cmakedefine HAVE_GETRUSAGE ${HAVE_GETRUSAGE}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `gettimeofday' function. */
|
||||||
|
#undef HAVE_GETTIMEOFDAY
|
||||||
|
|
||||||
|
/* Does not have <hash_map> */
|
||||||
|
#undef HAVE_GLOBAL_HASH_MAP
|
||||||
|
|
||||||
|
/* Does not have hash_set in global namespace */
|
||||||
|
#undef HAVE_GLOBAL_HASH_SET
|
||||||
|
|
||||||
|
/* Does not have ext/hash_map */
|
||||||
|
#undef HAVE_GNU_EXT_HASH_MAP
|
||||||
|
|
||||||
|
/* Does not have hash_set in gnu namespace */
|
||||||
|
#undef HAVE_GNU_EXT_HASH_SET
|
||||||
|
|
||||||
|
/* Define if the Graphviz program is available */
|
||||||
|
#undef HAVE_GRAPHVIZ
|
||||||
|
|
||||||
|
/* Define if the gv program is available */
|
||||||
|
#undef HAVE_GV
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `index' function. */
|
||||||
|
#undef HAVE_INDEX
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `int64_t'. */
|
||||||
|
#undef HAVE_INT64_T
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `isatty' function. */
|
||||||
|
#undef HAVE_ISATTY
|
||||||
|
|
||||||
|
/* Set to 1 if the isinf function is found in <cmath> */
|
||||||
|
#cmakedefine HAVE_ISINF_IN_CMATH ${HAVE_ISINF_IN_CMATH}
|
||||||
|
|
||||||
|
/* Set to 1 if the isinf function is found in <math.h> */
|
||||||
|
#cmakedefine HAVE_ISINF_IN_MATH_H ${HAVE_ISINF_IN_MATH_H}
|
||||||
|
|
||||||
|
/* Set to 1 if the isnan function is found in <cmath> */
|
||||||
|
#cmakedefine HAVE_ISNAN_IN_CMATH ${HAVE_ISNAN_IN_CMATH}
|
||||||
|
|
||||||
|
/* Set to 1 if the isnan function is found in <math.h> */
|
||||||
|
#cmakedefine HAVE_ISNAN_IN_MATH_H ${HAVE_ISNAN_IN_MATH_H}
|
||||||
|
|
||||||
|
/* Define if you have the libdl library or equivalent. */
|
||||||
|
#undef HAVE_LIBDL
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `elf' library (-lelf). */
|
||||||
|
#undef HAVE_LIBELF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `imagehlp' library (-limagehlp). */
|
||||||
|
#cmakedefine HAVE_LIBIMAGEHLP ${HAVE_LIBIMAGEHLP}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `m' library (-lm). */
|
||||||
|
#undef HAVE_LIBM
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `psapi' library (-lpsapi). */
|
||||||
|
#cmakedefine HAVE_LIBPSAPI ${HAVE_LIBPSAPI}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `pthread' library (-lpthread). */
|
||||||
|
#undef HAVE_LIBPTHREAD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `udis86' library (-ludis86). */
|
||||||
|
#undef HAVE_LIBUDIS86
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
|
#cmakedefine HAVE_LIMITS_H ${HAVE_LIMITS_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <link.h> header file. */
|
||||||
|
#cmakedefine HAVE_LINK_H ${HAVE_LINK_H}
|
||||||
|
|
||||||
|
/* Define if you can use -Wl,-R. to pass -R. to the linker, in order to add
|
||||||
|
the current directory to the dynamic linker search path. */
|
||||||
|
#undef HAVE_LINK_R
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `longjmp' function. */
|
||||||
|
#undef HAVE_LONGJMP
|
||||||
|
|
||||||
|
/* Define if lt_dlopen() is available on this platform */
|
||||||
|
#undef HAVE_LT_DLOPEN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <mach/mach.h> header file. */
|
||||||
|
#undef HAVE_MACH_MACH_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <mach-o/dyld.h> header file. */
|
||||||
|
#undef HAVE_MACH_O_DYLD_H
|
||||||
|
|
||||||
|
/* Define if mallinfo() is available on this platform. */
|
||||||
|
#cmakedefine HAVE_MALLINFO ${HAVE_MALLINFO}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <malloc.h> header file. */
|
||||||
|
#cmakedefine HAVE_MALLOC_H ${HAVE_MALLOC_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <malloc/malloc.h> header file. */
|
||||||
|
#cmakedefine HAVE_MALLOC_MALLOC_H ${HAVE_MALLOC_MALLOC_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `malloc_zone_statistics' function. */
|
||||||
|
#undef HAVE_MALLOC_ZONE_STATISTICS
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `memcpy' function. */
|
||||||
|
#undef HAVE_MEMCPY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `memmove' function. */
|
||||||
|
#undef HAVE_MEMMOVE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#cmakedefine HAVE_MEMORY_H ${HAVE_MEMORY_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mkdtemp' function. */
|
||||||
|
#undef HAVE_MKDTEMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mkstemp' function. */
|
||||||
|
#undef HAVE_MKSTEMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `mktemp' function. */
|
||||||
|
#undef HAVE_MKTEMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have a working `mmap' system call. */
|
||||||
|
#undef HAVE_MMAP
|
||||||
|
|
||||||
|
/* Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if
|
||||||
|
it uses MAP_ANON */
|
||||||
|
#undef HAVE_MMAP_ANONYMOUS
|
||||||
|
|
||||||
|
/* Define if mmap() can map files into memory */
|
||||||
|
#undef HAVE_MMAP_FILE
|
||||||
|
|
||||||
|
/* define if the compiler implements namespaces */
|
||||||
|
#undef HAVE_NAMESPACES
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
|
||||||
|
#cmakedefine HAVE_NDIR_H ${HAVE_NDIR_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `nearbyintf' function. */
|
||||||
|
#undef HAVE_NEARBYINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `opendir' function. */
|
||||||
|
#undef HAVE_OPENDIR
|
||||||
|
|
||||||
|
/* Define if libtool can extract symbol lists from object files. */
|
||||||
|
#undef HAVE_PRELOADED_SYMBOLS
|
||||||
|
|
||||||
|
/* Define to have the %a format string */
|
||||||
|
#undef HAVE_PRINTF_A
|
||||||
|
|
||||||
|
/* Have pthread_mutex_lock */
|
||||||
|
#cmakedefine HAVE_PTHREAD_MUTEX_LOCK ${HAVE_PTHREAD_MUTEX_LOCK}
|
||||||
|
|
||||||
|
/* Define to 1 if srand48/lrand48/drand48 exist in <stdlib.h> */
|
||||||
|
#undef HAVE_RAND48
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `readdir' function. */
|
||||||
|
#undef HAVE_READDIR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `realpath' function. */
|
||||||
|
#undef HAVE_REALPATH
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `rindex' function. */
|
||||||
|
#undef HAVE_RINDEX
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `rintf' function. */
|
||||||
|
#undef HAVE_RINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `roundf' function. */
|
||||||
|
#undef HAVE_ROUNDF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `sbrk' function. */
|
||||||
|
#undef HAVE_SBRK
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setjmp' function. */
|
||||||
|
#undef HAVE_SETJMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <setjmp.h> header file. */
|
||||||
|
#cmakedefine HAVE_SETJMP_H ${HAVE_SETJMP_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setrlimit' function. */
|
||||||
|
#cmakedefine HAVE_SETRLIMIT ${HAVE_SETRLIMIT}
|
||||||
|
|
||||||
|
/* Define if you have the shl_load function. */
|
||||||
|
#undef HAVE_SHL_LOAD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `siglongjmp' function. */
|
||||||
|
#undef HAVE_SIGLONGJMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <signal.h> header file. */
|
||||||
|
#cmakedefine HAVE_SIGNAL_H ${HAVE_SIGNAL_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `sigsetjmp' function. */
|
||||||
|
#undef HAVE_SIGSETJMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#cmakedefine HAVE_STDINT_H ${HAVE_STDINT_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdio.h> header file. */
|
||||||
|
#cmakedefine HAVE_STDIO_H ${HAVE_STDIO_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#cmakedefine HAVE_STDLIB_H ${HAVE_STDLIB_H}
|
||||||
|
|
||||||
|
/* Does not have ext/hash_map> */
|
||||||
|
#undef HAVE_STD_EXT_HASH_MAP
|
||||||
|
|
||||||
|
/* Does not have hash_set in std namespace */
|
||||||
|
#undef HAVE_STD_EXT_HASH_SET
|
||||||
|
|
||||||
|
/* Set to 1 if the std::isinf function is found in <cmath> */
|
||||||
|
#undef HAVE_STD_ISINF_IN_CMATH
|
||||||
|
|
||||||
|
/* Set to 1 if the std::isnan function is found in <cmath> */
|
||||||
|
#undef HAVE_STD_ISNAN_IN_CMATH
|
||||||
|
|
||||||
|
/* Does not have std namespace iterator */
|
||||||
|
#undef HAVE_STD_ITERATOR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strchr' function. */
|
||||||
|
#undef HAVE_STRCHR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strcmp' function. */
|
||||||
|
#undef HAVE_STRCMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strdup' function. */
|
||||||
|
#undef HAVE_STRDUP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strerror' function. */
|
||||||
|
#undef HAVE_STRERROR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strerror_r' function. */
|
||||||
|
#undef HAVE_STRERROR_R
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strrchr' function. */
|
||||||
|
#undef HAVE_STRRCHR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strtoll' function. */
|
||||||
|
#undef HAVE_STRTOLL
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strtoq' function. */
|
||||||
|
#undef HAVE_STRTOQ
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `sysconf' function. */
|
||||||
|
#undef HAVE_SYSCONF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
|
||||||
|
*/
|
||||||
|
#cmakedefine HAVE_SYS_DIR_H ${HAVE_SYS_DIR_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/dl.h> header file. */
|
||||||
|
#cmakedefine HAVE_SYS_DL_H ${HAVE_SYS_DL_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||||
|
#cmakedefine HAVE_SYS_MMAN_H ${}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
|
||||||
|
*/
|
||||||
|
#cmakedefine HAVE_SYS_NDIR_H ${HAVE_SYS_NDIR_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
|
#cmakedefine HAVE_SYS_PARAM_H ${HAVE_SYS_PARAM_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/resource.h> header file. */
|
||||||
|
#cmakedefine HAVE_SYS_RESOURCE_H ${HAVE_SYS_RESOURCE_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#cmakedefine HAVE_SYS_STAT_H ${HAVE_SYS_STAT_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||||
|
#cmakedefine HAVE_SYS_TIME_H ${HAVE_SYS_TIME_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#cmakedefine HAVE_SYS_TYPES_H ${HAVE_SYS_TYPES_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
|
||||||
|
#undef HAVE_SYS_WAIT_H
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `uint64_t'. */
|
||||||
|
#undef HAVE_UINT64_T
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#cmakedefine HAVE_UNISTD_H ${HAVE_UNISTD_H}
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <utime.h> header file. */
|
||||||
|
#cmakedefine HAVE_UTIME_H ${HAVE_UTIME_H}
|
||||||
|
|
||||||
|
/* Define to 1 if the system has the type `u_int64_t'. */
|
||||||
|
#undef HAVE_U_INT64_T
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <windows.h> header file. */
|
||||||
|
#undef HAVE_WINDOWS_H
|
||||||
|
|
||||||
|
/* Installation directory for binary executables */
|
||||||
|
#undef LLVM_BINDIR
|
||||||
|
|
||||||
|
/* Time at which LLVM was configured */
|
||||||
|
#undef LLVM_CONFIGTIME
|
||||||
|
|
||||||
|
/* Installation directory for documentation */
|
||||||
|
#undef LLVM_DATADIR
|
||||||
|
|
||||||
|
/* Installation directory for config files */
|
||||||
|
#undef LLVM_ETCDIR
|
||||||
|
|
||||||
|
/* Installation directory for include files */
|
||||||
|
#undef LLVM_INCLUDEDIR
|
||||||
|
|
||||||
|
/* Installation directory for .info files */
|
||||||
|
#undef LLVM_INFODIR
|
||||||
|
|
||||||
|
/* Installation directory for libraries */
|
||||||
|
#undef LLVM_LIBDIR
|
||||||
|
|
||||||
|
/* Installation directory for man pages */
|
||||||
|
#undef LLVM_MANDIR
|
||||||
|
|
||||||
|
/* Define if this is Unixish platform */
|
||||||
|
#cmakedefine LLVM_ON_UNIX ${LLVM_ON_UNIX}
|
||||||
|
|
||||||
|
/* Define if this is Win32ish platform */
|
||||||
|
#cmakedefine LLVM_ON_WIN32 ${LLVM_ON_WIN32}
|
||||||
|
|
||||||
|
/* Added by Kevin -- Maximum path length */
|
||||||
|
#cmakedefine MAXPATHLEN ${MAXPATHLEN}
|
||||||
|
|
||||||
|
/* Define to path to dot program if found or 'echo dot' otherwise */
|
||||||
|
#undef LLVM_PATH_DOT
|
||||||
|
|
||||||
|
/* Define to path to dotty program if found or 'echo dotty' otherwise */
|
||||||
|
#undef LLVM_PATH_DOTTY
|
||||||
|
|
||||||
|
/* Define to path to Graphviz program if found or 'echo Graphviz' otherwise */
|
||||||
|
#undef LLVM_PATH_GRAPHVIZ
|
||||||
|
|
||||||
|
/* Define to path to gv program if found or 'echo gv' otherwise */
|
||||||
|
#undef LLVM_PATH_GV
|
||||||
|
|
||||||
|
/* Installation prefix directory */
|
||||||
|
#undef LLVM_PREFIX
|
||||||
|
|
||||||
|
/* Define if the OS needs help to load dependent libraries for dlopen(). */
|
||||||
|
#undef LTDL_DLOPEN_DEPLIBS
|
||||||
|
|
||||||
|
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||||
|
*/
|
||||||
|
#undef LTDL_OBJDIR
|
||||||
|
|
||||||
|
/* Define to the name of the environment variable that determines the dynamic
|
||||||
|
library search path. */
|
||||||
|
#undef LTDL_SHLIBPATH_VAR
|
||||||
|
|
||||||
|
/* Define to the extension used for shared libraries, say, ".so". */
|
||||||
|
#cmakedefine LTDL_SHLIB_EXT "${LTDL_SHLIB_EXT}"
|
||||||
|
|
||||||
|
/* Define to the system default library search path. */
|
||||||
|
#undef LTDL_SYSSEARCHPATH
|
||||||
|
|
||||||
|
/* Define if /dev/zero should be used when mapping RWX memory, or undefine if
|
||||||
|
its not necessary */
|
||||||
|
#undef NEED_DEV_ZERO_FOR_MMAP
|
||||||
|
|
||||||
|
/* Define if dlsym() requires a leading underscore in symbol names. */
|
||||||
|
#undef NEED_USCORE
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#cmakedefine PACKAGE_BUGREPORT "${PACKAGE_BUGREPORT}"
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#cmakedefine PACKAGE_NAME "${PACKAGE_NAME}"
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#cmakedefine PACKAGE_VERSION "${PACKAGE_VERSION}"
|
||||||
|
|
||||||
|
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||||
|
#cmakedefine RETSIGTYPE ${RETSIGTYPE}
|
||||||
|
|
||||||
|
/* If using the C implementation of alloca, define if you know the
|
||||||
|
direction of stack growth for your system; otherwise it will be
|
||||||
|
automatically deduced at runtime.
|
||||||
|
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||||
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||||
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||||
|
#undef STACK_DIRECTION
|
||||||
|
|
||||||
|
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
|
||||||
|
#undef STAT_MACROS_BROKEN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
|
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||||
|
#undef TIME_WITH_SYS_TIME
|
||||||
|
|
||||||
|
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
||||||
|
#undef TM_IN_SYS_TIME
|
||||||
|
|
||||||
|
/* Define if use udis86 library */
|
||||||
|
#undef USE_UDIS86
|
||||||
|
|
||||||
|
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
|
||||||
|
`char[]'. */
|
||||||
|
#undef YYTEXT_POINTER
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
#undef const
|
||||||
|
|
||||||
|
/* Define to a type to use for `error_t' if it is not otherwise available. */
|
||||||
|
#undef error_t
|
||||||
|
|
||||||
|
/* Define to `int' if <sys/types.h> does not define. */
|
||||||
|
#undef pid_t
|
||||||
|
|
||||||
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
|
#undef size_t
|
134
include/llvm/Support/DataTypes.h.cmake
Normal file
134
include/llvm/Support/DataTypes.h.cmake
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
//===-- include/Support/DataTypes.h - Define fixed size types ---*- C++ -*-===//
|
||||||
|
//
|
||||||
|
// The LLVM Compiler Infrastructure
|
||||||
|
//
|
||||||
|
// This file was developed by the LLVM research group and is distributed under
|
||||||
|
// the University of Illinois Open Source License. See LICENSE.TXT for details.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This file contains definitions to figure out the size of _HOST_ data types.
|
||||||
|
// This file is important because different host OS's define different macros,
|
||||||
|
// which makes portability tough. This file exports the following definitions:
|
||||||
|
//
|
||||||
|
// [u]int(32|64)_t : typedefs for signed and unsigned 32/64 bit system types
|
||||||
|
// [U]INT(8|16|32|64)_(MIN|MAX) : Constants for the min and max values.
|
||||||
|
//
|
||||||
|
// No library is required when using these functinons.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
#ifndef SUPPORT_DATATYPES_H
|
||||||
|
#define SUPPORT_DATATYPES_H
|
||||||
|
|
||||||
|
#cmakedefine HAVE_SYS_TYPES_H ${HAVE_SYS_TYPES_H}
|
||||||
|
#cmakedefine HAVE_INTTYPES_H ${HAVE_INTTYPES_H}
|
||||||
|
#cmakedefine HAVE_STDINT_H ${HAVE_STDINT_H}
|
||||||
|
#undef HAVE_UINT64_T
|
||||||
|
#undef HAVE_U_INT64_T
|
||||||
|
|
||||||
|
// FIXME: UGLY HACK (Added by Kevin)
|
||||||
|
#define HAVE_UINT64_T 1
|
||||||
|
|
||||||
|
#ifndef _MSC_VER
|
||||||
|
|
||||||
|
// Note that this header's correct operation depends on __STDC_LIMIT_MACROS
|
||||||
|
// being defined. We would define it here, but in order to prevent Bad Things
|
||||||
|
// happening when system headers or C++ STL headers include stdint.h before
|
||||||
|
// we define it here, we define it on the g++ command line (in Makefile.rules).
|
||||||
|
#if !defined(__STDC_LIMIT_MACROS)
|
||||||
|
# error "Must #define __STDC_LIMIT_MACROS before #including Support/DataTypes.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Note that <inttypes.h> includes <stdint.h>, if this is a C99 system.
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_INTTYPES_H
|
||||||
|
#include <inttypes.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STDINT_H
|
||||||
|
#include <stdint.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include <cmath>
|
||||||
|
#else
|
||||||
|
#include <math.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _AIX
|
||||||
|
#include "llvm/Support/AIXDataTypesFix.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Handle incorrect definition of uint64_t as u_int64_t
|
||||||
|
#ifndef HAVE_UINT64_T
|
||||||
|
#ifdef HAVE_U_INT64_T
|
||||||
|
typedef u_int64_t uint64_t;
|
||||||
|
#else
|
||||||
|
# error "Don't have a definition for uint64_t on this platform"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _OpenBSD_
|
||||||
|
#define INT8_MAX 127
|
||||||
|
#define INT8_MIN -128
|
||||||
|
#define UINT8_MAX 255
|
||||||
|
#define INT16_MAX 32767
|
||||||
|
#define INT16_MIN -32768
|
||||||
|
#define UINT16_MAX 65535
|
||||||
|
#define INT32_MAX 2147483647
|
||||||
|
#define INT32_MIN -2147483648
|
||||||
|
#define UINT32_MAX 4294967295U
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else /* _MSC_VER */
|
||||||
|
// Visual C++ doesn't provide standard integer headers, but it does provide
|
||||||
|
// built-in data types.
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
typedef __int64 int64_t;
|
||||||
|
typedef unsigned __int64 uint64_t;
|
||||||
|
typedef signed int int32_t;
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
typedef short int16_t;
|
||||||
|
typedef unsigned short uint16_t;
|
||||||
|
typedef signed char int8_t;
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
typedef signed int ssize_t;
|
||||||
|
#define INT8_MAX 127
|
||||||
|
#define INT8_MIN -128
|
||||||
|
#define UINT8_MAX 255
|
||||||
|
#define INT16_MAX 32767
|
||||||
|
#define INT16_MIN -32768
|
||||||
|
#define UINT16_MAX 65535
|
||||||
|
#define INT32_MAX 2147483647
|
||||||
|
#define INT32_MIN -2147483648
|
||||||
|
#define UINT32_MAX 4294967295U
|
||||||
|
#endif /* _MSC_VER */
|
||||||
|
|
||||||
|
/* Set defaults for constants which we cannot find. */
|
||||||
|
#if !defined(INT64_MAX)
|
||||||
|
# define INT64_MAX 9223372036854775807LL
|
||||||
|
#endif
|
||||||
|
#if !defined(INT64_MIN)
|
||||||
|
# define INT64_MIN ((-INT64_MAX)-1)
|
||||||
|
#endif
|
||||||
|
#if !defined(UINT64_MAX)
|
||||||
|
# define UINT64_MAX 0xffffffffffffffffULL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ > 3
|
||||||
|
#define END_WITH_NULL __attribute__((sentinel))
|
||||||
|
#else
|
||||||
|
#define END_WITH_NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HUGE_VALF
|
||||||
|
#define HUGE_VALF (float)HUGE_VAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* SUPPORT_DATATYPES_H */
|
29
lib/Analysis/CMakeLists.txt
Normal file
29
lib/Analysis/CMakeLists.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
add_llvm_library(LLVMAnalysis
|
||||||
|
AliasAnalysis.cpp
|
||||||
|
AliasAnalysisCounter.cpp
|
||||||
|
AliasAnalysisEvaluator.cpp
|
||||||
|
AliasDebugger.cpp
|
||||||
|
AliasSetTracker.cpp
|
||||||
|
Analysis.cpp
|
||||||
|
BasicAliasAnalysis.cpp
|
||||||
|
CFGPrinter.cpp
|
||||||
|
ConstantFolding.cpp
|
||||||
|
InstCount.cpp
|
||||||
|
Interval.cpp
|
||||||
|
IntervalPartition.cpp
|
||||||
|
LibCallAliasAnalysis.cpp
|
||||||
|
LibCallSemantics.cpp
|
||||||
|
LoopInfo.cpp
|
||||||
|
LoopPass.cpp
|
||||||
|
LoopVR.cpp
|
||||||
|
MemoryDependenceAnalysis.cpp
|
||||||
|
PostDominators.cpp
|
||||||
|
ProfileInfo.cpp
|
||||||
|
ProfileInfoLoader.cpp
|
||||||
|
ProfileInfoLoaderPass.cpp
|
||||||
|
ScalarEvolution.cpp
|
||||||
|
ScalarEvolutionExpander.cpp
|
||||||
|
SparsePropagation.cpp
|
||||||
|
Trace.cpp
|
||||||
|
ValueTracking.cpp
|
||||||
|
)
|
7
lib/Analysis/IPA/CMakeLists.txt
Normal file
7
lib/Analysis/IPA/CMakeLists.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
add_llvm_library(LLVMipa
|
||||||
|
Andersens.cpp
|
||||||
|
CallGraph.cpp
|
||||||
|
CallGraphSCCPass.cpp
|
||||||
|
FindUsedTypes.cpp
|
||||||
|
GlobalsModRef.cpp
|
||||||
|
)
|
5
lib/Archive/CMakeLists.txt
Normal file
5
lib/Archive/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
add_llvm_library(LLVMArchive
|
||||||
|
Archive.cpp
|
||||||
|
ArchiveReader.cpp
|
||||||
|
ArchiveWriter.cpp
|
||||||
|
)
|
15
lib/AsmParser/CMakeLists.txt
Normal file
15
lib/AsmParser/CMakeLists.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# AsmParser, with a Bison generated parser:
|
||||||
|
include(FindBison)
|
||||||
|
find_bison()
|
||||||
|
bison_generator(
|
||||||
|
"llvmAsm"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.y"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.h"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/llvmAsmParser.cpp"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_llvm_library(LLVMAsmParser
|
||||||
|
llvmAsmParser.cpp # Generated from llvmAsmParser.y
|
||||||
|
LLLexer.cpp
|
||||||
|
Parser.cpp
|
||||||
|
)
|
7
lib/Bitcode/Reader/CMakeLists.txt
Normal file
7
lib/Bitcode/Reader/CMakeLists.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
add_llvm_library(LLVMBitReader
|
||||||
|
BitReader.cpp
|
||||||
|
BitcodeReader.cpp
|
||||||
|
Deserialize.cpp
|
||||||
|
DeserializeAPFloat.cpp
|
||||||
|
DeserializeAPInt.cpp
|
||||||
|
)
|
9
lib/Bitcode/Writer/CMakeLists.txt
Normal file
9
lib/Bitcode/Writer/CMakeLists.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
add_llvm_library(LLVMBitWriter
|
||||||
|
BitWriter.cpp
|
||||||
|
BitcodeWriter.cpp
|
||||||
|
BitcodeWriterPass.cpp
|
||||||
|
Serialize.cpp
|
||||||
|
SerializeAPFloat.cpp
|
||||||
|
SerializeAPInt.cpp
|
||||||
|
ValueEnumerator.cpp
|
||||||
|
)
|
5
lib/CodeGen/AsmPrinter/CMakeLists.txt
Normal file
5
lib/CodeGen/AsmPrinter/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
add_llvm_library(LLVMAsmPrinter
|
||||||
|
AsmPrinter.cpp
|
||||||
|
DwarfWriter.cpp
|
||||||
|
OcamlGCPrinter.cpp
|
||||||
|
)
|
48
lib/CodeGen/CMakeLists.txt
Normal file
48
lib/CodeGen/CMakeLists.txt
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
add_llvm_library(LLVMCodeGen
|
||||||
|
BranchFolding.cpp
|
||||||
|
DeadMachineInstructionElim.cpp
|
||||||
|
ELFWriter.cpp
|
||||||
|
GCMetadata.cpp
|
||||||
|
GCMetadataPrinter.cpp
|
||||||
|
GCStrategy.cpp
|
||||||
|
IfConversion.cpp
|
||||||
|
IntrinsicLowering.cpp
|
||||||
|
LLVMTargetMachine.cpp
|
||||||
|
LiveInterval.cpp
|
||||||
|
LiveIntervalAnalysis.cpp
|
||||||
|
LiveStackAnalysis.cpp
|
||||||
|
LiveVariables.cpp
|
||||||
|
LoopAligner.cpp
|
||||||
|
LowerSubregs.cpp
|
||||||
|
MachOWriter.cpp
|
||||||
|
MachineBasicBlock.cpp
|
||||||
|
MachineDominators.cpp
|
||||||
|
MachineFunction.cpp
|
||||||
|
MachineInstr.cpp
|
||||||
|
MachineLICM.cpp
|
||||||
|
MachineLoopInfo.cpp
|
||||||
|
MachineModuleInfo.cpp
|
||||||
|
MachinePassRegistry.cpp
|
||||||
|
MachineRegisterInfo.cpp
|
||||||
|
MachineSink.cpp
|
||||||
|
OcamlGC.cpp
|
||||||
|
PHIElimination.cpp
|
||||||
|
Passes.cpp
|
||||||
|
PostRASchedulerList.cpp
|
||||||
|
PrologEpilogInserter.cpp
|
||||||
|
PseudoSourceValue.cpp
|
||||||
|
RegAllocBigBlock.cpp
|
||||||
|
RegAllocLinearScan.cpp
|
||||||
|
RegAllocLocal.cpp
|
||||||
|
RegAllocSimple.cpp
|
||||||
|
RegisterCoalescer.cpp
|
||||||
|
RegisterScavenging.cpp
|
||||||
|
ShadowStackGC.cpp
|
||||||
|
SimpleRegisterCoalescing.cpp
|
||||||
|
StackSlotColoring.cpp
|
||||||
|
StrongPHIElimination.cpp
|
||||||
|
TargetInstrInfoImpl.cpp
|
||||||
|
TwoAddressInstructionPass.cpp
|
||||||
|
UnreachableBlockElim.cpp
|
||||||
|
VirtRegMap.cpp
|
||||||
|
)
|
21
lib/CodeGen/SelectionDAG/CMakeLists.txt
Normal file
21
lib/CodeGen/SelectionDAG/CMakeLists.txt
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
add_llvm_library(LLVMSelectionDAG
|
||||||
|
CallingConvLower.cpp
|
||||||
|
DAGCombiner.cpp
|
||||||
|
FastISel.cpp
|
||||||
|
LegalizeDAG.cpp
|
||||||
|
LegalizeFloatTypes.cpp
|
||||||
|
LegalizeIntegerTypes.cpp
|
||||||
|
LegalizeTypes.cpp
|
||||||
|
LegalizeTypesGeneric.cpp
|
||||||
|
LegalizeVectorTypes.cpp
|
||||||
|
ScheduleDAG.cpp
|
||||||
|
ScheduleDAGEmit.cpp
|
||||||
|
ScheduleDAGFast.cpp
|
||||||
|
ScheduleDAGList.cpp
|
||||||
|
ScheduleDAGRRList.cpp
|
||||||
|
SelectionDAGBuild.cpp
|
||||||
|
SelectionDAG.cpp
|
||||||
|
SelectionDAGISel.cpp
|
||||||
|
SelectionDAGPrinter.cpp
|
||||||
|
TargetLowering.cpp
|
||||||
|
)
|
10
lib/Debugger/CMakeLists.txt
Normal file
10
lib/Debugger/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
add_llvm_library(LLVMDebugger
|
||||||
|
Debugger.cpp
|
||||||
|
ProgramInfo.cpp
|
||||||
|
RuntimeInfo.cpp
|
||||||
|
SourceFile.cpp
|
||||||
|
SourceLanguage-CFamily.cpp
|
||||||
|
SourceLanguage-CPlusPlus.cpp
|
||||||
|
SourceLanguage-Unknown.cpp
|
||||||
|
SourceLanguage.cpp
|
||||||
|
)
|
4
lib/ExecutionEngine/CMakeLists.txt
Normal file
4
lib/ExecutionEngine/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
add_llvm_library(LLVMExecutionEngine
|
||||||
|
ExecutionEngine.cpp
|
||||||
|
ExecutionEngineBindings.cpp
|
||||||
|
)
|
5
lib/ExecutionEngine/Interpreter/CMakeLists.txt
Normal file
5
lib/ExecutionEngine/Interpreter/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
add_partially_linked_object(LLVMInterpreter
|
||||||
|
Execution.cpp
|
||||||
|
ExternalFunctions.cpp
|
||||||
|
Interpreter.cpp
|
||||||
|
)
|
11
lib/ExecutionEngine/JIT/CMakeLists.txt
Normal file
11
lib/ExecutionEngine/JIT/CMakeLists.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# TODO: Support other architectures. See Makefile.
|
||||||
|
add_definitions(-DENABLE_X86_JIT)
|
||||||
|
|
||||||
|
add_partially_linked_object(LLVMJIT
|
||||||
|
Intercept.cpp
|
||||||
|
JIT.cpp
|
||||||
|
JITDwarfEmitter.cpp
|
||||||
|
JITEmitter.cpp
|
||||||
|
JITMemoryManager.cpp
|
||||||
|
TargetSelect.cpp
|
||||||
|
)
|
6
lib/Linker/CMakeLists.txt
Normal file
6
lib/Linker/CMakeLists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
add_llvm_library(LLVMLinker
|
||||||
|
LinkArchives.cpp
|
||||||
|
LinkItems.cpp
|
||||||
|
LinkModules.cpp
|
||||||
|
Linker.cpp
|
||||||
|
)
|
29
lib/Support/CMakeLists.txt
Normal file
29
lib/Support/CMakeLists.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
add_llvm_library(LLVMSupport
|
||||||
|
APFloat.cpp
|
||||||
|
APInt.cpp
|
||||||
|
APSInt.cpp
|
||||||
|
Allocator.cpp
|
||||||
|
Annotation.cpp
|
||||||
|
CommandLine.cpp
|
||||||
|
ConstantRange.cpp
|
||||||
|
Debug.cpp
|
||||||
|
Dwarf.cpp
|
||||||
|
FileUtilities.cpp
|
||||||
|
FoldingSet.cpp
|
||||||
|
GraphWriter.cpp
|
||||||
|
IsInf.cpp
|
||||||
|
IsNAN.cpp
|
||||||
|
ManagedStatic.cpp
|
||||||
|
MemoryBuffer.cpp
|
||||||
|
PluginLoader.cpp
|
||||||
|
SlowOperationInformer.cpp
|
||||||
|
SmallPtrSet.cpp
|
||||||
|
Statistic.cpp
|
||||||
|
Streams.cpp
|
||||||
|
StringExtras.cpp
|
||||||
|
StringMap.cpp
|
||||||
|
StringPool.cpp
|
||||||
|
SystemUtils.cpp
|
||||||
|
Timer.cpp
|
||||||
|
raw_ostream.cpp
|
||||||
|
)
|
13
lib/System/CMakeLists.txt
Normal file
13
lib/System/CMakeLists.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
add_llvm_library(LLVMSystem
|
||||||
|
Alarm.cpp
|
||||||
|
Disassembler.cpp
|
||||||
|
DynamicLibrary.cpp
|
||||||
|
IncludeFile.cpp
|
||||||
|
Memory.cpp
|
||||||
|
Mutex.cpp
|
||||||
|
Path.cpp
|
||||||
|
Process.cpp
|
||||||
|
Program.cpp
|
||||||
|
Signals.cpp
|
||||||
|
TimeValue.cpp
|
||||||
|
)
|
17
lib/Target/CMakeLists.txt
Normal file
17
lib/Target/CMakeLists.txt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
add_llvm_library(LLVMTarget
|
||||||
|
DarwinTargetAsmInfo.cpp
|
||||||
|
ELFTargetAsmInfo.cpp
|
||||||
|
SubtargetFeature.cpp
|
||||||
|
Target.cpp
|
||||||
|
TargetAsmInfo.cpp
|
||||||
|
TargetData.cpp
|
||||||
|
TargetFrameInfo.cpp
|
||||||
|
TargetInstrInfo.cpp
|
||||||
|
TargetMachOWriterInfo.cpp
|
||||||
|
TargetMachine.cpp
|
||||||
|
TargetMachineRegistry.cpp
|
||||||
|
TargetRegisterInfo.cpp
|
||||||
|
TargetSubtarget.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
# TODO: Support other targets besides X86. See Makefile.
|
7
lib/Target/X86/AsmPrinter/CMakeLists.txt
Normal file
7
lib/Target/X86/AsmPrinter/CMakeLists.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
|
||||||
|
|
||||||
|
add_llvm_library(LLVMX86AsmPrinter
|
||||||
|
X86ATTAsmPrinter.cpp
|
||||||
|
X86AsmPrinter.cpp
|
||||||
|
X86IntelAsmPrinter.cpp
|
||||||
|
)
|
56
lib/Target/X86/CMakeLists.txt
Normal file
56
lib/Target/X86/CMakeLists.txt
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
macro(x86tgen ofn)
|
||||||
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
|
||||||
|
COMMAND tblgen ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CMAKE_SOURCE_DIR}/lib/Target -I ${llvm_include_path} ${CMAKE_CURRENT_SOURCE_DIR}/X86.td -o ${ofn}
|
||||||
|
DEPENDS tblgen ${CMAKE_CURRENT_SOURCE_DIR}/X86.td
|
||||||
|
COMMENT "Building ${ofn}..."
|
||||||
|
)
|
||||||
|
endmacro(x86tgen)
|
||||||
|
|
||||||
|
x86tgen(X86GenRegisterInfo.h.inc -gen-register-desc-header)
|
||||||
|
x86tgen(X86GenRegisterNames.inc -gen-register-enums)
|
||||||
|
x86tgen(X86GenRegisterInfo.inc -gen-register-desc)
|
||||||
|
x86tgen(X86GenInstrNames.inc -gen-instr-enums)
|
||||||
|
x86tgen(X86GenInstrInfo.inc -gen-instr-desc)
|
||||||
|
x86tgen(X86GenAsmWriter.inc -gen-asm-writer)
|
||||||
|
x86tgen(X86GenAsmWriter1.inc -gen-asm-writer -asmwriternum=1)
|
||||||
|
x86tgen(X86GenDAGISel.inc -gen-dag-isel)
|
||||||
|
x86tgen(X86GenFastISel.inc -gen-fast-isel)
|
||||||
|
x86tgen(X86GenCallingConv.inc -gen-callingconv)
|
||||||
|
x86tgen(X86GenSubtarget.inc -gen-subtarget)
|
||||||
|
|
||||||
|
add_custom_target(X86Table_gen echo Tablegenning
|
||||||
|
DEPENDS
|
||||||
|
${llvm_builded_incs_dir}/Intrinsics.gen
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenRegisterInfo.h.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenRegisterNames.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenRegisterInfo.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenInstrNames.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenInstrInfo.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenAsmWriter.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenAsmWriter1.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenDAGISel.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenFastISel.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenCallingConv.inc
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/X86GenSubtarget.inc
|
||||||
|
)
|
||||||
|
|
||||||
|
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
|
add_partially_linked_object(LLVMX86CodeGen
|
||||||
|
X86CodeEmitter.cpp
|
||||||
|
X86ELFWriterInfo.cpp
|
||||||
|
X86FloatingPoint.cpp
|
||||||
|
X86ISelDAGToDAG.cpp
|
||||||
|
X86ISelLowering.cpp
|
||||||
|
X86InstrInfo.cpp
|
||||||
|
X86JITInfo.cpp
|
||||||
|
X86RegisterInfo.cpp
|
||||||
|
X86Subtarget.cpp
|
||||||
|
X86TargetAsmInfo.cpp
|
||||||
|
X86TargetMachine.cpp
|
||||||
|
X86FastISel.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_dependencies(LLVMX86CodeGen
|
||||||
|
X86Table_gen
|
||||||
|
)
|
3
lib/Transforms/Hello/CMakeLists.txt
Normal file
3
lib/Transforms/Hello/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
add_llvm_library( LLVMHello
|
||||||
|
Hello.cpp
|
||||||
|
)
|
24
lib/Transforms/IPO/CMakeLists.txt
Normal file
24
lib/Transforms/IPO/CMakeLists.txt
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
add_llvm_library(LLVMipo
|
||||||
|
AddReadAttrs.cpp
|
||||||
|
ArgumentPromotion.cpp
|
||||||
|
ConstantMerge.cpp
|
||||||
|
DeadArgumentElimination.cpp
|
||||||
|
DeadTypeElimination.cpp
|
||||||
|
ExtractGV.cpp
|
||||||
|
GlobalDCE.cpp
|
||||||
|
GlobalOpt.cpp
|
||||||
|
IndMemRemoval.cpp
|
||||||
|
InlineAlways.cpp
|
||||||
|
Inliner.cpp
|
||||||
|
InlineSimple.cpp
|
||||||
|
Internalize.cpp
|
||||||
|
IPConstantPropagation.cpp
|
||||||
|
LoopExtractor.cpp
|
||||||
|
LowerSetJmp.cpp
|
||||||
|
PartialSpecialization.cpp
|
||||||
|
PruneEH.cpp
|
||||||
|
RaiseAllocations.cpp
|
||||||
|
StripDeadPrototypes.cpp
|
||||||
|
StripSymbols.cpp
|
||||||
|
StructRetPromotion.cpp
|
||||||
|
)
|
6
lib/Transforms/Instrumentation/CMakeLists.txt
Normal file
6
lib/Transforms/Instrumentation/CMakeLists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
add_llvm_library(LLVMInstrumentation
|
||||||
|
BlockProfiling.cpp
|
||||||
|
EdgeProfiling.cpp
|
||||||
|
ProfilingUtils.cpp
|
||||||
|
RSProfiling.cpp
|
||||||
|
)
|
32
lib/Transforms/Scalar/CMakeLists.txt
Normal file
32
lib/Transforms/Scalar/CMakeLists.txt
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
add_llvm_library(LLVMScalarOpts
|
||||||
|
ADCE.cpp
|
||||||
|
BasicBlockPlacement.cpp
|
||||||
|
CodeGenPrepare.cpp
|
||||||
|
CondPropagate.cpp
|
||||||
|
ConstantProp.cpp
|
||||||
|
DCE.cpp
|
||||||
|
DeadStoreElimination.cpp
|
||||||
|
GVN.cpp
|
||||||
|
GVNPRE.cpp
|
||||||
|
IndVarSimplify.cpp
|
||||||
|
InstructionCombining.cpp
|
||||||
|
JumpThreading.cpp
|
||||||
|
LICM.cpp
|
||||||
|
LoopDeletion.cpp
|
||||||
|
LoopIndexSplit.cpp
|
||||||
|
LoopRotation.cpp
|
||||||
|
LoopStrengthReduce.cpp
|
||||||
|
LoopUnroll.cpp
|
||||||
|
LoopUnswitch.cpp
|
||||||
|
MemCpyOptimizer.cpp
|
||||||
|
PredicateSimplifier.cpp
|
||||||
|
Reassociate.cpp
|
||||||
|
Reg2Mem.cpp
|
||||||
|
SCCP.cpp
|
||||||
|
Scalar.cpp
|
||||||
|
ScalarReplAggregates.cpp
|
||||||
|
SimplifyCFGPass.cpp
|
||||||
|
SimplifyLibCalls.cpp
|
||||||
|
TailDuplication.cpp
|
||||||
|
TailRecursionElimination.cpp
|
||||||
|
)
|
26
lib/Transforms/Utils/CMakeLists.txt
Normal file
26
lib/Transforms/Utils/CMakeLists.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
add_llvm_library(LLVMTransformUtils
|
||||||
|
BasicBlockUtils.cpp
|
||||||
|
BasicInliner.cpp
|
||||||
|
BreakCriticalEdges.cpp
|
||||||
|
CloneFunction.cpp
|
||||||
|
CloneLoop.cpp
|
||||||
|
CloneModule.cpp
|
||||||
|
CloneTrace.cpp
|
||||||
|
CodeExtractor.cpp
|
||||||
|
DemoteRegToStack.cpp
|
||||||
|
InlineCost.cpp
|
||||||
|
InlineFunction.cpp
|
||||||
|
LCSSA.cpp
|
||||||
|
Local.cpp
|
||||||
|
LoopSimplify.cpp
|
||||||
|
LowerAllocations.cpp
|
||||||
|
LowerInvoke.cpp
|
||||||
|
LowerSwitch.cpp
|
||||||
|
Mem2Reg.cpp
|
||||||
|
PromoteMemoryToRegister.cpp
|
||||||
|
SimplifyCFG.cpp
|
||||||
|
UnifyFunctionExitNodes.cpp
|
||||||
|
UnrollLoop.cpp
|
||||||
|
ValueMapper.cpp
|
||||||
|
InstructionNamer.cpp
|
||||||
|
)
|
32
lib/VMCore/CMakeLists.txt
Normal file
32
lib/VMCore/CMakeLists.txt
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
add_llvm_library(LLVMVMCore
|
||||||
|
AsmWriter.cpp
|
||||||
|
AutoUpgrade.cpp
|
||||||
|
BasicBlock.cpp
|
||||||
|
ConstantFold.cpp
|
||||||
|
Constants.cpp
|
||||||
|
Core.cpp
|
||||||
|
DebugInfoBuilder.cpp
|
||||||
|
Dominators.cpp
|
||||||
|
Function.cpp
|
||||||
|
Globals.cpp
|
||||||
|
InlineAsm.cpp
|
||||||
|
Instruction.cpp
|
||||||
|
Instructions.cpp
|
||||||
|
IntrinsicInst.cpp
|
||||||
|
LeakDetector.cpp
|
||||||
|
Mangler.cpp
|
||||||
|
Module.cpp
|
||||||
|
ModuleProvider.cpp
|
||||||
|
ParameterAttributes.cpp
|
||||||
|
Pass.cpp
|
||||||
|
PassManager.cpp
|
||||||
|
Type.cpp
|
||||||
|
TypeSymbolTable.cpp
|
||||||
|
Use.cpp
|
||||||
|
Value.cpp
|
||||||
|
ValueSymbolTable.cpp
|
||||||
|
ValueTypes.cpp
|
||||||
|
Verifier.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_dependencies( LLVMVMCore ${llvm_builded_incs_dir}/Intrinsics.gen )
|
32
tools/CMakeLists.txt
Normal file
32
tools/CMakeLists.txt
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# NOTE: The tools are organized into five groups of four consisting of one
|
||||||
|
# large and three small executables. This is done to minimize memory load
|
||||||
|
# in parallel builds. Please retain this ordering.
|
||||||
|
|
||||||
|
if( NOT MSVC )
|
||||||
|
add_subdirectory(llvm-config)
|
||||||
|
endif( NOT MSVC )
|
||||||
|
|
||||||
|
add_subdirectory(opt)
|
||||||
|
add_subdirectory(llvm-as)
|
||||||
|
add_subdirectory(llvm-dis)
|
||||||
|
|
||||||
|
add_subdirectory(llc)
|
||||||
|
add_subdirectory(llvm-ranlib)
|
||||||
|
add_subdirectory(llvm-ar)
|
||||||
|
add_subdirectory(llvm-nm)
|
||||||
|
|
||||||
|
add_subdirectory(llvm-ld)
|
||||||
|
add_subdirectory(llvm-prof)
|
||||||
|
add_subdirectory(llvm-link)
|
||||||
|
add_subdirectory(lli)
|
||||||
|
|
||||||
|
# gccas and gccld are deprecated:
|
||||||
|
# add_subdirectory(gccas)
|
||||||
|
# add_subdirectory(gccld)
|
||||||
|
add_subdirectory(llvm-extract)
|
||||||
|
add_subdirectory(llvm-db)
|
||||||
|
|
||||||
|
add_subdirectory(bugpoint)
|
||||||
|
add_subdirectory(llvm-bcanalyzer)
|
||||||
|
add_subdirectory(llvm-stub)
|
||||||
|
add_subdirectory(llvmc2)
|
16
tools/bugpoint/CMakeLists.txt
Normal file
16
tools/bugpoint/CMakeLists.txt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS asmparser instrumentation scalaropts ipo
|
||||||
|
linker bitreader bitwriter)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
add_llvm_tool(bugpoint
|
||||||
|
BugDriver.cpp
|
||||||
|
CrashDebugger.cpp
|
||||||
|
ExecutionDriver.cpp
|
||||||
|
ExtractFunction.cpp
|
||||||
|
FindBugs.cpp
|
||||||
|
Miscompilation.cpp
|
||||||
|
OptimizerDriver.cpp
|
||||||
|
TestPasses.cpp
|
||||||
|
ToolRunner.cpp
|
||||||
|
bugpoint.cpp
|
||||||
|
)
|
5
tools/llc/CMakeLists.txt
Normal file
5
tools/llc/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} bitreader asmprinter)
|
||||||
|
|
||||||
|
add_llvm_tool(llc
|
||||||
|
llc.cpp
|
||||||
|
)
|
5
tools/lli/CMakeLists.txt
Normal file
5
tools/lli/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen bitreader selectiondag)
|
||||||
|
|
||||||
|
add_llvm_tool(lli
|
||||||
|
lli.cpp
|
||||||
|
)
|
8
tools/llvm-ar/CMakeLists.txt
Normal file
8
tools/llvm-ar/CMakeLists.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS archive)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-ar
|
||||||
|
llvm-ar.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
# TODO: Support check-local.
|
6
tools/llvm-as/CMakeLists.txt
Normal file
6
tools/llvm-as/CMakeLists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS asmparser bitwriter)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-as
|
||||||
|
llvm-as.cpp
|
||||||
|
)
|
6
tools/llvm-bcanalyzer/CMakeLists.txt
Normal file
6
tools/llvm-bcanalyzer/CMakeLists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS bitreader)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-bcanalyzer
|
||||||
|
llvm-bcanalyzer.cpp
|
||||||
|
)
|
102
tools/llvm-config/CMakeLists.txt
Normal file
102
tools/llvm-config/CMakeLists.txt
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
include(TestBigEndian)
|
||||||
|
|
||||||
|
if( NOT PERL_FOUND )
|
||||||
|
message(FATAL_ERROR "Perl required but not found!")
|
||||||
|
endif( NOT PERL_FOUND )
|
||||||
|
|
||||||
|
set(PERL ${PERL_EXECUTABLE})
|
||||||
|
set(VERSION PACKAGE_VERSION)
|
||||||
|
set(PREFIX ${LLVM_BINARY_DIR}) # TODO: Root for `make install'.
|
||||||
|
execute_process(COMMAND date
|
||||||
|
OUTPUT_VARIABLE LLVM_CONFIGTIME
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
set(abs_top_srcdir ${LLVM_MAIN_SRC_DIR})
|
||||||
|
set(abs_top_builddir ${LLVM_BINARY_DIR})
|
||||||
|
# LLVM_ON_UNIX and LLVM_ON_WIN32 already set.
|
||||||
|
# those are set to blank by `autoconf' on MinGW, so it seems they are not required:
|
||||||
|
#set(LLVMGCCDIR "")
|
||||||
|
#set(LLVMGCC "")
|
||||||
|
#set(LLVMGXX "")
|
||||||
|
#set(LLVMGCC_VERSION "")
|
||||||
|
#set(LLVMGCC_MAJVERS "")
|
||||||
|
test_big_endian(IS_BIG_ENDIAN)
|
||||||
|
if( IS_BIG_ENDIAN )
|
||||||
|
set(ENDIAN "big")
|
||||||
|
else( IS_BIG_ENDIAN )
|
||||||
|
set(ENDIAN "little")
|
||||||
|
endif( IS_BIG_ENDIAN )
|
||||||
|
set(SHLIBEXT ${LTDL_SHLIB_EXT})
|
||||||
|
#EXEEXT already set.
|
||||||
|
set(OS "${CMAKE_SYSTEM}")
|
||||||
|
set(ARCH "X86") # TODO: This gives "i686" in Linux: "${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
|
# TODO: avoid using autoconf:
|
||||||
|
set(config_guess ${LLVM_MAIN_SRC_DIR}/autoconf/config.guess)
|
||||||
|
execute_process(COMMAND sh ${config_guess}
|
||||||
|
RESULT_VARIABLE TT_RV
|
||||||
|
OUTPUT_VARIABLE LLVM_TARGET_TRIPLET
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
message(STATUS "Target triplet: ${LLVM_TARGET_TRIPLET}")
|
||||||
|
if( NOT TT_RV EQUAL 0 )
|
||||||
|
message(FATAL_ERROR "Failed to execute ${config_guess}")
|
||||||
|
endif( NOT TT_RV EQUAL 0 )
|
||||||
|
set(target ${LLVM_TARGET_TRIPLET})
|
||||||
|
set(TARGETS_TO_BUILD "X86") # TODO
|
||||||
|
set(TARGET_HAS_JIT "1") # TODO
|
||||||
|
|
||||||
|
# Avoids replacement at config-time:
|
||||||
|
set(LLVM_CPPFLAGS "@LLVM_CPPFLAGS@")
|
||||||
|
set(LLVM_CFLAGS "@LLVM_CFLAGS@")
|
||||||
|
set(LLVM_CXXFLAGS "@LLVM_CXXFLAGS@")
|
||||||
|
set(LLVM_LDFLAGS "@LLVM_LDFLAGS@")
|
||||||
|
set(LIBS "@LIBS@")
|
||||||
|
set(LLVM_BUILDMODE "@LLVM_BUILDMODE@")
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/llvm-config.in.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/llvm-config.in
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
|
||||||
|
set(LIBDEPS ${CMAKE_CURRENT_BINARY_DIR}/LibDeps.txt)
|
||||||
|
set(LIBDEPS_TMP ${CMAKE_CURRENT_BINARY_DIR}/LibDeps.txt.tmp)
|
||||||
|
set(FINAL_LIBDEPS ${CMAKE_CURRENT_BINARY_DIR}/FinalLibDeps.txt)
|
||||||
|
set(LLVM_CONFIG ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/llvm-config)
|
||||||
|
set(LLVM_CONFIG_IN ${CMAKE_CURRENT_BINARY_DIR}/llvm-config.in)
|
||||||
|
|
||||||
|
# set(LIBDEPS LibDeps.txt)
|
||||||
|
# set(LIBDEPS_TMP LibDeps.txt.tmp)
|
||||||
|
# set(FINAL_LIBDEPS FinalLibDeps.txt)
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${LIBDEPS_TMP}
|
||||||
|
COMMAND ${PERL_EXECUTABLE} ${LLVM_MAIN_SRC_DIR}/utils/GenLibDeps.pl -flat ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} > ${LIBDEPS_TMP}
|
||||||
|
DEPENDS ${llvm_libs}
|
||||||
|
COMMENT "Regenerating ${LIBDEPS_TMP}")
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${LIBDEPS}
|
||||||
|
COMMAND cmp -s ${LIBDEPS_TMP} ${LIBDEPS} || \( cp ${LIBDEPS_TMP} ${LIBDEPS} && echo "Updated ${LIBDEPS} because dependencies changed" \)
|
||||||
|
DEPENDS ${LIBDEPS_TMP})
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${FINAL_LIBDEPS}
|
||||||
|
COMMAND ${PERL_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/find-cycles.pl < ${LIBDEPS} > ${FINAL_LIBDEPS} || rm -f ${FINAL_LIBDEPS}
|
||||||
|
DEPENDS ${LIBDEPS}
|
||||||
|
COMMENT "Checking for cyclic dependencies between LLVM libraries.")
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${LLVM_CONFIG}
|
||||||
|
COMMAND echo 's,@LLVM_CPPFLAGS@,${CMAKE_CPP_FLAGS},' > temp.sed
|
||||||
|
COMMAND echo 's,@LLVM_CFLAGS@,${CMAKE_C_FLAGS},' >> temp.sed
|
||||||
|
COMMAND echo 's,@LLVM_CXXFLAGS@,${CMAKE_CXX_FLAGS},' >> temp.sed
|
||||||
|
# TODO: Use general flags for linking, not just for shared libs:
|
||||||
|
COMMAND echo 's,@LLVM_LDFLAGS@,${CMAKE_SHARED_LINKER_FLAGS},' >> temp.sed
|
||||||
|
COMMAND echo 's,@LIBS@,,' >> temp.sed # TODO: System libs
|
||||||
|
COMMAND echo 's,@LLVM_BUILDMODE@,${CMAKE_BUILD_TYPE},' >> temp.sed
|
||||||
|
COMMAND sed -f temp.sed < ${LLVM_CONFIG_IN} > ${LLVM_CONFIG}
|
||||||
|
COMMAND rm temp.sed
|
||||||
|
COMMAND cat ${FINAL_LIBDEPS} >> ${LLVM_CONFIG}
|
||||||
|
COMMAND chmod +x ${LLVM_CONFIG}
|
||||||
|
COMMAND cd ${LLVM_BINARY_DIR} && ${CMAKE_COMMAND} -U HAVE_LLVM_CONFIG ${LLVM_MAIN_SRC_DIR}
|
||||||
|
DEPENDS ${FINAL_LIBDEPS} ${LLVM_CONFIG_IN}
|
||||||
|
COMMENT "Building llvm-config script."
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(llvm-config.target ALL
|
||||||
|
DEPENDS ${LLVM_CONFIG})
|
8
tools/llvm-db/CMakeLists.txt
Normal file
8
tools/llvm-db/CMakeLists.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS debugger)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-db
|
||||||
|
CLIDebugger.cpp
|
||||||
|
Commands.cpp
|
||||||
|
llvm-db.cpp
|
||||||
|
)
|
6
tools/llvm-dis/CMakeLists.txt
Normal file
6
tools/llvm-dis/CMakeLists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS bitreader)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-dis
|
||||||
|
llvm-dis.cpp
|
||||||
|
)
|
5
tools/llvm-extract/CMakeLists.txt
Normal file
5
tools/llvm-extract/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS ipo bitreader bitwriter)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-extract
|
||||||
|
llvm-extract.cpp
|
||||||
|
)
|
7
tools/llvm-ld/CMakeLists.txt
Normal file
7
tools/llvm-ld/CMakeLists.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS ipo scalaropts linker archive bitwriter)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-ld
|
||||||
|
Optimize.cpp
|
||||||
|
llvm-ld.cpp
|
||||||
|
)
|
5
tools/llvm-link/CMakeLists.txt
Normal file
5
tools/llvm-link/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS linker bitreader bitwriter)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-link
|
||||||
|
llvm-link.cpp
|
||||||
|
)
|
5
tools/llvm-nm/CMakeLists.txt
Normal file
5
tools/llvm-nm/CMakeLists.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS archive bitreader)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-nm
|
||||||
|
llvm-nm.cpp
|
||||||
|
)
|
6
tools/llvm-prof/CMakeLists.txt
Normal file
6
tools/llvm-prof/CMakeLists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS bitreader analysis)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-prof
|
||||||
|
llvm-prof.cpp
|
||||||
|
)
|
6
tools/llvm-ranlib/CMakeLists.txt
Normal file
6
tools/llvm-ranlib/CMakeLists.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS archive)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
add_llvm_tool(llvm-ranlib
|
||||||
|
llvm-ranlib.cpp
|
||||||
|
)
|
3
tools/llvm-stub/CMakeLists.txt
Normal file
3
tools/llvm-stub/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
add_llvm_tool(llvm-stub
|
||||||
|
llvm-stub.c
|
||||||
|
)
|
32
tools/llvmc2/CMakeLists.txt
Normal file
32
tools/llvmc2/CMakeLists.txt
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
set(LLVM_LINK_COMPONENTS support system)
|
||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
|
||||||
|
macro(tgen ofn)
|
||||||
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
|
||||||
|
COMMAND tblgen ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CMAKE_SOURCE_DIR}/lib/Target -I ${llvm_include_path} ${CMAKE_CURRENT_SOURCE_DIR}/Graph.td -o ${ofn}
|
||||||
|
DEPENDS
|
||||||
|
tblgen
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/Common.td
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/Graph.td
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/Tools.td
|
||||||
|
COMMENT "Building ${ofn}..."
|
||||||
|
)
|
||||||
|
endmacro(tgen ofn)
|
||||||
|
|
||||||
|
tgen(AutoGenerated.inc -gen-llvmc)
|
||||||
|
|
||||||
|
add_custom_target(AutoGenerated_ct echo Tablegenning
|
||||||
|
DEPENDS
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/AutoGenerated.inc
|
||||||
|
)
|
||||||
|
|
||||||
|
include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
|
||||||
|
|
||||||
|
add_llvm_tool(llvmc2
|
||||||
|
Action.cpp
|
||||||
|
AutoGenerated.cpp
|
||||||
|
CompilationGraph.cpp
|
||||||
|
llvmc.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
add_dependencies(llvmc2 AutoGenerated_ct)
|
9
tools/opt/CMakeLists.txt
Normal file
9
tools/opt/CMakeLists.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
set(LLVM_REQUIRES_EH 1)
|
||||||
|
set(LLVM_LINK_COMPONENTS bitreader bitwriter instrumentation scalaropts ipo)
|
||||||
|
|
||||||
|
add_llvm_tool(opt
|
||||||
|
AnalysisWrappers.cpp
|
||||||
|
GraphPrinters.cpp
|
||||||
|
PrintSCC.cpp
|
||||||
|
opt.cpp
|
||||||
|
)
|
26
utils/TableGen/CMakeLists.txt
Normal file
26
utils/TableGen/CMakeLists.txt
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
add_executable(tblgen
|
||||||
|
AsmWriterEmitter.cpp
|
||||||
|
CallingConvEmitter.cpp
|
||||||
|
CodeEmitterGen.cpp
|
||||||
|
CodeGenDAGPatterns.cpp
|
||||||
|
CodeGenInstruction.cpp
|
||||||
|
CodeGenTarget.cpp
|
||||||
|
DAGISelEmitter.cpp
|
||||||
|
InstrEnumEmitter.cpp
|
||||||
|
InstrInfoEmitter.cpp
|
||||||
|
IntrinsicEmitter.cpp
|
||||||
|
LLVMCConfigurationEmitter.cpp
|
||||||
|
Record.cpp
|
||||||
|
RegisterInfoEmitter.cpp
|
||||||
|
SubtargetEmitter.cpp
|
||||||
|
TGLexer.cpp
|
||||||
|
TGParser.cpp
|
||||||
|
TableGen.cpp
|
||||||
|
TableGenBackend.cpp
|
||||||
|
FastISelEmitter.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(tblgen LLVMSupport LLVMSystem)
|
||||||
|
if( MINGW )
|
||||||
|
target_link_libraries(tblgen imagehlp psapi)
|
||||||
|
endif( MINGW )
|
Loading…
Reference in New Issue
Block a user