[llvm] r240113 - IRBuilder: Allow globals to be constructed in a specific address space
Tobias Grosser
tobias at grosser.es
Fri Jun 19 00:24:22 PDT 2015
On 06/19/2015 04:59 AM, Eric Christopher wrote:
> Unittest? :)
r240124.
Thanks for paying attention.
Tobias
> -eric
>
> On Thu, Jun 18, 2015 at 7:19 PM Tobias Grosser <tobias at grosser.es
> <mailto:tobias at grosser.es>> wrote:
>
> Author: grosser
> Date: Thu Jun 18 21:12:07 2015
> New Revision: 240113
>
> URL: http://llvm.org/viewvc/llvm-project?rev=240113&view=rev
> Log:
> IRBuilder: Allow globals to be constructed in a specific address space
>
> Modified:
> llvm/trunk/include/llvm/IR/IRBuilder.h
> llvm/trunk/lib/IR/IRBuilder.cpp
>
> Modified: llvm/trunk/include/llvm/IR/IRBuilder.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/IRBuilder.h?rev=240113&r1=240112&r2=240113&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/IR/IRBuilder.h (original)
> +++ llvm/trunk/include/llvm/IR/IRBuilder.h Thu Jun 18 21:12:07 2015
> @@ -245,7 +245,8 @@ public:
> /// filled in with the null terminated string value specified.
> The new global
> /// variable will be marked mergable with any others of the same
> contents. If
> /// Name is specified, it is the name of the global variable
> created.
> - GlobalVariable *CreateGlobalString(StringRef Str, const Twine
> &Name = "");
> + GlobalVariable *CreateGlobalString(StringRef Str, const Twine
> &Name = "",
> + unsigned AddressSpace = 0);
>
> /// \brief Get a constant value representing either true or false.
> ConstantInt *getInt1(bool V) {
> @@ -1191,8 +1192,9 @@ public:
>
> /// \brief Same as CreateGlobalString, but return a pointer with
> "i8*" type
> /// instead of a pointer to array of i8.
> - Value *CreateGlobalStringPtr(StringRef Str, const Twine &Name = "") {
> - GlobalVariable *gv = CreateGlobalString(Str, Name);
> + Value *CreateGlobalStringPtr(StringRef Str, const Twine &Name = "",
> + unsigned AddressSpace = 0) {
> + GlobalVariable *gv = CreateGlobalString(Str, Name, AddressSpace);
> Value *zero = ConstantInt::get(Type::getInt32Ty(Context), 0);
> Value *Args[] = { zero, zero };
> return CreateInBoundsGEP(gv->getValueType(), gv, Args, Name);
>
> Modified: llvm/trunk/lib/IR/IRBuilder.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/IRBuilder.cpp?rev=240113&r1=240112&r2=240113&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/IRBuilder.cpp (original)
> +++ llvm/trunk/lib/IR/IRBuilder.cpp Thu Jun 18 21:12:07 2015
> @@ -25,13 +25,15 @@ using namespace llvm;
> /// specified. If Name is specified, it is the name of the global
> variable
> /// created.
> GlobalVariable *IRBuilderBase::CreateGlobalString(StringRef Str,
> - const Twine &Name) {
> + const Twine &Name,
> + unsigned
> AddressSpace) {
> Constant *StrConstant = ConstantDataArray::getString(Context, Str);
> Module &M = *BB->getParent()->getParent();
> GlobalVariable *GV = new GlobalVariable(M, StrConstant->getType(),
> true,
> GlobalValue::PrivateLinkage,
> - StrConstant);
> - GV->setName(Name);
> + StrConstant, Name, nullptr,
> +
> GlobalVariable::NotThreadLocal,
> + AddressSpace);
> GV->setUnnamedAddr(true);
> return GV;
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu <mailto:llvm-commits at cs.uiuc.edu>
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list