Free memory used by initializers of global variables, created during linking

Manman Ren mren at apple.com
Fri Jan 9 15:08:01 PST 2015


> On Jan 9, 2015, at 12:43 PM, Rafael EspĂ­ndola <rafael.espindola at gmail.com> wrote:
> 
> On 9 January 2015 at 13:25, Manman Ren <mren at apple.com> wrote:
>> 
>> Hi Rafael,
>> 
>> Updated patch is attached. It updates the comments as suggested.
> 
> Looking nice.
> 
> Just two comments.
> 
> *) The full list of constant stores seems to be
> 
> ArrayConstants
> CAZConstants
> CDSConstants
> CPNConstants
> ExprConstants
> FPConstants
> InlineAsms
> IntConstants
> StructConstants
> VectorConstants
> UVConstants
> 
> So it looks like we are still missing
> 
> CAZConstants
> CPNConstants
> FPConstants
> InlineAsms
> IntConstants
> UVConstants

CAZConstants, CPNConstants and UVConstants are special constants (AggregateZero, PointerNull, UndefValue), it is likely that they will occupy a small amount of space and will be used quite often.
Same arguments apply to IntConstants and FPConstants.

But for completeness, we can include them.

InlineAsm is not a subclass of Constant.

> 
> * Deleting a constant can cause other constants to become dead. Should
> we iterate until no constants are deleted in a pass?

Theoretically yes, deleting a constant can cause other constants used by it, to be dead.

Cheers,
Manman

> 
> Cheers,
> Rafael





More information about the llvm-commits mailing list