<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/X86/X86RegisterInfo.cpp, branch users/mingmingl-llvm/samplefdo-profile-format</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>X86: Stop using MachineFunction in getPointerRegClass (#156880)</title>
<updated>2025-09-10T14:39:52+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2025-09-10T14:39:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=62f2641d603db9aef99dd5c434a1dfe7d3f56346'/>
<id>62f2641d603db9aef99dd5c434a1dfe7d3f56346</id>
<content type='text'>
This should be a low level function used to interpret an
MCInstrDesc that only depends on the hwmode. It should not depend
on other dynamic context like the parent function. In general more
ABI properties like this should be expressed directly in the instruction
definitions, so introduce new TCRETURN pseudos to use with the special
case register classes (e.g. in a better future the callee saved
registers
would always be encoded directly in a mask on the return instruction).

This will help unify X86 onto a pending replacement mechanism for
getPointerRegClass.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should be a low level function used to interpret an
MCInstrDesc that only depends on the hwmode. It should not depend
on other dynamic context like the parent function. In general more
ABI properties like this should be expressed directly in the instruction
definitions, so introduce new TCRETURN pseudos to use with the special
case register classes (e.g. in a better future the callee saved
registers
would always be encoded directly in a mask on the return instruction).

This will help unify X86 onto a pending replacement mechanism for
getPointerRegClass.</pre>
</div>
</content>
</entry>
<entry>
<title>[X86][LiveRegUnits] Exclude reserved registers from TargetRegisterClass (#157798)</title>
<updated>2025-09-10T06:42:43+00:00</updated>
<author>
<name>Phoebe Wang</name>
<email>phoebe.wang@intel.com</email>
</author>
<published>2025-09-10T06:42:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=253d18d032bb17ced8a26d72623b6ade5933f6f3'/>
<id>253d18d032bb17ced8a26d72623b6ade5933f6f3</id>
<content type='text'>
Fixes regression casued by #156817.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes regression casued by #156817.</pre>
</div>
</content>
</entry>
<entry>
<title>X86: Use LiveRegUnits in findDeadCallerSavedReg (#156817)</title>
<updated>2025-09-09T03:51:59+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2025-09-09T03:51:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6076b070b07a8de1a88821d7f9ab36ce40837ec7'/>
<id>6076b070b07a8de1a88821d7f9ab36ce40837ec7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>X86: Remove LOW32_ADDR_ACCESS_RBPRegClass (#155127)</title>
<updated>2025-08-26T14:58:05+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2025-08-26T14:58:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=abb18ddc9c3f2f85f1fcbefc25529ed22e84a680'/>
<id>abb18ddc9c3f2f85f1fcbefc25529ed22e84a680</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Remove unused includes (NFC) (#154051)</title>
<updated>2025-08-18T06:46:35+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-08-18T06:46:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cbf5af9668931bbc843a80817e0385629e03c5e4'/>
<id>cbf5af9668931bbc843a80817e0385629e03c5e4</id>
<content type='text'>
These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply "[X86] Correct 32-bit immediate assertion and fix 64-bit lowering for huge frame offsets" (#152239)</title>
<updated>2025-08-11T15:53:44+00:00</updated>
<author>
<name>Wesley Wiser</name>
<email>wwiser@gmail.com</email>
</author>
<published>2025-08-11T15:53:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=40a469f79a0807a04bb805c749ec2ee723dd833c'/>
<id>40a469f79a0807a04bb805c749ec2ee723dd833c</id>
<content type='text'>
The first commit is identical to
69bec0afbb8f2aa0021d18ea38768360b16583a9.

The second commit fixes the instruction verification failures by
replacing the erroneous instruction with a trap after the error is
reported and adds `-verify-machineinstrs` to the tests added in the
original PR to catch the issue sooner.

After that change, all tests pass with both
`LLVM_ENABLE_EXPENSIVE_CHECKS={On,Off}`.

cc @RKSimon @e-kud @phoebewang @arsenm as reviewers on the original PR</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The first commit is identical to
69bec0afbb8f2aa0021d18ea38768360b16583a9.

The second commit fixes the instruction verification failures by
replacing the erroneous instruction with a trap after the error is
reported and adds `-verify-machineinstrs` to the tests added in the
original PR to catch the issue sooner.

After that change, all tests pass with both
`LLVM_ENABLE_EXPENSIVE_CHECKS={On,Off}`.

cc @RKSimon @e-kud @phoebewang @arsenm as reviewers on the original PR</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[X86] Correct 32-bit immediate assertion and fix 64-bit lowering for huge frame offsets" (#151975)</title>
<updated>2025-08-04T14:32:28+00:00</updated>
<author>
<name>Simon Pilgrim</name>
<email>llvm-dev@redking.me.uk</email>
</author>
<published>2025-08-04T14:32:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6de745b5473f4ae206110c497f28f040ea317d31'/>
<id>6de745b5473f4ae206110c497f28f040ea317d31</id>
<content type='text'>
Reverts llvm/llvm-project#123872 - this is breaking on EXPENSIVE_CHECKS builds

Co-authored-by: Abhishek Kaushik &lt;abhishek.kaushik@intel.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#123872 - this is breaking on EXPENSIVE_CHECKS builds

Co-authored-by: Abhishek Kaushik &lt;abhishek.kaushik@intel.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[X86] Correct 32-bit immediate assertion and fix 64-bit lowering for huge frame offsets (#123872)</title>
<updated>2025-08-03T10:06:23+00:00</updated>
<author>
<name>Wesley Wiser</name>
<email>wwiser@gmail.com</email>
</author>
<published>2025-08-03T10:06:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=69bec0afbb8f2aa0021d18ea38768360b16583a9'/>
<id>69bec0afbb8f2aa0021d18ea38768360b16583a9</id>
<content type='text'>
The assertion previously did not work correctly because the operand was
being truncated to an `int` prior to comparison.

Change the assertion into a a reported error as suggested in
https://github.com/llvm/llvm-project/pull/101840#issuecomment-2304992425
by @arsenm

Finally, fix the lowering on 64-bit targets so that offsets larger than
32-bit are correctly addressed and add tests for various reported
issues.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The assertion previously did not work correctly because the operand was
being truncated to an `int` prior to comparison.

Change the assertion into a a reported error as suggested in
https://github.com/llvm/llvm-project/pull/101840#issuecomment-2304992425
by @arsenm

Finally, fix the lowering on 64-bit targets so that offsets larger than
32-bit are correctly addressed and add tests for various reported
issues.</pre>
</div>
</content>
</entry>
<entry>
<title>[X86] Don't use `rbp` when it's reserved (#146638)</title>
<updated>2025-07-07T09:02:47+00:00</updated>
<author>
<name>Brandt Bucher</name>
<email>brandtbucher@microsoft.com</email>
</author>
<published>2025-07-07T09:02:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=30836781e8019dc34995f7bb0ef163c4c3660c54'/>
<id>30836781e8019dc34995f7bb0ef163c4c3660c54</id>
<content type='text'>
This fixes the x86 backend to properly reserve `rbp` when the
`frame-pointer=reserved` option is used. Currently, this option is
ignored.

Disassembly of the new test case before:

```s
pushq %rbp
pushq %rbx
pushq %rax
movl %esi, %ebx
movl %edi, %ebp
callq bar@PLT
movl %ebp, %edi
movl %ebx, %esi
callq bar@PLT
addq $8, %rsp
popq %rbx
popq %rbp
retq
```

...and after (`r14` is used as scratch space in place of `rbp`):

```s
pushq %r14
pushq %rbx
pushq %rax
movl %esi, %ebx
movl %edi, %r14d
callq bar@PLT
movl %r14d, %edi
movl %ebx, %esi
callq bar@PLT
addq $8, %rsp
popq %rbx
popq %r14
retq
```

Fixes #117178.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes the x86 backend to properly reserve `rbp` when the
`frame-pointer=reserved` option is used. Currently, this option is
ignored.

Disassembly of the new test case before:

```s
pushq %rbp
pushq %rbx
pushq %rax
movl %esi, %ebx
movl %edi, %ebp
callq bar@PLT
movl %ebp, %edi
movl %ebx, %esi
callq bar@PLT
addq $8, %rsp
popq %rbx
popq %rbp
retq
```

...and after (`r14` is used as scratch space in place of `rbp`):

```s
pushq %r14
pushq %rbx
pushq %rax
movl %esi, %ebx
movl %edi, %r14d
callq bar@PLT
movl %r14d, %edi
movl %ebx, %esi
callq bar@PLT
addq $8, %rsp
popq %rbx
popq %r14
retq
```

Fixes #117178.</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm] Ensure newline at the end of files (NFC) (#143061)</title>
<updated>2025-06-06T05:58:15+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-06-06T05:58:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=445974547d3fae74ea1cb89f4c2b428491cab468'/>
<id>445974547d3fae74ea1cb89f4c2b428491cab468</id>
<content type='text'>
Without newlines at the end, git diff would display:

  No newline at end of file</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without newlines at the end, git diff would display:

  No newline at end of file</pre>
</div>
</content>
</entry>
</feed>
