mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
Introduce new headers whose inclusion forces linking and
initialization of all targets (InitializeAllTargets.h) or assembler printers (InitializeAllAsmPrinters.h). This is a step toward the elimination of relinked object files, so that we can build normal archives. llvm-svn: 73543
This commit is contained in:
parent
54bbef1525
commit
f5291553f2
@ -81,14 +81,23 @@ if( LLVM_TARGETS_TO_BUILD STREQUAL "all" )
|
||||
set( LLVM_TARGETS_TO_BUILD ${LLVM_ALL_TARGETS} )
|
||||
endif()
|
||||
|
||||
set(LLVM_ENUM_TARGETS "")
|
||||
foreach(c ${LLVM_TARGETS_TO_BUILD})
|
||||
list(FIND LLVM_ALL_TARGETS ${c} idx)
|
||||
if( idx LESS 0 )
|
||||
message(FATAL_ERROR "The target `${c}' does not exists.
|
||||
It should be one of\n${LLVM_ALL_TARGETS}")
|
||||
else()
|
||||
set(LLVM_ENUM_TARGETS "${LLVM_ENUM_TARGETS}LLVM_TARGET(${c})\n")
|
||||
endif()
|
||||
endforeach(c)
|
||||
|
||||
# Produce llvm/Config/Targets.def
|
||||
configure_file(
|
||||
${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/Targets.def.in
|
||||
${LLVM_BINARY_DIR}/include/llvm/Config/Targets.def
|
||||
)
|
||||
|
||||
set(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm)
|
||||
|
||||
# The USE_EXPLICIT_DEPENDENCIES variable will be TRUE to indicate that
|
||||
@ -250,14 +259,23 @@ add_subdirectory(lib/Linker)
|
||||
add_subdirectory(lib/Analysis)
|
||||
add_subdirectory(lib/Analysis/IPA)
|
||||
|
||||
foreach(t ${LLVM_TARGETS_TO_BUILD})
|
||||
set(LLVM_ENUM_ASM_PRINTERS "")
|
||||
foreach(t ${LLVM_TARGETS_TO_BUILD})
|
||||
message(STATUS "Targeting ${t}")
|
||||
add_subdirectory(lib/Target/${t})
|
||||
if( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmPrinter/CMakeLists.txt )
|
||||
add_subdirectory(lib/Target/${t}/AsmPrinter)
|
||||
endif( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmPrinter/CMakeLists.txt )
|
||||
add_subdirectory(lib/Target/${t}/AsmPrinter)
|
||||
set(LLVM_ENUM_ASM_PRINTERS
|
||||
"${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n")
|
||||
endif( EXISTS ${LLVM_MAIN_SRC_DIR}/lib/Target/${t}/AsmPrinter/CMakeLists.txt )
|
||||
endforeach(t)
|
||||
|
||||
# Produce llvm/Config/AsmPrinters.def
|
||||
configure_file(
|
||||
${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/AsmPrinters.def.in
|
||||
${LLVM_BINARY_DIR}/include/llvm/Config/AsmPrinters.def
|
||||
)
|
||||
|
||||
add_subdirectory(lib/ExecutionEngine)
|
||||
add_subdirectory(lib/ExecutionEngine/Interpreter)
|
||||
add_subdirectory(lib/ExecutionEngine/JIT)
|
||||
|
2
Makefile
2
Makefile
@ -134,6 +134,8 @@ install-libs: install
|
||||
#------------------------------------------------------------------------
|
||||
FilesToConfig := \
|
||||
include/llvm/Config/config.h \
|
||||
include/llvm/Config/Targets.def \
|
||||
include/llvm/Config/AsmPrinters.def \
|
||||
include/llvm/Support/DataTypes.h \
|
||||
include/llvm/ADT/iterator.h
|
||||
FilesToConfigPATH := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig))
|
||||
|
@ -436,6 +436,19 @@ case "$enableval" in
|
||||
esac
|
||||
AC_SUBST(TARGETS_TO_BUILD,$TARGETS_TO_BUILD)
|
||||
|
||||
# Build the LLVM_TARGET and LLVM_ASM_PRINTER macro uses for
|
||||
# Targets.def and AsmPrinters.def.
|
||||
LLVM_ENUM_TARGETS=""
|
||||
LLVM_ENUM_ASM_PRINTERS=""
|
||||
for target_to_build in $TARGETS_TO_BUILD; do
|
||||
LLVM_ENUM_TARGETS="LLVM_TARGET($target_to_build) $LLVM_ENUM_TARGETS"
|
||||
if test -f ${srcdir}/lib/Target/${target_to_build}/AsmPrinter/Makefile ; then
|
||||
LLVM_ENUM_ASM_PRINTERS="LLVM_ASM_PRINTER($target_to_build) $LLVM_ENUM_ASM_PRINTERS";
|
||||
fi
|
||||
done
|
||||
AC_SUBST(LLVM_ENUM_TARGETS)
|
||||
AC_SUBST(LLVM_ENUM_ASM_PRINTERS)
|
||||
|
||||
dnl Prevent the CBackend from using printf("%a") for floating point so older
|
||||
dnl C compilers that cannot deal with the 0x0p+0 hex floating point format
|
||||
dnl can still compile the CBE's output
|
||||
@ -1111,6 +1124,8 @@ dnl you MUST also update Makefile.rules so that the variable FilesToConfig
|
||||
dnl contains the same list of files as AC_CONFIG_HEADERS below. This ensures the
|
||||
dnl files can be updated automatically when their *.in sources change.
|
||||
AC_CONFIG_HEADERS([include/llvm/Config/config.h])
|
||||
AC_CONFIG_FILES([include/llvm/Config/Targets.def])
|
||||
AC_CONFIG_FILES([include/llvm/Config/AsmPrinters.def])
|
||||
AC_CONFIG_HEADERS([include/llvm/Support/DataTypes.h])
|
||||
AC_CONFIG_HEADERS([include/llvm/ADT/iterator.h])
|
||||
|
||||
|
77
configure
vendored
77
configure
vendored
@ -841,6 +841,8 @@ ENABLE_DOXYGEN
|
||||
ENABLE_THREADS
|
||||
ENABLE_PIC
|
||||
TARGETS_TO_BUILD
|
||||
LLVM_ENUM_TARGETS
|
||||
LLVM_ENUM_ASM_PRINTERS
|
||||
ENABLE_CBE_PRINTF_A
|
||||
EXTRA_OPTIONS
|
||||
BINUTILS_INCDIR
|
||||
@ -4959,6 +4961,19 @@ esac
|
||||
TARGETS_TO_BUILD=$TARGETS_TO_BUILD
|
||||
|
||||
|
||||
# Build the LLVM_TARGET and LLVM_ASM_PRINTER macro uses for
|
||||
# Targets.def and AsmPrinters.def.
|
||||
LLVM_ENUM_TARGETS=""
|
||||
LLVM_ENUM_ASM_PRINTERS=""
|
||||
for target_to_build in $TARGETS_TO_BUILD; do
|
||||
LLVM_ENUM_TARGETS="LLVM_TARGET($target_to_build) $LLVM_ENUM_TARGETS"
|
||||
if test -f ${srcdir}/lib/Target/${target_to_build}/AsmPrinter/Makefile ; then
|
||||
LLVM_ENUM_ASM_PRINTERS="LLVM_ASM_PRINTER($target_to_build) $LLVM_ENUM_ASM_PRINTERS";
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
|
||||
# Check whether --enable-cbe-printf-a was given.
|
||||
if test "${enable_cbe_printf_a+set}" = set; then
|
||||
enableval=$enable_cbe_printf_a;
|
||||
@ -10594,7 +10609,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 10597 "configure"
|
||||
#line 10612 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -12738,7 +12753,7 @@ ia64-*-hpux*)
|
||||
;;
|
||||
*-*-irix6*)
|
||||
# Find out which ABI we are using.
|
||||
echo '#line 12741 "configure"' > conftest.$ac_ext
|
||||
echo '#line 12756 "configure"' > conftest.$ac_ext
|
||||
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
|
||||
(eval $ac_compile) 2>&5
|
||||
ac_status=$?
|
||||
@ -14456,11 +14471,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:14459: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:14474: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:14463: \$? = $ac_status" >&5
|
||||
echo "$as_me:14478: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -14724,11 +14739,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:14727: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:14742: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:14731: \$? = $ac_status" >&5
|
||||
echo "$as_me:14746: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -14828,11 +14843,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:14831: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:14846: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:14835: \$? = $ac_status" >&5
|
||||
echo "$as_me:14850: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@ -17280,7 +17295,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17283 "configure"
|
||||
#line 17298 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -17380,7 +17395,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 17383 "configure"
|
||||
#line 17398 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -19748,11 +19763,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:19751: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:19766: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:19755: \$? = $ac_status" >&5
|
||||
echo "$as_me:19770: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -19852,11 +19867,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:19855: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:19870: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:19859: \$? = $ac_status" >&5
|
||||
echo "$as_me:19874: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@ -21422,11 +21437,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:21425: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:21440: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:21429: \$? = $ac_status" >&5
|
||||
echo "$as_me:21444: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -21526,11 +21541,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:21529: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:21544: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:21533: \$? = $ac_status" >&5
|
||||
echo "$as_me:21548: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@ -23761,11 +23776,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:23764: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:23779: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:23768: \$? = $ac_status" >&5
|
||||
echo "$as_me:23783: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -24029,11 +24044,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:24032: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:24047: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>conftest.err)
|
||||
ac_status=$?
|
||||
cat conftest.err >&5
|
||||
echo "$as_me:24036: \$? = $ac_status" >&5
|
||||
echo "$as_me:24051: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s "$ac_outfile"; then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
# So say no if there are warnings other than the usual output.
|
||||
@ -24133,11 +24148,11 @@ else
|
||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
||||
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
|
||||
-e 's:$: $lt_compiler_flag:'`
|
||||
(eval echo "\"\$as_me:24136: $lt_compile\"" >&5)
|
||||
(eval echo "\"\$as_me:24151: $lt_compile\"" >&5)
|
||||
(eval "$lt_compile" 2>out/conftest.err)
|
||||
ac_status=$?
|
||||
cat out/conftest.err >&5
|
||||
echo "$as_me:24140: \$? = $ac_status" >&5
|
||||
echo "$as_me:24155: \$? = $ac_status" >&5
|
||||
if (exit $ac_status) && test -s out/conftest2.$ac_objext
|
||||
then
|
||||
# The compiler can only warn and ignore the option if not recognized
|
||||
@ -34223,6 +34238,10 @@ fi
|
||||
|
||||
ac_config_headers="$ac_config_headers include/llvm/Config/config.h"
|
||||
|
||||
ac_config_files="$ac_config_files include/llvm/Config/Targets.def"
|
||||
|
||||
ac_config_files="$ac_config_files include/llvm/Config/AsmPrinters.def"
|
||||
|
||||
ac_config_headers="$ac_config_headers include/llvm/Support/DataTypes.h"
|
||||
|
||||
ac_config_headers="$ac_config_headers include/llvm/ADT/iterator.h"
|
||||
@ -34849,6 +34868,8 @@ for ac_config_target in $ac_config_targets
|
||||
do
|
||||
case $ac_config_target in
|
||||
"include/llvm/Config/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/Config/config.h" ;;
|
||||
"include/llvm/Config/Targets.def") CONFIG_FILES="$CONFIG_FILES include/llvm/Config/Targets.def" ;;
|
||||
"include/llvm/Config/AsmPrinters.def") CONFIG_FILES="$CONFIG_FILES include/llvm/Config/AsmPrinters.def" ;;
|
||||
"include/llvm/Support/DataTypes.h") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/Support/DataTypes.h" ;;
|
||||
"include/llvm/ADT/iterator.h") CONFIG_HEADERS="$CONFIG_HEADERS include/llvm/ADT/iterator.h" ;;
|
||||
"Makefile.config") CONFIG_FILES="$CONFIG_FILES Makefile.config" ;;
|
||||
@ -35017,6 +35038,8 @@ ENABLE_DOXYGEN!$ENABLE_DOXYGEN$ac_delim
|
||||
ENABLE_THREADS!$ENABLE_THREADS$ac_delim
|
||||
ENABLE_PIC!$ENABLE_PIC$ac_delim
|
||||
TARGETS_TO_BUILD!$TARGETS_TO_BUILD$ac_delim
|
||||
LLVM_ENUM_TARGETS!$LLVM_ENUM_TARGETS$ac_delim
|
||||
LLVM_ENUM_ASM_PRINTERS!$LLVM_ENUM_ASM_PRINTERS$ac_delim
|
||||
ENABLE_CBE_PRINTF_A!$ENABLE_CBE_PRINTF_A$ac_delim
|
||||
EXTRA_OPTIONS!$EXTRA_OPTIONS$ac_delim
|
||||
BINUTILS_INCDIR!$BINUTILS_INCDIR$ac_delim
|
||||
@ -35027,8 +35050,6 @@ NM!$NM$ac_delim
|
||||
ifGNUmake!$ifGNUmake$ac_delim
|
||||
LN_S!$LN_S$ac_delim
|
||||
CMP!$CMP$ac_delim
|
||||
CP!$CP$ac_delim
|
||||
DATE!$DATE$ac_delim
|
||||
_ACEOF
|
||||
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
|
||||
@ -35070,6 +35091,8 @@ _ACEOF
|
||||
ac_delim='%!_!# '
|
||||
for ac_last_try in false false false false false :; do
|
||||
cat >conf$$subs.sed <<_ACEOF
|
||||
CP!$CP$ac_delim
|
||||
DATE!$DATE$ac_delim
|
||||
FIND!$FIND$ac_delim
|
||||
MKDIR!$MKDIR$ac_delim
|
||||
MV!$MV$ac_delim
|
||||
@ -35151,7 +35174,7 @@ LIBOBJS!$LIBOBJS$ac_delim
|
||||
LTLIBOBJS!$LTLIBOBJS$ac_delim
|
||||
_ACEOF
|
||||
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 79; then
|
||||
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 81; then
|
||||
break
|
||||
elif $ac_last_try; then
|
||||
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
|
||||
|
29
include/llvm/Config/AsmPrinters.def.in
Normal file
29
include/llvm/Config/AsmPrinters.def.in
Normal file
@ -0,0 +1,29 @@
|
||||
//===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file enumerates all of the assembly-language printers
|
||||
// supported by this build of LLVM. Clients of this file should define
|
||||
// the LLVM_ASM_PRINTER macro to be a function-like macro with a
|
||||
// single parameter (the name of the target whose assembly can be
|
||||
// generated); including this file will then enumerate all of the
|
||||
// targets with assembly printers.
|
||||
//
|
||||
// The set of targets supported by LLVM is generated at configuration
|
||||
// time, at which point this header is generated. Do not modify this
|
||||
// header directly.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_ASM_PRINTER
|
||||
# error Please define the macro LLVM_ASM_PRINTER(TargetName)
|
||||
#endif
|
||||
|
||||
@LLVM_ENUM_ASM_PRINTERS@
|
||||
|
||||
#undef LLVM_ASM_PRINTER
|
28
include/llvm/Config/Targets.def.in
Normal file
28
include/llvm/Config/Targets.def.in
Normal file
@ -0,0 +1,28 @@
|
||||
//===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file enumerates all of the target architectures supported by
|
||||
// this build of LLVM. Clients of this file should define the
|
||||
// LLVM_TARGET macro to be a function-like macro with a single
|
||||
// parameter (the name of the target); including this file will then
|
||||
// enumerate all of the targets.
|
||||
//
|
||||
// The set of targets supported by LLVM is generated at configuration
|
||||
// time, at which point this header is generated. Do not modify this
|
||||
// header directly.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_TARGET
|
||||
# error Please define the macro LLVM_TARGET(TargetName)
|
||||
#endif
|
||||
|
||||
@LLVM_ENUM_TARGETS@
|
||||
|
||||
#undef LLVM_TARGET
|
34
include/llvm/InitializeAllAsmPrinters.h
Normal file
34
include/llvm/InitializeAllAsmPrinters.h
Normal file
@ -0,0 +1,34 @@
|
||||
//===- llvm/InitializeAllAsmPrinters.h - Init Asm Printers ------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This header initializes all assembler printers for all configured
|
||||
// LLVM targets, ensuring that they are registered.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
#ifndef LLVM_INITIALIZE_ALL_ASM_PRINTERS_H
|
||||
#define LLVM_INITIALIZE_ALL_ASM_PRINTERS_H
|
||||
|
||||
namespace llvm {
|
||||
|
||||
// Declare all of the target-initialization functions.
|
||||
#define LLVM_ASM_PRINTER(TargetName) void Initialize##TargetName##AsmPrinter();
|
||||
#include "llvm/Config/AsmPrinters.def"
|
||||
|
||||
namespace {
|
||||
struct InitializeAllAsmPrinters {
|
||||
InitializeAllAsmPrinters() {
|
||||
// Call all of the target-initialization functions.
|
||||
#define LLVM_ASM_PRINTER(TargetName) llvm::Initialize##TargetName##AsmPrinter();
|
||||
#include "llvm/Config/AsmPrinters.def"
|
||||
}
|
||||
} DoInitializeAllAsmPrinters;
|
||||
}
|
||||
} // end namespace llvm
|
||||
|
||||
#endif // LLVM_INITIALIZE_ALL_ASM_PRINTERS_H
|
34
include/llvm/InitializeAllTargets.h
Normal file
34
include/llvm/InitializeAllTargets.h
Normal file
@ -0,0 +1,34 @@
|
||||
//===- llvm/InitializeAllTargets.h - Initialize All Targets -----*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This header initializes all configured LLVM targets, ensuring that they
|
||||
// are registered.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
#ifndef LLVM_INITIALIZE_ALL_TARGETS_H
|
||||
#define LLVM_INITIALIZE_ALL_TARGETS_H
|
||||
|
||||
namespace llvm {
|
||||
|
||||
// Declare all of the target-initialization functions.
|
||||
#define LLVM_TARGET(TargetName) void Initialize##TargetName##Target();
|
||||
#include "llvm/Config/Targets.def"
|
||||
|
||||
namespace {
|
||||
struct InitializeAllTargets {
|
||||
InitializeAllTargets() {
|
||||
// Call all of the target-initialization functions.
|
||||
#define LLVM_TARGET(TargetName) llvm::Initialize##TargetName##Target();
|
||||
#include "llvm/Config/Targets.def"
|
||||
}
|
||||
} DoInitializeAllTargets;
|
||||
}
|
||||
} // end namespace llvm
|
||||
|
||||
#endif // LLVM_INITIALIZE_ALL_TARGETS_H
|
@ -42,6 +42,11 @@ int ARMTargetMachineModule = 0;
|
||||
static RegisterTarget<ARMTargetMachine> X("arm", "ARM");
|
||||
static RegisterTarget<ThumbTargetMachine> Y("thumb", "Thumb");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeARMTarget() { }
|
||||
}
|
||||
|
||||
// No assembler printer by default
|
||||
ARMTargetMachine::AsmPrinterCtorFn ARMTargetMachine::AsmPrinterCtor = 0;
|
||||
|
||||
|
@ -1115,3 +1115,9 @@ namespace {
|
||||
}
|
||||
} Registrator;
|
||||
}
|
||||
|
||||
// Force static initialization when called from
|
||||
// llvm/InitializeAllAsmPrinters.h
|
||||
namespace llvm {
|
||||
void InitializeARMAsmPrinter() { }
|
||||
}
|
||||
|
@ -31,6 +31,11 @@ int AlphaTargetMachineModule = 0;
|
||||
// Register the targets
|
||||
static RegisterTarget<AlphaTargetMachine> X("alpha", "Alpha [experimental]");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeAlphaTarget() { }
|
||||
}
|
||||
|
||||
const TargetAsmInfo *AlphaTargetMachine::createTargetAsmInfo() const {
|
||||
return new AlphaTargetAsmInfo(*this);
|
||||
}
|
||||
|
@ -303,3 +303,9 @@ bool AlphaAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
O << ")";
|
||||
return false;
|
||||
}
|
||||
|
||||
// Force static initialization when called from
|
||||
// llvm/InitializeAllAsmPrinters.h
|
||||
namespace llvm {
|
||||
void InitializeAlphaAsmPrinter() { }
|
||||
}
|
||||
|
@ -59,6 +59,11 @@ int CBackendTargetMachineModule = 0;
|
||||
// Register the target.
|
||||
static RegisterTarget<CTargetMachine> X("c", "C backend");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeCBackendTarget() { }
|
||||
}
|
||||
|
||||
namespace {
|
||||
/// CBackendNameAllUsedStructsAndMergeFunctions - This pass inserts names for
|
||||
/// any unnamed structure types that are used by the program, and merges
|
||||
|
@ -621,3 +621,9 @@ FunctionPass *llvm::createSPUAsmPrinterPass(raw_ostream &o,
|
||||
bool verbose) {
|
||||
return new LinuxAsmPrinter(o, tm, tm.getTargetAsmInfo(), OptLevel, verbose);
|
||||
}
|
||||
|
||||
// Force static initialization when called from
|
||||
// llvm/InitializeAllAsmPrinters.h
|
||||
namespace llvm {
|
||||
void InitializeCellSPUAsmPrinter() { }
|
||||
}
|
||||
|
@ -37,6 +37,11 @@ namespace {
|
||||
CELLSPU("cellspu", "STI CBEA Cell SPU [experimental]");
|
||||
}
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeCellSPUTarget() { }
|
||||
}
|
||||
|
||||
const std::pair<unsigned, int> *
|
||||
SPUFrameInfo::getCalleeSaveSpillSlots(unsigned &NumEntries) const {
|
||||
NumEntries = 1;
|
||||
|
@ -82,6 +82,11 @@ int CppBackendTargetMachineModule = 0;
|
||||
// Register the target.
|
||||
static RegisterTarget<CPPTargetMachine> X("cpp", "C++ backend");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeCppBackendTarget() { }
|
||||
}
|
||||
|
||||
namespace {
|
||||
typedef std::vector<const Type*> TypeList;
|
||||
typedef std::map<const Type*,std::string> TypeMap;
|
||||
|
@ -374,3 +374,9 @@ FunctionPass *llvm::createIA64CodePrinterPass(raw_ostream &o,
|
||||
bool verbose) {
|
||||
return new IA64AsmPrinter(o, tm, tm.getTargetAsmInfo(), OptLevel, verbose);
|
||||
}
|
||||
|
||||
// Force static initialization when called from
|
||||
// llvm/InitializeAllAsmPrinters.h
|
||||
namespace llvm {
|
||||
void InitializeIA64AsmPrinter() { }
|
||||
}
|
||||
|
@ -29,6 +29,11 @@ int IA64TargetMachineModule = 0;
|
||||
static RegisterTarget<IA64TargetMachine> X("ia64",
|
||||
"IA-64 (Itanium) [experimental]");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeIA64Target() { }
|
||||
}
|
||||
|
||||
const TargetAsmInfo *IA64TargetMachine::createTargetAsmInfo() const {
|
||||
return new IA64TargetAsmInfo(*this);
|
||||
}
|
||||
|
@ -55,6 +55,11 @@ int MSILTargetMachineModule = 0;
|
||||
|
||||
static RegisterTarget<MSILTarget> X("msil", "MSIL backend");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeMSILTarget() { }
|
||||
}
|
||||
|
||||
bool MSILModule::runOnModule(Module &M) {
|
||||
ModulePtr = &M;
|
||||
TD = &getAnalysis<TargetData>();
|
||||
|
@ -35,6 +35,11 @@ int MSP430TargetMachineModule = 0;
|
||||
static RegisterTarget<MSP430TargetMachine>
|
||||
X("msp430", "MSP430 [experimental]");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeMSP430Target() { }
|
||||
}
|
||||
|
||||
MSP430TargetMachine::MSP430TargetMachine(const Module &M,
|
||||
const std::string &FS) :
|
||||
Subtarget(*this, M, FS),
|
||||
|
@ -578,3 +578,9 @@ doFinalization(Module &M)
|
||||
|
||||
return AsmPrinter::doFinalization(M);
|
||||
}
|
||||
|
||||
// Force static initialization when called from
|
||||
// llvm/InitializeAllAsmPrinters.h
|
||||
namespace llvm {
|
||||
void InitializeMipsAsmPrinter() { }
|
||||
}
|
||||
|
@ -31,6 +31,11 @@ int MipsTargetMachineModule = 0;
|
||||
static RegisterTarget<MipsTargetMachine> X("mips", "Mips");
|
||||
static RegisterTarget<MipselTargetMachine> Y("mipsel", "Mipsel");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeMipsTarget() { }
|
||||
}
|
||||
|
||||
const TargetAsmInfo *MipsTargetMachine::
|
||||
createTargetAsmInfo() const
|
||||
{
|
||||
|
@ -37,6 +37,11 @@ X("pic16", "PIC16 14-bit [experimental].");
|
||||
static RegisterTarget<CooperTargetMachine>
|
||||
Y("cooper", "PIC16 Cooper [experimental].");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializePIC16Target() { }
|
||||
}
|
||||
|
||||
// PIC16TargetMachine - Traditional PIC16 Machine.
|
||||
PIC16TargetMachine::PIC16TargetMachine(const Module &M, const std::string &FS,
|
||||
bool Cooper)
|
||||
|
@ -1202,3 +1202,9 @@ namespace {
|
||||
|
||||
extern "C" int PowerPCAsmPrinterForceLink;
|
||||
int PowerPCAsmPrinterForceLink = 0;
|
||||
|
||||
// Force static initialization when called from
|
||||
// llvm/InitializeAllAsmPrinters.h
|
||||
namespace llvm {
|
||||
void InitializePowerPCAsmPrinter() { }
|
||||
}
|
||||
|
@ -35,6 +35,11 @@ X("ppc32", "PowerPC 32");
|
||||
static RegisterTarget<PPC64TargetMachine>
|
||||
Y("ppc64", "PowerPC 64");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializePowerPCTarget() { }
|
||||
}
|
||||
|
||||
// No assembler printer by default
|
||||
PPCTargetMachine::AsmPrinterCtorFn PPCTargetMachine::AsmPrinterCtor = 0;
|
||||
|
||||
|
@ -353,3 +353,9 @@ bool SparcAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI,
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Force static initialization when called from
|
||||
// llvm/InitializeAllAsmPrinters.h
|
||||
namespace llvm {
|
||||
void InitializeSparcAsmPrinter() { }
|
||||
}
|
||||
|
@ -29,6 +29,11 @@ int SparcTargetMachineModule = 0;
|
||||
// Register the target.
|
||||
static RegisterTarget<SparcTargetMachine> X("sparc", "SPARC");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeSparcTarget() { }
|
||||
}
|
||||
|
||||
const TargetAsmInfo *SparcTargetMachine::createTargetAsmInfo() const {
|
||||
// FIXME: Handle Solaris subtarget someday :)
|
||||
return new SparcELFTargetAsmInfo(*this);
|
||||
|
@ -48,3 +48,9 @@ namespace {
|
||||
|
||||
extern "C" int X86AsmPrinterForceLink;
|
||||
int X86AsmPrinterForceLink = 0;
|
||||
|
||||
// Force static initialization when called from
|
||||
// llvm/InitializeAllAsmPrinters.h
|
||||
namespace llvm {
|
||||
void InitializeX86AsmPrinter() { }
|
||||
}
|
||||
|
@ -36,6 +36,11 @@ X("x86", "32-bit X86: Pentium-Pro and above");
|
||||
static RegisterTarget<X86_64TargetMachine>
|
||||
Y("x86-64", "64-bit X86: EM64T and AMD64");
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeX86Target() { }
|
||||
}
|
||||
|
||||
// No assembler printer by default
|
||||
X86TargetMachine::AsmPrinterCtorFn X86TargetMachine::AsmPrinterCtor = 0;
|
||||
|
||||
|
@ -31,6 +31,11 @@ namespace {
|
||||
RegisterTarget<XCoreTargetMachine> X("xcore", "XCore");
|
||||
}
|
||||
|
||||
// Force static initialization when called from llvm/InitializeAllTargets.h
|
||||
namespace llvm {
|
||||
void InitializeXCoreTarget() { }
|
||||
}
|
||||
|
||||
const TargetAsmInfo *XCoreTargetMachine::createTargetAsmInfo() const {
|
||||
return new XCoreTargetAsmInfo(*this);
|
||||
}
|
||||
|
@ -38,6 +38,8 @@
|
||||
#include "llvm/System/Signals.h"
|
||||
#include "llvm/Config/config.h"
|
||||
#include "llvm/LinkAllVMCore.h"
|
||||
#include "llvm/InitializeAllTargets.h"
|
||||
#include "llvm/InitializeAllAsmPrinters.h"
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
Loading…
Reference in New Issue
Block a user