1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/lib
Craig Topper 0a8fb0b4d7 [RISCV] Custom lower (i32 (fptoui/fptosi X)).
I stumbled onto a case where our (sext_inreg (assertzexti32 (fptoui X)), i32)
isel pattern can cause an fcvt.wu and fcvt.lu to be emitted if
the assertzexti32 has an additional user. If we add a one use check
it would just cause a fcvt.lu followed by a sext.w when only need
a fcvt.wu to satisfy both users.

To mitigate this I've added custom isel and new ISD opcodes for
fcvt.wu. This allows us to keep know it started life as a conversion
to i32 without needing to match multiple nodes. ComputeNumSignBits
has been taught that this new nodes produces 33 sign bits. To
prevent regressions when we need to zero extend the result of an
(i32 (fptoui X)), I've added a DAG combine to convert it to an
(i64 (fptoui X)) before type legalization. In most cases this would
happen in InstCombine, but a zero_extend can be created for function
returns or arguments.

To keep everything consistent I've added new nodes for fptosi as well.

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D106346
2021-07-24 10:50:43 -07:00
..
Analysis Style tweaks for SCEV's computeMaxBECountForLT [NFC] 2021-07-23 17:19:45 -07:00
AsmParser [IR] Rename comdat noduplicates to comdat nodeduplicate 2021-07-20 12:47:10 -07:00
BinaryFormat [SystemZ][z/OS] Add GOFF support to file magic identification 2021-07-20 10:50:47 -04:00
Bitcode [IR] Rename comdat noduplicates to comdat nodeduplicate 2021-07-20 12:47:10 -07:00
Bitstream
CodeGen [CGP] despeculateCountZeros - Don't create is-zero branch if cttz/ctlz source is known non-zero 2021-07-24 13:11:49 +01:00
DebugInfo [DebugInfo] Remove unnecessary <string> include dependency from DebugInfo headers. NFC. 2021-07-17 16:56:06 +01:00
Demangle Demangle: correct swift_async demangling for Microsoft scheme 2021-07-14 11:43:44 -07:00
DWARFLinker [MC] Refactor MCObjectFileInfo initialization and allow targets to create MCObjectFileInfo 2021-05-23 14:15:23 -07:00
DWP [DWP] Refactoring llvm-dwp in to a library part 2 2021-07-22 14:23:29 -07:00
ExecutionEngine Re-re-re-apply "[ORC][ORC-RT] Add initial native-TLV support to MachOPlatform." 2021-07-24 13:16:12 +10:00
Extensions
FileCheck [llvm] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
Frontend [OpenMP] Unified entry point for SPMD & generic kernels in the device RTL 2021-07-10 17:53:56 -05:00
Fuzzer
FuzzMutate [NewPM][FuzzMutate] Fix renaming 'unswitch' to 'simple-loop-unswitch' 2021-07-09 12:24:12 +02:00
InterfaceStub IFSStub.cpp - consistently use default case to silence 'not all control paths return' MSVC warnings. NFCI. 2021-07-21 11:59:34 +01:00
IR [ConstantFold] Fix GEP of GEP fold with opaque pointers 2021-07-23 23:56:41 +02:00
IRReader [NFC] Reordering parameters in getFile and getFileOrSTDIN 2021-03-25 09:47:49 -04:00
LineEditor
Linker [IR] Rename comdat noduplicates to comdat nodeduplicate 2021-07-20 12:47:10 -07:00
LTO PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
MC [ms] [llvm-ml] Fix macro case-insensitivity 2021-07-22 15:50:52 -04:00
MCA [MCA] [In-order pipeline] Fix for 0 latency instruction causing assertion to fail. 2021-06-22 10:18:39 -07:00
Object [LTO] Add SelectionKind to IRSymtab and use it in ld.lld/LLVMgold 2021-07-20 13:22:00 -07:00
ObjectYAML [COFF] [CodeView] Add a few new enum values 2021-07-07 22:00:18 +03:00
Option [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
Passes [NewPM] Add CrossDSOCFI pass irrespective of LTO optimization level 2021-07-23 14:13:12 -07:00
ProfileData [profile] Add binary id into profiles 2021-07-23 00:19:12 +00:00
Remarks [Support] Don't include VirtualFileSystem.h in CommandLine.h 2021-04-21 10:19:01 -04:00
Support [ARM] Remove getHWDivName (NFC) 2021-07-23 07:44:23 -07:00
TableGen DetailedRecordsBackend.cpp - printSectionHeading - avoid std::string creation/copies. 2021-06-13 16:49:40 +01:00
Target [RISCV] Custom lower (i32 (fptoui/fptosi X)). 2021-07-24 10:50:43 -07:00
Testing Fix for error "'Run' overrides a member function but is not marked 2021-06-11 06:56:00 -07:00
TextAPI Reland "[llvm] llvm-tapi-diff" 2021-06-09 21:17:34 -07:00
ToolDrivers [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
Transforms [InstCombine] Add freezeAllUsesOfArgument to visitFreeze 2021-07-24 18:08:58 +09:00
WindowsManifest
XRay
CMakeLists.txt [DWP] Refactoring llvm-dwp in to a library part 2 2021-07-22 14:23:29 -07:00