[LLVMdev] Tablegen binary literals

Adam Nemet anemet at apple.com
Wed Jul 30 23:28:55 PDT 2014


On Jul 30, 2014, at 10:56 PM, Pete Cooper <peter_cooper at apple.com> wrote:

> Hi Adam
>> On Jul 30, 2014, at 10:28 PM, Adam Nemet <anemet at apple.com> wrote:
>> 
>> Hi Pete,
>> 
>> Just to clarify, are you proposing two things here?  First, 0b… literals to have type bits<n> and second to allow bits<n> initializer to  contain other bits<m> elements which would initialize the next m elements.
>> 
> Yeah, exactly those 2 things.  I have them in separate patches, but I think we only get the benefit from sized binary literals if we also allow them to initialize multiple bits in another bits<n> type.

Looks like bits<n> is already valid in a bits initializer context; it yields the bottom bit.

def a {
  bits<2> opc = { 0, 1 };
  bits<2> opc2 = { 1, 0 };
  bits<2> oo = { opc, opc2 };
}

is valid and produces:

..
  bits<2> oo = { 1, 0 };
..

Are you aware of this?  This may lead to some ambiguity with your proposed extension.  (I have no idea whether this behavior is relied on anywhere though.)

Adam

> 
> Thanks,
> Pete
>> I.e. I don’t think we currently accept:
>> 
>> bits<4> x = { opc, opc }
>> 
>> Thanks,
>> Adam
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140730/adadf299/attachment.html>


More information about the llvm-dev mailing list