History log of /llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86EncodingOptimization.cpp (Results 1 – 23 of 23)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5
# d4f2b71c 19-Nov-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] Fix position of immediate argument in AVX512 VPCMP comparisons (#116646)

The 'i' arg was being put between the 'm' and 'b' args instead of afterwards like other avx512 instructions (VCMPPS/D,

[X86] Fix position of immediate argument in AVX512 VPCMP comparisons (#116646)

The 'i' arg was being put between the 'm' and 'b' args instead of afterwards like other avx512 instructions (VCMPPS/D, VPERMILPS/D etc.).

show more ...


Revision tags: llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1
# b47af5d1 22-Sep-2024 Craig Topper <craig.topper@sifive.com>

[MC] Replace some comparisons of MCRegister and literal 0. NFC

We can convert the MCRegister to bool instead. I think this should
allows us to remove MCRegister::operator==(int). All other compariso

[MC] Replace some comparisons of MCRegister and literal 0. NFC

We can convert the MCRegister to bool instead. I think this should
allows us to remove MCRegister::operator==(int). All other comparisons
in tree are unsigned.

show more ...


Revision tags: llvmorg-19.1.0
# a20a9738 14-Sep-2024 Craig Topper <craig.topper@sifive.com>

[X86] Use MCRegister in more places. NFC (#108682)


Revision tags: llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init
# a9183b88 09-Jul-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][MC] Fix encoding bug for CCMP introduced in #85175


Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2
# 92d7aca4 09-Mar-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] Add missing immediate qualifier to the (V)CMPSS/D instructions (#84496)

Matches (V)CMPPS/D and makes it easier to algorithmically recreate the instruction name in various analysis scripts I'm

[X86] Add missing immediate qualifier to the (V)CMPSS/D instructions (#84496)

Matches (V)CMPPS/D and makes it easier to algorithmically recreate the instruction name in various analysis scripts I'm working on

show more ...


Revision tags: llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2
# 5910e34a 30-Jan-2024 XinWang10 <108658776+XinWang10@users.noreply.github.com>

[X86][MC] Support encoding optimization & assembler relaxation about immediate operands for APX instructions (#78545)

Encoding optimization:
```
mi/mi32 -> mi8
ri/ri32 -> ri8
```
if the immedi

[X86][MC] Support encoding optimization & assembler relaxation about immediate operands for APX instructions (#78545)

Encoding optimization:
```
mi/mi32 -> mi8
ri/ri32 -> ri8
```
if the immediate operand is 8-bit wide.

Assembler relaxation:
```
mi8 -> mi/mi32
ri8 -> ri/ri32
```
If the immediate operand is a symbol expression and it's value is
unknown.

show more ...


Revision tags: llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5
# 3f1e9468 20-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][MC][bolt] Share code between encoding optimization and assembler relaxation, NFCI

PUSH[16|32|64]i[8|32] are not arithmetic instructions, so I renamed the
functions.

Reviewed By: Amir

Differe

[X86][MC][bolt] Share code between encoding optimization and assembler relaxation, NFCI

PUSH[16|32|64]i[8|32] are not arithmetic instructions, so I renamed the
functions.

Reviewed By: Amir

Differential Revision: https://reviews.llvm.org/D151028

show more ...


# f6038096 20-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86] Move encoding optimization for PUSH32i, PUSH64i to MC lowering, NFCI


# 0d9b36ce 20-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86] Remove patterns for IMUL with immediate 8 and optimize during MC lowering, NFCI


# c81a121f 19-May-2023 Shengchen Kan <shengchen.kan@intel.com>

Revert "Revert "[X86] Remove patterns for ADC/SBB with immediate 8 and optimize during MC lowering, NFCI""

This reverts commit cb16b33a03aff70b2499c3452f2f817f3f92d20d.

In fact, the test https://bu

Revert "Revert "[X86] Remove patterns for ADC/SBB with immediate 8 and optimize during MC lowering, NFCI""

This reverts commit cb16b33a03aff70b2499c3452f2f817f3f92d20d.

In fact, the test https://bugs.chromium.org/p/chromium/issues/detail?id=1446973#c2
already passed after 5586bc539acb26cb94e461438de01a5080513401

show more ...


# cb16b33a 19-May-2023 Hans Wennborg <hans@chromium.org>

Revert "[X86] Remove patterns for ADC/SBB with immediate 8 and optimize during MC lowering, NFCI"

This caused compiler assertions, see comment on
https://reviews.llvm.org/D150107.

This also reverts

Revert "[X86] Remove patterns for ADC/SBB with immediate 8 and optimize during MC lowering, NFCI"

This caused compiler assertions, see comment on
https://reviews.llvm.org/D150107.

This also reverts the dependent follow-up change:

> [X86] Remove patterns for ADD/AND/OR/SUB/XOR/CMP with immediate 8 and optimize during MC lowering, NFCI
>
> This is follow-up of D150107.
>
> In addition, the function `X86::optimizeToFixedRegisterOrShortImmediateForm` can be
> shared with project bolt and eliminates the code in X86InstrRelaxTables.cpp.
>
> Differential Revision: https://reviews.llvm.org/D150949

This reverts commit 2ef8ae134828876ab3ebda4a81bb2df7b095d030 and
5586bc539acb26cb94e461438de01a5080513401.

show more ...


# 5586bc53 19-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86] Remove patterns for ADD/AND/OR/SUB/XOR/CMP with immediate 8 and optimize during MC lowering, NFCI

This is follow-up of D150107.

In addition, the function `X86::optimizeToFixedRegisterOrShortI

[X86] Remove patterns for ADD/AND/OR/SUB/XOR/CMP with immediate 8 and optimize during MC lowering, NFCI

This is follow-up of D150107.

In addition, the function `X86::optimizeToFixedRegisterOrShortImmediateForm` can be
shared with project bolt and eliminates the code in X86InstrRelaxTables.cpp.

Differential Revision: https://reviews.llvm.org/D150949

show more ...


# 2ef8ae13 19-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86] Remove patterns for ADC/SBB with immediate 8 and optimize during MC lowering, NFCI

This is follow-up of D150107.


# b87bb4e0 18-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][MC] Move the code about fixed register encoding optimization to X86EncodingOptimization.cpp, NFCI


# 025c1587 18-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][MC] Move encoding optimization for VCMP to X86::optimizeInstFromVEX3ToVEX2, NFCI

This is a follow-up for c13ed1cc7578


# 87671db0 18-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][MC] Simplify code for X86::optimizeInstFromVEX3ToVEX2


# 15100a2d 18-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][MC] Move the code about MOV encoding optimization to X86EncodingOptimization.cpp, NFCI


# 4a92d69a 18-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][MC] Move the code about INC/DEC encoding optimization to X86EncodingOptimization.cpp, NFCI


# d9610b4a 17-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][MC] Move the code about MOVSX encoding optimization to X86EncodingOptimization.cpp, NFCI


# 2fb7506f 17-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][MC] Move the code about VPCMP encoding optimization to X86EncodingOptimization.cpp, NFCI


Revision tags: llvmorg-16.0.4
# db39d479 07-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][AsmParser] Reapply "Refactor code and optimize more instructions from VEX3 to VEX2"

This was reverted in d4994d0e7922 b/c a bolt test failed after the
encoding changed.

Relanded the patch wit

[X86][AsmParser] Reapply "Refactor code and optimize more instructions from VEX3 to VEX2"

This was reverted in d4994d0e7922 b/c a bolt test failed after the
encoding changed.

Relanded the patch with the updated test.

show more ...


# c13ed1cc 07-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][AsmParser] Refactor code and optimize more instructions from VEX3 to VEX2

1. Share code `optimizeInstFromVEX3ToVEX2` with MCInstLower
2. Move the code of optimization for shift/rotate to a sep

[X86][AsmParser] Refactor code and optimize more instructions from VEX3 to VEX2

1. Share code `optimizeInstFromVEX3ToVEX2` with MCInstLower
2. Move the code of optimization for shift/rotate to a separate file
3. Since the function is shared, a side effect is that more encoding
optimizations are done on the Asmparser side. Considering we already
use reverse-encoding for optimization in AsmParser before this patch,
I believe the change is positive and expected.

This is a reland of D150068 with the fix D150440.

show more ...


# 8d657c46 07-May-2023 Shengchen Kan <shengchen.kan@intel.com>

[X86][AsmParser] Refactor code in AsmParser

1. Share code `optimizeInstFromVEX3ToVEX2` with MCInstLower
2. Move the code of optimization for shift/rotate to a separate file

Reviewed By: craig.toppe

[X86][AsmParser] Refactor code in AsmParser

1. Share code `optimizeInstFromVEX3ToVEX2` with MCInstLower
2. Move the code of optimization for shift/rotate to a separate file

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D150068

show more ...