summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2009-08-20 18:26:03 +0000
committerOwen Anderson <resistor@mac.com>2009-08-20 18:26:03 +0000
commitd9b207122eeb740a3878f8389cb38b81d9388734 (patch)
treed003302a05f5a02253fbe2b851c3f5c6270e6a6f /include
parent47234e6d38407a8cfcb54ca04e45a2e657f240be (diff)
downloadllvm-d9b207122eeb740a3878f8389cb38b81d9388734.tar.gz
llvm-d9b207122eeb740a3878f8389cb38b81d9388734.tar.bz2
llvm-d9b207122eeb740a3878f8389cb38b81d9388734.tar.xz
Make the StructType->StructLayout table private to TargetData, allowing us to avoid locking on it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79555 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/TargetData.h21
1 files changed, 8 insertions, 13 deletions
diff --git a/include/llvm/Target/TargetData.h b/include/llvm/Target/TargetData.h
index 23775be70f..b0ea291249 100644
--- a/include/llvm/Target/TargetData.h
+++ b/include/llvm/Target/TargetData.h
@@ -91,6 +91,9 @@ private:
*/
static const TargetAlignElem InvalidAlignmentElem;
+ /// Opaque pointer for the StructType -> StructLayout map
+ void* LayoutMap;
+
//! Set/initialize target alignments
void setAlignment(AlignTypeEnum align_type, unsigned char abi_align,
unsigned char pref_align, uint32_t bit_width);
@@ -107,6 +110,9 @@ private:
return (&align != &InvalidAlignmentElem);
}
+ // DO NOT IMPLEMENT
+ void operator=(const TargetData&);
+
public:
/// Default ctor.
///
@@ -118,22 +124,11 @@ public:
}
/// Constructs a TargetData from a specification string. See init().
- explicit TargetData(const std::string &TargetDescription)
- : ImmutablePass(&ID) {
- init(TargetDescription);
- }
+ explicit TargetData(const std::string &TargetDescription);
/// Initialize target data from properties stored in the module.
explicit TargetData(const Module *M);
-
- TargetData(const TargetData &TD) :
- ImmutablePass(&ID),
- LittleEndian(TD.isLittleEndian()),
- PointerMemSize(TD.PointerMemSize),
- PointerABIAlign(TD.PointerABIAlign),
- PointerPrefAlign(TD.PointerPrefAlign),
- Alignments(TD.Alignments)
- { }
+ TargetData(const TargetData &TD);
~TargetData(); // Not virtual, do not subclass this class