<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/CodeGen/MachineOperand.cpp, branch users/chapuni/cov/single/switch</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>[CodeGen] Add MOTargetFlag4 to MachineMemOperand Flags (#120136)</title>
<updated>2025-01-03T14:45:52+00:00</updated>
<author>
<name>Acim Maravic</name>
<email>Acim.Maravic@amd.com</email>
</author>
<published>2025-01-03T14:45:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9d6527bc12547e28b86d180b76fe934a96aa518e'/>
<id>9d6527bc12547e28b86d180b76fe934a96aa518e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen] Fix warning after #115531</title>
<updated>2024-12-04T05:12:06+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2024-12-04T05:12:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=932c5249ff6b3f31f3b67d944cf5ead156b5dd2c'/>
<id>932c5249ff6b3f31f3b67d944cf5ead156b5dd2c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>CodeGen: Don't assert when printing null GlobalAddress operands (#115531)</title>
<updated>2024-12-04T00:15:56+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-12-04T00:15:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e9dc6c5fbb6d2c2c93095acb6ff4ca0b515057ed'/>
<id>e9dc6c5fbb6d2c2c93095acb6ff4ca0b515057ed</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[PAuthLR] Add Missing Break Statement for MachineOperand Switch Statement (#113883)</title>
<updated>2024-10-28T09:08:48+00:00</updated>
<author>
<name>Jack Styles</name>
<email>jack.styles@arm.com</email>
</author>
<published>2024-10-28T09:08:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=933a56674e75ed372e000758378b7981e5b4d387'/>
<id>933a56674e75ed372e000758378b7981e5b4d387</id>
<content type='text'>
There was a missing break, which led to an unannotated fallthrough when
merging #112171. This has caused sanitizer builds to fail.

This adds the missing break in the switch statement to ensure that the
fallthrough does not occur.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There was a missing break, which led to an unannotated fallthrough when
merging #112171. This has caused sanitizer builds to fail.

This adds the missing break in the switch statement to ensure that the
fallthrough does not occur.</pre>
</div>
</content>
</entry>
<entry>
<title>[AArch64][Libunwind] Add Support for FEAT_PAuthLR DWARF Instruction (#112171)</title>
<updated>2024-10-28T08:22:38+00:00</updated>
<author>
<name>Jack Styles</name>
<email>jack.styles@arm.com</email>
</author>
<published>2024-10-28T08:22:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=86f76c3b171f95fd0560339f2ad0f4449277cf8d'/>
<id>86f76c3b171f95fd0560339f2ad0f4449277cf8d</id>
<content type='text'>
As part of FEAT_PAuthLR, a new DWARF Frame Instruction was introduced,
`DW_CFA_AARCH64_negate_ra_state_with_pc`. This instructs Libunwind that
the PC has been used with the signing instruction. This change includes
three commits
- Libunwind support for the newly introduced DWARF Instruction
- CodeGen Support for the DWARF Instructions
- Reversing the changes made in #96377. Due to
`DW_CFA_AARCH64_negate_ra_state_with_pc`'s requirements to be placed
immediately after the signing instruction, this would mean the CFI
Instruction location was not consistent with the generated location when
not using FEAT_PAuthLR. The commit reverses the changes and makes the
location consistent across the different branch protection options.
While this does have a code size effect, this is a negligible one.

For the ABI information, see here:
https://github.com/ARM-software/abi-aa/blob/853286c7ab66048e4b819682ce17f567b77a0291/aadwarf64/aadwarf64.rst#id23</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As part of FEAT_PAuthLR, a new DWARF Frame Instruction was introduced,
`DW_CFA_AARCH64_negate_ra_state_with_pc`. This instructs Libunwind that
the PC has been used with the signing instruction. This change includes
three commits
- Libunwind support for the newly introduced DWARF Instruction
- CodeGen Support for the DWARF Instructions
- Reversing the changes made in #96377. Due to
`DW_CFA_AARCH64_negate_ra_state_with_pc`'s requirements to be placed
immediately after the signing instruction, this would mean the CFI
Instruction location was not consistent with the generated location when
not using FEAT_PAuthLR. The commit reverses the changes and makes the
location consistent across the different branch protection options.
While this does have a code size effect, this is a negligible one.

For the ABI information, see here:
https://github.com/ARM-software/abi-aa/blob/853286c7ab66048e4b819682ce17f567b77a0291/aadwarf64/aadwarf64.rst#id23</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] Fix MIR printing of reference types (#113028)</title>
<updated>2024-10-22T20:48:00+00:00</updated>
<author>
<name>Heejin Ahn</name>
<email>aheejin@gmail.com</email>
</author>
<published>2024-10-22T20:48:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5c92f2331c7e02059baddaa3eaf35c039a48caf2'/>
<id>5c92f2331c7e02059baddaa3eaf35c039a48caf2</id>
<content type='text'>
When printing a memory operand in MIR, this line

https://github.com/llvm/llvm-project/blob/d37bc32a65651e647148236ffb9728ea2e77eac3/llvm/lib/CodeGen/MachineOperand.cpp#L1247
calls this
https://github.com/llvm/llvm-project/blob/d37bc32a65651e647148236ffb9728ea2e77eac3/llvm/include/llvm/Support/Alignment.h#L238
which assumes `Rhs` (the size in this case) is positive.

But Wasm reference types' size is set to 0:
https://github.com/llvm/llvm-project/blob/d37bc32a65651e647148236ffb9728ea2e77eac3/llvm/include/llvm/CodeGen/ValueTypes.td#L326-L328

`getSize() &gt; 0` condition was added with the Wasm reference types
support in
https://github.com/llvm/llvm-project/commit/46667a10039b664b953eb70534c27627b35a267d,
and it looks it was removed in #84751. This revives the condition so
that Wasm reference types will not crash the MIR printer.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When printing a memory operand in MIR, this line

https://github.com/llvm/llvm-project/blob/d37bc32a65651e647148236ffb9728ea2e77eac3/llvm/lib/CodeGen/MachineOperand.cpp#L1247
calls this
https://github.com/llvm/llvm-project/blob/d37bc32a65651e647148236ffb9728ea2e77eac3/llvm/include/llvm/Support/Alignment.h#L238
which assumes `Rhs` (the size in this case) is positive.

But Wasm reference types' size is set to 0:
https://github.com/llvm/llvm-project/blob/d37bc32a65651e647148236ffb9728ea2e77eac3/llvm/include/llvm/CodeGen/ValueTypes.td#L326-L328

`getSize() &gt; 0` condition was added with the Wasm reference types
support in
https://github.com/llvm/llvm-project/commit/46667a10039b664b953eb70534c27627b35a267d,
and it looks it was removed in #84751. This revives the condition so
that Wasm reference types will not crash the MIR printer.</pre>
</div>
</content>
</entry>
<entry>
<title>[Loads] Check context instruction for context-sensitive derefability (#109277)</title>
<updated>2024-09-23T07:13:09+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-09-23T07:13:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5a4c6f97997f3cdfa9d98f7f0b546e331ee9cc4a'/>
<id>5a4c6f97997f3cdfa9d98f7f0b546e331ee9cc4a</id>
<content type='text'>
If a dereferenceability fact is provided through `!dereferenceable` (or
similar), it may only hold on the given control flow path. When we use
`isSafeToSpeculativelyExecute()` to check multiple instructions, we
might make use of `!dereferenceable` information that does not hold at
the speculation target. This doesn't happen when speculating
instructions one by one, because `!dereferenceable` will be dropped
while speculating.

Fix this by checking whether the instruction with `!dereferenceable`
dominates the context instruction. If this is not the case, it means we
are speculating, and cannot guarantee that it holds at the speculation
target.

Fixes https://github.com/llvm/llvm-project/issues/108854.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a dereferenceability fact is provided through `!dereferenceable` (or
similar), it may only hold on the given control flow path. When we use
`isSafeToSpeculativelyExecute()` to check multiple instructions, we
might make use of `!dereferenceable` information that does not hold at
the speculation target. This doesn't happen when speculating
instructions one by one, because `!dereferenceable` will be dropped
while speculating.

Fix this by checking whether the instruction with `!dereferenceable`
dominates the context instruction. If this is not the case, it means we
are speculating, and cannot guarantee that it holds at the speculation
target.

Fixes https://github.com/llvm/llvm-project/issues/108854.</pre>
</div>
</content>
</entry>
<entry>
<title>[MC] Make MCRegisterInfo::getLLVMRegNum return std::optional&lt;MCRegister&gt;. NFC (#107776)</title>
<updated>2024-09-09T04:21:51+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2024-09-09T04:21:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f2b71491d11355c0df0c92ef7cce7d610c894660'/>
<id>f2b71491d11355c0df0c92ef7cce7d610c894660</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[StableHash] Implement with xxh3_64bits (#105849)</title>
<updated>2024-08-24T04:53:43+00:00</updated>
<author>
<name>Kyungwoo Lee</name>
<email>kyulee@meta.com</email>
</author>
<published>2024-08-24T04:53:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7615c0b2eb52b8c5d8e6dfc7f265a87a7a9f3ef5'/>
<id>7615c0b2eb52b8c5d8e6dfc7f265a87a7a9f3ef5</id>
<content type='text'>
This is a follow-up to address a suggestion from
https://github.com/llvm/llvm-project/pull/105619.
The main goal of this change is to efficiently implement stable hash
functions using the xxh3 64bits API.
`stable_hash_combine_range` and `stable_hash_combine_array` functions
are removed and consolidated into a more general `stable_hash_combine`
function that takes an `ArrayRef&lt;stable_hash&gt;` as input.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a follow-up to address a suggestion from
https://github.com/llvm/llvm-project/pull/105619.
The main goal of this change is to efficiently implement stable hash
functions using the xxh3 64bits API.
`stable_hash_combine_range` and `stable_hash_combine_array` functions
are removed and consolidated into a more general `stable_hash_combine`
function that takes an `ArrayRef&lt;stable_hash&gt;` as input.</pre>
</div>
</content>
</entry>
<entry>
<title>[CodeGen] Update for scalable MemoryType in MMO (#70452)</title>
<updated>2024-03-23T12:56:25+00:00</updated>
<author>
<name>Harvin Iriawan</name>
<email>25712785+harviniriawan@users.noreply.github.com</email>
</author>
<published>2024-03-23T12:56:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=57146daeaaf366050dc913db910fcc2995a3e06d'/>
<id>57146daeaaf366050dc913db910fcc2995a3e06d</id>
<content type='text'>
Remove getSizeOrUnknown call when MachineMemOperand is created.  For Scalable
TypeSize, the MemoryType created becomes a scalable_vector.

2 MMOs that have scalable memory access can then use the updated BasicAA that
understands scalable LocationSize.

Original Patch by Harvin Iriawan
Co-authored-by: David Green &lt;david.green@arm.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove getSizeOrUnknown call when MachineMemOperand is created.  For Scalable
TypeSize, the MemoryType created becomes a scalable_vector.

2 MMOs that have scalable memory access can then use the updated BasicAA that
understands scalable LocationSize.

Original Patch by Harvin Iriawan
Co-authored-by: David Green &lt;david.green@arm.com&gt;</pre>
</div>
</content>
</entry>
</feed>
