ISPC can emit LLVM PTX now
This commit is contained in:
@@ -697,6 +697,7 @@ AddBitcodeToModule(const unsigned char *bitcode, int length,
|
|||||||
g->target->getISA() != Target::NEON16 &&
|
g->target->getISA() != Target::NEON16 &&
|
||||||
g->target->getISA() != Target::NEON8)
|
g->target->getISA() != Target::NEON8)
|
||||||
#endif // !__arm__
|
#endif // !__arm__
|
||||||
|
if (g->target->getISA() != Target::NVPTX)
|
||||||
{
|
{
|
||||||
Assert(bcTriple.getArch() == llvm::Triple::UnknownArch ||
|
Assert(bcTriple.getArch() == llvm::Triple::UnknownArch ||
|
||||||
mTriple.getArch() == bcTriple.getArch());
|
mTriple.getArch() == bcTriple.getArch());
|
||||||
|
|||||||
6
ispc.cpp
6
ispc.cpp
@@ -278,6 +278,9 @@ Target::Target(const char *arch, const char *cpu, const char *isa, bool pic) :
|
|||||||
arch = "arm";
|
arch = "arm";
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
if(!strncmp(isa, "nvptx", 5))
|
||||||
|
arch = "nvptx64";
|
||||||
|
else
|
||||||
arch = "x86-64";
|
arch = "x86-64";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -703,6 +706,7 @@ Target::Target(const char *arch, const char *cpu, const char *isa, bool pic) :
|
|||||||
else if (!strcasecmp(isa, "nvptx"))
|
else if (!strcasecmp(isa, "nvptx"))
|
||||||
{
|
{
|
||||||
this->m_isa = Target::NVPTX;
|
this->m_isa = Target::NVPTX;
|
||||||
|
this->m_cpu = "sm_35";
|
||||||
this->m_nativeVectorWidth = 32;
|
this->m_nativeVectorWidth = 32;
|
||||||
this->m_nativeVectorAlignment = 32;
|
this->m_nativeVectorAlignment = 32;
|
||||||
this->m_vectorWidth = 1;
|
this->m_vectorWidth = 1;
|
||||||
@@ -872,6 +876,8 @@ Target::GetTripleString() const {
|
|||||||
triple.setArchName("i386");
|
triple.setArchName("i386");
|
||||||
else if (m_arch == "x86-64")
|
else if (m_arch == "x86-64")
|
||||||
triple.setArchName("x86_64");
|
triple.setArchName("x86_64");
|
||||||
|
else if (m_arch == "nvptx64")
|
||||||
|
triple = llvm::Triple("nvptx64", "nvidia", "cuda");
|
||||||
else
|
else
|
||||||
triple.setArchName(m_arch);
|
triple.setArchName(m_arch);
|
||||||
}
|
}
|
||||||
|
|||||||
4
main.cpp
4
main.cpp
@@ -323,10 +323,6 @@ int main(int Argc, char *Argv[]) {
|
|||||||
LLVMInitializeNVPTXTargetInfo();
|
LLVMInitializeNVPTXTargetInfo();
|
||||||
LLVMInitializeNVPTXTarget();
|
LLVMInitializeNVPTXTarget();
|
||||||
LLVMInitializeNVPTXAsmPrinter();
|
LLVMInitializeNVPTXAsmPrinter();
|
||||||
#if 0
|
|
||||||
LLVMInitializeNVPTXAsmParser();
|
|
||||||
LLVMInitializeNVPTXDisassembler();
|
|
||||||
#endif
|
|
||||||
LLVMInitializeNVPTXTargetMC();
|
LLVMInitializeNVPTXTargetMC();
|
||||||
|
|
||||||
char *file = NULL;
|
char *file = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user