mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-27 00:15:58 +00:00
Introduce enum value for previously defined metadata -- make.implicit
Summary: This patch adds enum value for an existing metadata type -- make.implicit. Using preassigned enum will be helpful to get compile time type checking and avoid string construction and comparison. The patch also changes uses of make.implicit from string metadata to enum metadata. There is no functionality change. Reviewers: reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11698 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243954 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a89971af5a
commit
7b3ed76a63
@ -60,7 +60,8 @@ public:
|
||||
MD_mem_parallel_loop_access = 10, // "llvm.mem.parallel_loop_access"
|
||||
MD_nonnull = 11, // "nonnull"
|
||||
MD_dereferenceable = 12, // "dereferenceable"
|
||||
MD_dereferenceable_or_null = 13 // "dereferenceable_or_null"
|
||||
MD_dereferenceable_or_null = 13, // "dereferenceable_or_null"
|
||||
MD_make_implicit = 14 // "make.implicit"
|
||||
};
|
||||
|
||||
/// getMDKindID - Return a unique non-zero ID for the specified metadata kind.
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "llvm/CodeGen/MachineModuleInfo.h"
|
||||
#include "llvm/IR/BasicBlock.h"
|
||||
#include "llvm/IR/Instruction.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Target/TargetSubtargetInfo.h"
|
||||
@ -134,7 +135,7 @@ bool ImplicitNullChecks::analyzeBlockForNullChecks(
|
||||
|
||||
MDNode *BranchMD =
|
||||
MBB.getBasicBlock()
|
||||
? MBB.getBasicBlock()->getTerminator()->getMetadata("make.implicit")
|
||||
? MBB.getBasicBlock()->getTerminator()->getMetadata(LLVMContext::MD_make_implicit)
|
||||
: nullptr;
|
||||
if (!BranchMD)
|
||||
return false;
|
||||
|
@ -104,6 +104,12 @@ LLVMContext::LLVMContext() : pImpl(new LLVMContextImpl(*this)) {
|
||||
assert(DereferenceableOrNullID == MD_dereferenceable_or_null &&
|
||||
"dereferenceable_or_null kind id drifted");
|
||||
(void)DereferenceableOrNullID;
|
||||
|
||||
// Create the 'make.implicit' metadata kind.
|
||||
unsigned MakeImplicitID = getMDKindID("make.implicit");
|
||||
assert(MakeImplicitID == MD_make_implicit &&
|
||||
"make.implicit kind id drifted");
|
||||
(void)MakeImplicitID;
|
||||
}
|
||||
LLVMContext::~LLVMContext() { delete pImpl; }
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user