[LLVMdev] Question about SimplifyXorInst

Bill Wendling wendling at apple.com
Tue Jul 26 04:08:40 PDT 2011

On Jul 20, 2011, at 6:24 AM, Xueying ZHANG wrote:

> Hi all,
> I am master student in Edinburgh, UK. I am doing my MSc project with  
> LLVM compiler and I have to modify LLVM to implement the StackGuard  
> with a XOR random Canary. However, I am not familiar with LLVM.
> My problem is that I want to XOR the random canary word with the  
> return address which are both 32 bits. I found a method called  
> SimplifyXorInst(Value *, Value *, const TargetData *,const  
> DominatorTree *, unsigned) but I do not know whether it is right  
> method and how to use it. Could you give me some advice or sample code  
> about it?
Hi Ying,

Like John said, it sounds like you want to modify the stack protector code. Look at this file:


and see if it could help you out. The SimplifyXorInst function is part of the "Instruction Combine" pass, which is an optimization pass. I doubt that it's the correct place to do what you're suggesting doing.


More information about the llvm-dev mailing list