llvm-project/llvm/lib
Amy Kwan 150681f2f3 [PowerPC] Prevent the optimizer from producing wide vector types in IR.
This patch prevents the optimizer from producing wide vectors in the IR,
specifically the MMA types (v256i1, v512i1). The idea is that on Power, we only
want to be producing these types only if the vector_pair and vector_quad types
are used specifically.

To prevent the optimizer from producing these types in the IR,
vectorCostAdjustmentFactor() is updated to return an instruction cost factor or
an invalid instruction cost if the current type is that of an MMA type. An
invalid instruction cost returned by this function signifies to other cost
computing functions to return the maximum instruction cost to inform the
optimizer that producing these types within the IR is expensive, and should not
be produced in the first place.

This issue was first seen in the test case included within this patch.

Differential Revision: https://reviews.llvm.org/D113900
2021-11-25 12:35:26 -06:00
..
Analysis [LLVM][NFC]Inclusive language: remove occurances of sanity check/test from llvm 2021-11-24 17:29:55 -05:00
AsmParser [LLVM][NFC]Inclusive language: remove occurances of sanity check/test from llvm 2021-11-24 17:29:55 -05:00
BinaryFormat [llvm][clang][NFC] updates inline licence info 2021-08-11 02:48:53 +00:00
Bitcode [LLVM][NFC]Inclusive language: remove occurances of sanity check/test from llvm 2021-11-24 17:29:55 -05:00
Bitstream
CodeGen [llvm] Use range-based for loops (NFC) 2021-11-25 08:55:16 -08:00
DWARFLinker Move TargetRegistry.(h|cpp) from Support to MC 2021-10-08 14:51:48 -07:00
DWP
DebugInfo DWARFVerifier: Don't parse all units twice 2021-11-24 14:03:56 -08:00
Demangle Fix memory leak in D demangler 2021-11-09 16:08:14 -08:00
ExecutionEngine [ORC][JITLink] Move JITDylib name into JITLinkDylib base class. 2021-11-19 20:54:28 -08:00
Extensions
FileCheck [llvm] Use StringRef::contains (NFC) 2021-10-23 08:45:27 -07:00
Frontend Move TargetRegistry.(h|cpp) from Support to MC 2021-10-08 14:51:48 -07:00
FuzzMutate
Fuzzer
IR [LLVM][NFC]Inclusive language: remove occurances of sanity check/test from llvm 2021-11-24 17:29:55 -05:00
IRReader
InterfaceStub [LLVM][NFC]Inclusive language: remove occurances of sanity check/test from llvm 2021-11-24 17:29:55 -05:00
LTO [NewPM] Use the default AA pipeline by default 2021-11-04 15:10:34 -07:00
LineEditor
Linker [llvm] Use make_early_inc_range (NFC) 2021-11-05 19:39:07 -07:00
MC [LLVM][NFC]Inclusive language: remove occurances of sanity check/test from llvm 2021-11-24 17:29:55 -05:00
MCA [LLVM][NFC]Inclusive language: remove occurances of sanity check/test from llvm 2021-11-24 17:29:55 -05:00
Object Extend obj2yaml to optionally preserve raw __LINKEDIT/__DATA segments. 2021-11-08 11:30:12 -08:00
ObjectYAML Reland [XCOFF][yaml2obj] support for the auxiliary file header. 2021-11-10 07:23:56 +00:00
Option [llvm/OptTable] Add named param comment for GroupedShortOption 2021-09-27 11:33:29 -04:00
Passes [NewPM] Add option to prevent rerunning function pipeline on functions in CGSCC adaptor 2021-11-17 09:06:46 -08:00
ProfileData [LLVM][NFC]Inclusive language: remove occurances of sanity check/test from llvm 2021-11-24 17:29:55 -05:00
Remarks
Support Revert "[ThreadPool] Support returning futures with results." 2021-11-25 12:19:35 -05:00
TableGen [Tablegen] Collect all global state into one managed static 2021-11-09 01:24:54 +00:00
Target [PowerPC] Prevent the optimizer from producing wide vector types in IR. 2021-11-25 12:35:26 -06:00
Testing
TextAPI [llvm] Use drop_begin (NFC) 2021-09-16 08:46:26 -07:00
ToolDrivers [Type] Avoid APFloat.h include (NFC) 2021-10-09 11:29:26 +02:00
Transforms Revert "[SLP]Improve analysis/emission of vector operands for alternate nodes." 2021-11-25 05:19:49 -08:00
WindowsManifest Make WindowsManifestMerger::merge() take a MemoryBufferRef 2021-08-24 16:39:20 -04:00
XRay Support: Use Expected<T>::moveInto() in a few places 2021-10-22 12:40:10 -07:00
CMakeLists.txt