History log of /llvm-project/llvm/lib/Target/X86/X86CompressEVEX.cpp (Results 1 – 22 of 22)
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
# 29f11f0a 22-Nov-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] Add missing reg/imm attributes to VRNDSCALES instruction names (#117203)

More canonicalization of the instruction names to make the predictable - more closely matches VRNDSCALEP / VROUND equiv

[X86] Add missing reg/imm attributes to VRNDSCALES instruction names (#117203)

More canonicalization of the instruction names to make the predictable - more closely matches VRNDSCALEP / VROUND equivalent instructions

show more ...


Revision tags: llvmorg-19.1.4
# dfe43bd1 09-Nov-2024 Kazu Hirata <kazu@google.com>

[X86] Remove unused includes (NFC) (#115593)

Identified with misc-include-cleaner.


Revision tags: llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0
# 614a064c 15-Sep-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] Add missing immediate qualifier to the (V)INSERT/EXTRACT/PERM2 instruction names (#108593)

Makes it easier to algorithmically recreate the instruction name in various analysis scripts I'm work

[X86] Add missing immediate qualifier to the (V)INSERT/EXTRACT/PERM2 instruction names (#108593)

Makes it easier to algorithmically recreate the instruction name in various analysis scripts I'm working on

show more ...


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
# bdc7840c 19-Jun-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][CodeGen] Share code between CompressEVEX pass and ND2NonND transform, NFCI


Revision tags: llvmorg-18.1.8, llvmorg-18.1.7
# 9c4bae7c 29-May-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][CodeGen] Disable NDD2NonNDD compression for CFCMOV


# a9e8a3a1 29-May-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][CodeGen] Extend X86CompressEVEX for NF transform


# 17ecd23f 28-May-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][tablgen] Extend X86CompressEVEXTablesEmitter for NF transform

The generated table will be used in #93508


Revision tags: llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1
# 420928b2 01-Mar-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][CodeGen] Fix compile crash in EVEX compression for corner case

The base register of OPmi_ND may be allocated to the same physic
register as the ND operand.

OPmi_ND is not compressible b/c it

[X86][CodeGen] Fix compile crash in EVEX compression for corner case

The base register of OPmi_ND may be allocated to the same physic
register as the ND operand.

OPmi_ND is not compressible b/c it has different semnatic from OPmi.
In this case, `isRedundantNewDataDest` should return false, otherwise
we would get error

Assertion `!IsNDLike && "Missing entry for ND-like instruction"' failed.

show more ...


Revision tags: llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2
# 2acf302c 30-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][NFC] X86CompressEVEX.cpp - Simplify code after 0c623b58e39cba7e67a0049dbcac87fdcc0103e1


# 0c623b58 30-Jan-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

[X86] X86CompressEVEX.cpp - ensure we tie the operands on MOVBErr instructions

Minor correction for #79775 - noticed in EXPENSIVE_CHECKS builds


# 7a51aead 30-Jan-2024 Jie Fu <jiefu@tencent.com>

[X86] Silence -Wlogical-op-parentheses in X86CompressEVEX.cpp (NFC)

llvm-project/llvm/lib/Target/X86/X86CompressEVEX.cpp:233:15:
error: '&&' within '||' [-Werror,-Wlogical-op-parentheses]
if (!I

[X86] Silence -Wlogical-op-parentheses in X86CompressEVEX.cpp (NFC)

llvm-project/llvm/lib/Target/X86/X86CompressEVEX.cpp:233:15:
error: '&&' within '||' [-Werror,-Wlogical-op-parentheses]
if (!IsND && !IsMovberr || !isRedundantNewDataDest(MI, ST))
~~~~~~^~~~~~~~~~~~~ ~~
llvm-project/llvm/lib/Target/X86/X86CompressEVEX.cpp:233:15:
note: place parentheses around the '&&' expression to silence this warning
if (!IsND && !IsMovberr || !isRedundantNewDataDest(MI, ST))
^
( )
1 error generated.

show more ...


# 1a219e98 30-Jan-2024 XinWang10 <108658776+XinWang10@users.noreply.github.com>

[X86] Support EVEX compression from MOVBErr to BSWAP (#79775)

APX promoted MOVBE instructions were supported in #77431. The reg2reg
variants of MOVBE are newly introduced by APX and can be optimize

[X86] Support EVEX compression from MOVBErr to BSWAP (#79775)

APX promoted MOVBE instructions were supported in #77431. The reg2reg
variants of MOVBE are newly introduced by APX and can be optimized to
BSWAP instruction when the 2 register operands are same.

This patch adds manual entries for MOVBErr instructions when we do ndd
to non-ndd compression #77731.
RFC:
https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031/4

show more ...


Revision tags: llvmorg-18.1.0-rc1, llvmorg-19-init
# 66237d64 23-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][CodeGen] Add entries for NDD SHLD/SHRD to the commuteInstructionImpl


# c2bef33c 22-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][NFC] Auto-generate the function to check predicate for EVEX compression


# 4f71068b 12-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86] Correct the asm comment for compression NF_ND -> NF


# 9095eec0 12-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][CodeGen] Support EVEX compression: NDD to nonNDD (#77731)


# fb72a445 08-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86] Emit NDD2NonNDD entris in the EVEX comprerssion table, NFCI

This patch is a straightfoward change based on the design in #77202.
It does not have any effect since we haven't supported compress

[X86] Emit NDD2NonNDD entris in the EVEX comprerssion table, NFCI

This patch is a straightfoward change based on the design in #77202.
It does not have any effect since we haven't supported compressing ND
to non-ND in X86CompressEVEX.cpp.

show more ...


# 1c674666 08-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86] Support EVEX compression for EGPR (#77202)

Compress promoted instruction (EVEX) to pre-promotion instruction
(legacy/VEX) when R16-R31 is not used.

Alternative of #77065


# 93c8468c 08-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][NFC] Remove duplicate comments in X86CompressEVEX.cpp


# 61bb3d49 06-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][NFC] Avoid uselss iterations when emitting EVEX compression table

BTW, we relax the condition for EVEX compression from
ST.hasAVX512() to ST.hasEGPR() || ST.hasAVX512(). It does not have any
e

[X86][NFC] Avoid uselss iterations when emitting EVEX compression table

BTW, we relax the condition for EVEX compression from
ST.hasAVX512() to ST.hasEGPR() || ST.hasAVX512(). It does not have any
effect now b/c no APX instruction is in the EVEX compression table so
far.

This patch is to extract NFC in #77065 into a separate commit.

show more ...


# 0abf3a93 06-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][NFC] Use single table for EVEX compression

This patch is to address my review comments in #77065 to simplify the
implemention of EVEX2Legacy compression.


# a5902a4d 06-Jan-2024 Shengchen Kan <shengchen.kan@intel.com>

[X86][NFC] Rename variables/passes for EVEX compression optimization

RFC: https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031

APX introduces EGPR, NDD and NF instruct

[X86][NFC] Rename variables/passes for EVEX compression optimization

RFC: https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031

APX introduces EGPR, NDD and NF instructions. In addition to compressing
EVEX encoded AVX512 instructions into VEX encoding, we also have several
more possible optimizations.

a. Promoted instruction (EVEX space) -> pre-promotion instruction (legacy space)
b. NDD (EVEX space) -> non-NDD (legacy space)
c. NF_ND (EVEX space) -> NF (EVEX space)

The first two types of compression can usually reduce code size, while
the third type of compression can help hardware decode although the
instruction length remains unchanged.

So we do the renaming for the upcoming APX optimizations.

BTW, I clang-format the code in X86CompressEVEX.cpp,
X86CompressEVEXTablesEmitter.cpp.

This patch also extracts the NFC in #77065 into a separate commit.

show more ...