1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/include/llvm
Fraser Cormack 5e5115bbd0 [MemCpyOpt] Fix a variety of scalable-type crashes
This patch fixes a variety of crashes resulting from the `MemCpyOptPass`
casting `TypeSize` to a constant integer, whether implicitly or
explicitly.

Since the `MemsetRanges` requires a constant size to work, all but one
of the fixes in this patch simply involve skipping the various
optimizations for scalable types as cleanly as possible.

The optimization of `byval` parameters, however, has been updated to
work on scalable types in theory. In practice, this optimization is only
valid when the length of the `memcpy` is known to be larger than the
scalable type size, which is currently never the case. This could
perhaps be done in the future using the `vscale_range` attribute.

Some implicit casts have been left as they were, under the knowledge
they are only called on aggregate types. These should never be
scalably-sized.

Reviewed By: nikic, tra

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

(cherry-picked from commit 7fb66d4)
2021-09-09 16:21:27 -07:00
..
ADT Add llvm::equal convenient wrapper for ranges around std::equal 2021-07-28 00:10:22 +00:00
Analysis Fine grain control over some symbol visibility 2021-09-08 21:06:19 -07:00
AsmParser [AsmParser] Remove MDRef (NFC) 2021-07-26 08:29:33 -07:00
BinaryFormat Reland: "[WebAssembly] Deduplicate imports of the same module name, field name, and type" 2021-07-22 14:16:05 -07:00
Bitcode [IR] Add elementtype attribute 2021-07-15 18:04:26 +02:00
Bitstream BitstreamWriter.h - add missing implicit MathExtras.h header dependency. NFCI. 2021-06-05 19:20:14 +01:00
CodeGen Fine grain control over some symbol visibility 2021-09-08 21:06:19 -07:00
Config Move the definition of LLVM_SUPPORT_XCODE_SIGNPOSTS into llvm-config.h 2021-06-16 14:40:37 -07:00
DebugInfo [Debug-Info][llvm-dwarfdump] Don't try to dump location 2021-07-27 07:28:59 +00:00
Demangle [demangler] Fix demangling of 'half' 2021-07-19 21:21:34 +01:00
DWARFLinker [dsymutil] Add flag to force a static variable to keep its enclosing function 2021-04-28 11:33:04 -07:00
DWP [DWP] Refactoring llvm-dwp in to a library part 2 2021-07-22 14:23:29 -07:00
ExecutionEngine [ORC] Require ExecutorProcessControl when constructing an ExecutionSession. 2021-07-27 16:53:49 +10:00
FileCheck [FileCheck] Fix numeric error propagation 2021-03-17 19:25:41 -04:00
Frontend [mlir][openacc] Initial translation for DataOp to LLVM IR 2021-07-27 22:04:04 -04:00
FuzzMutate
InterfaceStub [ifs][elfabi] Merge llvm-ifs/elfabi tools 2021-07-19 11:23:19 -07:00
IR Fine grain control over some symbol visibility 2021-09-08 21:06:19 -07:00
IRReader
LineEditor
Linker
LTO [LTO] Add SelectionKind to IRSymtab and use it in ld.lld/LLVMgold 2021-07-20 13:22:00 -07:00
MC [SystemZ][z/OS] Initial code to generate assembly files on z/OS 2021-07-27 11:29:15 -04:00
MCA [MCA] Anchoring the vtable of CustomBehaviour 2021-06-16 12:43:58 -07:00
Object [LTO] Add SelectionKind to IRSymtab and use it in ld.lld/LLVMgold 2021-07-20 13:22:00 -07:00
ObjectYAML [yaml2obj][MachO] Rename PayloadString to Content 2021-07-26 09:04:51 -07:00
Option [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
Passes [NewPM] Print pre-transformation IR name in --print-after-all 2021-07-20 10:20:10 -07:00
ProfileData [profile] Fix profile merging with binary IDs 2021-08-12 22:46:22 -07:00
Remarks
Support [AArch64] Add a Machine Value Type for 8 consecutive registers 2021-08-02 15:45:58 +01:00
TableGen [TableGen] Fix two bugs in 'defm' when complex 'assert' is involved. 2021-04-30 11:31:06 -04:00
Target [GlobalISel] Add a constant folding combine. 2021-07-26 14:53:33 -07:00
Testing/Support added some example code for llvm::Expected<T> 2021-07-01 09:57:20 +00:00
TextAPI [TextAPI] add symbol name prefixes to central location, NFC 2021-06-23 11:21:00 -07:00
ToolDrivers
Transforms [MemCpyOpt] Fix a variety of scalable-type crashes 2021-09-09 16:21:27 -07:00
WindowsManifest
WindowsResource
XRay
CMakeLists.txt
InitializePasses.h Add jump-threading optimization for deterministic finite automata 2021-07-27 14:34:04 -04:00
LinkAllIR.h
LinkAllPasses.h Add jump-threading optimization for deterministic finite automata 2021-07-27 14:34:04 -04:00
module.extern.modulemap
module.install.modulemap
module.modulemap Revert "[build][modules] Fix ObjCARCUtil.h modularization" 2021-03-09 09:36:47 -08:00
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassRegistry.h
PassSupport.h