mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 05:24:01 +00:00
Add a couple more helper functions to deal with
creating global constant strings and pointers to global constant strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53051 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -18,6 +18,8 @@
|
|||||||
#include "llvm/BasicBlock.h"
|
#include "llvm/BasicBlock.h"
|
||||||
#include "llvm/Instructions.h"
|
#include "llvm/Instructions.h"
|
||||||
#include "llvm/Constants.h"
|
#include "llvm/Constants.h"
|
||||||
|
#include "llvm/GlobalVariable.h"
|
||||||
|
#include "llvm/Function.h"
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
|
||||||
@ -308,7 +310,24 @@ public:
|
|||||||
|
|
||||||
return Insert(GetElementPtrInst::Create(Ptr, Idxs, Idxs+2), Name);
|
return Insert(GetElementPtrInst::Create(Ptr, Idxs, Idxs+2), Name);
|
||||||
}
|
}
|
||||||
|
Value *CreateGlobalString(const char *Str = "", const char *Name = "") {
|
||||||
|
Constant *StrConstant = ConstantArray::get(Str, true);
|
||||||
|
GlobalVariable *gv = new llvm::GlobalVariable(StrConstant->getType(),
|
||||||
|
true,
|
||||||
|
GlobalValue::InternalLinkage,
|
||||||
|
StrConstant,
|
||||||
|
"",
|
||||||
|
BB->getParent()->getParent(),
|
||||||
|
false);
|
||||||
|
gv->setName(Name);
|
||||||
|
return gv;
|
||||||
|
}
|
||||||
|
Value *CreateGlobalStringPtr(const char *Str = "", const char *Name = "") {
|
||||||
|
Value *gv = CreateGlobalString(Str, Name);
|
||||||
|
Value *zero = llvm::ConstantInt::get(llvm::Type::Int32Ty, 0);
|
||||||
|
Value *Args[] = { zero, zero };
|
||||||
|
return CreateGEP(gv, Args, Args+2, Name);
|
||||||
|
}
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
// Instruction creation methods: Cast/Conversion Operators
|
// Instruction creation methods: Cast/Conversion Operators
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
|
Reference in New Issue
Block a user