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
Showing
- include/clang/Basic/TargetInfo.h 9 additions, 0 deletionsinclude/clang/Basic/TargetInfo.h
- lib/Basic/Targets.cpp 4 additions, 0 deletionslib/Basic/Targets.cpp
- lib/CodeGen/CGBlocks.cpp 8 additions, 9 deletionslib/CodeGen/CGBlocks.cpp
- lib/CodeGen/CGDecl.cpp 10 additions, 12 deletionslib/CodeGen/CGDecl.cpp
- lib/CodeGen/CGExpr.cpp 26 additions, 12 deletionslib/CodeGen/CGExpr.cpp
- lib/CodeGen/CodeGenFunction.h 3 additions, 4 deletionslib/CodeGen/CodeGenFunction.h
- lib/CodeGen/CodeGenModule.cpp 44 additions, 22 deletionslib/CodeGen/CodeGenModule.cpp
- lib/CodeGen/CodeGenModule.h 7 additions, 3 deletionslib/CodeGen/CodeGenModule.h
- lib/CodeGen/TargetInfo.cpp 46 additions, 0 deletionslib/CodeGen/TargetInfo.cpp
- lib/CodeGen/TargetInfo.h 16 additions, 0 deletionslib/CodeGen/TargetInfo.h
- test/CodeGen/address-space.c 6 additions, 4 deletionstest/CodeGen/address-space.c
- test/CodeGen/default-address-space.c 14 additions, 14 deletionstest/CodeGen/default-address-space.c
- test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp 86 additions, 65 deletionstest/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
Loading
Please register or sign in to comment