On Mon, Jan 31, 2011 at 10:57 PM, Talin <span dir="ltr"><<a href="mailto:viridia@gmail.com">viridia@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

I notice that there's a lot of inconsistency in the various LLVM classes with respect to convenience methods. Here's some examples:<div><br></div><div>For creating GEPS, IRBuilder has:<br><div><br></div><div>  CreateGEP (2 overloads)</div>


<div>  CreateInBoundsGEP (2 overloads)</div><div><div>  CreateConstGEP1_32</div><div>  CreateConstInBoundsGEP1_32</div><div>  CreateConstGEP2_32</div><div>
  CreateConstInBoundsGEP2_32</div><div>  CreateConstGEP1_64</div><div>  CreateConstInBoundsGEP1_64</div><div>  CreateConstGEP2_64</div><div>  CreateConstInBoundsGEP2_64</div><div>  CreateStructGEP</div><div><br></div><div>


All of which are very useful. However, ConstExpression only has:</div><div><br></div><div><div>  getGetElementPtr</div><div>  getGetElementPtr</div><div>  getInBoundsGetElementPtr</div><div>  getInBoundsGetElementPtr</div>


</div><div><br></div><div>It would be nice if ConstantExpr's GEP-building methods used the same naming convention and had the same convenience methods as IRBuilder. (In fact, the naming convention between IRBuilder and the various Constants.h classes desperately needs to be reconciled, a point which I am sure everyone is painfully aware of.)</div>


<div><br></div><div>Another thing I'd like to see is for ConstantArray::get(), ConstantStruct::get() and ConstantVector::get() to have an overload that takes an iterator pair like IRBuilder's CreateGEP and CreateCall methods. Also useful for creating small structs would be overloads for ConstantStruct::get that took 1-4 arguments, instead of having to create a vector every time. Even better would be an "end with null" version, like StructType::get() does. These should be added to FunctionType::get() as well.</div>

</div></div></blockquote><div><br></div><div>By the way, the reason I'm asking this is because I thought I might spend some time adding the convenience methods myself - but if there is a plan underway to fix up the APIs or resolve the incompatibilities with the naming conventions I don't want to get in the way of that.</div>

<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div>
<div><br></div></div><div>-- <br>-- Talin<br>
</div></div>
</blockquote></div><br>