[LLVMdev] [PATCH][REQUEST] Could someone submit this CSR Kalimba definitions patch please?

David Blaikie dblaikie at gmail.com
Tue Jul 8 22:52:04 PDT 2014


On Tue, Jul 8, 2014 at 10:39 PM, Matthew Gardiner <mg11 at csr.com> wrote:
> Hello LLVMdev!!
>
> Yesterday I posted a patch request to the llvm-commits list requesting that
> someone could apply a patch to Triple.h and Triple.cpp for me. I didn't get
> any response so I wondered whether I should have posted to this list
> instead.
>
> My story is as follows: we are trying to get lldb/llvm support for CSRs
> range of Kalimba DSPs. Eventually we are planning to hire someone to write
> an LLVM backend for the core, but currently we/I are making to do with
> porting lldb to debug Kalimba chips via a bespoke gdbserver implementation.
>
> In order to get lldb to recognise Kalimba DSPs I have had to add definitions
> for kalimba as an architecture and CSR as a vendor to Triple.h and
> Triple.cpp. So I have produced a patch with these changes and I wondered if
> anyone would be able to submit the patch for me?
>
> If I am requesting this patch application in the wrong way, could someone
> point out to me the correct patch request process?

You got it right the first time, it's just it can take a while for
someone with the right context/time to take a look and apply a patch.
Generally speaking if you don't get a response in a week, it's
acceptable to 'ping' a patch (just reply-all to the original email you
sent to the -commits list, usually with the word 'ping').
Unfortunately this may need to be done more than once (with a week
between each) if people are particularly busy or you have a
particularly esoteric patch.

- David

>
> Patch pasted on bottom of mail and file attached.
>
> thank you
> Matthew Gardiner
>
>    Index: include/llvm/ADT/Triple.h
> ===================================================================
> --- include/llvm/ADT/Triple.h   (revision 212519)
> +++ include/llvm/ADT/Triple.h   (working copy)
> @@ -76,24 +76,9 @@
>      le32,       // le32: generic little-endian 32-bit CPU (PNaCl /
> Emscripten)
>      amdil,      // amdil: amd IL
>      spir,       // SPIR: standard portable IR for OpenCL 32-bit version
> -    spir64      // SPIR: standard portable IR for OpenCL 64-bit version
> +    spir64,     // SPIR: standard portable IR for OpenCL 64-bit version
> +    kalimba     // Kalimba: generic kalimba
>    };
> -  enum SubArchType {
> -    NoSubArch,
> -
> -    ARMSubArch_v8,
> -    ARMSubArch_v7,
> -    ARMSubArch_v7em,
> -    ARMSubArch_v7m,
> -    ARMSubArch_v7s,
> -    ARMSubArch_v6,
> -    ARMSubArch_v6m,
> -    ARMSubArch_v6t2,
> -    ARMSubArch_v5,
> -    ARMSubArch_v5te,
> -    ARMSubArch_v4t,
> -    ARMSubArch_v4
> -  };
>    enum VendorType {
>      UnknownVendor,
>
> @@ -104,7 +89,8 @@
>      BGQ,
>      Freescale,
>      IBM,
> -    NVIDIA
> +    NVIDIA,
> +    CSR
>    };
>    enum OSType {
>      UnknownOS,
> @@ -164,9 +150,6 @@
>    /// The parsed arch type.
>    ArchType Arch;
>
> -  /// The parsed subarchitecture type.
> -  SubArchType SubArch;
> -
>    /// The parsed vendor type.
>    VendorType Vendor;
>
> @@ -209,9 +192,6 @@
>    /// getArch - Get the parsed architecture type of this triple.
>    ArchType getArch() const { return Arch; }
>
> -  /// getSubArch - get the parsed subarchitecture type for this triple.
> -  SubArchType getSubArch() const { return SubArch; }
> -
>    /// getVendor - Get the parsed vendor type of this triple.
>    VendorType getVendor() const { return Vendor; }
>
> Index: lib/ExecutionEngine/IntelJITEvents/jitprofiling.c
> ===================================================================
> --- lib/ExecutionEngine/IntelJITEvents/jitprofiling.c   (revision 212519)
> +++ lib/ExecutionEngine/IntelJITEvents/jitprofiling.c   (working copy)
> @@ -30,7 +30,7 @@
>
>  #include "jitprofiling.h"
>
> -static const char rcsid[] = "\n@(#) $Revision: 243501 $\n";
> +static const char rcsid[] = "\n@(#) $Revision: #4 $\n";
>
>  #define DLL_ENVIRONMENT_VAR             "VS_PROFILER"
>
> Index: lib/Support/Triple.cpp
> ===================================================================
> --- lib/Support/Triple.cpp      (revision 212519)
> +++ lib/Support/Triple.cpp      (working copy)
> @@ -50,6 +50,7 @@
>    case amdil:       return "amdil";
>    case spir:        return "spir";
>    case spir64:      return "spir64";
> +  case kalimba:     return "kalimba";
>    }
>
>    llvm_unreachable("Invalid ArchType!");
> @@ -101,6 +102,7 @@
>    case amdil:       return "amdil";
>    case spir:        return "spir";
>    case spir64:      return "spir";
> +  case kalimba:     return "kalimba";
>    }
>  }
>
> @@ -116,6 +118,7 @@
>    case Freescale: return "fsl";
>    case IBM: return "ibm";
>    case NVIDIA: return "nvidia";
> +  case CSR: return "csr";
>    }
>
>    llvm_unreachable("Invalid VendorType!");
> @@ -207,6 +210,7 @@
>      .Case("amdil", amdil)
>      .Case("spir", spir)
>      .Case("spir64", spir64)
> +    .Case("kalimba", kalimba)
>      .Default(UnknownArch);
>  }
>
> @@ -280,6 +284,7 @@
>      .Case("amdil", Triple::amdil)
>      .Case("spir", Triple::spir)
>      .Case("spir64", Triple::spir64)
> +    .Case("kalimba", Triple::kalimba)
>      .Default(Triple::UnknownArch);
>  }
>
> @@ -293,6 +298,7 @@
>      .Case("fsl", Triple::Freescale)
>      .Case("ibm", Triple::IBM)
>      .Case("nvidia", Triple::NVIDIA)
> +    .Case("csr", Triple::CSR)
>      .Default(Triple::UnknownVendor);
>  }
>
> @@ -350,26 +356,6 @@
>      .Default(Triple::UnknownObjectFormat);
>  }
>
> -static Triple::SubArchType parseSubArch(StringRef SubArchName) {
> -  return StringSwitch<Triple::SubArchType>(SubArchName)
> -    .EndsWith("v8", Triple::ARMSubArch_v8)
> -    .EndsWith("v8a", Triple::ARMSubArch_v8)
> -    .EndsWith("v7", Triple::ARMSubArch_v7)
> -    .EndsWith("v7a", Triple::ARMSubArch_v7)
> -    .EndsWith("v7em", Triple::ARMSubArch_v7em)
> -    .EndsWith("v7m", Triple::ARMSubArch_v7m)
> -    .EndsWith("v7s", Triple::ARMSubArch_v7s)
> -    .EndsWith("v6", Triple::ARMSubArch_v6)
> -    .EndsWith("v6m", Triple::ARMSubArch_v6m)
> -    .EndsWith("v6t2", Triple::ARMSubArch_v6t2)
> -    .EndsWith("v5", Triple::ARMSubArch_v5)
> -    .EndsWith("v5t", Triple::ARMSubArch_v5)
> -    .EndsWith("v5te", Triple::ARMSubArch_v5te)
> -    .EndsWith("v4t", Triple::ARMSubArch_v4t)
> -    .EndsWith("v4", Triple::ARMSubArch_v4)
> -    .Default(Triple::NoSubArch);
> -}
> -
>  static const char *getObjectFormatTypeName(Triple::ObjectFormatType Kind) {
>    switch (Kind) {
>    case Triple::UnknownObjectFormat: return "";
> @@ -395,7 +381,6 @@
>  Triple::Triple(const Twine &Str)
>      : Data(Str.str()),
>        Arch(parseArch(getArchName())),
> -      SubArch(parseSubArch(getArchName())),
>        Vendor(parseVendor(getVendorName())),
>        OS(parseOS(getOSName())),
>        Environment(parseEnvironment(getEnvironmentName())),
> @@ -413,7 +398,6 @@
>  Triple::Triple(const Twine &ArchStr, const Twine &VendorStr, const Twine
> &OSStr)
>      : Data((ArchStr + Twine('-') + VendorStr + Twine('-') + OSStr).str()),
>        Arch(parseArch(ArchStr.str())),
> -      SubArch(parseSubArch(ArchStr.str())),
>        Vendor(parseVendor(VendorStr.str())),
>        OS(parseOS(OSStr.str())),
>        Environment(), ObjectFormat(Triple::UnknownObjectFormat) {
> @@ -430,7 +414,6 @@
>      : Data((ArchStr + Twine('-') + VendorStr + Twine('-') + OSStr +
> Twine('-') +
>              EnvironmentStr).str()),
>        Arch(parseArch(ArchStr.str())),
> -      SubArch(parseSubArch(ArchStr.str())),
>        Vendor(parseVendor(VendorStr.str())),
>        OS(parseOS(OSStr.str())),
>        Environment(parseEnvironment(EnvironmentStr.str())),
> @@ -822,6 +805,7 @@
>    case llvm::Triple::x86:
>    case llvm::Triple::xcore:
>    case llvm::Triple::spir:
> +  case llvm::Triple::kalimba:
>      return 32;
>
>    case llvm::Triple::arm64:
>
>
>
> Member of the CSR plc group of companies. CSR plc registered in England and
> Wales, registered number 4187346, registered office Churchill House,
> Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
> More information can be found at www.csr.com. Keep up to date with CSR on
> our technical blog, www.csr.com/blog, CSR people blog, www.csr.com/people,
> YouTube, www.youtube.com/user/CSRplc, Facebook,
> www.facebook.com/pages/CSR/191038434253534, or follow us on Twitter at
> www.twitter.com/CSR_plc.
> New for 2014, you can now access the wide range of products powered by aptX
> at www.aptx.com.
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



More information about the llvm-dev mailing list