llvm-project/llvm/lib/IR
Eli Friedman 1ee6ec2bf3 Remove "mask" operand from shufflevector.
Instead, represent the mask as out-of-line data in the instruction. This
should be more efficient in the places that currently use
getShuffleVector(), and paves the way for further changes to add new
shuffles for scalable vectors.

This doesn't change the syntax in textual IR. And I don't currently plan
to change the bitcode encoding in this patch, although we'll probably
need to do something once we extend shufflevector for scalable types.

I expect that once this is finished, we can then replace the raw "mask"
with something more appropriate for scalable vectors.  Not sure exactly
what this looks like at the moment, but there are a few different ways
we could handle it.  Maybe we could try to describe specific shuffles.
Or maybe we could define it in terms of a function to convert a fixed-length
array into an appropriate scalable vector, using a "step", or something
like that.

Differential Revision: https://reviews.llvm.org/D72467
2020-03-31 13:08:59 -07:00
..
AbstractCallSite.cpp [Attributor] Use abstract call sites to determine associated arguments 2019-12-31 01:33:22 -06:00
AsmWriter.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
AttributeImpl.h [NFC] Factor out function to detect if an attribute has an argument. 2020-02-03 22:27:24 +01:00
Attributes.cpp [AssumeBundles] Enforce constraints on the operand bundle of llvm.assume 2020-03-11 23:53:48 +01:00
AutoUpgrade.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
BasicBlock.cpp [CFG/BasicBlock] Rename succ_const to const_succ. [NFC] 2020-03-25 12:40:55 -07:00
CMakeLists.txt Fixed [AssumeBundles] Move to IR so it can be used by Analysis 2020-03-10 18:02:39 +01:00
Comdat.cpp
ConstantFold.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantFold.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantRange.cpp [ConstantRange] Add initial support for binaryXor. 2020-03-24 12:59:50 +00:00
Constants.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
ConstantsContext.h Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
Core.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
DIBuilder.cpp Add debug info support for Swift/Clang APINotes. 2020-03-11 18:47:30 -07:00
DataLayout.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
DebugInfo.cpp Add debug info support for Swift/Clang APINotes. 2020-03-11 18:47:30 -07:00
DebugInfoMetadata.cpp [DwarfDebug] Fix an assertion error when emitting call site info that combines two DW_OP_stack_values 2020-03-17 12:51:49 -07:00
DebugLoc.cpp
DiagnosticHandler.cpp
DiagnosticInfo.cpp [NFC] Remove trailing space 2020-02-18 10:49:13 +08:00
DiagnosticPrinter.cpp
Dominators.cpp [Dominators] Use Instruction::comesBefore for block-local queries, NFC 2020-02-20 16:41:51 -08:00
FPEnv.cpp [FEnv] Constfold some unary constrained operations 2020-03-28 12:28:33 +07:00
Function.cpp Add <128 x i1> as an intrinsic type 2020-02-19 09:38:13 -06:00
GVMaterializer.cpp
Globals.cpp Implement -fsemantic-interposition 2020-01-31 14:02:33 +01:00
IRBuilder.cpp Reapply [IRBuilder] Always respect inserter/folder 2020-02-19 20:51:38 +01:00
IRPrintingPasses.cpp [PassInstrumentation] Remove excess newline for the new pass manager 2019-11-28 17:20:17 -08:00
InlineAsm.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
Instruction.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
Instructions.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00
IntrinsicInst.cpp [VP,Integer,#1] Vector-predicated integer intrinsics 2020-03-19 10:51:47 +01:00
KnowledgeRetention.cpp Fix 7093b92a13 2020-03-31 19:47:01 +02:00
LLVMBuild.txt [Remarks] Add string deduplication using a string table 2019-04-24 00:06:24 +00:00
LLVMContext.cpp [Remarks] Fix gcc build 2020-02-04 17:43:59 -08:00
LLVMContextImpl.cpp Make dropTriviallyDeadConstantArrays not quadratic 2020-01-21 16:06:46 +01:00
LLVMContextImpl.h Add debug info support for Swift/Clang APINotes. 2020-03-11 18:47:30 -07:00
LLVMRemarkStreamer.cpp Avoid including FileSystem.h from MemoryBuffer.h 2020-02-29 12:30:23 -08:00
LegacyPassManager.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
MDBuilder.cpp [MDBuilder] Don't use stable sort for sorting integers. 2020-03-28 21:19:46 +01:00
Mangler.cpp Standardize on MSVC behavior for triples with no environment 2019-07-08 21:05:20 +00:00
Metadata.cpp [APFloat] Make use of new overloaded comparison operators. NFC. 2020-03-06 16:42:53 +00:00
MetadataImpl.h
Module.cpp RNG: Take pass name as argument instead of pass pointer. 2020-01-31 14:21:40 -05:00
ModuleSummaryIndex.cpp [ADT][NFC] SCCIterator: Change hasLoop() to hasCycle() 2020-03-01 19:17:21 +02:00
Operator.cpp [InstCombine] GEPOperator::accumulateConstantOffset does not support scalable vectors 2020-03-18 14:58:46 +00:00
OptBisect.cpp
Pass.cpp [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
PassInstrumentation.cpp
PassManager.cpp Add PassManagerImpl.h to hide implementation details 2020-02-03 11:15:55 -08:00
PassRegistry.cpp
PassTimingInfo.cpp [Legacy][TimePasses] allow -time-passes reporting into a custom stream 2019-03-22 23:11:08 +00:00
ProfileSummary.cpp
SafepointIRVerifier.cpp [Support] Split MallocAllocator out of Allocator.h 2020-01-24 17:29:32 -08:00
Statepoint.cpp
SymbolTableListTraitsImpl.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
Type.cpp [llvm][Type] Return fixed size for scalar types. [NFC] 2020-03-27 22:23:46 +00:00
TypeFinder.cpp [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
Use.cpp
User.cpp Basis of dropping uses in llvm.assume. 2020-03-12 10:10:22 +01:00
Value.cpp [AliasAnalysis] Misc fixes for checking aliasing with scalable types. 2020-03-18 12:28:47 -07:00
ValueSymbolTable.cpp
Verifier.cpp Remove "mask" operand from shufflevector. 2020-03-31 13:08:59 -07:00