[llvm] r200269 - Revert r199871 and replace it with a simple check in the debug info
David Blaikie
dblaikie at gmail.com
Mon Jan 27 17:02:32 PST 2014
On Mon, Jan 27, 2014 at 4:49 PM, Eric Christopher <echristo at gmail.com>wrote:
> Author: echristo
> Date: Mon Jan 27 18:49:26 2014
> New Revision: 200269
>
> URL: http://llvm.org/viewvc/llvm-project?rev=200269&view=rev
> Log:
> Revert r199871 and replace it with a simple check in the debug info
> code to see if we're emitting a function into a non-default
> text section. This is still a less-than-ideal solution, but more
> contained than r199871 to determine whether or not we're emitting
> code into an array of comdat sections.
>
Sounds good (well, agree that it's not quite ideal). Might've been easier
to follow this if you'd done the revert separately.
Also, as came up at lunch, I assume this is wrong for LTO (we'll describe
every CU as having a range of the entire text section).
>
> Modified:
> llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
> llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h
> llvm/trunk/include/llvm/Target/TargetMachine.h
> llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h
> llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
> llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.cpp
> llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.h
> llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.cpp
> llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.h
> llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.cpp
> llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.h
> llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp
> llvm/trunk/lib/Target/TargetMachine.cpp
> llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp
> llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.h
>
> Modified: llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
> (original)
> +++ llvm/trunk/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h Mon Jan
> 27 18:49:26 2014
> @@ -53,7 +53,7 @@ public:
>
> virtual const MCSection *
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const;
> + Mangler *Mang, const TargetMachine &TM) const;
>
> /// getTTypeGlobalReference - Return an MCExpr to use for a reference
> to the
> /// specified type info global variable from exception handling
> information.
> @@ -92,7 +92,7 @@ public:
>
> virtual const MCSection *
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const;
> + Mangler *Mang, const TargetMachine &TM) const;
>
> virtual const MCSection *
> getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,
> @@ -131,7 +131,7 @@ public:
>
> virtual const MCSection *
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const;
> + Mangler *Mang, const TargetMachine &TM) const;
>
> /// getDepLibFromLinkerOpt - Extract the dependent library name from a
> linker
> /// option string. Returns StringRef() if the option does not specify a
> library.
>
> Modified: llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h (original)
> +++ llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h Mon Jan 27
> 18:49:26 2014
> @@ -38,7 +38,7 @@ class TargetLoweringObjectFile : public
> const DataLayout *DL;
>
> TargetLoweringObjectFile(
> - const TargetLoweringObjectFile &) LLVM_DELETED_FUNCTION;
> + const TargetLoweringObjectFile&) LLVM_DELETED_FUNCTION;
> void operator=(const TargetLoweringObjectFile&) LLVM_DELETED_FUNCTION;
>
> public:
> @@ -91,14 +91,14 @@ public:
> /// be passed external (or available externally) globals.
> const MCSection *SectionForGlobal(const GlobalValue *GV,
> SectionKind Kind, Mangler *Mang,
> - TargetMachine &TM) const;
> + const TargetMachine &TM) const;
>
> /// SectionForGlobal - This method computes the appropriate section to
> emit
> /// the specified global variable or function definition. This should
> not
> /// be passed external (or available externally) globals.
> const MCSection *SectionForGlobal(const GlobalValue *GV,
> Mangler *Mang,
> - TargetMachine &TM) const {
> + const TargetMachine &TM) const {
> return SectionForGlobal(GV, getKindForGlobal(GV, TM), Mang, TM);
> }
>
> @@ -167,7 +167,7 @@ public:
> protected:
> virtual const MCSection *
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const;
> + Mangler *Mang, const TargetMachine &TM) const;
> };
>
> } // end namespace llvm
>
> Modified: llvm/trunk/include/llvm/Target/TargetMachine.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetMachine.h?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/Target/TargetMachine.h (original)
> +++ llvm/trunk/include/llvm/Target/TargetMachine.h Mon Jan 27 18:49:26 2014
> @@ -88,7 +88,6 @@ protected: // Can only create subclasses
> unsigned MCUseLoc : 1;
> unsigned MCUseCFI : 1;
> unsigned MCUseDwarfDirectory : 1;
> - unsigned DebugUseUniqueSections : 1;
> unsigned RequireStructuredCFG : 1;
>
> public:
> @@ -161,9 +160,6 @@ public:
> bool requiresStructuredCFG() const { return RequireStructuredCFG; }
> void setRequiresStructuredCFG(bool Value) { RequireStructuredCFG =
> Value; }
>
> - bool debugUseUniqueSections() const { return DebugUseUniqueSections; }
> - void setDebugUseUniqueSections(bool Value) { DebugUseUniqueSections =
> Value; }
> -
> /// hasMCRelaxAll - Check whether all machine code instructions should
> be
> /// relaxed.
> bool hasMCRelaxAll() const { return MCRelaxAll; }
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Mon Jan 27 18:49:26
> 2014
> @@ -176,6 +176,7 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Mo
> : Asm(A), MMI(Asm->MMI), FirstCU(0), SourceIdMap(DIEValueAllocator),
> PrevLabel(NULL), GlobalRangeCount(0),
> InfoHolder(A, "info_string", DIEValueAllocator), HasCURanges(false),
> + UsedNonDefaultText(false),
> SkeletonHolder(A, "skel_string", DIEValueAllocator) {
>
> DwarfInfoSectionSym = DwarfAbbrevSectionSym = DwarfStrSectionSym = 0;
> @@ -1123,7 +1124,7 @@ void DwarfDebug::endSections() {
> // we have -ffunction-sections enabled, or we've emitted a function
> // into a unique section. At this point all sections should be finalized
> // except for dwarf sections.
> - HasCURanges = DwarfCURanges || Asm->TM.debugUseUniqueSections() ||
> + HasCURanges = DwarfCURanges || UsedNonDefaultText ||
> TargetMachine::getFunctionSections();
> }
>
> @@ -1580,6 +1581,12 @@ void DwarfDebug::beginFunction(const Mac
> else
>
> Asm->OutStreamer.getContext().setDwarfCompileUnitID(TheCU->getUniqueID());
>
> + // Check the current section against the standard text section. If
> different
> + // keep track so that we will know when we're emitting functions into
> multiple
> + // sections.
> + if (Asm->getObjFileLowering().getTextSection() !=
> Asm->getCurrentSection())
> + UsedNonDefaultText = true;
> +
> // Emit a label for the function so that we have a beginning address.
> FunctionBeginSym = Asm->GetTempSymbol("func_begin",
> Asm->getFunctionNumber());
> // Assumes in correct section after the entry point.
>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.h Mon Jan 27 18:49:26 2014
> @@ -461,6 +461,10 @@ class DwarfDebug : public AsmPrinterHand
> // Whether or not to use AT_ranges for compilation units.
> bool HasCURanges;
>
> + // Whether we emitted a function into a section other than the default
> + // text.
> + bool UsedNonDefaultText;
> +
> // Version of dwarf we're emitting.
> unsigned DwarfVersion;
>
>
> Modified: llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (original)
> +++ llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp Mon Jan 27
> 18:49:26 2014
> @@ -232,7 +232,7 @@ static const char *getSectionPrefixForGl
>
> const MCSection *TargetLoweringObjectFileELF::
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const {
> + Mangler *Mang, const TargetMachine &TM) const {
> // If we have -ffunction-section or -fdata-section then we should emit
> the
> // global value to a uniqued section specifically for it.
> bool EmitUniquedSection;
> @@ -258,8 +258,6 @@ SelectSectionForGlobal(const GlobalValue
> Flags |= ELF::SHF_GROUP;
> }
>
> - // Set that we've used a unique section name in the target machine.
> - TM.setDebugUseUniqueSections(true);
> return getContext().getELFSection(Name.str(),
> getELFSectionType(Name.str(), Kind),
> Flags, Kind, 0, Group);
> @@ -531,7 +529,7 @@ getExplicitSectionGlobal(const GlobalVal
>
> const MCSection *TargetLoweringObjectFileMachO::
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const {
> + Mangler *Mang, const TargetMachine &TM) const {
>
> // Handle thread local data.
> if (Kind.isThreadBSS()) return TLSBSSSection;
> @@ -756,7 +754,7 @@ static const char *getCOFFSectionNameFor
>
> const MCSection *TargetLoweringObjectFileCOFF::
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const {
> + Mangler *Mang, const TargetMachine &TM) const {
>
> // If this global is linkonce/weak and the target handles this by
> emitting it
> // into a 'uniqued' section name, create and return the section now.
>
> Modified: llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.cpp?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.cpp (original)
> +++ llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.cpp Mon Jan 27
> 18:49:26 2014
> @@ -87,7 +87,7 @@ IsGlobalInSmallSection(const GlobalValue
>
> const MCSection *HexagonTargetObjectFile::
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const {
> + Mangler *Mang, const TargetMachine &TM) const {
>
> // Handle Small Section classification here.
> if (Kind.isBSS() && IsGlobalInSmallSection(GV, TM, Kind))
>
> Modified: llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.h?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.h (original)
> +++ llvm/trunk/lib/Target/Hexagon/HexagonTargetObjectFile.h Mon Jan 27
> 18:49:26 2014
> @@ -30,9 +30,10 @@ namespace llvm {
> const TargetMachine &TM) const;
>
> bool IsSmallDataEnabled () const;
> - const MCSection *SelectSectionForGlobal(const GlobalValue *GV,
> - SectionKind Kind, Mangler
> *Mang,
> - TargetMachine &TM) const;
> + const MCSection* SelectSectionForGlobal(const GlobalValue *GV,
> + SectionKind Kind,
> + Mangler *Mang,
> + const TargetMachine &TM)
> const;
> };
>
> } // namespace llvm
>
> Modified: llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.cpp?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.cpp Mon Jan 27
> 18:49:26 2014
> @@ -103,7 +103,7 @@ IsGlobalInSmallSection(const GlobalValue
>
> const MCSection *MipsTargetObjectFile::
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const {
> + Mangler *Mang, const TargetMachine &TM) const {
> // TODO: Could also support "weak" symbols as well with
> ".gnu.linkonce.s.*"
> // sections?
>
>
> Modified: llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.h?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.h (original)
> +++ llvm/trunk/lib/Target/Mips/MipsTargetObjectFile.h Mon Jan 27 18:49:26
> 2014
> @@ -31,8 +31,9 @@ namespace llvm {
> const TargetMachine &TM) const;
>
> const MCSection *SelectSectionForGlobal(const GlobalValue *GV,
> - SectionKind Kind, Mangler
> *Mang,
> - TargetMachine &TM) const;
> + SectionKind Kind,
> + Mangler *Mang,
> + const TargetMachine &TM)
> const;
>
> // TODO: Classify globals as mips wishes.
> const MCSection *getReginfoSection() const { return ReginfoSection; }
>
> Modified: llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.cpp?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.cpp (original)
> +++ llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.cpp Mon Jan 27
> 18:49:26 2014
> @@ -24,7 +24,7 @@ Initialize(MCContext &Ctx, const TargetM
>
> const MCSection * PPC64LinuxTargetObjectFile::
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> - Mangler *Mang, TargetMachine &TM) const {
> + Mangler *Mang, const TargetMachine &TM) const {
>
> const MCSection *DefaultSection =
> TargetLoweringObjectFileELF::SelectSectionForGlobal(GV, Kind, Mang,
> TM);
>
> Modified: llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.h?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.h (original)
> +++ llvm/trunk/lib/Target/PowerPC/PPCTargetObjectFile.h Mon Jan 27
> 18:49:26 2014
> @@ -22,10 +22,9 @@ namespace llvm {
>
> virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
>
> - virtual const MCSection *SelectSectionForGlobal(const GlobalValue *GV,
> - SectionKind Kind,
> - Mangler *Mang,
> - TargetMachine &TM)
> const;
> + virtual const MCSection *
> + SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> + Mangler *Mang, const TargetMachine &TM) const;
>
> /// \brief Describe a TLS variable address within debug info.
> virtual const MCExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym)
> const;
>
> Modified: llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp (original)
> +++ llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp Mon Jan 27 18:49:26
> 2014
> @@ -265,7 +265,7 @@ SectionKind TargetLoweringObjectFile::ge
> /// be passed external (or available externally) globals.
> const MCSection *TargetLoweringObjectFile::
> SectionForGlobal(const GlobalValue *GV, SectionKind Kind, Mangler *Mang,
> - TargetMachine &TM) const {
> + const TargetMachine &TM) const {
> // Select section name.
> if (GV->hasSection())
> return getExplicitSectionGlobal(GV, Kind, Mang, TM);
> @@ -277,9 +277,11 @@ SectionForGlobal(const GlobalValue *GV,
>
>
> // Lame default implementation. Calculate the section name for global.
> -const MCSection *TargetLoweringObjectFile::SelectSectionForGlobal(
> - const GlobalValue *GV, SectionKind Kind, Mangler *Mang,
> - TargetMachine &TM) const {
> +const MCSection *
> +TargetLoweringObjectFile::SelectSectionForGlobal(const GlobalValue *GV,
> + SectionKind Kind,
> + Mangler *Mang,
> + const TargetMachine &TM)
> const{
> assert(!Kind.isThreadLocal() && "Doesn't support TLS");
>
> if (Kind.isText())
>
> Modified: llvm/trunk/lib/Target/TargetMachine.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetMachine.cpp?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/TargetMachine.cpp (original)
> +++ llvm/trunk/lib/Target/TargetMachine.cpp Mon Jan 27 18:49:26 2014
> @@ -55,7 +55,6 @@ TargetMachine::TargetMachine(const Targe
> MCUseLoc(true),
> MCUseCFI(true),
> MCUseDwarfDirectory(false),
> - DebugUseUniqueSections(false),
> RequireStructuredCFG(false),
> Options(Options) {
> }
>
> Modified: llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp (original)
> +++ llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.cpp Mon Jan 27
> 18:49:26 2014
> @@ -130,7 +130,7 @@ getExplicitSectionGlobal(const GlobalVal
>
> const MCSection *XCoreTargetObjectFile::
> SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, Mangler
> *Mang,
> - TargetMachine &TM) const{
> + const TargetMachine &TM) const{
> if (Kind.isText()) return TextSection;
> if (Kind.isMergeable1ByteCString()) return CStringSection;
> if (Kind.isMergeableConst4()) return MergeableConst4Section;
>
> Modified: llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.h?rev=200269&r1=200268&r2=200269&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.h (original)
> +++ llvm/trunk/lib/Target/XCore/XCoreTargetObjectFile.h Mon Jan 27
> 18:49:26 2014
> @@ -27,10 +27,9 @@ static const unsigned CodeModelLargeSize
> getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,
> Mangler *Mang, const TargetMachine &TM)
> const;
>
> - virtual const MCSection *SelectSectionForGlobal(const GlobalValue *GV,
> - SectionKind Kind,
> - Mangler *Mang,
> - TargetMachine &TM)
> const;
> + virtual const MCSection *
> + SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
> + Mangler *Mang, const TargetMachine &TM) const;
>
> virtual const MCSection *getSectionForConstant(SectionKind Kind)
> const;
> };
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140127/49017505/attachment.html>
More information about the llvm-commits
mailing list