mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Add AVR backend skeleton
This adds part of the target info code, and adds modifications to the build scripts so that AVR is recognized a supported, experimental backend. It does not include any AVR-specific code, just the bare sources required for a backend to exist. From D14039. llvm-svn: 252865
This commit is contained in:
parent
9cd723ec63
commit
5c27eaa521
@ -431,6 +431,7 @@ AC_CACHE_CHECK([target architecture],[llvm_cv_target_arch],
|
||||
arm64*-*) llvm_cv_target_arch="AArch64" ;;
|
||||
arm*-*) llvm_cv_target_arch="ARM" ;;
|
||||
aarch64*-*) llvm_cv_target_arch="AArch64" ;;
|
||||
avr-*) llvm_cv_target_arch="AVR" ;;
|
||||
mips-* | mips64-*) llvm_cv_target_arch="Mips" ;;
|
||||
mipsel-* | mips64el-*) llvm_cv_target_arch="Mips" ;;
|
||||
xcore-*) llvm_cv_target_arch="XCore" ;;
|
||||
@ -468,6 +469,7 @@ case $host in
|
||||
arm64*-*) host_arch="AArch64" ;;
|
||||
arm*-*) host_arch="ARM" ;;
|
||||
aarch64*-*) host_arch="AArch64" ;;
|
||||
avr-*) host_arch="AVR" ;;
|
||||
mips-* | mips64-*) host_arch="Mips" ;;
|
||||
mipsel-* | mips64el-*) host_arch="Mips" ;;
|
||||
xcore-*) host_arch="XCore" ;;
|
||||
@ -801,6 +803,7 @@ else
|
||||
PowerPC) AC_SUBST(TARGET_HAS_JIT,1) ;;
|
||||
x86_64) AC_SUBST(TARGET_HAS_JIT,1) ;;
|
||||
ARM) AC_SUBST(TARGET_HAS_JIT,1) ;;
|
||||
AVR) AC_SUBST(TARGET_HAS_JIT,0) ;;
|
||||
Mips) AC_SUBST(TARGET_HAS_JIT,1) ;;
|
||||
XCore) AC_SUBST(TARGET_HAS_JIT,0) ;;
|
||||
MSP430) AC_SUBST(TARGET_HAS_JIT,0) ;;
|
||||
|
4
configure
vendored
4
configure
vendored
@ -4188,6 +4188,7 @@ else
|
||||
arm64*-*) llvm_cv_target_arch="AArch64" ;;
|
||||
arm*-*) llvm_cv_target_arch="ARM" ;;
|
||||
aarch64*-*) llvm_cv_target_arch="AArch64" ;;
|
||||
avr-*) llvm_cv_target_arch="AVR" ;;
|
||||
mips-* | mips64-*) llvm_cv_target_arch="Mips" ;;
|
||||
mipsel-* | mips64el-*) llvm_cv_target_arch="Mips" ;;
|
||||
xcore-*) llvm_cv_target_arch="XCore" ;;
|
||||
@ -4226,6 +4227,7 @@ case $host in
|
||||
arm64*-*) host_arch="AArch64" ;;
|
||||
arm*-*) host_arch="ARM" ;;
|
||||
aarch64*-*) host_arch="AArch64" ;;
|
||||
avr-*) host_arch="AVR" ;;
|
||||
mips-* | mips64-*) host_arch="Mips" ;;
|
||||
mipsel-* | mips64el-*) host_arch="Mips" ;;
|
||||
xcore-*) host_arch="XCore" ;;
|
||||
@ -5147,6 +5149,8 @@ else
|
||||
x86_64) TARGET_HAS_JIT=1
|
||||
;;
|
||||
ARM) TARGET_HAS_JIT=1
|
||||
;;
|
||||
AVR) TARGET_HAS_JIT=0
|
||||
;;
|
||||
Mips) TARGET_HAS_JIT=1
|
||||
;;
|
||||
|
4
lib/Target/AVR/AVRTargetMachine.cpp
Normal file
4
lib/Target/AVR/AVRTargetMachine.cpp
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
extern "C" void LLVMInitializeAVRTarget() {
|
||||
|
||||
}
|
10
lib/Target/AVR/CMakeLists.txt
Normal file
10
lib/Target/AVR/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
add_llvm_target(AVRCodeGen
|
||||
AVRTargetMachine.cpp
|
||||
)
|
||||
|
||||
add_dependencies(LLVMAVRCodeGen intrinsics_gen)
|
||||
|
||||
add_subdirectory(TargetInfo)
|
||||
|
33
lib/Target/AVR/LLVMBuild.txt
Normal file
33
lib/Target/AVR/LLVMBuild.txt
Normal file
@ -0,0 +1,33 @@
|
||||
;===- ./lib/Target/AVR/LLVMBuild.txt ---------------------------*- Conf -*--===;
|
||||
;
|
||||
; The LLVM Compiler Infrastructure
|
||||
;
|
||||
; This file is distributed under the University of Illinois Open Source
|
||||
; License. See LICENSE.TXT for details.
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
;
|
||||
; This is an LLVMBuild description file for the components in this subdirectory.
|
||||
;
|
||||
; For more information on the LLVMBuild system, please see:
|
||||
;
|
||||
; http://llvm.org/docs/LLVMBuild.html
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[common]
|
||||
subdirectories = TargetInfo
|
||||
|
||||
[component_0]
|
||||
type = TargetGroup
|
||||
name = AVR
|
||||
parent = Target
|
||||
has_asmprinter = 0
|
||||
has_asmparser = 0
|
||||
|
||||
[component_1]
|
||||
type = Library
|
||||
name = AVRCodeGen
|
||||
parent = AVR
|
||||
required_libraries = AsmPrinter CodeGen Core MC AVRInfo SelectionDAG Support Target
|
||||
add_to_library_groups = AVR
|
19
lib/Target/AVR/Makefile
Normal file
19
lib/Target/AVR/Makefile
Normal file
@ -0,0 +1,19 @@
|
||||
##===- lib/Target/AVR/Makefile -----------------------------*- Makefile -*-===##
|
||||
#
|
||||
# The LLVM Compiler Infrastructure
|
||||
#
|
||||
# This file is distributed under the University of Illinois Open Source
|
||||
# License. See LICENSE.TXT for details.
|
||||
#
|
||||
##===----------------------------------------------------------------------===##
|
||||
|
||||
LEVEL = ../../..
|
||||
LIBRARYNAME = LLVMAVRCodeGen
|
||||
TARGET = AVR
|
||||
|
||||
# Make sure that tblgen is run, first thing.
|
||||
BUILT_SOURCES =
|
||||
|
||||
DIRS = TargetInfo
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
25
lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp
Normal file
25
lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp
Normal file
@ -0,0 +1,25 @@
|
||||
//===-- AVRTargetInfo.cpp - AVR Target Implementation ---------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/Support/TargetRegistry.h"
|
||||
|
||||
namespace llvm {
|
||||
Target TheAVRTarget;
|
||||
}
|
||||
|
||||
extern "C" void LLVMInitializeAVRTargetInfo() {
|
||||
llvm::RegisterTarget<llvm::Triple::avr> X(
|
||||
llvm::TheAVRTarget, "avr", "Atmel AVR Microcontroller");
|
||||
}
|
||||
|
||||
// FIXME: Temporary stub - this function must be defined for linking
|
||||
// to succeed. Remove once this function is properly implemented.
|
||||
extern "C" void LLVMInitializeAVRTargetMC() {
|
||||
}
|
7
lib/Target/AVR/TargetInfo/CMakeLists.txt
Normal file
7
lib/Target/AVR/TargetInfo/CMakeLists.txt
Normal file
@ -0,0 +1,7 @@
|
||||
include_directories( ${CMAKE_CURRENT_BINARY_DIR}/..
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/.. )
|
||||
|
||||
add_llvm_library(LLVMAVRInfo
|
||||
AVRTargetInfo.cpp
|
||||
)
|
||||
|
23
lib/Target/AVR/TargetInfo/LLVMBuild.txt
Normal file
23
lib/Target/AVR/TargetInfo/LLVMBuild.txt
Normal file
@ -0,0 +1,23 @@
|
||||
;===- ./lib/Target/AVR/TargetInfo/LLVMBuild.txt ----------------*- Conf -*--===;
|
||||
;
|
||||
; The LLVM Compiler Infrastructure
|
||||
;
|
||||
; This file is distributed under the University of Illinois Open Source
|
||||
; License. See LICENSE.TXT for details.
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
;
|
||||
; This is an LLVMBuild description file for the components in this subdirectory.
|
||||
;
|
||||
; For more information on the LLVMBuild system, please see:
|
||||
;
|
||||
; http://llvm.org/docs/LLVMBuild.html
|
||||
;
|
||||
;===------------------------------------------------------------------------===;
|
||||
|
||||
[component_0]
|
||||
type = Library
|
||||
name = AVRInfo
|
||||
parent = AVR
|
||||
required_libraries = MC Support
|
||||
add_to_library_groups = AVR
|
16
lib/Target/AVR/TargetInfo/Makefile
Normal file
16
lib/Target/AVR/TargetInfo/Makefile
Normal file
@ -0,0 +1,16 @@
|
||||
##===- lib/Target/AVR/TargetInfo/Makefile ------------------*- Makefile -*-===##
|
||||
#
|
||||
# The LLVM Compiler Infrastructure
|
||||
#
|
||||
# This file is distributed under the University of Illinois Open Source
|
||||
# License. See LICENSE.TXT for details.
|
||||
#
|
||||
##===----------------------------------------------------------------------===##
|
||||
|
||||
LEVEL = ../../../..
|
||||
LIBRARYNAME = LLVMAVRInfo
|
||||
|
||||
# Hack: we need to include 'main' target directory to grab private headers
|
||||
CPP.Flags += -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
@ -22,6 +22,7 @@ subdirectories =
|
||||
AMDGPU
|
||||
ARM
|
||||
AArch64
|
||||
AVR
|
||||
BPF
|
||||
CppBackend
|
||||
Hexagon
|
||||
|
Loading…
x
Reference in New Issue
Block a user