1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/lib
Diana Picus 7511d6e3fd [ARM GlobalISel] Support G_CTLZ and G_CTLZ_ZERO_UNDEF
We can now select CLZ via the TableGen'erated code, so support G_CTLZ
and G_CTLZ_ZERO_UNDEF throughout the pipeline for types <= s32.

Legalizer:
If the CLZ instruction is available, use it for both G_CTLZ and
G_CTLZ_ZERO_UNDEF. Otherwise, use a libcall for G_CTLZ_ZERO_UNDEF and
lower G_CTLZ in terms of it.

In order to achieve this we need to add support to the LegalizerHelper
for the legalization of G_CTLZ_ZERO_UNDEF for s32 as a libcall (__clzsi2).

We also need to allow lowering of G_CTLZ in terms of G_CTLZ_ZERO_UNDEF
if that is supported as a libcall, as opposed to just if it is Legal or
Custom. Due to a minor refactoring of the helper function in charge of
this, we will also allow the same behaviour for G_CTTZ and G_CTPOP.
This is not going to be a problem in practice since we don't yet have
support for treating G_CTTZ and G_CTPOP as libcalls (not even in
DAGISel).

Reg bank select:
Map G_CTLZ to GPR. G_CTLZ_ZERO_UNDEF should not make it to this point.

Instruction select:
Nothing to do.

llvm-svn: 347545
2018-11-26 11:07:02 +00:00
..
Analysis Revert unapproved commit 2018-11-24 07:26:55 +00:00
AsmParser Attempt to fix buildbot after r347489 2018-11-23 11:28:58 +00:00
BinaryFormat Revert r347490 as it breaks address sanitizer builds 2018-11-23 17:13:06 +00:00
Bitcode [DebugInfo] DISubprogram flags get their own flags word. NFC. 2018-11-19 18:29:28 +00:00
CodeGen [ARM GlobalISel] Support G_CTLZ and G_CTLZ_ZERO_UNDEF 2018-11-26 11:07:02 +00:00
DebugInfo Revert r347490 as it breaks address sanitizer builds 2018-11-23 17:13:06 +00:00
Demangle
ExecutionEngine [ExecutionEngine][Interpreter] Fix out-of-bounds array access. 2018-11-20 01:01:26 +00:00
Fuzzer
FuzzMutate
IR [ThinLTO] Assembly representation of ReadOnly attribute 2018-11-23 10:54:51 +00:00
IRReader
LineEditor
Linker [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
LTO [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
MC Revert r347490 as it breaks address sanitizer builds 2018-11-23 17:13:06 +00:00
Object Use llvm::copy. NFC 2018-11-17 01:44:25 +00:00
ObjectYAML
Option
OptRemarks
Passes [PM] Port Scalarizer to the new pass manager. 2018-11-21 14:00:17 +00:00
ProfileData
Support [Support/FileSystem] Add sub-second precision for atime/mtime of sys::fs::file_status on unix platforms 2018-11-26 00:03:39 +00:00
TableGen Reverted r347092 due to the following build fails: 2018-11-17 02:26:34 +00:00
Target [ARM GlobalISel] Support G_CTLZ and G_CTLZ_ZERO_UNDEF 2018-11-26 11:07:02 +00:00
Testing
ToolDrivers
Transforms [IPSCCP] Use input operand instead of OriginalOp for ssa_copy. 2018-11-25 16:32:02 +00:00
WindowsManifest
XRay
CMakeLists.txt
LLVMBuild.txt