diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-02-25 20:01:08 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-02-25 20:01:08 +0000 |
commit | aab87fe0ec98072580586850ed00bac3d00df6c0 (patch) | |
tree | 7a7439c4180e01a3804eb528022a98f6d024cdfc /tools/opt | |
parent | dbaa6ab8b5527ca32969f4baa0931a674b9f4eef (diff) | |
download | llvm-aab87fe0ec98072580586850ed00bac3d00df6c0.tar.gz llvm-aab87fe0ec98072580586850ed00bac3d00df6c0.tar.bz2 llvm-aab87fe0ec98072580586850ed00bac3d00df6c0.tar.xz |
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
Diffstat (limited to 'tools/opt')
-rw-r--r-- | tools/opt/opt.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index 19adf78cd3..2b209d99c7 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -429,11 +429,8 @@ int main(int argc, char **argv) { Passes.add(TLI); // Add an appropriate DataLayout instance for this module. - DataLayout *DL = 0; - const std::string &ModuleDataLayout = M.get()->getDataLayout(); - if (!ModuleDataLayout.empty()) - DL = new DataLayout(ModuleDataLayout); - else if (!DefaultDataLayout.empty()) + const DataLayout *DL = M.get()->getDataLayout(); + if (!DL && !DefaultDataLayout.empty()) DL = new DataLayout(DefaultDataLayout); if (DL) |