Use DataLayout from the module when easily available.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 25 Feb 2014 23:25:17 +0000 (23:25 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 25 Feb 2014 23:25:17 +0000 (23:25 +0000)
commit356deb5ecde78fdef706e325325c23c828666b9f
tree21aa8a0fb4fed7044dc5449561035d3d8e26a825
parent7e2bf3c6f908cc79dd48c69f86920a3826141e72
Use DataLayout from the module when easily available.

Eventually DataLayoutPass should go away, but for now that is the only easy
way to get a DataLayout in some APIs. This patch only changes the ones that
have easy access to a Module.

One interesting issue with sometimes using DataLayoutPass and sometimes
fetching it from the Module is that we have to make sure they are equivalent.
We can get most of the way there by always constructing the pass with a Module.
In fact, the pass could be changed to point to an external DataLayout instead
of owning one to make this stricter.

Unfortunately, the C api passes a DataLayout, so it has to be up to the caller
to make sure the pass and the module are in sync.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202204 91177308-0d34-0410-b5e6-96231b3b80d8
22 files changed:
examples/ExceptionDemo/ExceptionDemo.cpp
examples/Kaleidoscope/Chapter4/toy.cpp
examples/Kaleidoscope/Chapter5/toy.cpp
examples/Kaleidoscope/Chapter6/toy.cpp
examples/Kaleidoscope/Chapter7/toy.cpp
include/llvm/Analysis/InlineCost.h
include/llvm/IR/BasicBlock.h
include/llvm/IR/DataLayout.h
include/llvm/IR/GlobalValue.h
include/llvm/IR/Instruction.h
lib/Analysis/IPA/InlineCost.cpp
lib/ExecutionEngine/JIT/JIT.cpp
lib/ExecutionEngine/MCJIT/MCJIT.cpp
lib/IR/BasicBlock.cpp
lib/IR/DataLayout.cpp
lib/IR/Globals.cpp
lib/IR/Instruction.cpp
lib/LTO/LTOCodeGenerator.cpp
lib/Target/Target.cpp
lib/Target/TargetMachineC.cpp
tools/llc/llc.cpp
tools/opt/opt.cpp