[cfe-commits] r106441 - in /cfe/trunk/lib: CodeGen/CGDeclCXX.cpp CodeGen/CodeGenModule.h Sema/SemaDeclAttr.cpp

Chris Lattner clattner at apple.com
Mon Jun 21 12:51:50 PDT 2010


On Jun 21, 2010, at 12:44 PM, Douglas Gregor wrote:

> 
> On Jun 21, 2010, at 12:40 PM, Chris Lattner wrote:
> 
>> 
>> On Jun 21, 2010, at 11:45 AM, Fariborz Jahanian wrote:
>> 
>>> Author: fjahanian
>>> Date: Mon Jun 21 13:45:05 2010
>>> New Revision: 106441
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=106441&view=rev
>>> Log:
>>> IRGen for implementation of init-priority attribute.
>>> Test case will be checked in llvm test suite.
>>> (finishes off radar 8076356).
>> 
>> Nice!
>> 
>>> +  if (!PrioritizedCXXGlobalInits.empty()) {
>>> +    std::vector<llvm::Constant*> LocalCXXGlobalInits;
>>> +    std::sort(PrioritizedCXXGlobalInits.begin(), 
>>> +              PrioritizedCXXGlobalInits.end());
>> 
>> Please use SmallVector and array_pod_sort (from llvm/ADT/STLExtras.h).  Smallvector saves a bit of time.  std::sort is generally bad because it instantiates into a ton of code.
> 
> 
> Shouldn't this be a stable_sort, so that globals with the same init_priority are emitted in the order in which they are seen?

Ah, good point.  This could be handled by adding making PrioritizedCXXGlobalInits be a 3 element tuple, which has the original index as the middle value?

-Chris



More information about the cfe-commits mailing list