Question about addr capture
Shuxin Yang
shuxin.llvm at gmail.com
Fri Mar 22 14:48:04 PDT 2013
Hi,
Arnold just show me a crazy contrived example which I think it is
really hard, if not impossible, to analyze.
Thank you all for the input.
Shuxin
On 3/22/13 1:45 PM, Duncan Sands wrote:
> Hi Shuxin,
>
> On 22/03/13 18:56, Shuxin Yang wrote:
>> Hi, list:
>>
>> Would someone shed some light on the following code. How can
>> an address
>> be captured via icmp?
>
> using icmp you can determine each bit of the value, one by one, and then
> reconstruct the value from those bits.
>
> Ciao, Duncan.
>
> PS: I think there are some fairly comprehensive test cases for capture
> tracking,
> and they are commented IIRC. If you disable some logic, like this,
> you should
> see a test case fail. Hopefully it should then become clear from the
> test case
> what the issue is.
>
>>
>> Thanks
>> Shuxin
>>
>> cat -n lib/Analysis/CaptureTracking.cpp
>> ==========================
>> 157 case Instruction::ICmp:
>> 158 // Don't count comparisons of a no-alias return value
>> against null as
>> 159 // captures. This allows us to ignore comparisons of malloc
>> results
>> 160 // with null, for example.
>> 161 if (isNoAliasCall(V->stripPointerCasts()))
>> 162 if (ConstantPointerNull *CPN =
>> 163 dyn_cast<ConstantPointerNull>(I->getOperand(1)))
>> 164 if (CPN->getType()->getAddressSpace() == 0)
>> 165 break;
>> 166 // Otherwise, be conservative. There are crazy ways to
>> capture pointers
>> 167 // using comparisons.
>> 168 if (Tracker->captured(U))
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list