diff options
author | Owen Anderson <resistor@mac.com> | 2009-10-19 20:11:52 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2009-10-19 20:11:52 +0000 |
commit | ee99626c6bd31b4c0eea7de52945f514d7b2b0c6 (patch) | |
tree | 69d6271ccc19ebf9a2746992d4f83d84e4eafc47 /lib/VMCore/Constants.cpp | |
parent | fd73ff4241505512fbaba4781c019338774893a7 (diff) | |
download | external_llvm-ee99626c6bd31b4c0eea7de52945f514d7b2b0c6.zip external_llvm-ee99626c6bd31b4c0eea7de52945f514d7b2b0c6.tar.gz external_llvm-ee99626c6bd31b4c0eea7de52945f514d7b2b0c6.tar.bz2 |
Banish ConstantsLock. It's serving no purpose other than slowing things down
at the moment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84529 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Constants.cpp')
-rw-r--r-- | lib/VMCore/Constants.cpp | 57 |
1 files changed, 16 insertions, 41 deletions
diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index 529c455..02c3352 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -232,7 +232,6 @@ ConstantInt::ConstantInt(const IntegerType *Ty, const APInt& V) ConstantInt* ConstantInt::getTrue(LLVMContext &Context) { LLVMContextImpl *pImpl = Context.pImpl; - sys::SmartScopedWriter<true>(pImpl->ConstantsLock); if (pImpl->TheTrueVal) return pImpl->TheTrueVal; else @@ -242,7 +241,6 @@ ConstantInt* ConstantInt::getTrue(LLVMContext &Context) { ConstantInt* ConstantInt::getFalse(LLVMContext &Context) { LLVMContextImpl *pImpl = Context.pImpl; - sys::SmartScopedWriter<true>(pImpl->ConstantsLock); if (pImpl->TheFalseVal) return pImpl->TheFalseVal; else @@ -261,22 +259,9 @@ ConstantInt *ConstantInt::get(LLVMContext &Context, const APInt& V) { const IntegerType *ITy = IntegerType::get(Context, V.getBitWidth()); // get an existing value or the insertion position DenseMapAPIntKeyInfo::KeyTy Key(V, ITy); - - Context.pImpl->ConstantsLock.reader_acquire(); ConstantInt *&Slot = Context.pImpl->IntConstants[Key]; - Context.pImpl->ConstantsLock.reader_release(); - - if (!Slot) { - sys::SmartScopedWriter<true> Writer(Context.pImpl->ConstantsLock); - ConstantInt *&NewSlot = Context.pImpl->IntConstants[Key]; - if (!Slot) { - NewSlot = new ConstantInt(ITy, V); - } - - return NewSlot; - } else { - return Slot; - } + if (!Slot) Slot = new ConstantInt(ITy, V); + return Slot; } Constant* ConstantInt::get(const Type* Ty, uint64_t V, bool isSigned) { @@ -405,32 +390,24 @@ ConstantFP* ConstantFP::get(LLVMContext &Context, const APFloat& V) { LLVMContextImpl* pImpl = Context.pImpl; - pImpl->ConstantsLock.reader_acquire(); ConstantFP *&Slot = pImpl->FPConstants[Key]; - pImpl->ConstantsLock.reader_release(); if (!Slot) { - sys::SmartScopedWriter<true> Writer(pImpl->ConstantsLock); - ConstantFP *&NewSlot = pImpl->FPConstants[Key]; - if (!NewSlot) { - const Type *Ty; - if (&V.getSemantics() == &APFloat::IEEEsingle) - Ty = Type::getFloatTy(Context); - else if (&V.getSemantics() == &APFloat::IEEEdouble) - Ty = Type::getDoubleTy(Context); - else if (&V.getSemantics() == &APFloat::x87DoubleExtended) - Ty = Type::getX86_FP80Ty(Context); - else if (&V.getSemantics() == &APFloat::IEEEquad) - Ty = Type::getFP128Ty(Context); - else { - assert(&V.getSemantics() == &APFloat::PPCDoubleDouble && - "Unknown FP format"); - Ty = Type::getPPC_FP128Ty(Context); - } - NewSlot = new ConstantFP(Ty, V); + const Type *Ty; + if (&V.getSemantics() == &APFloat::IEEEsingle) + Ty = Type::getFloatTy(Context); + else if (&V.getSemantics() == &APFloat::IEEEdouble) + Ty = Type::getDoubleTy(Context); + else if (&V.getSemantics() == &APFloat::x87DoubleExtended) + Ty = Type::getX86_FP80Ty(Context); + else if (&V.getSemantics() == &APFloat::IEEEquad) + Ty = Type::getFP128Ty(Context); + else { + assert(&V.getSemantics() == &APFloat::PPCDoubleDouble && + "Unknown FP format"); + Ty = Type::getPPC_FP128Ty(Context); } - - return NewSlot; + Slot = new ConstantFP(Ty, V); } return Slot; @@ -1908,7 +1885,6 @@ void ConstantArray::replaceUsesOfWithOnConstant(Value *From, Value *To, Replacement = ConstantAggregateZero::get(getType()); } else { // Check to see if we have this array type already. - sys::SmartScopedWriter<true> Writer(pImpl->ConstantsLock); bool Exists; LLVMContextImpl::ArrayConstantsTy::MapTy::iterator I = pImpl->ArrayConstants.InsertOrGetItem(Lookup, Exists); @@ -1987,7 +1963,6 @@ void ConstantStruct::replaceUsesOfWithOnConstant(Value *From, Value *To, Replacement = ConstantAggregateZero::get(getType()); } else { // Check to see if we have this array type already. - sys::SmartScopedWriter<true> Writer(pImpl->ConstantsLock); bool Exists; LLVMContextImpl::StructConstantsTy::MapTy::iterator I = pImpl->StructConstants.InsertOrGetItem(Lookup, Exists); |