<p dir="ltr"><br>
On Aug 4, 2015 8:12 AM, "Benjamin Kramer" <<a href="mailto:benny.kra@gmail.com">benny.kra@gmail.com</a>> wrote:<br>
><br>
><br>
> > On 04.08.2015, at 17:08, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br>
> ><br>
> ><br>
> > On Aug 4, 2015 7:51 AM, "Benjamin Kramer" <<a href="mailto:benny.kra@googlemail.com">benny.kra@googlemail.com</a>> wrote:<br>
> > ><br>
> > > Author: d0k<br>
> > > Date: Tue Aug  4 09:46:06 2015<br>
> > > New Revision: 243987<br>
> > ><br>
> > > URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D243987-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=3rVJrunpH5A88mZvLoRNfHlJC99oebUqeXv35ZhOtlE&s=Qiebg2LkmjnlZfodcRybgrjZdIB90JhmOVRFWW-T04k&e=">http://llvm.org/viewvc/llvm-project?rev=243987&view=rev</a><br>
> > > Log:<br>
> > > [Sema] Allocate SmallVector to the right size.<br>
> > ><br>
> > > SmallVector::set_size does not reallocate the vector. Sadly I have no<br>
> > > idea how to test this. The vector never has more than one member in all<br>
> > > of the regression tests.<br>
> ><br>
> > Could try adding an assert and self hosting to find a non-singular case? But yeah, I get that's probably not worth it.<br>
><br>
> We may have crazy templated code in LLVM, but I'm 100% sure that we don't have any friend functions with multiple template parameter lists ;)</p>
<p dir="ltr">Fair - I figured it might turn up in some stl implementation pieces etc. But boost or the like is perhaps more likely.</p>
<p dir="ltr">> > Should we rename set_size something more intimidating/scary? That, or I'd love to remove it...<br>
><br>
> Naming suggestions welcome. Removing it is probably not feasible as raw_svector_ostream relies on it.</p>
<p dir="ltr">Yeah... Not sure what the right answer there.</p>
<p dir="ltr">A while back I made a half hearted attempt to replace smallvector with std::vector just to see how much perf the optimizations were getting us (because there were some ops in smallvector and other containers that werent so well defined (inserting subranges into the container the subranges was in))</p>
<p dir="ltr">><br>
> - Ben<br>
><br>
> > ><br>
> > > Found by inspection.<br>
> > ><br>
> > > Modified:<br>
> > >     cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp<br>
> > ><br>
> > > Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp<br>
> > > URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_cfe_trunk_lib_Sema_SemaTemplateInstantiateDecl.cpp-3Frev-3D243987-26r1-3D243986-26r2-3D243987-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=BSqEv9KvKMW_Ob8SyngJ70KdZISM_ASROnREeq0cCxk&m=3rVJrunpH5A88mZvLoRNfHlJC99oebUqeXv35ZhOtlE&s=xS0fNBlKFEKatSMnU0vLrzg93tjgRbEQsCqPXO29HSs&e=">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=243987&r1=243986&r2=243987&view=diff</a><br>
> > > ==============================================================================<br>
> > > --- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (original)<br>
> > > +++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Tue Aug  4 09:46:06 2015<br>
> > > @@ -1657,7 +1657,7 @@ TemplateDeclInstantiator::VisitCXXMethod<br>
> > >    SmallVector<TemplateParameterList *, 4> TempParamLists;<br>
> > >    unsigned NumTempParamLists = 0;<br>
> > >    if (isFriend && (NumTempParamLists = D->getNumTemplateParameterLists())) {<br>
> > > -    TempParamLists.set_size(NumTempParamLists);<br>
> > > +    TempParamLists.resize(NumTempParamLists);<br>
> > >      for (unsigned I = 0; I != NumTempParamLists; ++I) {<br>
> > >        TemplateParameterList *TempParams = D->getTemplateParameterList(I);<br>
> > >        TemplateParameterList *InstParams = SubstTemplateParams(TempParams);<br>
> > ><br>
> > ><br>
> > > _______________________________________________<br>
> > > cfe-commits mailing list<br>
> > > <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
> > > <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
><br>
</p>