[llvm] r240113 - IRBuilder: Allow globals to be constructed in a specific address space

Eric Christopher echristo at gmail.com
Fri Jun 19 07:08:10 PDT 2015


Thanks!

On Fri, Jun 19, 2015, 12:24 AM Tobias Grosser <tobias at grosser.es> wrote:

> 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
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150619/6ac5d226/attachment.html>


More information about the llvm-commits mailing list