Fix resetting the DataLayout in a Module.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 25 Feb 2014 22:23:04 +0000 (22:23 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 25 Feb 2014 22:23:04 +0000 (22:23 +0000)
commit3f0a9af13bec64f3bc4bee06a57e18feeb766570
tree9de885f1be5c4621a2c98e276f3f2e62324947e8
parent9c256eccb355fb26072ad5353a2f886f62118aa8
Fix resetting the DataLayout in a Module.

No tool does this currently, but as everything else in a module we should be
able to change its DataLayout.

Most of the fix is in DataLayout to make sure it can be reset properly.

The test uses Module::setDataLayout since the fact that we mutate a DataLayout
is an implementation detail. The module could hold a OwningPtr<DataLayout> and
the DataLayout itself could be immutable.

Thanks to Philip Reames for pushing me in the right direction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202198 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/DataLayout.h
lib/IR/DataLayout.cpp
lib/IR/Module.cpp
unittests/IR/IRBuilderTest.cpp