[LLVMdev] flag_unit_at_a_time and pass scheduling in llvm-gcc

Devang Patel dpatel at apple.com
Thu Apr 17 09:24:46 PDT 2008


On Apr 17, 2008, at 2:26 AM, Duncan Sands wrote:

> Hi Devang,
>
>>> this flag is used quite a bit in llvm-backend.cpp, for example:
>>>
>>>   if (flag_unit_at_a_time) {
>>>     PM->add(createGlobalOptimizerPass());       // Optimize out
>>> global vars
>>>     PM->add(createGlobalDCEPass());             // Remove unused
>>> fns and globs
>>>     PM->add(createIPConstantPropagationPass()); // IP Constant
>>> Propagation
>>>     PM->add(createDeadArgEliminationPass());    // Dead argument
>>> elimination
>>>   }
>>>
>>> I thought I understood why but it seems that I don't :)
>>
>> IMO, we should avoid using flag_unit_at_a_time here.
>
> given DannyB's explanation that this flag exists in gcc so that glibc
> works properly in spite of abusing ASM, perhaps this logic in llvm- 
> backend
> also exists to ensure that glibc works?

I have no idea what this is the case or not.

>
>
> Ciao,
>
> Duncan.




More information about the llvm-dev mailing list