<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/ExecutionEngine/JITLink/ppc64.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>[ExecutionEngine] Remove unnecessary casts (NFC) (#146218)</title>
<updated>2025-06-28T20:03:45+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-06-28T20:03:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=289c066ac47488a13db13844f1befb295188d51c'/>
<id>289c066ac47488a13db13844f1befb295188d51c</id>
<content type='text'>
R and K are already of Edge::Kind in all these cases.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
R and K are already of Edge::Kind in all these cases.</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC][JITLink] Support R_PPC64_GOT_TLSGD_PCREL34 (#68660)</title>
<updated>2023-10-14T02:57:03+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2023-10-14T02:57:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=18dc8dcd768fd99f29d21d3fa1603d299c686da1'/>
<id>18dc8dcd768fd99f29d21d3fa1603d299c686da1</id>
<content type='text'>
`R_PPC64_GOT_TLSGD_PCREL34` is generated for pwr10+.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`R_PPC64_GOT_TLSGD_PCREL34` is generated for pwr10+.</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC][JITLink] Support R_PPC64_GOT_PCREL34 (#68658)</title>
<updated>2023-10-13T00:51:11+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2023-10-13T00:51:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a712244f3b76cd2ef60b4f3ce5efaf6d4d49c6fe'/>
<id>a712244f3b76cd2ef60b4f3ce5efaf6d4d49c6fe</id>
<content type='text'>
`R_PPC64_GOT_PCREL34` is generated for pwr10+.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`R_PPC64_GOT_PCREL34` is generated for pwr10+.</pre>
</div>
</content>
</entry>
<entry>
<title>[JITLink][PowerPC] Add relocations included in rtdyld but missing from jitlink</title>
<updated>2023-08-13T01:44:18+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2023-08-12T23:57:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b6e2eac2930e3ba8593e6bc211fa85b1783ce3de'/>
<id>b6e2eac2930e3ba8593e6bc211fa85b1783ce3de</id>
<content type='text'>
RuntimeDyld has implemented more relocations than JITLink for ppc64. This patch adds relocations missing from JITLink for ppc64.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D157366
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
RuntimeDyld has implemented more relocations than JITLink for ppc64. This patch adds relocations missing from JITLink for ppc64.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D157366
</pre>
</div>
</content>
</entry>
<entry>
<title>[JITLink][PowerPC] Add basic TLS support for ppc64</title>
<updated>2023-08-02T05:02:36+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2023-08-02T03:29:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9c38a178d3a61b0d9d84c564e8b6dba0f90dad4e'/>
<id>9c38a178d3a61b0d9d84c564e8b6dba0f90dad4e</id>
<content type='text'>
Add basic TLS support for ppc64. Only global-dynamic model is supported.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155926
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add basic TLS support for ppc64. Only global-dynamic model is supported.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155926
</pre>
</div>
</content>
</entry>
<entry>
<title>[JITLink][PowerPC] Support R_PPC64_PCREL34</title>
<updated>2023-08-02T02:00:38+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2023-08-02T02:00:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ca6d86f6bf12c8694724bd4d51704b28bd0eb743'/>
<id>ca6d86f6bf12c8694724bd4d51704b28bd0eb743</id>
<content type='text'>
PC-relative instructions are added in ISA-3.1 implemented by pwr10. This patch adds basic pc-relative relocation.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155771
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PC-relative instructions are added in ISA-3.1 implemented by pwr10. This patch adds basic pc-relative relocation.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155771
</pre>
</div>
</content>
</entry>
<entry>
<title>[JITLink][PowerPC] Change method to check if a symbol is external to current object</title>
<updated>2023-07-26T03:20:56+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2023-07-26T03:12:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=11a02de7829aa252e84d96c7353ff39c34c3bd38'/>
<id>11a02de7829aa252e84d96c7353ff39c34c3bd38</id>
<content type='text'>
After PrePrunePass `claimOrExternalizeWeakAndCommonSymbols`, a defined symbol might become external. So determine a function call is external or not when building the linkgraph is not accurate. This largely affects updating TOC pointer on PowerPC. TOC pointer is supposed to be the same in one object file(if no mulitple TOC appears) and is updated when control flow transferred to another object file.

This patch defers checking a function call is external or not, in `buildTables_ELF_ppc64` which is a PostPrunePass.

This patch fixes failures when `jitlink -orc-runtime=/path/to/libort_rt.a` is used.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155925
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After PrePrunePass `claimOrExternalizeWeakAndCommonSymbols`, a defined symbol might become external. So determine a function call is external or not when building the linkgraph is not accurate. This largely affects updating TOC pointer on PowerPC. TOC pointer is supposed to be the same in one object file(if no mulitple TOC appears) and is updated when control flow transferred to another object file.

This patch defers checking a function call is external or not, in `buildTables_ELF_ppc64` which is a PostPrunePass.

This patch fixes failures when `jitlink -orc-runtime=/path/to/libort_rt.a` is used.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155925
</pre>
</div>
</content>
</entry>
<entry>
<title>[JITLink][PowerPC] Correct handling of R_PPC64_REL24_NOTOC</title>
<updated>2023-07-24T06:00:53+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2023-07-24T06:00:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=995f199f0a7645bac81f1786a623d66ca44dd415'/>
<id>995f199f0a7645bac81f1786a623d66ca44dd415</id>
<content type='text'>
According to the ELFv2 ABI

&gt; This relocation type is used to specify a function call where the TOC pointer is not initialized. It is similar to R_PPC64_REL24 in that it specifies a symbol to be resolved. If the symbol resolves to a function that requires a TOC pointer (as determined by st_other bits) then a link editor must arrange for the call to be via the global entry point of the called function. Any stub code must not rely on a valid TOC base address in r2.

This patch fixes handling of `R_PPC64_REL24_NOTOC` by using the same stub code sequence as lld.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155672
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
According to the ELFv2 ABI

&gt; This relocation type is used to specify a function call where the TOC pointer is not initialized. It is similar to R_PPC64_REL24 in that it specifies a symbol to be resolved. If the symbol resolves to a function that requires a TOC pointer (as determined by st_other bits) then a link editor must arrange for the call to be via the global entry point of the called function. Any stub code must not rely on a valid TOC base address in r2.

This patch fixes handling of `R_PPC64_REL24_NOTOC` by using the same stub code sequence as lld.

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D155672
</pre>
</div>
</content>
</entry>
<entry>
<title>[JITLink][PowerPC] Add TOC and relocations for ppc64</title>
<updated>2023-07-10T03:26:53+00:00</updated>
<author>
<name>Kai Luo</name>
<email>lkail@cn.ibm.com</email>
</author>
<published>2023-07-10T03:25:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=61358d4fbeb3db1c1f7be278ae599ae3d79499d7'/>
<id>61358d4fbeb3db1c1f7be278ae599ae3d79499d7</id>
<content type='text'>
This patch builds TOC and adds common relocations for ppc64.

To build TOC, sections belong to TOC are merged into one section, serves as GOT and small data accessing.

Relocations commonly seen in local function call, external function call and global variable reference are added.

References
- https://youtu.be/i-inxFudrgI
- https://maskray.me/blog/2023-02-26-linker-notes-on-power-isa
- https://openpowerfoundation.org/specifications/64bitelfabi/

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D154198
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch builds TOC and adds common relocations for ppc64.

To build TOC, sections belong to TOC are merged into one section, serves as GOT and small data accessing.

Relocations commonly seen in local function call, external function call and global variable reference are added.

References
- https://youtu.be/i-inxFudrgI
- https://maskray.me/blog/2023-02-26-linker-notes-on-power-isa
- https://openpowerfoundation.org/specifications/64bitelfabi/

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D154198
</pre>
</div>
</content>
</entry>
<entry>
<title>Silence switch statement contains 'default' but no 'case' labels warning; NFC</title>
<updated>2023-05-23T13:28:05+00:00</updated>
<author>
<name>Aaron Ballman</name>
<email>aaron@aaronballman.com</email>
</author>
<published>2023-05-23T13:28:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=846bde483d63b2abbb8dd45ceba2dab538446432'/>
<id>846bde483d63b2abbb8dd45ceba2dab538446432</id>
<content type='text'>
These are showing up in MSVC builds.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are showing up in MSVC builds.
</pre>
</div>
</content>
</entry>
</feed>
