<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">I've been playing around with clang/LLVM looking at adding partial support for the draft technical report for embedded C extensions (TR18037, <A href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1169.pdf"><FONT class="Apple-style-span" color="#001FE8">http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1169.pdf</FONT></A>), specifically named address spaces.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>Named address spaces need to be tracked in LLVM in essentially all the same places that alignment is tracked, which necessitates adding the information to the .bc format. Given the Apple has shipped .bc files I'm guessing that backwards compatibility is very important. Given this and the work I see happening on using the newish serialize/deserialize infrastructure what is the pattern for extending the .bc format in a backwards compatible way? Is it safe to add records to the writer for an instruction and predicate parts of the reader based on the number of records present so that old .bc files with fewer records for that entry should still be able to be read?</DIV><DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV>--</DIV><DIV>Christopher Lamb</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR class="Apple-interchange-newline"></SPAN></SPAN> </DIV><BR></DIV></BODY></HTML>