Home | History | Annotate | Download | only in crankshaft

Lines Matching full:effects

15 // An example implementation of effects that doesn't collect anything.
54 // by the type of the state and the effects collected while walking over the
58 // in control flow order, and the "Effects" collect summary information about
59 // which facts could be invalidated on other control flow paths. The effects
62 // each block at most twice; once for state, and optionally once for effects.
64 // The flow engine requires the State and Effects classes to implement methods
66 // an effects implementation for local analysis.
67 template <class State, class Effects>
91 // block, starting with the initial state. Computes effects for nested loops.
107 // Apply loop effects before analyzing loop body.
139 // Computes and caches the loop effects for the loop which has the given
141 Effects* ComputeLoopEffects(HBasicBlock* block) {
143 Effects* effects = loop_effects_[block->block_id()];
144 if (effects != NULL) return effects; // Already analyzed this loop.
146 effects = new(zone_) Effects(zone_);
147 loop_effects_[block->block_id()] = effects;
148 if (effects->Disabled()) return effects; // No effects for this analysis.
156 // Recursively compute and cache the effects of the nested loop.
158 Effects* nested = ComputeLoopEffects(member);
159 effects->Union(nested, zone_);
163 // Process all the effects of the block.
167 effects->Process(it.Current(), zone_);
171 return effects;
213 ZoneList<Effects*> loop_effects_; // Loop effects (by block id).