From 0b7f9acc704865fb36965671f178d3720a77da9f Mon Sep 17 00:00:00 2001 From: Matt Pharr Date: Thu, 21 Jun 2012 10:25:33 -0700 Subject: [PATCH] Align <16 x i1> vectors to just 16 bits for generic targets. Partially addresses issue #259. --- module.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/module.cpp b/module.cpp index d395a9e5..97f6b003 100644 --- a/module.cpp +++ b/module.cpp @@ -240,6 +240,13 @@ Module::Module(const char *fn) { module = new llvm::Module(filename ? filename : "", *g->ctx); module->setTargetTriple(g->target.GetTripleString()); + if (g->target.isa == Target::GENERIC) { + // <16 x i1> vectors only need 16 bit / 2 byte alignment + std::string datalayout = module->getDataLayout(); + datalayout += "v16:16:16"; + module->setDataLayout(datalayout); + } + if (g->generateDebuggingSymbols) { diBuilder = new llvm::DIBuilder(*module);