mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-03 17:31:50 +00:00
Remove shouldEmitUsedDirectiveFor.
Clang now uses llvm.compiler.used for these cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203174 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e7147c1b57
commit
b52d0c0d74
@ -102,12 +102,6 @@ public:
|
||||
|
||||
const MCSection *getSectionForConstant(SectionKind Kind) const override;
|
||||
|
||||
/// This hook allows targets to selectively decide not to emit the
|
||||
/// UsedDirective for some symbols in llvm.used.
|
||||
/// FIXME: REMOVE this (rdar://7071300)
|
||||
bool shouldEmitUsedDirectiveFor(const GlobalValue *GV, Mangler &Mang,
|
||||
TargetMachine &TM) const override;
|
||||
|
||||
/// The mach-o version of this method defaults to returning a stub reference.
|
||||
const MCExpr *
|
||||
getTTypeGlobalReference(const GlobalValue *GV, unsigned Encoding,
|
||||
|
@ -68,14 +68,6 @@ public:
|
||||
ArrayRef<Module::ModuleFlagEntry> Flags,
|
||||
Mangler &Mang, const TargetMachine &TM) const {}
|
||||
|
||||
/// This hook allows targets to selectively decide not to emit the
|
||||
/// UsedDirective for some symbols in llvm.used.
|
||||
/// FIXME: REMOVE this (rdar://7071300)
|
||||
virtual bool shouldEmitUsedDirectiveFor(const GlobalValue *GV, Mangler &Mang,
|
||||
TargetMachine &TM) const {
|
||||
return GV != 0;
|
||||
}
|
||||
|
||||
/// Given a constant with the SectionKind, return a section that it should be
|
||||
/// placed in.
|
||||
virtual const MCSection *getSectionForConstant(SectionKind Kind) const;
|
||||
|
@ -1453,7 +1453,7 @@ void AsmPrinter::EmitLLVMUsedList(const ConstantArray *InitList) {
|
||||
for (unsigned i = 0, e = InitList->getNumOperands(); i != e; ++i) {
|
||||
const GlobalValue *GV =
|
||||
dyn_cast<GlobalValue>(InitList->getOperand(i)->stripPointerCasts());
|
||||
if (GV && getObjFileLowering().shouldEmitUsedDirectiveFor(GV, *Mang, TM))
|
||||
if (GV)
|
||||
OutStreamer.EmitSymbolAttribute(getSymbol(GV), MCSA_NoDeadStrip);
|
||||
}
|
||||
}
|
||||
|
@ -641,24 +641,6 @@ TargetLoweringObjectFileMachO::getSectionForConstant(SectionKind Kind) const {
|
||||
return ReadOnlySection; // .const
|
||||
}
|
||||
|
||||
/// This hook allows targets to selectively decide not to emit the UsedDirective
|
||||
/// for some symbols in llvm.used.
|
||||
// FIXME: REMOVE this (rdar://7071300)
|
||||
bool TargetLoweringObjectFileMachO::shouldEmitUsedDirectiveFor(
|
||||
const GlobalValue *GV, Mangler &Mang, TargetMachine &TM) const {
|
||||
// Check whether the mangled name has the "Private" or "LinkerPrivate" prefix.
|
||||
if (GV->hasLocalLinkage() && !isa<Function>(GV)) {
|
||||
// FIXME: ObjC metadata is currently emitted as internal symbols that have
|
||||
// \1L and \0l prefixes on them. Fix them to be Private/LinkerPrivate and
|
||||
// this horrible hack can go away.
|
||||
MCSymbol *Sym = TM.getSymbol(GV, Mang);
|
||||
if (Sym->getName()[0] == 'L' || Sym->getName()[0] == 'l')
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const MCExpr *TargetLoweringObjectFileMachO::getTTypeGlobalReference(
|
||||
const GlobalValue *GV, unsigned Encoding, Mangler &Mang,
|
||||
const TargetMachine &TM, MachineModuleInfo *MMI,
|
||||
|
@ -6,4 +6,8 @@ target triple = "i686-apple-darwin8.7.2"
|
||||
@x = weak global i32 0
|
||||
; CHECK: .no_dead_strip _x
|
||||
|
||||
@llvm.used = appending global [1 x i8*] [ i8* bitcast (i32* @x to i8*) ]
|
||||
@"\01Ly" = private global i8 0
|
||||
; CHECK: no_dead_strip Ly
|
||||
|
||||
@llvm.used = appending global [2 x i8*] [ i8* bitcast (i32* @x to i8*),
|
||||
i8* @"\01Ly" ]
|
||||
|
Loading…
Reference in New Issue
Block a user