Lines Matching defs:effects

41 /// considers terminator operations as dead if they have no side effects. This
46 // for side effects.
58 // If the operation has recursive effects, push all of the nested operations
70 // If the op has memory effects, try to characterize them to see if the op
73 // Check to see if this op either has no effects, or only allocates/reads
75 SmallVector<MemoryEffects::EffectInstance, 1> effects;
76 effectInterface.getEffects(effects);
80 for (const MemoryEffects::EffectInstance &it : effects)
85 if (!llvm::all_of(effects, [&allocResults](
87 // We can drop effects if the value is an allocation and is a result
98 // Otherwise, if the op only has recursive side effects we can treat the
99 // operation itself as having no effects. We will visit its children next.
104 // having effects.
108 // If we get here, none of the operations had effects that prevented marking
118 SmallVector<SideEffects::EffectInstance<MemoryEffects::Effect>, 4> effects;
119 memOp.getEffects(effects);
121 // Iterate through `effects` and check if an effect of type `EffectTy` and
123 for (auto &effect : effects) {
140 SmallVector<SideEffects::EffectInstance<MemoryEffects::Effect>, 4> effects;
141 memOp.getEffects(effects);
143 // Iterate through `effects` and check if an effect of type `EffectTy` and
145 for (auto &effect : effects) {
169 SmallVector<SideEffects::EffectInstance<MemoryEffects::Effect>, 4> effects;
170 memOp.getEffects(effects);
172 // Iterate through `effects` and check if an effect of type `EffectTy` and
174 for (auto &effect : effects) {
222 SmallVector<SideEffects::EffectInstance<MemoryEffects::Effect>, 4> effects;
223 memOp.getEffects(effects);
224 return llvm::any_of(effects, [&](MemoryEffects::EffectInstance &effect) {
240 SmallVector<SideEffects::EffectInstance<MemoryEffects::Effect>, 4> effects;
241 memOp.getEffects(effects);
242 return llvm::any_of(effects, [&](MemoryEffects::EffectInstance &effect) {
262 SmallVector<SideEffects::EffectInstance<MemoryEffects::Effect>, 4> effects;
263 memOp.getEffects(effects);
264 return llvm::any_of(effects, [&](MemoryEffects::EffectInstance &effect) {
320 // If the op does not have recursive side effects, then it is memory effect
326 // it does not have recursive side effects, then it cannot be known that the
340 // the returned vector may contain duplicate effects
343 SmallVector<MemoryEffects::EffectInstance> effects;
348 // If the operation has recursive effects, push all of the nested
363 effectInterface.getEffects(effects);
365 // the operation does not have recursive memory effects or implement
366 // the memory effect op interface. Its effects are unknown.
370 return effects;