From 0f1358b69ffe7dda83ff196d28f73c678050b16e Mon Sep 17 00:00:00 2001 From: Dmitry Babokin Date: Wed, 22 Apr 2015 17:38:05 +0300 Subject: [PATCH] Revert "Multitaget function return types fixed" --- module.cpp | 3 ++- module.h | 2 -- type.cpp | 28 +++++++++++++--------------- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/module.cpp b/module.cpp index 0e84af84..3b900adb 100644 --- a/module.cpp +++ b/module.cpp @@ -756,7 +756,8 @@ Module::AddGlobalVariable(const std::string &name, const Type *type, Expr *initE This functions returns true and issues an error if are any illegal types are found and returns false otherwise. */ -bool lRecursiveCheckValidParamType(const Type *t, bool vectorOk) { +static bool +lRecursiveCheckValidParamType(const Type *t, bool vectorOk) { const StructType *st = CastType(t); if (st != NULL) { for (int i = 0; i < st->GetElementCount(); ++i) diff --git a/module.h b/module.h index 04ed5985..3690c1bd 100644 --- a/module.h +++ b/module.h @@ -55,8 +55,6 @@ namespace llvm struct DispatchHeaderInfo; -bool lRecursiveCheckValidParamType(const Type *t, bool vectorOk); - class Module { public: /** The name of the source file being compiled should be passed as the diff --git a/type.cpp b/type.cpp index a97a3792..946ec0ca 100644 --- a/type.cpp +++ b/type.cpp @@ -1847,26 +1847,24 @@ static std::map lStructTypeMap; different memory layouts... */ static std::string -lMangleStructName(const std::string &name, const Type *type, - Variability variability) { +lMangleStructName(const std::string &name, Variability variability) { char buf[32]; std::string n; - // Encode vector width if required - if (!lRecursiveCheckValidParamType(type, false)) { - sprintf(buf, "v%d_", g->target->getVectorWidth()); - n += buf; - } + // Encode vector width + sprintf(buf, "v%d", g->target->getVectorWidth()); + n += buf; + // Variability switch (variability.type) { case Variability::Uniform: - n += "uniform_"; + n += "_uniform_"; break; case Variability::Varying: - n += "varying_"; + n += "_varying_"; break; case Variability::SOA: - sprintf(buf, "soa%d_", variability.soaWidth); + sprintf(buf, "_soa%d_", variability.soaWidth); n += buf; break; default: @@ -1907,7 +1905,7 @@ StructType::StructType(const std::string &n, const llvm::SmallVectorisOpaque() == false) return; @@ -1954,7 +1952,7 @@ StructType::GetCStructName() const { // compatibility... if (variability == Variability::Varying) { - return lMangleStructName(name, this, variability); + return lMangleStructName(name, variability); } else { return GetStructName(); @@ -2189,7 +2187,7 @@ StructType::GetCDeclaration(const std::string &n) const { llvm::Type * StructType::LLVMType(llvm::LLVMContext *ctx) const { Assert(variability != Variability::Unbound); - std::string mname = lMangleStructName(name, this, variability); + std::string mname = lMangleStructName(name, variability); if (lStructTypeMap.find(mname) == lStructTypeMap.end()) { Assert(m->errorCount > 0); return NULL; @@ -2343,7 +2341,7 @@ UndefinedStructType::UndefinedStructType(const std::string &n, Assert(name != ""); if (variability != Variability::Unbound) { // Create a new opaque LLVM struct type for this struct name - std::string mname = lMangleStructName(name, this, variability); + std::string mname = lMangleStructName(name, variability); if (lStructTypeMap.find(mname) == lStructTypeMap.end()) lStructTypeMap[mname] = llvm::StructType::create(*g->ctx, mname); } @@ -2478,7 +2476,7 @@ UndefinedStructType::GetCDeclaration(const std::string &n) const { llvm::Type * UndefinedStructType::LLVMType(llvm::LLVMContext *ctx) const { Assert(variability != Variability::Unbound); - std::string mname = lMangleStructName(name, this, variability); + std::string mname = lMangleStructName(name, variability); if (lStructTypeMap.find(mname) == lStructTypeMap.end()) { Assert(m->errorCount > 0); return NULL;