<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/PowerPC/PPC.td, 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>[Reland] [PowerPC] frontend get target feature from backend with cpu name (#144594)</title>
<updated>2025-06-19T13:22:16+00:00</updated>
<author>
<name>zhijian lin</name>
<email>zhijian@ca.ibm.com</email>
</author>
<published>2025-06-19T13:22:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bf79d4819edeb54c6cf528db63676110992908a8'/>
<id>bf79d4819edeb54c6cf528db63676110992908a8</id>
<content type='text'>
1. The PR proceeds with a backend target hook to allow front-ends to
determine what target features are available in a compilation based on
the CPU name.
2. Fix a backend target feature bug that supports HTM for
Power8/9/10/11. However, HTM is only supported on Power8/9 according to
the ISA.
3. All target features that are hardcoded in PPC.cpp can be retrieved
from the backend target feature. I have double-checked that the
hardcoded logic for inferring target features from the CPU in the
frontend(PPC.cpp) is the same as in PPC.td.

The reland patch addressed the comment
https://github.com/llvm/llvm-project/pull/137670#discussion_r2143541120</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1. The PR proceeds with a backend target hook to allow front-ends to
determine what target features are available in a compilation based on
the CPU name.
2. Fix a backend target feature bug that supports HTM for
Power8/9/10/11. However, HTM is only supported on Power8/9 according to
the ISA.
3. All target features that are hardcoded in PPC.cpp can be retrieved
from the backend target feature. I have double-checked that the
hardcoded logic for inferring target features from the CPU in the
frontend(PPC.cpp) is the same as in PPC.td.

The reland patch addressed the comment
https://github.com/llvm/llvm-project/pull/137670#discussion_r2143541120</pre>
</div>
</content>
</entry>
<entry>
<title>Revert " [PowerPC] frontend get target feature from backend with cpu name (#137670)"</title>
<updated>2025-06-12T19:56:41+00:00</updated>
<author>
<name>Reid Kleckner</name>
<email>rnk@google.com</email>
</author>
<published>2025-06-12T19:53:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cbf27bf711c08c34185f05ca5edbfa61bd3786e2'/>
<id>cbf27bf711c08c34185f05ca5edbfa61bd3786e2</id>
<content type='text'>
This reverts commit 9208b343e962b9f1140ee345c0050a3920bdcbf2.

TargetParser shouldn't re-run the PPC subtarget tablegen target, it
should define its own `-gen-ppc-target-def` rule like all the other
targets do in llvm/include/llvm/TargetParser/CMakeLists.txt .

One user reported that there are incorrect CMake dependencies after this
change, so I will roll this back in the meantime.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 9208b343e962b9f1140ee345c0050a3920bdcbf2.

TargetParser shouldn't re-run the PPC subtarget tablegen target, it
should define its own `-gen-ppc-target-def` rule like all the other
targets do in llvm/include/llvm/TargetParser/CMakeLists.txt .

One user reported that there are incorrect CMake dependencies after this
change, so I will roll this back in the meantime.
</pre>
</div>
</content>
</entry>
<entry>
<title> [PowerPC] frontend get target feature from backend with cpu name (#137670)</title>
<updated>2025-06-12T17:38:13+00:00</updated>
<author>
<name>zhijian lin</name>
<email>zhijian@ca.ibm.com</email>
</author>
<published>2025-06-12T17:38:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9208b343e962b9f1140ee345c0050a3920bdcbf2'/>
<id>9208b343e962b9f1140ee345c0050a3920bdcbf2</id>
<content type='text'>
1. The PR proceeds with a backend target hook to allow front-ends to
determine what target features are available in a compilation based on
the CPU name.
2. Fix a backend target feature bug that supports HTM for
Power8/9/10/11. However, HTM is only supported on Power8/9 according to
the ISA.
3. All target features that are hardcoded in PPC.cpp can be retrieved
from the backend target feature. I have double-checked that the
hardcoded logic for inferring target features from the CPU in the
frontend(PPC.cpp) is the same as in PPC.td.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1. The PR proceeds with a backend target hook to allow front-ends to
determine what target features are available in a compilation based on
the CPU name.
2. Fix a backend target feature bug that supports HTM for
Power8/9/10/11. However, HTM is only supported on Power8/9 according to
the ISA.
3. All target features that are hardcoded in PPC.cpp can be retrieved
from the backend target feature. I have double-checked that the
hardcoded logic for inferring target features from the CPU in the
frontend(PPC.cpp) is the same as in PPC.td.
</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC] Change default for auto gen stxvp for cpu=future (#142826)</title>
<updated>2025-06-09T16:34:50+00:00</updated>
<author>
<name>Lei Huang</name>
<email>lei@ca.ibm.com</email>
</author>
<published>2025-06-09T16:34:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=649020c680166af0ad822d5aa1518234d93828e4'/>
<id>649020c680166af0ad822d5aa1518234d93828e4</id>
<content type='text'>
For cpu=future, we want to auto generate stxvp instructions by default.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For cpu=future, we want to auto generate stxvp instructions by default.</pre>
</div>
</content>
</entry>
<entry>
<title>[PPC][NFC] Remove duplicate processor feature from pwr9/10/11 and future (#137903)</title>
<updated>2025-05-02T15:53:57+00:00</updated>
<author>
<name>Min-Yih Hsu</name>
<email>min.hsu@sifive.com</email>
</author>
<published>2025-05-02T15:53:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=32ca368c1e5de75f8800a45de883ee93d5854c91'/>
<id>32ca368c1e5de75f8800a45de883ee93d5854c91</id>
<content type='text'>
The new TableGen warning introduced in
https://github.com/llvm/llvm-project/commit/951292be2c21bc903e63729338d872a878d2d49c
shows the following warnings:

```
warning: Processor future contains duplicate feature 'predictable-select-expensive'
warning: Processor pwr10 contains duplicate feature 'predictable-select-expensive'
warning: Processor pwr11 contains duplicate feature 'predictable-select-expensive'
warning: Processor pwr9 contains duplicate feature 'predictable-select-expensive'
```</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new TableGen warning introduced in
https://github.com/llvm/llvm-project/commit/951292be2c21bc903e63729338d872a878d2d49c
shows the following warnings:

```
warning: Processor future contains duplicate feature 'predictable-select-expensive'
warning: Processor pwr10 contains duplicate feature 'predictable-select-expensive'
warning: Processor pwr11 contains duplicate feature 'predictable-select-expensive'
warning: Processor pwr9 contains duplicate feature 'predictable-select-expensive'
```</pre>
</div>
</content>
</entry>
<entry>
<title>Promote 32bit pseudo instr that infer extsw removal to 64bit in PPCMIPeephole (#85451)</title>
<updated>2024-10-31T19:49:36+00:00</updated>
<author>
<name>zhijian lin</name>
<email>zhijian@ca.ibm.com</email>
</author>
<published>2024-10-31T19:49:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=674574d25cc35010dbb0b12b01e8beeaddf20a3f'/>
<id>674574d25cc35010dbb0b12b01e8beeaddf20a3f</id>
<content type='text'>
Fixes:   https://github.com/llvm/llvm-project/issues/71030

Bug only happens in 64bit involving spills. Since we don't know when the
spill will happen, all instructions in the chain used to deduce sign
extension for eliminating 'extsw' will need to be promoted to 64-bit
pseudo instructions.

The following instruction will promoted in PPCMIPeepholes: EXTSH, LHA,
ISEL to EXTSH8, LHA8, ISEL8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes:   https://github.com/llvm/llvm-project/issues/71030

Bug only happens in 64bit involving spills. Since we don't know when the
spill will happen, all instructions in the chain used to deduce sign
extension for eliminating 'extsw' will need to be promoted to 64-bit
pseudo instructions.

The following instruction will promoted in PPCMIPeepholes: EXTSH, LHA,
ISEL to EXTSH8, LHA8, ISEL8
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][PowerPC] Use tablegen's MatchRegisterName() (#111553)</title>
<updated>2024-10-15T20:58:36+00:00</updated>
<author>
<name>Lei Huang</name>
<email>lei@ca.ibm.com</email>
</author>
<published>2024-10-15T20:58:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=23da16933b8ad48a967905369f576e5ec45b985f'/>
<id>23da16933b8ad48a967905369f576e5ec45b985f</id>
<content type='text'>
Use PPC `MatchRegisterName()` that is auto generated by table gen.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use PPC `MatchRegisterName()` that is auto generated by table gen.</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC] Add support for -mcpu=pwr11 / -mtune=pwr11 (#99511)</title>
<updated>2024-07-23T13:49:41+00:00</updated>
<author>
<name>azhan92</name>
<email>alisonxzhang@gmail.com</email>
</author>
<published>2024-07-23T13:49:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1df4d866cca51eeab8f012a97cc50957b45971fe'/>
<id>1df4d866cca51eeab8f012a97cc50957b45971fe</id>
<content type='text'>
This PR adds support for -mcpu=pwr11/power11 and -mtune=pwr11/power11 in
clang and llvm.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds support for -mcpu=pwr11/power11 and -mtune=pwr11/power11 in
clang and llvm.</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC] option `-msoft-float` should not block the PC-relative address instruction (#92543)</title>
<updated>2024-05-29T14:53:00+00:00</updated>
<author>
<name>zhijian lin</name>
<email>zhijian@ca.ibm.com</email>
</author>
<published>2024-05-29T14:53:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6127f15e5b4834411e8f2e700e25c40490deec35'/>
<id>6127f15e5b4834411e8f2e700e25c40490deec35</id>
<content type='text'>
The Prefix instruction is introduced on PowerPC ISA3_1.

In the PR,  
1. The `FeaturePrefixInstrs` do not imply the `FeatureP8Vector`
,`FeatureP9Vector` .
2. `FeaturePrefixInstrs`  implies only the FeatureISA3_1.
3. For the prefix instructions `paddi` and `pli` , they have `Predicates
= [PrefixInstrs] `
4. For the prefix instructions `plfs` and `plfd`, they have `Predicates
= [PrefixInstrs, HasFPU] `
5. For the prefix instructions "plxv` , "plxssp` and `plxsd` , they have
`Predicates = [PrefixInstrs, HasP10Vector]`

Fixes #62372</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Prefix instruction is introduced on PowerPC ISA3_1.

In the PR,  
1. The `FeaturePrefixInstrs` do not imply the `FeatureP8Vector`
,`FeatureP9Vector` .
2. `FeaturePrefixInstrs`  implies only the FeatureISA3_1.
3. For the prefix instructions `paddi` and `pli` , they have `Predicates
= [PrefixInstrs] `
4. For the prefix instructions `plfs` and `plfd`, they have `Predicates
= [PrefixInstrs, HasFPU] `
5. For the prefix instructions "plxv` , "plxssp` and `plxsd` , they have
`Predicates = [PrefixInstrs, HasP10Vector]`

Fixes #62372</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC] Tune AIX shared library TLS model at function level (#84132)</title>
<updated>2024-05-09T01:50:36+00:00</updated>
<author>
<name>Felix (Ting Wang)</name>
<email>Ting.Wang.SH@ibm.com</email>
</author>
<published>2024-05-09T01:50:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ea126aebdc9d8205016f355d85dbf1c15f2f4b28'/>
<id>ea126aebdc9d8205016f355d85dbf1c15f2f4b28</id>
<content type='text'>
Under some circumstance (library loaded with the main program), TLS
initial-exec model can be applied to local-dynamic access(es). We
could use some simple heuristic to decide the update at function level:
* If there is equal or less than a number of TLS local-dynamic access(es)
in the function, use TLS initial-exec model. (the threshold which default to
1 is controlled by hidden option)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Under some circumstance (library loaded with the main program), TLS
initial-exec model can be applied to local-dynamic access(es). We
could use some simple heuristic to decide the update at function level:
* If there is equal or less than a number of TLS local-dynamic access(es)
in the function, use TLS initial-exec model. (the threshold which default to
1 is controlled by hidden option)</pre>
</div>
</content>
</entry>
</feed>
