]> granicus.if.org Git - clang/commit
CodeGen: Fix address space of global variable
authorYaxun Liu <Yaxun.Liu@amd.com>
Sat, 8 Jul 2017 13:24:52 +0000 (13:24 +0000)
committerYaxun Liu <Yaxun.Liu@amd.com>
Sat, 8 Jul 2017 13:24:52 +0000 (13:24 +0000)
commit2ce35b601db031549e4a2113fc40deafe24751fe
treed2e6acd66f794051e0eaeafe0e24dcf13ea2f9a8
parente1e45e872fe06f853a7d717c7fe92eee9d0c856c
CodeGen: Fix address space of global variable

Certain targets (e.g. amdgcn) require global variable to stay in global or constant address
space. In C or C++ global variables are emitted in the default (generic) address space.
This patch introduces virtual functions TargetCodeGenInfo::getGlobalVarAddressSpace
and TargetInfo::getConstantAddressSpace to handle this in a general approach.

It only affects IR generated for amdgcn target.

Differential Revision: https://reviews.llvm.org/D33842

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@307470 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
include/clang/Basic/TargetInfo.h
lib/Basic/Targets.cpp
lib/CodeGen/CGBlocks.cpp
lib/CodeGen/CGDecl.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CodeGenFunction.h
lib/CodeGen/CodeGenModule.cpp
lib/CodeGen/CodeGenModule.h
lib/CodeGen/TargetInfo.cpp
lib/CodeGen/TargetInfo.h
test/CodeGen/address-space.c
test/CodeGen/default-address-space.c
test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp