<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/utils/TableGen/Basic/CodeGenIntrinsics.h, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[Intrinsics] Add support for range attributes (#135642)</title>
<updated>2025-04-17T09:11:00+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-04-17T09:11:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c3c0b27f2d34cd106df278afc378c30fe493f513'/>
<id>c3c0b27f2d34cd106df278afc378c30fe493f513</id>
<content type='text'>
Add support for specifying range attributes in Intrinsics.td. Use this
to specify the ucmp/scmp range [-1,2).

This case is trickier than existing intrinsic attributes, because we
need to create the attribute with the correct bitwidth. As such, the
attribute construction now needs to be aware of the function type.

We also need to be careful to no longer assign attributes on intrinsics
with invalid signatures, as we'd make invalid assumptions about the
number of arguments etc otherwise.

Fixes https://github.com/llvm/llvm-project/issues/130179.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add support for specifying range attributes in Intrinsics.td. Use this
to specify the ucmp/scmp range [-1,2).

This case is trickier than existing intrinsic attributes, because we
need to create the attribute with the correct bitwidth. As such, the
attribute construction now needs to be aware of the function type.

We also need to be careful to no longer assign attributes on intrinsics
with invalid signatures, as we'd make invalid assumptions about the
number of arguments etc otherwise.

Fixes https://github.com/llvm/llvm-project/issues/130179.</pre>
</div>
</content>
</entry>
<entry>
<title>[LLVM][TableGen] Check overloaded intrinsic mangling suffix conflicts (#110324)</title>
<updated>2024-10-15T15:15:57+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-10-15T15:15:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2a0073f6b50e8ae8f08dcf9c29d90503ac7816ae'/>
<id>2a0073f6b50e8ae8f08dcf9c29d90503ac7816ae</id>
<content type='text'>
Check name conflicts between intrinsics caused by mangling suffix.

If the base name of an overloaded intrinsic is a proper prefix of
another intrinsic, check if the other intrinsic name suffix after the
proper prefix can match a mangled type and issue an error if it can.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check name conflicts between intrinsics caused by mangling suffix.

If the base name of an overloaded intrinsic is a proper prefix of
another intrinsic, check if the other intrinsic name suffix after the
proper prefix can match a mangled type and issue an error if it can.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][TableGen] Change `CodeGenIntrinsics` to use const references (#111219)</title>
<updated>2024-10-05T08:01:32+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-10-05T08:01:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=91fdfec263ff2b8e88433c4294a550cabb0f2314'/>
<id>91fdfec263ff2b8e88433c4294a550cabb0f2314</id>
<content type='text'>
Change `CodeGenIntrinsics` classes to vend out const references to
`CodeGenIntrinsic` or `TargetSet` objects.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change `CodeGenIntrinsics` classes to vend out const references to
`CodeGenIntrinsic` or `TargetSet` objects.</pre>
</div>
</content>
</entry>
<entry>
<title>[LLVM][TableGen] Check name conflicts between target dep and independent intrinsics  (#109826)</title>
<updated>2024-09-25T19:01:17+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-09-25T19:01:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2f43e65955565f92d3103b4bd57f17d02385d0e3'/>
<id>2f43e65955565f92d3103b4bd57f17d02385d0e3</id>
<content type='text'>
Validate that for target independent intrinsics the second dotted
component of their name (after the `llvm.`) does not match any existing
target names (for which atleast one intrinsic has been defined). Doing
so is invalid as LLVM will search for that intrinsic in that target's
intrinsic table and not find it, and conclude that its an unknown
intrinsic.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Validate that for target independent intrinsics the second dotted
component of their name (after the `llvm.`) does not match any existing
target names (for which atleast one intrinsic has been defined). Doing
so is invalid as LLVM will search for that intrinsic in that target's
intrinsic table and not find it, and conclude that its an unknown
intrinsic.</pre>
</div>
</content>
</entry>
<entry>
<title>[LLVM][TableGen] Add error check for duplicate intrinsic names (#109226)</title>
<updated>2024-09-19T12:21:00+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-09-19T12:21:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e0458a24a1d026d1666f82d671e579d5fdce0027'/>
<id>e0458a24a1d026d1666f82d671e579d5fdce0027</id>
<content type='text'>
Check for duplicate intrinsic names in the intrinsic emitter backend and
issue a fatal error if we find one.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check for duplicate intrinsic names in the intrinsic emitter backend and
issue a fatal error if we find one.</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Add check for number of intrinsic return values (#107326)</title>
<updated>2024-09-05T21:52:30+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-09-05T21:52:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=50be455ab88b17872cd620698156b4058dc92f58'/>
<id>50be455ab88b17872cd620698156b4058dc92f58</id>
<content type='text'>
Fail if we see an intrinsic that returns more than the supported number
of return values.

Intrinsics can return only upto a certain nyumber of values, as defined
by the `IIT_RetNumbers` list in `Intrinsics.td`. Currently, if we define
an intrinsic that exceeds the limit, llvm-tblgen crashes. Instead, read
this limit and fail if it's exceeded with a proper error message.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fail if we see an intrinsic that returns more than the supported number
of return values.

Intrinsics can return only upto a certain nyumber of values, as defined
by the `IIT_RetNumbers` list in `Intrinsics.td`. Currently, if we define
an intrinsic that exceeds the limit, llvm-tblgen crashes. Instead, read
this limit and fail if it's exceeded with a proper error message.</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Add `CodeGenIntrinsicsMap` for on-demand intrinsic creation (#107100)</title>
<updated>2024-09-04T21:58:01+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-09-04T21:58:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=660cc98647677815a3f5d97d00220071d8cf7a4f'/>
<id>660cc98647677815a3f5d97d00220071d8cf7a4f</id>
<content type='text'>
- Add class `CodeGenIntrinsicMap` for on-demand creation of  
  `CodeGenIntrinsic`.
- Add class `CodeGenIntrinsicContext` to capture global information
  required to build `CodeGenIntrinsic` objects.
- Adopt GlobalISel PatternParser and SearchableTableEmitter to use it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Add class `CodeGenIntrinsicMap` for on-demand creation of  
  `CodeGenIntrinsic`.
- Add class `CodeGenIntrinsicContext` to capture global information
  required to build `CodeGenIntrinsic` objects.
- Adopt GlobalISel PatternParser and SearchableTableEmitter to use it.</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] Refactor Intrinsic handling in TableGen (#103980)</title>
<updated>2024-08-16T16:26:57+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-08-16T16:26:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ddda37a6c72f0d2fb315d53043ed5e7a39eddfe0'/>
<id>ddda37a6c72f0d2fb315d53043ed5e7a39eddfe0</id>
<content type='text'>
CodeGenIntrinsic changes:
  - Use `const` Record pointers, and `StringRef` when possible.
  - Default initialize several fields with their definition instead of in
 the constructor.
- Simplify various string checks in the constructor using StringRef
starts_with()/ends_with() functions.
- Eliminate first argument to `setDefaultProperties` and use `TheDef`
class member instead.

IntrinsicEmitter changes:
  - Emit `namespace llvm::Intrinsic` instead of nested namespaces.
  - End generated comments with a .
  - Use range based for loops, and early continue within loops.
  - Emit `static constexpr` instead of `static const` for arrays.
- Change `compareFnAttributes` to use std::tie() to compare intrinsic
attributes and return a default value when all attributes are equal.

STLExtras:
  - Add std::replace wrapper which takes a range.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CodeGenIntrinsic changes:
  - Use `const` Record pointers, and `StringRef` when possible.
  - Default initialize several fields with their definition instead of in
 the constructor.
- Simplify various string checks in the constructor using StringRef
starts_with()/ends_with() functions.
- Eliminate first argument to `setDefaultProperties` and use `TheDef`
class member instead.

IntrinsicEmitter changes:
  - Emit `namespace llvm::Intrinsic` instead of nested namespaces.
  - End generated comments with a .
  - Use range based for loops, and early continue within loops.
  - Emit `static constexpr` instead of `static const` for arrays.
- Change `compareFnAttributes` to use std::tie() to compare intrinsic
attributes and return a default value when all attributes are equal.

STLExtras:
  - Add std::replace wrapper which takes a range.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Fix TableGen include guards to match paths (#102746)</title>
<updated>2024-08-10T14:35:03+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2024-08-10T14:35:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8a61bfcf8f3e569d7f1d8fcb8958c02ec4aa6e7f'/>
<id>8a61bfcf8f3e569d7f1d8fcb8958c02ec4aa6e7f</id>
<content type='text'>
- Fix include guards for headers under utils/TableGen to match their
paths.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Fix include guards for headers under utils/TableGen to match their
paths.</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen] CodeGenIntrinsic - pass DefaultProperties as ArrayRef instead of std::vector by value.</title>
<updated>2024-06-03T11:50:34+00:00</updated>
<author>
<name>Simon Pilgrim</name>
<email>llvm-dev@redking.me.uk</email>
</author>
<published>2024-06-03T11:50:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=72c901f5e59477e568b1b04dae9de753b9d1f6f3'/>
<id>72c901f5e59477e568b1b04dae9de753b9d1f6f3</id>
<content type='text'>
Avoid std::vector copies as setDefaultProperties just iterates across the Records

Fixes #89207
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid std::vector copies as setDefaultProperties just iterates across the Records

Fixes #89207
</pre>
</div>
</content>
</entry>
</feed>
