[llvm] r245047 - Centralize the information about which object format we are using.

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 14 08:14:04 PDT 2015


Looking

On 14 August 2015 at 11:06, Sanjay Patel <spatel at rotateright.com> wrote:
> Hi Rafael -
>
> I'm getting 2 'make check' failures on Darwin after this commit:
>
> FAIL: LLVM :: CodeGen/MSP430/indirectbr.ll (3223 of 14474)
> ******************** TEST 'LLVM :: CodeGen/MSP430/indirectbr.ll' FAILED
> ********************
> Script:
> --
> /Users/spatel/thellvm/cmake_all/./bin/llc -march=msp430 <
> /Users/spatel/thellvm/llvm/test/CodeGen/MSP430/indirectbr.ll
> --
> Exit Code: 132
>
> Command Output (stderr):
> --
> Assertion failed: (isa<X>(Val) && "cast<Ty>() argument of incompatible
> type!"), function cast, file
> /Users/spatel/thellvm/llvm/include/llvm/Support/Casting.h, line 237.
> 0  llc                      0x000000010beb9c9e
> llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 46
> 1  llc                      0x000000010bebb569
> PrintStackTraceSignalHandler(void*) + 25
> 2  llc                      0x000000010beb8259
> llvm::sys::RunSignalHandlers() + 425
> 3  llc                      0x000000010bebb8ee SignalHandler(int) + 366
> 4  libsystem_platform.dylib 0x00007fff9195bf1a _sigtramp + 26
> 5  libsystem_platform.dylib 0x0000000000000002 _sigtramp + 1852457218
> 6  llc                      0x000000010bebb58b raise + 27
> 7  llc                      0x000000010bebb642 abort + 18
> 8  llc                      0x000000010bebb621 __assert_rtn + 129
> 9  llc                      0x000000010a75b53e
> llvm::cast_retty<llvm::MCSymbolELF, llvm::MCSymbol*>::ret_type
> llvm::cast<llvm::MCSymbolELF, llvm::MCSymbol>(llvm::MCSymbol*) + 110
> 10 llc                      0x000000010b042faf
> llvm::AsmPrinter::EmitGlobalVariable(llvm::GlobalVariable const*) + 5535
> 11 llc                      0x000000010b0472a8
> llvm::AsmPrinter::doFinalization(llvm::Module&) + 248
> 12 llc                      0x000000010b7afa2c
> llvm::FPPassManager::doFinalization(llvm::Module&) + 92
> 13 llc                      0x000000010b7b052a (anonymous
> namespace)::MPPassManager::runOnModule(llvm::Module&) + 1946
> 14 llc                      0x000000010b7afba6
> llvm::legacy::PassManagerImpl::run(llvm::Module&) + 310
> 15 llc                      0x000000010b7b0a81
> llvm::legacy::PassManager::run(llvm::Module&) + 33
> 16 llc                      0x0000000109f48cf3 compileModule(char**,
> llvm::LLVMContext&) + 10755
> 17 llc                      0x0000000109f46286 main + 230
> 18 libdyld.dylib            0x00007fff8af5e5c9 start + 1
> Stack dump:
> 0.    Program arguments: /Users/spatel/thellvm/cmake_all/./bin/llc
> -march=msp430
> /Users/spatel/thellvm/cmake_all/test/CodeGen/MSP430/Output/indirectbr.ll.script:
> line 1: 74403 Illegal instruction: 4
> /Users/spatel/thellvm/cmake_all/./bin/llc -march=msp430 <
> /Users/spatel/thellvm/llvm/test/CodeGen/MSP430/indirectbr.ll
>
> --
>
> ********************
> FAIL: LLVM :: CodeGen/MSP430/indirectbr2.ll (3257 of 14474)
> ******************** TEST 'LLVM :: CodeGen/MSP430/indirectbr2.ll' FAILED
> ********************
> Script:
> --
> /Users/spatel/thellvm/cmake_all/./bin/llc -march=msp430 <
> /Users/spatel/thellvm/llvm/test/CodeGen/MSP430/indirectbr2.ll |
> /Users/spatel/thellvm/cmake_all/./bin/FileCheck
> /Users/spatel/thellvm/llvm/test/CodeGen/MSP430/indirectbr2.ll
> --
> Exit Code: 2
>
> Command Output (stderr):
> --
> Assertion failed: (isa<X>(Val) && "cast<Ty>() argument of incompatible
> type!"), function cast, file
> /Users/spatel/thellvm/llvm/include/llvm/Support/Casting.h, line 237.
> 0  llc                      0x000000010c03dc9e
> llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 46
> 1  llc                      0x000000010c03f569
> PrintStackTraceSignalHandler(void*) + 25
> 2  llc                      0x000000010c03c259
> llvm::sys::RunSignalHandlers() + 425
> 3  llc                      0x000000010c03f8ee SignalHandler(int) + 366
> 4  libsystem_platform.dylib 0x00007fff9195bf1a _sigtramp + 26
> 5  libsystem_platform.dylib 0x0000000000000002 _sigtramp + 1852457218
> 6  llc                      0x000000010c03f58b raise + 27
> 7  llc                      0x000000010c03f642 abort + 18
> 8  llc                      0x000000010c03f621 __assert_rtn + 129
> 9  llc                      0x000000010a8df53e
> llvm::cast_retty<llvm::MCSymbolELF, llvm::MCSymbol*>::ret_type
> llvm::cast<llvm::MCSymbolELF, llvm::MCSymbol>(llvm::MCSymbol*) + 110
> 10 llc                      0x000000010b1c6faf
> llvm::AsmPrinter::EmitGlobalVariable(llvm::GlobalVariable const*) + 5535
> 11 llc                      0x000000010b1cb2a8
> llvm::AsmPrinter::doFinalization(llvm::Module&) + 248
> 12 llc                      0x000000010b933a2c
> llvm::FPPassManager::doFinalization(llvm::Module&) + 92
> 13 llc                      0x000000010b93452a (anonymous
> namespace)::MPPassManager::runOnModule(llvm::Module&) + 1946
> 14 llc                      0x000000010b933ba6
> llvm::legacy::PassManagerImpl::run(llvm::Module&) + 310
> 15 llc                      0x000000010b934a81
> llvm::legacy::PassManager::run(llvm::Module&) + 33
> 16 llc                      0x000000010a0cccf3 compileModule(char**,
> llvm::LLVMContext&) + 10755
> 17 llc                      0x000000010a0ca286 main + 230
> 18 libdyld.dylib            0x00007fff8af5e5c9 start + 1
> Stack dump:
> 0.    Program arguments: /Users/spatel/thellvm/cmake_all/./bin/llc
> -march=msp430
> FileCheck error: '-' is empty.
>
> --
>
> ********************
>                                                       -- Testing: 14474
> tests, 8 threads --
> Testing Time: 416.03s
> ********************
> Failing Tests (2):
>     LLVM :: CodeGen/MSP430/indirectbr.ll
>     LLVM :: CodeGen/MSP430/indirectbr2.ll
>
>   Expected Passes    : 14282
>   Expected Failures  : 111
>   Unsupported Tests  : 79
>   Unexpected Failures: 2
>
> On Fri, Aug 14, 2015 at 7:31 AM, Rafael Espindola via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
>>
>> Author: rafael
>> Date: Fri Aug 14 08:31:17 2015
>> New Revision: 245047
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=245047&view=rev
>> Log:
>> Centralize the information about which object format we are using.
>>
>> Other than some places that were handling unknown as ELF, this should
>> have no change. The test updates are because we were detecting
>> arm-coff or x86_64-win64-coff as ELF targets before.
>>
>> It is not clear if the enum should live on the Triple. At least now it
>> lives
>> in a single location and should be easier to move somewhere else.
>>
>> Removed:
>>     llvm/trunk/test/MC/COFF/ARM/directive-type-diagnostics.s
>> Modified:
>>     llvm/trunk/include/llvm/MC/MCObjectFileInfo.h
>>     llvm/trunk/lib/MC/MCContext.cpp
>>     llvm/trunk/lib/MC/MCObjectFileInfo.cpp
>>     llvm/trunk/lib/MC/MCParser/AsmParser.cpp
>>     llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
>>     llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
>>     llvm/trunk/test/CodeGen/X86/statepoint-stackmap-format.ll
>>
>> Modified: llvm/trunk/include/llvm/MC/MCObjectFileInfo.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCObjectFileInfo.h?rev=245047&r1=245046&r2=245047&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/include/llvm/MC/MCObjectFileInfo.h (original)
>> +++ llvm/trunk/include/llvm/MC/MCObjectFileInfo.h Fri Aug 14 08:31:17 2015
>> @@ -331,13 +331,9 @@ public:
>>      return EHFrameSection;
>>    }
>>
>> -  enum Environment { IsMachO, IsELF, IsCOFF };
>> -  Environment getObjectFileType() const { return Env; }
>> -
>>    Reloc::Model getRelocM() const { return RelocM; }
>>
>>  private:
>> -  Environment Env;
>>    Reloc::Model RelocM;
>>    CodeModel::Model CMModel;
>>    MCContext *Ctx;
>>
>> Modified: llvm/trunk/lib/MC/MCContext.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCContext.cpp?rev=245047&r1=245046&r2=245047&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/MC/MCContext.cpp (original)
>> +++ llvm/trunk/lib/MC/MCContext.cpp Fri Aug 14 08:31:17 2015
>> @@ -162,13 +162,15 @@ MCSymbol *MCContext::getOrCreateLSDASymb
>>  MCSymbol *MCContext::createSymbolImpl(const StringMapEntry<bool> *Name,
>>                                        bool IsTemporary) {
>>    if (MOFI) {
>> -    switch (MOFI->getObjectFileType()) {
>> -    case MCObjectFileInfo::IsCOFF:
>> +    switch (MOFI->getTargetTriple().getObjectFormat()) {
>> +    case Triple::COFF:
>>        return new (Name, *this) MCSymbolCOFF(Name, IsTemporary);
>> -    case MCObjectFileInfo::IsELF:
>> +    case Triple::ELF:
>>        return new (Name, *this) MCSymbolELF(Name, IsTemporary);
>> -    case MCObjectFileInfo::IsMachO:
>> +    case Triple::MachO:
>>        return new (Name, *this) MCSymbolMachO(Name, IsTemporary);
>> +    case Triple::UnknownObjectFormat:
>> +      break;
>>      }
>>    }
>>    return new (Name, *this) MCSymbol(MCSymbol::SymbolKindUnset, Name,
>>
>> Modified: llvm/trunk/lib/MC/MCObjectFileInfo.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCObjectFileInfo.cpp?rev=245047&r1=245046&r2=245047&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/MC/MCObjectFileInfo.cpp (original)
>> +++ llvm/trunk/lib/MC/MCObjectFileInfo.cpp Fri Aug 14 08:31:17 2015
>> @@ -767,25 +767,19 @@ void MCObjectFileInfo::InitMCObjectFileI
>>
>>    TT = TheTriple;
>>
>> -  Triple::ArchType Arch = TT.getArch();
>> -  // FIXME: Checking for Arch here to filter out bogus triples such as
>> -  // cellspu-apple-darwin. Perhaps we should fix in Triple?
>> -  if ((Arch == Triple::x86 || Arch == Triple::x86_64 ||
>> -       Arch == Triple::arm || Arch == Triple::thumb ||
>> -       Arch == Triple::aarch64 ||
>> -       Arch == Triple::ppc || Arch == Triple::ppc64 ||
>> -       Arch == Triple::UnknownArch) &&
>> -      TT.isOSBinFormatMachO()) {
>> -    Env = IsMachO;
>> +  Triple::ObjectFormatType Format = TT.getObjectFormat();
>> +  switch (Format) {
>> +  case Triple::MachO:
>>      initMachOMCObjectFileInfo(TT);
>> -  } else if ((Arch == Triple::x86 || Arch == Triple::x86_64 ||
>> -              Arch == Triple::arm || Arch == Triple::thumb) &&
>> -             (TT.isOSWindows() && TT.getObjectFormat() == Triple::COFF))
>> {
>> -    Env = IsCOFF;
>> +    break;
>> +  case Triple::COFF:
>>      initCOFFMCObjectFileInfo(TT);
>> -  } else {
>> -    Env = IsELF;
>> +    break;
>> +  case Triple::ELF:
>>      initELFMCObjectFileInfo(TT);
>> +    break;
>> +  case Triple::UnknownObjectFormat:
>> +    break;
>>    }
>>  }
>>
>> @@ -801,7 +795,9 @@ MCSection *MCObjectFileInfo::getDwarfTyp
>>  }
>>
>>  void MCObjectFileInfo::InitEHFrameSection() {
>> -  if (Env == IsMachO)
>> +  Triple::ObjectFormatType Format = TT.getObjectFormat();
>> +  switch (Format) {
>> +  case Triple::MachO:
>>      EHFrameSection =
>>        Ctx->getMachOSection("__TEXT", "__eh_frame",
>>                             MachO::S_COALESCED |
>> @@ -809,14 +805,20 @@ void MCObjectFileInfo::InitEHFrameSectio
>>                             MachO::S_ATTR_STRIP_STATIC_SYMS |
>>                             MachO::S_ATTR_LIVE_SUPPORT,
>>                             SectionKind::getReadOnly());
>> -  else if (Env == IsELF)
>> +    break;
>> +  case Triple::ELF:
>>      EHFrameSection =
>>          Ctx->getELFSection(".eh_frame", EHSectionType, EHSectionFlags);
>> -  else
>> +    break;
>> +  case Triple::COFF:
>>      EHFrameSection =
>>        Ctx->getCOFFSection(".eh_frame",
>>                            COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
>>                            COFF::IMAGE_SCN_MEM_READ |
>>                            COFF::IMAGE_SCN_MEM_WRITE,
>>                            SectionKind::getDataRel());
>> +    break;
>> +  case Triple::UnknownObjectFormat:
>> +    break;
>> +  }
>>  }
>>
>> Modified: llvm/trunk/lib/MC/MCParser/AsmParser.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/AsmParser.cpp?rev=245047&r1=245046&r2=245047&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/MC/MCParser/AsmParser.cpp (original)
>> +++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp Fri Aug 14 08:31:17 2015
>> @@ -513,17 +513,19 @@ AsmParser::AsmParser(SourceMgr &SM, MCCo
>>    Lexer.setBuffer(SrcMgr.getMemoryBuffer(CurBuffer)->getBuffer());
>>
>>    // Initialize the platform / file format parser.
>> -  switch (Ctx.getObjectFileInfo()->getObjectFileType()) {
>> -  case MCObjectFileInfo::IsCOFF:
>> +  switch (Ctx.getObjectFileInfo()->getTargetTriple().getObjectFormat()) {
>> +  case Triple::COFF:
>>      PlatformParser.reset(createCOFFAsmParser());
>>      break;
>> -  case MCObjectFileInfo::IsMachO:
>> +  case Triple::MachO:
>>      PlatformParser.reset(createDarwinAsmParser());
>>      IsDarwin = true;
>>      break;
>> -  case MCObjectFileInfo::IsELF:
>> +  case Triple::ELF:
>>      PlatformParser.reset(createELFAsmParser());
>>      break;
>> +  case Triple::UnknownObjectFormat:
>> +    break;
>>    }
>>
>>    PlatformParser->Initialize(*this);
>>
>> Modified: llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp?rev=245047&r1=245046&r2=245047&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
>> (original)
>> +++ llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp Fri Aug
>> 14 08:31:17 2015
>> @@ -4055,10 +4055,10 @@ bool AArch64AsmParser::MatchAndEmitInstr
>>
>>  /// ParseDirective parses the arm specific directives
>>  bool AArch64AsmParser::ParseDirective(AsmToken DirectiveID) {
>> -  const MCObjectFileInfo::Environment Format =
>> -    getContext().getObjectFileInfo()->getObjectFileType();
>> -  bool IsMachO = Format == MCObjectFileInfo::IsMachO;
>> -  bool IsCOFF = Format == MCObjectFileInfo::IsCOFF;
>> +  Triple::ObjectFormatType Format =
>> +
>> getContext().getObjectFileInfo()->getTargetTriple().getObjectFormat();
>> +  bool IsMachO = Format == Triple::MachO;
>> +  bool IsCOFF = Format == Triple::COFF;
>>
>>    StringRef IDVal = DirectiveID.getIdentifier();
>>    SMLoc Loc = DirectiveID.getLoc();
>>
>> Modified: llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp?rev=245047&r1=245046&r2=245047&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp (original)
>> +++ llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Fri Aug 14
>> 08:31:17 2015
>> @@ -5173,18 +5173,11 @@ bool ARMAsmParser::parsePrefix(ARMMCExpr
>>      return true;
>>    }
>>
>> -  enum {
>> -    COFF = (1 << MCObjectFileInfo::IsCOFF),
>> -    ELF = (1 << MCObjectFileInfo::IsELF),
>> -    MACHO = (1 << MCObjectFileInfo::IsMachO)
>> -  };
>>    static const struct PrefixEntry {
>>      const char *Spelling;
>>      ARMMCExpr::VariantKind VariantKind;
>> -    uint8_t SupportedFormats;
>>    } PrefixEntries[] = {
>> -    { "lower16", ARMMCExpr::VK_ARM_LO16, COFF | ELF | MACHO },
>> -    { "upper16", ARMMCExpr::VK_ARM_HI16, COFF | ELF | MACHO },
>> +      {"lower16", ARMMCExpr::VK_ARM_LO16}, {"upper16",
>> ARMMCExpr::VK_ARM_HI16},
>>    };
>>
>>    StringRef IDVal = Parser.getTok().getIdentifier();
>> @@ -5199,25 +5192,6 @@ bool ARMAsmParser::parsePrefix(ARMMCExpr
>>      return true;
>>    }
>>
>> -  uint8_t CurrentFormat;
>> -  switch (getContext().getObjectFileInfo()->getObjectFileType()) {
>> -  case MCObjectFileInfo::IsMachO:
>> -    CurrentFormat = MACHO;
>> -    break;
>> -  case MCObjectFileInfo::IsELF:
>> -    CurrentFormat = ELF;
>> -    break;
>> -  case MCObjectFileInfo::IsCOFF:
>> -    CurrentFormat = COFF;
>> -    break;
>> -  }
>> -
>> -  if (~Prefix->SupportedFormats & CurrentFormat) {
>> -    Error(Parser.getTok().getLoc(),
>> -          "cannot represent relocation in the current file format");
>> -    return true;
>> -  }
>> -
>>    RefKind = Prefix->VariantKind;
>>    Parser.Lex();
>>
>> @@ -8691,10 +8665,10 @@ bool ARMAsmParser::MatchAndEmitInstructi
>>
>>  /// parseDirective parses the arm specific directives
>>  bool ARMAsmParser::ParseDirective(AsmToken DirectiveID) {
>> -  const MCObjectFileInfo::Environment Format =
>> -    getContext().getObjectFileInfo()->getObjectFileType();
>> -  bool IsMachO = Format == MCObjectFileInfo::IsMachO;
>> -  bool IsCOFF = Format == MCObjectFileInfo::IsCOFF;
>> +  Triple::ObjectFormatType Format =
>> +
>> getContext().getObjectFileInfo()->getTargetTriple().getObjectFormat();
>> +  bool IsMachO = Format == Triple::MachO;
>> +  bool IsCOFF = Format == Triple::COFF;
>>
>>    StringRef IDVal = DirectiveID.getIdentifier();
>>    if (IDVal == ".word")
>> @@ -8859,8 +8833,9 @@ void ARMAsmParser::onLabelParsed(MCSymbo
>>  ///  ::= .thumbfunc symbol_name
>>  bool ARMAsmParser::parseDirectiveThumbFunc(SMLoc L) {
>>    MCAsmParser &Parser = getParser();
>> -  const auto Format =
>> getContext().getObjectFileInfo()->getObjectFileType();
>> -  bool IsMachO = Format == MCObjectFileInfo::IsMachO;
>> +  Triple::ObjectFormatType Format =
>> +
>> getContext().getObjectFileInfo()->getTargetTriple().getObjectFormat();
>> +  bool IsMachO = Format == Triple::MachO;
>>
>>    // Darwin asm has (optionally) function name after .thumb_func
>> direction
>>    // ELF doesn't
>>
>> Modified: llvm/trunk/test/CodeGen/X86/statepoint-stackmap-format.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/statepoint-stackmap-format.ll?rev=245047&r1=245046&r2=245047&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/test/CodeGen/X86/statepoint-stackmap-format.ll (original)
>> +++ llvm/trunk/test/CodeGen/X86/statepoint-stackmap-format.ll Fri Aug 14
>> 08:31:17 2015
>> @@ -1,5 +1,5 @@
>>  ; RUN: llc < %s -mtriple="x86_64-pc-linux-gnu" | FileCheck %s
>> -; RUN: llc < %s -mtriple="x86_64-pc-win64-coff" | FileCheck %s
>> +; RUN: llc < %s -mtriple="x86_64-pc-unknown-elf" | FileCheck %s
>>
>>  ; This test is a sanity check to ensure statepoints are generating
>> StackMap
>>  ; sections correctly.  This is not intended to be a rigorous test of the
>>
>> Removed: llvm/trunk/test/MC/COFF/ARM/directive-type-diagnostics.s
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/COFF/ARM/directive-type-diagnostics.s?rev=245046&view=auto
>>
>> ==============================================================================
>> --- llvm/trunk/test/MC/COFF/ARM/directive-type-diagnostics.s (original)
>> +++ llvm/trunk/test/MC/COFF/ARM/directive-type-diagnostics.s (removed)
>> @@ -1,10 +0,0 @@
>> -// RUN: not llvm-mc -triple arm-coff -filetype asm -o /dev/null %s 2>&1 |
>> FileCheck %s
>> -// RUN: not llvm-mc -triple armeb-coff -filetype asm -o /dev/null %s 2>&1
>> | FileCheck %s
>> -// RUN: not llvm-mc -triple thumb-coff -filetype asm -o /dev/null %s 2>&1
>> | FileCheck %s
>> -// RUN: not llvm-mc -triple thumbeb-coff -filetype asm -o /dev/null %s
>> 2>&1 | FileCheck %s
>> -
>> -        .type symbol 32
>> -// CHECK: error: expected STT_<TYPE_IN_UPPER_CASE>, '#<type>', '%<type>'
>> or "<type>"
>> -// CHECK: .type symbol 32
>> -// CHECK:              ^
>> -
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>


More information about the llvm-commits mailing list