From 2bed9ecc4b5d74e61c997eb2d3877e0ab6257979 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 3 Mar 2004 02:12:47 +0000 Subject: [PATCH] Add a new constructor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12087 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Target/TargetMachine.h | 6 ++++++ lib/Target/TargetMachine.cpp | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/include/llvm/Target/TargetMachine.h b/include/llvm/Target/TargetMachine.h index 7d9586c2f86..cfefe34c562 100644 --- a/include/llvm/Target/TargetMachine.h +++ b/include/llvm/Target/TargetMachine.h @@ -52,6 +52,12 @@ protected: // Can only create subclasses... unsigned char DoubleAl = 8, unsigned char FloatAl = 4, unsigned char LongAl = 8, unsigned char IntAl = 4, unsigned char ShortAl = 2, unsigned char ByteAl = 1); + + // This constructor is used for targets that support arbitrary TargetData + // layouts, like the C backend. It initializes the TargetData to match that + // of the specified module. + TargetMachine(const std::string &name, IntrinsicLowering *IL, + const Module &M); public: virtual ~TargetMachine(); diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp index 30199be06ae..2c8b79622a4 100644 --- a/lib/Target/TargetMachine.cpp +++ b/lib/Target/TargetMachine.cpp @@ -30,6 +30,11 @@ TargetMachine::TargetMachine(const std::string &name, IntrinsicLowering *il, IntAl, ShortAl, ByteAl) { IL = il ? il : new DefaultIntrinsicLowering(); } +TargetMachine::TargetMachine(const std::string &name, IntrinsicLowering *il, + const Module &M) + : Name(name), DataLayout(name, &M) { + IL = il ? il : new DefaultIntrinsicLowering(); +} TargetMachine::~TargetMachine() { delete IL; -- 2.34.1