mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-30 17:25:21 +00:00
Move the TLSModel information into the TargetMachine rather than hiding
in TargetLowering. There was already a FIXME about this location being odd. The interface is simplified as a consequence. This will also make it easier to change TLS models when compiling with PIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154292 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -39,28 +39,6 @@ static cl::opt<bool>
|
||||
AllowPromoteIntElem("promote-elements", cl::Hidden, cl::init(true),
|
||||
cl::desc("Allow promotion of integer vector element types"));
|
||||
|
||||
namespace llvm {
|
||||
TLSModel::Model getTLSModel(const GlobalValue *GV, Reloc::Model reloc) {
|
||||
bool isLocal = GV->hasLocalLinkage();
|
||||
bool isDeclaration = GV->isDeclaration();
|
||||
// FIXME: what should we do for protected and internal visibility?
|
||||
// For variables, is internal different from hidden?
|
||||
bool isHidden = GV->hasHiddenVisibility();
|
||||
|
||||
if (reloc == Reloc::PIC_) {
|
||||
if (isLocal || isHidden)
|
||||
return TLSModel::LocalDynamic;
|
||||
else
|
||||
return TLSModel::GeneralDynamic;
|
||||
} else {
|
||||
if (!isDeclaration || isHidden)
|
||||
return TLSModel::LocalExec;
|
||||
else
|
||||
return TLSModel::InitialExec;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// InitLibcallNames - Set default libcall names.
|
||||
///
|
||||
static void InitLibcallNames(const char **Names) {
|
||||
|
Reference in New Issue
Block a user