Is there some documentation about metadata and how to use it somewhere? The doxygen-generated stuff obviously doesn't specify things like how to create custom metadata kinds and all that jazz. As a few of us discussed at the latest dev meeting, I'd like to use custom metadata to annotate load/store instructions with "nontemporal" semantics to allow generation of instructions like MOVNT on x86-based targets. Losing the "nontemporal" annotation won't affect correctness so it seems a prime candidate for metadata. One question: should "nontemporal" be "native" metadata or "external?" -Dave
On Jan 4, 2010, at 3:14 PM, David Greene wrote:> Is there some documentation about metadata and how to use it > somewhere? > The doxygen-generated stuff obviously doesn't specify things like how > to create custom metadata kinds and all that jazz.The metadata design and APIs are still evolving. I wouldn't recommend building anything on it just yet, but I'm hoping it will finalize and stabilize this month. The high-level idea and proposal was here: http://nondot.org/sabre/LLVMNotes/ExtensibleMetadata.txt> As a few of us discussed at the latest dev meeting, I'd like to use > custom metadata to annotate load/store instructions with "nontemporal" > semantics to allow generation of instructions like MOVNT on x86-based > targets. Losing the "nontemporal" annotation won't affect correctness > so it seems a prime candidate for metadata. > > One question: should "nontemporal" be "native" metadata or "external?"This seems like a very reasonable use of metadata to me! -Chris
On Monday 04 January 2010 19:22, Chris Lattner wrote:> On Jan 4, 2010, at 3:14 PM, David Greene wrote: > > Is there some documentation about metadata and how to use it > > somewhere? > > The doxygen-generated stuff obviously doesn't specify things like how > > to create custom metadata kinds and all that jazz. > > The metadata design and APIs are still evolving. I wouldn't recommend > building anything on it just yet, but I'm hoping it will finalize and > stabilize this month. The high-level idea and proposal was here: > http://nondot.org/sabre/LLVMNotes/ExtensibleMetadata.txtCool. Is the goal to have it ready for 2.7? The nontemporal stuff is a rather large cause of merge conflicts for us and it would be nice to get it into the public repository before 2.7 is out. -Dave