Update clang to r339409.
Change-Id: I800772d2d838223be1f6b40d490c4591b937fca2
diff --git a/linux-x64/clang/include/llvm/Target/TargetLoweringObjectFile.h b/linux-x64/clang/include/llvm/Target/TargetLoweringObjectFile.h
index d5ac3cd..40b77c3 100644
--- a/linux-x64/clang/include/llvm/Target/TargetLoweringObjectFile.h
+++ b/linux-x64/clang/include/llvm/Target/TargetLoweringObjectFile.h
@@ -45,6 +45,13 @@
protected:
bool SupportIndirectSymViaGOTPCRel = false;
bool SupportGOTPCRelWithOffset = true;
+ bool SupportDebugThreadLocalLocation = true;
+
+ /// PersonalityEncoding, LSDAEncoding, TTypeEncoding - Some encoding values
+ /// for EH.
+ unsigned PersonalityEncoding = 0;
+ unsigned LSDAEncoding = 0;
+ unsigned TTypeEncoding = 0;
/// This section contains the static constructor pointer list.
MCSection *StaticCtorSection = nullptr;
@@ -71,8 +78,7 @@
const MCSymbol *Sym) const;
/// Emit the module-level metadata that the platform cares about.
- virtual void emitModuleMetadata(MCStreamer &Streamer, Module &M,
- const TargetMachine &TM) const {}
+ virtual void emitModuleMetadata(MCStreamer &Streamer, Module &M) const {}
/// Given a constant with the SectionKind, return a section that it should be
/// placed in.
@@ -136,6 +142,10 @@
const TargetMachine &TM,
MachineModuleInfo *MMI) const;
+ unsigned getPersonalityEncoding() const { return PersonalityEncoding; }
+ unsigned getLSDAEncoding() const { return LSDAEncoding; }
+ unsigned getTTypeEncoding() const { return TTypeEncoding; }
+
const MCExpr *getTTypeReference(const MCSymbolRefExpr *Sym, unsigned Encoding,
MCStreamer &Streamer) const;
@@ -149,7 +159,7 @@
return StaticDtorSection;
}
- /// \brief Create a symbol reference to describe the given TLS variable when
+ /// Create a symbol reference to describe the given TLS variable when
/// emitting the address in debug info.
virtual const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const;
@@ -159,19 +169,24 @@
return nullptr;
}
- /// \brief Target supports replacing a data "PC"-relative access to a symbol
+ /// Target supports replacing a data "PC"-relative access to a symbol
/// through another symbol, by accessing the later via a GOT entry instead?
bool supportIndirectSymViaGOTPCRel() const {
return SupportIndirectSymViaGOTPCRel;
}
- /// \brief Target GOT "PC"-relative relocation supports encoding an additional
+ /// Target GOT "PC"-relative relocation supports encoding an additional
/// binary expression with an offset?
bool supportGOTPCRelWithOffset() const {
return SupportGOTPCRelWithOffset;
}
- /// \brief Get the target specific PC relative GOT entry relocation
+ /// Target supports TLS offset relocation in debug section?
+ bool supportDebugThreadLocalLocation() const {
+ return SupportDebugThreadLocalLocation;
+ }
+
+ /// Get the target specific PC relative GOT entry relocation
virtual const MCExpr *getIndirectSymViaGOTPCRel(const MCSymbol *Sym,
const MCValue &MV,
int64_t Offset,