Store a DataLayout in Module.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 25 Feb 2014 20:01:08 +0000 (20:01 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 25 Feb 2014 20:01:08 +0000 (20:01 +0000)
commitaab87fe0ec98072580586850ed00bac3d00df6c0
tree7a7439c4180e01a3804eb528022a98f6d024cdfc
parentdbaa6ab8b5527ca32969f4baa0931a674b9f4eef
Store a DataLayout in Module.

Now that DataLayout is not a pass, store one in Module.

Since the C API expects to be able to get a char* to the datalayout description,
we have to keep a std::string somewhere. This patch keeps it in Module and also
uses it to represent modules without a DataLayout.

Once DataLayout is mandatory, we should probably move the string to DataLayout
itself since it won't be necessary anymore to represent the special case of a
module without a DataLayout.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202190 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/Module.h
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/IR/AsmWriter.cpp
lib/IR/Core.cpp
lib/IR/DataLayout.cpp
lib/IR/Module.cpp
lib/Linker/LinkModules.cpp
test/CodeGen/X86/pr1462.ll
tools/opt/opt.cpp