pub enum IntegerOverflowFlagsAttr {
None,
Nsw,
Nuw,
}
Expand description
Integer overflow flags for arithmetic operations. The description below is from LLVM’s release notes that added the flags. “nsw” and “nuw” bits indicate that the operation is guaranteed to not overflow (in the signed or unsigned case, respectively). This gives the optimizer more information and can be used for things like C signed integer values, which are undefined on overflow.
Variants§
Trait Implementations§
source§impl Attribute for IntegerOverflowFlagsAttr
impl Attribute for IntegerOverflowFlagsAttr
source§fn get_attr_id(&self) -> AttrId
fn get_attr_id(&self) -> AttrId
Get an Attribute’s static name. This is not per instantnce.
It is mostly useful for printing and parsing the attribute.
source§fn get_attr_id_static() -> AttrId
fn get_attr_id_static() -> AttrId
Same as get_attr_id, but without the self reference.
source§fn verify_interfaces(&self, ctx: &Context) -> Result<()>
fn verify_interfaces(&self, ctx: &Context) -> Result<()>
Verify all interfaces implemented by this attribute.
source§fn register_attr_in_dialect<A>(
dialect: &mut Dialect,
attr_parser: for<'a> fn(_: &'a (), _: ()) -> Box<dyn Parser<Stream<Stream<Stream<Stream<IteratorStream<CharIterator<'a>>, SourcePosition>>>, State<'a>>, PartialState = (), Output = A> + 'a>
)
fn register_attr_in_dialect<A>( dialect: &mut Dialect, attr_parser: for<'a> fn(_: &'a (), _: ()) -> Box<dyn Parser<Stream<Stream<Stream<Stream<IteratorStream<CharIterator<'a>>, SourcePosition>>>, State<'a>>, PartialState = (), Output = A> + 'a> )
Register this attribute’s AttrId in the dialect it belongs to.
source§impl Clone for IntegerOverflowFlagsAttr
impl Clone for IntegerOverflowFlagsAttr
source§fn clone(&self) -> IntegerOverflowFlagsAttr
fn clone(&self) -> IntegerOverflowFlagsAttr
Returns a copy 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 Debug for IntegerOverflowFlagsAttr
impl Debug for IntegerOverflowFlagsAttr
source§impl Parsable for IntegerOverflowFlagsAttr
impl Parsable for IntegerOverflowFlagsAttr
§type Parsed = IntegerOverflowFlagsAttr
type Parsed = IntegerOverflowFlagsAttr
The type of the parsed entity.
source§fn parse<'a>(
state_stream: &mut StateStream<'a>,
_arg: Self::Arg
) -> ParseResult<'a, Self>
fn parse<'a>( state_stream: &mut StateStream<'a>, _arg: Self::Arg ) -> ParseResult<'a, Self>
Define a parser using existing combinators and call
into
on Parser::parse_stream to get the final ParseResult.
Use state_stream.state as necessary.source§fn parser<'a>(
arg: Self::Arg
) -> Box<dyn Parser<Stream<Stream<Stream<Stream<IteratorStream<CharIterator<'a>>, SourcePosition>>>, State<'a>>, PartialState = (), Output = Self::Parsed> + 'a>
fn parser<'a>( arg: Self::Arg ) -> Box<dyn Parser<Stream<Stream<Stream<Stream<IteratorStream<CharIterator<'a>>, SourcePosition>>>, State<'a>>, PartialState = (), Output = Self::Parsed> + 'a>
Get a parser combinator that can work on StateStream as its input.
source§fn parser_fn<'a>(
_: &'a (),
arg: Self::Arg
) -> Box<dyn Parser<Stream<Stream<Stream<Stream<IteratorStream<CharIterator<'a>>, SourcePosition>>>, State<'a>>, PartialState = (), Output = Self::Parsed> + 'a>
fn parser_fn<'a>( _: &'a (), arg: Self::Arg ) -> Box<dyn Parser<Stream<Stream<Stream<Stream<IteratorStream<CharIterator<'a>>, SourcePosition>>>, State<'a>>, PartialState = (), Output = Self::Parsed> + 'a>
Same as Self::parser but takes a unit reference for use as ParserFn
source§impl PartialEq for IntegerOverflowFlagsAttr
impl PartialEq for IntegerOverflowFlagsAttr
source§fn eq(&self, other: &IntegerOverflowFlagsAttr) -> bool
fn eq(&self, other: &IntegerOverflowFlagsAttr) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl Printable for IntegerOverflowFlagsAttr
impl Printable for IntegerOverflowFlagsAttr
source§impl Verify for IntegerOverflowFlagsAttr
impl Verify for IntegerOverflowFlagsAttr
impl Eq for IntegerOverflowFlagsAttr
impl StructuralPartialEq for IntegerOverflowFlagsAttr
Auto Trait Implementations§
impl Freeze for IntegerOverflowFlagsAttr
impl RefUnwindSafe for IntegerOverflowFlagsAttr
impl Send for IntegerOverflowFlagsAttr
impl Sync for IntegerOverflowFlagsAttr
impl Unpin for IntegerOverflowFlagsAttr
impl UnwindSafe for IntegerOverflowFlagsAttr
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.