[LLVMdev] Packages

Reid Spencer reid at x10sys.com
Mon Nov 17 23:41:02 PST 2003


On Mon, 2003-11-17 at 21:42, Chris Lattner wrote:
> 
> >      5. The ExtraInfo class supports pure virtual methods that are
> >         invoked by LLVM to notify its subclass(es) when an optimization
> >         causes a function, type or global variable to be deleted. No
> >         other notifications should be necessary.
> 
> This sounds _extremely_ limited.  What if the optimizer deletes arguments
> to functions?  Presumably your information will have to be updated, right?
> What if it specializes the function because every caller has some
> property?
> 
> -Chris

Yeah, you're right. I thought about it some more after I posted and it
boils down to ExtraInfo actually needing to be notified about EVERY
change. Not fun.

I've managed to get myself completely confused on this subject, but have
just shed some "old think" from previous compilers.  The "old think" is
that the source level symbol stuff must be completely segregated from
the program itself (e.g. ELF debug sections).

But why?  Why shouldn't the source level information be coded right into
the bytecode as part of the program? Why shouldn't it undergo
optimization?  The only thing that I would need is a some kind of
linkage class or flag that says "never, ever delete this". If that was
the case, I could use the full expression of LLVM assembly language to
describe my source level information.  No?

This being the case, I could emit a function in each module that returns
the source level information. To look at it, I just JIT load the module
and call the function.  Any barriers to doing this?

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/20031117/45d676cc/attachment.sig>


More information about the llvm-dev mailing list