Get rid of global.params.dataLayout.

The string representation of the data layout is retrieved from the TargetData class (in main) and passed via global.params.dataLayout to the module. Since the gTargetData is also a global variable it makes no sense to pass this information using another global variable.
This commit is contained in:
kai
2012-09-08 20:25:42 +02:00
parent 0a53cb2ac0
commit 4b0c4bf4ae
4 changed files with 4 additions and 8 deletions

View File

@@ -305,7 +305,6 @@ struct Param
// target stuff
const char* llvmArch;
const char *targetTriple;
const char *dataLayout;
// Codegen cl options
bool singleObj;

View File

@@ -273,7 +273,6 @@ struct Param
// target stuff
const char* llvmArch;
const char *targetTriple;
const char *dataLayout;
// Codegen cl options
bool singleObj;

View File

@@ -566,10 +566,6 @@ int main(int argc, char** argv)
gTargetData = target->getTargetData();
// get final data layout
std::string datalayout = gTargetData->getStringRepresentation();
global.params.dataLayout = datalayout.c_str();
global.params.llvmArch = theTarget->getName();
if (strcmp(global.params.llvmArch,"x86")==0) {

View File

@@ -2,6 +2,7 @@
#include "llvm/Analysis/Verifier.h"
#include "llvm/Module.h"
#include "llvm/LinkAllPasses.h"
#include "llvm/Target/TargetData.h"
#include "mars.h"
#include "module.h"
@@ -21,6 +22,7 @@
#include "gen/arrays.h"
#include "gen/classes.h"
#include "gen/functions.h"
#include "gen/irstate.h"
#include "gen/llvmhelpers.h"
#include "gen/logger.h"
#include "gen/programs.h"
@@ -243,9 +245,9 @@ llvm::Module* Module::genLLVMModule(llvm::LLVMContext& context, Ir* sir)
ir.module->setTargetTriple(global.params.targetTriple);
// set final data layout
ir.module->setDataLayout(global.params.dataLayout);
ir.module->setDataLayout(gTargetData->getStringRepresentation());
if (Logger::enabled())
Logger::cout() << "Final data layout: " << global.params.dataLayout << '\n';
Logger::cout() << "Final data layout: " << ir.module->getDataLayout() << '\n';
// allocate the target abi
gABI = TargetABI::getTarget();