+
+ public void traverseStallSite(
+ FlatSESEEnterNode rblock,
+ TempDescriptor invar,
+ Hashtable<Taint, Set<Effect>> effects,
+ Hashtable<Taint, Set<Effect>> conflicts,
+ ReachGraph rg) {
+
+
+ TypeDescriptor type = invar.getType();
+ if(type == null || type.isPrimitive()) {
+ return;
+ }
+
+ //created stores nodes with specific alloc sites that have been traversed while building
+ //internal data structure. It is later traversed sequentially to find inset variables and
+ //build output code.
+ Hashtable<AllocSite, ConcreteRuntimeObjNode> created = new Hashtable<AllocSite, ConcreteRuntimeObjNode>();
+ VariableNode varNode = rg.getVariableNodeNoMutation(invar);
+ Hashtable<AllocSite, EffectsGroup> effectsLookupTable;
+
+ effectsLookupTable = generateEffectsLookupTable(rblock, varNode, effects, conflicts);
+ createConcreteGraph(effectsLookupTable, created, varNode);
+
+ if (!created.isEmpty()) {
+ rblock.addInVarForDynamicCoarseConflictResolution(invar);
+ printCMethods(created, invar.getSafeSymbol(), rblock.getPrettyIdentifier());
+ }
+
+ }