initial support for exported varying

This commit is contained in:
JCB
2013-08-20 15:14:15 -04:00
parent 0755e4f8ff
commit 10b8c481f5
2 changed files with 17 additions and 21 deletions

View File

@@ -429,8 +429,7 @@ AtomicType::Mangle() const {
std::string
AtomicType::GetCDeclaration(const std::string &name) const {
std::string ret;
if (variability != Variability::Uniform &&
variability != Variability::SOA) {
if (variability == Variability::Unbound) {
Assert(m->errorCount > 0);
return ret;
}
@@ -457,9 +456,14 @@ AtomicType::GetCDeclaration(const std::string &name) const {
ret += name;
}
if (variability == Variability::SOA) {
if (variability == Variability::Varying ||
variability == Variability::SOA) {
char buf[32];
sprintf(buf, "[%d]", variability.soaWidth);
// get program count
int vWidth = (variability == Variability::Varying) ?
g->target->getNativeVectorWidth() :
variability.soaWidth;
sprintf(buf, "[%d]", vWidth);
ret += buf;
}