[LLVMdev] GSoC'09 question - previous mail w/o html

Mihai Balint mihai at cs.upt.ro
Sat Mar 28 01:34:28 PDT 2009


On Mar 28, 2009, at 4:39 AM, Anthony Danalis wrote:
> On Mar 27, 2009, at 9:15 PM, Dan Gohman wrote:
>>
>> On Mar 26, 2009, at 8:28 AM, Mihai Balint wrote:
>>> This summer however, I plan to create an "optimization" that
>>> automatically fixes memory leaks in programs - obviously only those
>>> that can be fixed with the available information, for example:
>>
>> Hello,
>>
>> This doesn't sound advisable.  A memory leak in a normal C/C++  
>> program
>> is a bug, so this wouldn't be an optimization -- it'd be a
>> transformation that
>> unreliably hides bugs.
>>
> It doesn't sound correct either.  I, for one, have a multithreaded
> code where all "created" threads allocate "request" objects, put them
> in a list and wake up the main thread.  The main thread on the other
> hand sleeps, consumes requests, frees the objects it consumed and goes
> back to sleep in a loop.  There is no path between the malloc() and
> the free(), but that's how it is supposed to be, there is no leak.
>

You are right it's not an optimization, it is a bug-fixing  
transformation and I wasn't really planning on being totally silent  
and covert about anything I find (fixable or not).

Regarding precision, without a minimum of real-world case studies not  
much can be said, but I will insert fix code only for allocations that  
do not escape (via returns, arguments, member fields or global  
variables) and are deleted on an viable alternate CFG path. Granted, I  
will loose some leaks but the ones I do find are likely fixable.

I'll prepare a short project proposal with a summary of the approach  
and some expected goals, however this feels like research material and  
I don't know if it is eligible for GSoC funding....

best wishes,

Mihai.



More information about the llvm-dev mailing list