1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/lib/IR
Craig Disselkoen 1cbae6c6e8 C API: functions to get mask of a ShuffleVector
This commit fixes a regression (from LLVM 10 to LLVM 11 RC3) in the LLVM
C API.

Previously, commit 1ee6ec2bf removed the mask operand from the
ShuffleVector instruction, storing the mask data separately in the
instruction instead; this reduced the number of operands of
ShuffleVector from 3 to 2. AFAICT, this change unintentionally caused
a regression in the LLVM C API. Specifically, it is no longer possible
to get the mask of a ShuffleVector instruction through the C API. This
patch introduces new functions which together allow a C API user to get
the mask of a ShuffleVector instruction, restoring the functionality
which was previously available through LLVMGetOperand().

This patch also adds tests for this change to the llvm-c-test
executable, which involved adding support for InsertElement,
ExtractElement, and ShuffleVector itself (as well as constant vectors)
to echo.cpp. Previously, vector operations weren't tested at all in
echo.ll.

I also fixed some typos in comments and help-text nearby these changes,
which I happened to spot while developing this patch. Since the typo
fixes are technically unrelated other than being in the same files, I'm
happy to take them out if you'd rather they not be included in the patch.

Differential Revision: https://reviews.llvm.org/D88190
2020-09-25 16:01:05 -07:00
..
AbstractCallSite.cpp
AsmWriter.cpp OpaquePtr: Add type to sret attribute 2020-09-25 14:07:30 -04:00
AttributeImpl.h OpaquePtr: Add type to sret attribute 2020-09-25 14:07:30 -04:00
Attributes.cpp OpaquePtr: Add type to sret attribute 2020-09-25 14:07:30 -04:00
AutoUpgrade.cpp [X86] Update SSE/AVX integer MINMAX intrinsics to emit llvm.smax.* etc. (PR46851) 2020-09-15 11:19:08 +01:00
BasicBlock.cpp
CMakeLists.txt Revert "[NewPM][Lint] Port -lint to NewPM" 2020-09-02 21:34:29 -07:00
Comdat.cpp
ConstantFold.cpp [ConstantFold] Make areGlobalsPotentiallyEqual less aggressive. 2020-09-11 17:23:08 -07:00
ConstantFold.h
ConstantRange.cpp [ConstantRange] Introduce getMinSignedBits() method 2020-09-22 21:37:30 +03:00
Constants.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
ConstantsContext.h
Core.cpp C API: functions to get mask of a ShuffleVector 2020-09-25 16:01:05 -07:00
DataLayout.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
DebugInfo.cpp [Instruction] Add dropLocation and updateLocationAfterHoist helpers 2020-09-24 15:00:04 -07:00
DebugInfoMetadata.cpp Strength-reduce SmallVectors to arrays. NFCI. 2020-08-28 21:14:20 +02:00
DebugLoc.cpp
DiagnosticHandler.cpp
DiagnosticInfo.cpp [llvm][LV] Replace unsigned VF with ElementCount VF [NFCI] 2020-08-24 13:54:03 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +05:30
Dominators.cpp [DomTree] Extend update API to allow a post CFG view. 2020-08-21 17:23:08 -07:00
FPEnv.cpp
Function.cpp OpaquePtr: Add helpers for sret to mirror byval 2020-09-24 09:57:28 -04:00
Globals.cpp [X86][ELF] Prefer lowering MC_GlobalAddress operands to .Lfoo$local for STV_DEFAULT only 2020-08-14 00:09:15 +01:00
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp [IR][GVN] allow intrinsics in Instruction's isCommutative query (2nd try) 2020-08-31 16:01:19 -04:00
Instructions.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
IntrinsicInst.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
IRBuilder.cpp Reland [AssumeBundles] Use operand bundles to encode alignment assumptions 2020-09-12 15:36:06 +02:00
IRPrintingPasses.cpp
LegacyPassManager.cpp Revert "Re-land: Add new hidden option -print-changed which only reports changes to IR" 2020-09-17 01:32:29 -07:00
LLVMBuild.txt
LLVMContext.cpp
LLVMContextImpl.cpp Reduce dropTriviallyDeadConstantArrays cumulative time percentage from 17% to 4% 2020-08-07 11:36:30 -07:00
LLVMContextImpl.h [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +05:30
LLVMRemarkStreamer.cpp
Mangler.cpp
MDBuilder.cpp
Metadata.cpp
MetadataImpl.h
Module.cpp
ModuleSummaryIndex.cpp [ThinLTO] Compile time improvement to propagateAttributes 2020-07-31 10:54:02 -07:00
Operator.cpp
OptBisect.cpp
Pass.cpp
PassInstrumentation.cpp [NewPM][PassInstrument] Add PrintPass callback to StandardInstrumentations 2020-07-30 10:07:57 -07:00
PassManager.cpp
PassRegistry.cpp
PassTimingInfo.cpp [NewPM][PassInstrumentation] Add PreservedAnalyses parameter to AfterPass* callbacks 2020-08-21 16:10:42 +07:00
ProfileSummary.cpp ProfileSummary.cpp - use auto const& iterator in for-range loop to avoid copies. NFCI. 2020-09-21 16:54:26 +01:00
SafepointIRVerifier.cpp
Statepoint.cpp
StructuralHash.cpp (Expensive) Check for Loop, SCC and Region pass return status 2020-08-28 07:56:35 +02:00
SymbolTableListTraitsImpl.h
Type.cpp [SVE] Make ElementCount members private 2020-08-28 14:43:53 +01:00
TypeFinder.cpp
Use.cpp
User.cpp
Value.cpp IR: Have byref imply dereferenceable 2020-09-24 09:57:28 -04:00
ValueSymbolTable.cpp
Verifier.cpp Add a verifier check that rejects non-distinct DISubprogram function 2020-09-25 12:04:46 -07:00