[LLVMdev] n-bit bytes for clang/llvm

Patrik Hägglund H patrik.h.hagglund at ericsson.com
Wed Mar 11 01:37:08 PDT 2015

> It's definitely doable, but I'd be worried about the maintenance burden.

Yes, that is a problem.

We are currently not allowed to reveal our target (which has 16-bit bytes, and registers with non-power-of-two bit widths) fully, and therefore not able to submit it upstream. One idea we have toyed with is to create a simple "dummy" version of our target, just to be able complement patches with tests. For 16-bit byte support we may also pick some existing simple architecture, such as DCPU-16 or TI C54x. One other idea is just to have the changes on a branch upstream.

/Patrik Hägglund

From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Reid Kleckner
Sent: den 10 mars 2015 17:09
To: Tyro Software
Cc: LLVM Developers Mailing List
Subject: Re: [LLVMdev] n-bit bytes for clang/llvm

It's definitely doable, but I'd be worried about the maintenance burden. Beyond contributing the initial patches, I'd want to see a maintenance commitment and relatively comprehensive tests that can be run upstream.

For example, if there were an i24 MVT, how would I test my target independent SDAG change that operates on all integer values? Currently, our answer to that question is "find a backend that uses it and test that". Without such a backend, it's hard for us to promise that this support will continue to work.

On Tue, Mar 10, 2015 at 3:12 AM, Tyro Software <softwaretyro at gmail.com> wrote:
Back in 2009 there was some discussion of the practicality of supporting char sizes greater than 8-bit:


with the consensus seemingly being "quite doable, please get a good patch and submit".

However the current code appears (to my neophyte eyes) to be explicitly 8-bit, e.g. one instance called out in the mail thread remains:

/// isString - This method returns true if this is an array of i8.
bool ConstantDataSequential::isString() const {
  return isa<ArrayType>(getType()) && getElementType()->isIntegerTy(8);

I didn't find anything related beyond this mail thread such as a discussion of a patch but of course I might be searching too narrowly - perhaps someone here can recall whether it went any further, whether insurmountable barriers do exist, etc?

Thanks for whatever advice & thread necromancy you can offer,

LLVM Developers mailing list
LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu

More information about the llvm-dev mailing list