Modify LTOModule::isTargetMatch to take a StringRef instead of a MemoryBuffer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212305 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Peter Collingbourne 2014-07-03 23:49:28 +00:00
parent 59349ad8ad
commit 5c58257d39
2 changed files with 10 additions and 10 deletions

View File

@ -202,8 +202,8 @@ private:
/// Get string that the data pointer points to.
bool objcClassNameFromExpression(const Constant *c, std::string &name);
/// Returns 'true' if the memory buffer is for the specified target triple.
static bool isTargetMatch(MemoryBuffer *memBuffer, const char *triplePrefix);
/// Returns 'true' if the bitcode BC is for the specified target triple.
static bool isTargetMatch(StringRef BC, const char *TriplePrefix);
/// Create an LTOModule (private version). N.B. This method takes ownership of
/// the buffer.

View File

@ -75,7 +75,7 @@ bool LTOModule::isBitcodeFileForTarget(const void *mem, size_t length,
MemoryBuffer *buffer = makeBuffer(mem, length);
if (!buffer)
return false;
return isTargetMatch(buffer, triplePrefix);
return isTargetMatch(StringRef((const char *)mem, length), triplePrefix);
}
bool LTOModule::isBitcodeFileForTarget(const char *path,
@ -83,15 +83,15 @@ bool LTOModule::isBitcodeFileForTarget(const char *path,
std::unique_ptr<MemoryBuffer> buffer;
if (MemoryBuffer::getFile(path, buffer))
return false;
return isTargetMatch(buffer.release(), triplePrefix);
return isTargetMatch(buffer->getBuffer(), triplePrefix);
}
/// isTargetMatch - Returns 'true' if the memory buffer is for the specified
/// target triple.
bool LTOModule::isTargetMatch(MemoryBuffer *buffer, const char *triplePrefix) {
std::string Triple = getBitcodeTargetTriple(buffer, getGlobalContext());
delete buffer;
return strncmp(Triple.c_str(), triplePrefix, strlen(triplePrefix)) == 0;
/// Returns 'true' if the bitcode BC is for the specified target triple.
bool LTOModule::isTargetMatch(StringRef BC, const char *TriplePrefix) {
std::unique_ptr<MemoryBuffer> Buffer(
MemoryBuffer::getMemBuffer(BC, "", false));
std::string Triple = getBitcodeTargetTriple(Buffer.get(), getGlobalContext());
return strncmp(Triple.c_str(), TriplePrefix, strlen(TriplePrefix)) == 0;
}
LTOModule *LTOModule::createFromFile(const char *path, TargetOptions options,