mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
This patch adds a new NVPTX back-end to LLVM which supports code generation for NVIDIA PTX 3.0. This back-end will (eventually) replace the current PTX back-end, while maintaining compatibility with it.
The new target machines are: nvptx (old ptx32) => 32-bit PTX nvptx64 (old ptx64) => 64-bit PTX The sources are based on the internal NVIDIA NVPTX back-end, and contain more functionality than the current PTX back-end currently provides. NV_CONTRIB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156196 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
7
lib/Target/NVPTX/TargetInfo/CMakeLists.txt
Normal file
7
lib/Target/NVPTX/TargetInfo/CMakeLists.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
#include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/.. )
|
||||
|
||||
add_llvm_library(LLVMNVPTXInfo
|
||||
NVPTXTargetInfo.cpp
|
||||
)
|
||||
|
||||
add_dependencies(LLVMNVPTXInfo NVPTXCommonTableGen)
|
23
lib/Target/NVPTX/TargetInfo/LLVMBuild.txt
Normal file
23
lib/Target/NVPTX/TargetInfo/LLVMBuild.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
;===- ./lib/Target/NVPTX/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 = NVPTXInfo
|
||||
parent = NVPTX
|
||||
required_libraries = MC Support Target
|
||||
add_to_library_groups = NVPTX
|
15
lib/Target/NVPTX/TargetInfo/Makefile
Normal file
15
lib/Target/NVPTX/TargetInfo/Makefile
Normal file
@@ -0,0 +1,15 @@
|
||||
##===- lib/Target/NVPTX/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 = LLVMNVPTXInfo
|
||||
|
||||
# Hack: we need to include 'main' target directory to grab private headers
|
||||
CPPFLAGS = -I$(PROJ_OBJ_DIR)/.. -I$(PROJ_SRC_DIR)/..
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
23
lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp
Normal file
23
lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp
Normal file
@@ -0,0 +1,23 @@
|
||||
//===-- NVPTXTargetInfo.cpp - NVPTX Target Implementation -----------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "NVPTX.h"
|
||||
#include "llvm/Module.h"
|
||||
#include "llvm/Support/TargetRegistry.h"
|
||||
using namespace llvm;
|
||||
|
||||
Target llvm::TheNVPTXTarget32;
|
||||
Target llvm::TheNVPTXTarget64;
|
||||
|
||||
extern "C" void LLVMInitializeNVPTXTargetInfo() {
|
||||
RegisterTarget<Triple::nvptx> X(TheNVPTXTarget32, "nvptx",
|
||||
"NVIDIA PTX 32-bit");
|
||||
RegisterTarget<Triple::nvptx64> Y(TheNVPTXTarget64, "nvptx64",
|
||||
"NVIDIA PTX 64-bit");
|
||||
}
|
Reference in New Issue
Block a user