Hi all
I am trying to add read barriers mechanism in DRLVM ( just for practice :=)
)
As the first step, I am inserting read barrier inst in HIR,
I define a new modifier set like this:
enum LoadModifier {
Load_NoReadBarrier = 0x1 << 27,
Load_ReadBarrier = 0x2 << 27,
Load_Mask = 0x3 << 27,
LoadModifier_IsShiftedBy = 27,
LoadModifier_BitsToEncode = 1,
LoadModifier_BitsConsumed = 2
};
it will be used in TauLdInd.
My question is about Instoptimizer of MemoryValueNumberingPass, I am not
familiar with it.
First,
What is this pass mainly used for?
Second,
In the caseTauStInd case of the switch in dispatch method:
Modifier mod(Modifier(inst->getAutoCompressModifier()) |
Modifier(Speculative_No) );
setHashToInst(inst, getKey(Operation(Op_TauLdInd, inst->getType(), mod),
addrOp->getId()));
What does it do here? Why is Op_TauLdInd used in a caseTauStInd case?
Thanks!
--
>From : [EMAIL PROTECTED] School of Fudan University