<div dir="ltr">Originally, the distinguishing feature of "primitive" types was that they were enumerable and not parameterized on anything.<div><br></div><div>Then we moved to arbitrary bit-width integers types to generalize things significantly (the right move IMO).</div>
<div><br></div><div>Thus, integers were no longer technically primitive types, and their categorization in code has changed to reflect this.</div><div><br></div><div><br></div><div>But that doesn't make *any sense*. The documentation for primitive types also is still written in a way that would include integers.</div>
<div><br></div><div><br></div><div>I think we just need a new distinguishing criteria for primitive versus derived types, and (to me) one immediately presents itself. Derived types are types composed of some *other* LLVM type(s) and additional information. Primitive types are not decomposable into any other LLVM type. Thus, pointers, arrays, vectors, and structures are derived from other LLVM types, while integers are primitive types and just happen to be parameterized on a specific bitwidth.</div>
<div><br></div><div>If others agree, we should update both code and documentation to consistently document this distinction. Doing so would also require auditing *all* uses of the primitive information. I suspect there may be a few other places that should be clarified besides the one Joey points out.</div>
<div><br></div><div>CC-ing Chris as this is really his call.</div><div>-Chandler</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 11, 2013 at 4:52 PM, Keno Fischer <span dir="ltr"><<a href="mailto:kfischer@csail.mit.edu" target="_blank">kfischer@csail.mit.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The LLVM docs seem to indicate that integer types are considered primitive, however looking at the code I see `FirstDerivedTyID = IntegerTyID`, implying that integers are derived rather than primitive. Should the docs be updated?<br>


</div>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div>