pub enum EffectRange {
All,
Some(HashSet<Operand>),
}Variants§
Implementations§
Source§impl EffectRange
impl EffectRange
Sourcepub fn can_conflict(&self, another: &EffectRange, indvar: &Operand) -> bool
pub fn can_conflict(&self, another: &EffectRange, indvar: &Operand) -> bool
Check if two effect ranges conflict when parallelized. TODO-TLE: use a more efficient way to check conflict, separate in parallel_analysis
Sourcepub fn can_alias(&self, another: &EffectRange) -> bool
pub fn can_alias(&self, another: &EffectRange) -> bool
Check if two effect ranges can alias.
Sourcepub fn merge(&mut self, another: &EffectRange)
pub fn merge(&mut self, another: &EffectRange)
Merge two effect ranges.
Sourcepub fn get_single(&self) -> Option<&Operand>
pub fn get_single(&self) -> Option<&Operand>
Get the only operand if the effect range contains only one operand.
Trait Implementations§
Source§impl Clone for EffectRange
impl Clone for EffectRange
Source§fn clone(&self) -> EffectRange
fn clone(&self) -> EffectRange
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Default for EffectRange
impl Default for EffectRange
Source§impl From<Operand> for EffectRange
impl From<Operand> for EffectRange
Source§impl PartialEq for EffectRange
Check if two effect range must be the same.
impl PartialEq for EffectRange
Check if two effect range must be the same.
Auto Trait Implementations§
impl Freeze for EffectRange
impl !RefUnwindSafe for EffectRange
impl !Send for EffectRange
impl !Sync for EffectRange
impl Unpin for EffectRange
impl !UnwindSafe for EffectRange
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more