diff options
author | Arthur Eubanks <aeubanks@google.com> | 2022-02-10 11:56:14 -0800 |
---|---|---|
committer | Arthur Eubanks <aeubanks@google.com> | 2022-03-17 08:37:18 -0700 |
commit | 295172ef51c6b9a73bc0fdcfd25f8c41ead9034a (patch) | |
tree | f8e3668194cedda013fe43c89d2da0c4ab74bd0f /llvm/lib/IR/LLVMContextImpl.cpp | |
parent | 6c0af92612d0730a039226d67cfa08f4d6db5be9 (diff) | |
download | llvm-295172ef51c6b9a73bc0fdcfd25f8c41ead9034a.zip llvm-295172ef51c6b9a73bc0fdcfd25f8c41ead9034a.tar.gz llvm-295172ef51c6b9a73bc0fdcfd25f8c41ead9034a.tar.bz2 |
[OpaquePtr][LLParser] Automatically detect opaque pointers in .ll files
This allows us to not have to specify -opaque-pointers when updating
IR tests from typed pointers to opaque pointers.
We detect opaque pointers in .ll files by looking for relevant tokens,
either "ptr" or "*".
Reviewed By: #opaque-pointers, nikic
Differential Revision: https://reviews.llvm.org/D119482
Diffstat (limited to 'llvm/lib/IR/LLVMContextImpl.cpp')
-rw-r--r-- | llvm/lib/IR/LLVMContextImpl.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/IR/LLVMContextImpl.cpp b/llvm/lib/IR/LLVMContextImpl.cpp index 8f95302..401af7a 100644 --- a/llvm/lib/IR/LLVMContextImpl.cpp +++ b/llvm/lib/IR/LLVMContextImpl.cpp @@ -47,7 +47,11 @@ LLVMContextImpl::LLVMContextImpl(LLVMContext &C) X86_FP80Ty(C, Type::X86_FP80TyID), FP128Ty(C, Type::FP128TyID), PPC_FP128Ty(C, Type::PPC_FP128TyID), X86_MMXTy(C, Type::X86_MMXTyID), X86_AMXTy(C, Type::X86_AMXTyID), Int1Ty(C, 1), Int8Ty(C, 8), - Int16Ty(C, 16), Int32Ty(C, 32), Int64Ty(C, 64), Int128Ty(C, 128) {} + Int16Ty(C, 16), Int32Ty(C, 32), Int64Ty(C, 64), Int128Ty(C, 128) { + if (OpaquePointersCL.getNumOccurrences()) { + OpaquePointers = OpaquePointersCL; + } +} LLVMContextImpl::~LLVMContextImpl() { // NOTE: We need to delete the contents of OwnedModules, but Module's dtor @@ -245,9 +249,13 @@ void LLVMContextImpl::setOptPassGate(OptPassGate& OPG) { this->OPG = &OPG; } +bool LLVMContextImpl::hasOpaquePointersValue() { + return OpaquePointers.hasValue(); +} + bool LLVMContextImpl::getOpaquePointers() { if (LLVM_UNLIKELY(!(OpaquePointers.hasValue()))) - OpaquePointers = OpaquePointersCL; + OpaquePointers = false; return *OpaquePointers; } |