<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/CodeGen/RegisterBankInfo.cpp, 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>[llvm] Call hash_combine_range with ranges (NFC) (#136511)</title>
<updated>2025-04-20T23:36:03+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-04-20T23:36:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b01e25debaf3fde3c76c9763e78e118a7da3d592'/>
<id>b01e25debaf3fde3c76c9763e78e118a7da3d592</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen] Avoid repeated hash lookups (NFC) (#130388)</title>
<updated>2025-03-08T08:20:53+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-03-08T08:20:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=474238bbfa194ef8f46ee8b3e8d91258885ceb63'/>
<id>474238bbfa194ef8f46ee8b3e8d91258885ceb63</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[RegisterBankInfo] Use MCRegister instead of Register for getMinimalPhysRegClass. NFC</title>
<updated>2025-03-06T17:07:53+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-03-06T16:56:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d0b8f5d8b3e11b283695558c3bcdea7629e9838b'/>
<id>d0b8f5d8b3e11b283695558c3bcdea7629e9838b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[ADT] Fix specialization of ValueIsPresent for PointerUnion" (#122557)</title>
<updated>2025-01-11T00:36:34+00:00</updated>
<author>
<name>Sergei Barannikov</name>
<email>barannikov88@gmail.com</email>
</author>
<published>2025-01-11T00:36:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a475ae05fba7368055071c29a1fc9408346ebd6a'/>
<id>a475ae05fba7368055071c29a1fc9408346ebd6a</id>
<content type='text'>
Reverts llvm/llvm-project#121847

Causes compile time regressions and allegedly miscompilation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#121847

Causes compile time regressions and allegedly miscompilation.</pre>
</div>
</content>
</entry>
<entry>
<title>[ADT] Fix specialization of ValueIsPresent for PointerUnion (#121847)</title>
<updated>2025-01-10T13:43:19+00:00</updated>
<author>
<name>Sergei Barannikov</name>
<email>barannikov88@gmail.com</email>
</author>
<published>2025-01-10T13:43:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7b0536794349734c8862fc140808e4e5a2ab8f8d'/>
<id>7b0536794349734c8862fc140808e4e5a2ab8f8d</id>
<content type='text'>
Two instances of `PointerUnion` with different active members and null
value compare unequal. Currently, this results in counterintuitive
behavior when using functions from `Casting.h`, e.g.:

```C++
  PointerUnion&lt;int *, float *&gt; U;
  // U = (int *)nullptr;
  dyn_cast&lt;int *&gt;(U); // Aborts
  dyn_cast&lt;float *&gt;(U); // Aborts
  U = (float *)nullptr;
  dyn_cast&lt;int *&gt;(U); // OK
  dyn_cast&lt;float *&gt;(U); // OK
```

`dyn_cast` should abort in all cases because the argument is null.
Currently, it aborts only if the first member is active. This happens
because the partial template specialization of `ValueIsPresent` for
nullable types compares the union with a union constructed from nullptr,
and the two unions compare equal only if their active members are the
same.

This patch changed the specialization of `ValueIsPresent` for nullable
types to make `isPresent()` return false for all possible null values of
a PointerUnion, and fixes two places where the old behavior was
exploited.

Pull Request: https://github.com/llvm/llvm-project/pull/121847
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Two instances of `PointerUnion` with different active members and null
value compare unequal. Currently, this results in counterintuitive
behavior when using functions from `Casting.h`, e.g.:

```C++
  PointerUnion&lt;int *, float *&gt; U;
  // U = (int *)nullptr;
  dyn_cast&lt;int *&gt;(U); // Aborts
  dyn_cast&lt;float *&gt;(U); // Aborts
  U = (float *)nullptr;
  dyn_cast&lt;int *&gt;(U); // OK
  dyn_cast&lt;float *&gt;(U); // OK
```

`dyn_cast` should abort in all cases because the argument is null.
Currently, it aborts only if the first member is active. This happens
because the partial template specialization of `ValueIsPresent` for
nullable types compares the union with a union constructed from nullptr,
and the two unions compare equal only if their active members are the
same.

This patch changed the specialization of `ValueIsPresent` for nullable
types to make `isPresent()` return false for all possible null values of
a PointerUnion, and fixes two places where the old behavior was
exploited.

Pull Request: https://github.com/llvm/llvm-project/pull/121847
</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen] Avoid repeated hash lookups (NFC) (#111274)</title>
<updated>2024-10-06T16:21:25+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-10-06T16:21:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bea28037f6b68ee79b9360d91e0f3defd10fa976'/>
<id>bea28037f6b68ee79b9360d91e0f3defd10fa976</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[GISEL][RISCV] RegBank Select for Scalable Vector Load/Store (#99932)</title>
<updated>2024-07-31T23:18:42+00:00</updated>
<author>
<name>Jiahan Xie</name>
<email>88367305+jiahanxie353@users.noreply.github.com</email>
</author>
<published>2024-07-31T23:18:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1c66ef915710fd4450f85ebb0486695e9bbc4dfc'/>
<id>1c66ef915710fd4450f85ebb0486695e9bbc4dfc</id>
<content type='text'>
This patch supports GlobalISel for register bank selection for scalable vector
load and store instructions in RISC-V</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch supports GlobalISel for register bank selection for scalable vector
load and store instructions in RISC-V</pre>
</div>
</content>
</entry>
<entry>
<title>[GISEL][NFC] Use getElementCount instead of getNumElements in more places</title>
<updated>2024-03-27T00:41:46+00:00</updated>
<author>
<name>Michael Maitland</name>
<email>michaeltmaitland@gmail.com</email>
</author>
<published>2024-03-27T00:41:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d345599c2851c7ef25d2350244cbfe7cfef36386'/>
<id>d345599c2851c7ef25d2350244cbfe7cfef36386</id>
<content type='text'>
These cases in particular are  done as a precommit to support
legalization, regbank selection, and instruction selection for extends,
splat vectors, and integer compares in #85938.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These cases in particular are  done as a precommit to support
legalization, regbank selection, and instruction selection for extends,
splat vectors, and integer compares in #85938.
</pre>
</div>
</content>
</entry>
<entry>
<title>[RegBankInfo] Add brackets around || in assert. NFC</title>
<updated>2023-11-21T12:58:09+00:00</updated>
<author>
<name>David Green</name>
<email>david.green@arm.com</email>
</author>
<published>2023-11-21T12:58:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=414815872434f6b4f7479a2732e87d221eefb01d'/>
<id>414815872434f6b4f7479a2732e87d221eefb01d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Use TypeSize in places where needed for RegBankSelection</title>
<updated>2023-11-15T23:08:28+00:00</updated>
<author>
<name>Michael Maitland</name>
<email>michaeltmaitland@gmail.com</email>
</author>
<published>2023-11-07T14:25:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f219e03f3c9bea4220925838c3d57d5a993d4d7a'/>
<id>f219e03f3c9bea4220925838c3d57d5a993d4d7a</id>
<content type='text'>
This is a precommit for #71514 to use TypeSize instead of unsigned to
avoid crashes when scalable vectors are used.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a precommit for #71514 to use TypeSize instead of unsigned to
avoid crashes when scalable vectors are used.
</pre>
</div>
</content>
</entry>
</feed>
