[LLVMdev] More Encoding Ideas

Reid Spencer reid at x10sys.com
Fri Aug 20 18:14:00 PDT 2004


On Fri, 2004-08-20 at 17:55, Robert Mykland wrote:
> At 05:09 PM 8/20/2004, Chris Lattner wrote:
> >
> >If you're interested in the plans, they are described in some detail here:
> >http://nondot.org/sabre/LLVMNotes/TypeSystemChanges.txt
> >
> >Note that there is no concrete timeline for this to happen, it basically
> >depends on when someone is ambitious enough to start working on it.
> >
> >In any case, both signed and unsigned 8-bit constants can be written out
> >in a single byte.  Again, do you think it's worth special casing this
> >though?  Considering that we handle 8-bit strings specially already, there
> >are not a ton of 8-bit constants with value >= 128.
> 
> I'd rather that they not be treated specially.  If char defaulted to 
> unsigned char, there would be little reason to create this special case.

Actually, this isn't a very big deal. Its just handled in a switch()
statement now so I just make a couple more cases that handle the
UByteTyID and SByteTyID separately. 

I'll probably include this in 1.4

> > > > This approach would have the added advantage of being able to check to
> > > > see whether anything is a pointer type by checking bit 0 (1 = yes) and
> > > > deriving its dereferenced type (just subtract 1).
> >
> >I don't think this is a big win, the .bc reader doesn't have to do much of
> >this.
> 
> I know my reader does this.  I'm not really sure how much time it spends 
> doing it.  My little code generator spends a lot of time going back and 
> forth between pointers and literal values when turning certain kinds of 
> memory operations into data movement in the Ascenium array.

I will probably make this change in 1.4 to eek out a few more bytes of
savings from the file and since it will help Robert.

> > > > 4) Can files have multiple 0x01 headers?  I've never seen more than
> > > > one.  If not, ditch this four bytes of unnecessary space per file.
> > >
> > > I think the original plan was to have multiple modules in them but this 
> > seems
> > > to have gone by the wayside. The result of linking two (or more) 
> > modules is a
> > > single module so except in some really bizare corner cases the need for
> > > multiple modules would go away. I suppose we could get rid of the block id
> > > field for the file. I'll give this some thought and see if Chris has any
> > > objections.
> >
> >I don't have any problem with removing it.
> 
> Cool. Before you chop remember debug libraries.

Sorry, I'm missing the context here. Why would this affect debug
libraries?

Reid
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20040820/2fae433a/attachment.sig>


More information about the llvm-dev mailing list