[llvm-commits] [llvm] r128452 - /llvm/trunk/lib/CodeGen/StackProtector.cpp

Bill Wendling isanbard at gmail.com
Tue Mar 29 00:06:40 PDT 2011


On Mar 28, 2011, at 10:35 PM, Eli Friedman wrote:

> On Mon, Mar 28, 2011 at 10:15 PM, Bill Wendling <isanbard at gmail.com> wrote:
>> Author: void
>> Date: Tue Mar 29 00:15:48 2011
>> New Revision: 128452
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=128452&view=rev
>> Log:
>> Don't try to add stack protector logic to a dead basic block. It messes up
>> dominator information.
>> 
>> Modified:
>>    llvm/trunk/lib/CodeGen/StackProtector.cpp
>> 
>> Modified: llvm/trunk/lib/CodeGen/StackProtector.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StackProtector.cpp?rev=128452&r1=128451&r2=128452&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/StackProtector.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/StackProtector.cpp Tue Mar 29 00:15:48 2011
>> @@ -150,9 +150,11 @@
>>   BasicBlock *FailBBDom = 0;    // FailBB's dominator.
>>   AllocaInst *AI = 0;           // Place on stack that stores the stack guard.
>>   Value *StackGuardVar = 0;  // The stack guard variable.
>> +  BasicBlock &Entry = F->getEntryBlock();
>> 
>>   for (Function::iterator I = F->begin(), E = F->end(); I != E; ) {
>>     BasicBlock *BB = I++;
>> +    if (BB->getNumUses() == 0 && BB != &Entry) continue;
> 
> That isn't a safe way to query whether a block is usable... if you
> have domtree, why not just use "DT->isReachableFromEntry(BB)"?
> 
It's probably rather slow. Why isn't this safe?

-bw





More information about the llvm-commits mailing list