Introduce new types for fixed width and scalable vectors.
Does not remove getNumElements yet so as to not break code during transition
period.
Paths
| Differential D77587
[SVE] Add new VectorType subclasses ClosedPublic Authored by ctetreau on Apr 6 2020, 2:24 PM.
Details Summary Introduce new types for fixed width and scalable vectors. Does not remove getNumElements yet so as to not break code during transition
Diff Detail
Event TimelineComment Actions If I'm following correctly, this should apply on its own. Then you're expecting the following API changes:
Does that sound right?
ctetreau added inline comments.
Comment Actions
This is basically the plan:
Comment Actions Move getMinNumElements to ScalableVectorType. There's no reason for it to be in base VectorType ctetreau added a parent revision: D77278: Remove asserting getters from base Type.Apr 8 2020, 3:59 PM ctetreau added a child revision: D77757: [SVE] Remove calls to isScalable from Hexagon.Apr 8 2020, 4:02 PM ctetreau added a child revision: D77692: [SVE] Remove calls to VectorType::isScalable from analysis. ctetreau added a child revision: D77691: [SVE] Remove calls to isScalable from IR.Apr 8 2020, 4:22 PM Comment Actions Looks right, generally.
Comment Actions Thanks for this patch @ctetreau! Overall looks great to me, just two little nits.
ctetreau added inline comments.
ctetreau added a child revision: D77896: [SVE] Remove calls to getBitWidth from Transforms.Apr 10 2020, 2:01 PM ctetreau added a child revision: D77903: [SVE] Remove calls to getBitWidth from clang.Apr 10 2020, 2:03 PM ctetreau removed a child revision: D77833: [SVE] Remove VectorType::getBitWidth().Apr 10 2020, 2:06 PM ctetreau added a child revision: D77905: [SVE] Remove calls to getBitWidth from AArch64.Apr 10 2020, 2:22 PM ctetreau added a child revision: D77763: [SVE] Change return type of getNumElements to unsigned.Apr 13 2020, 10:50 AM ctetreau removed a child revision: D77763: [SVE] Change return type of getNumElements to unsigned.Apr 13 2020, 4:23 PM ctetreau removed a child revision: D77896: [SVE] Remove calls to getBitWidth from Transforms.Apr 13 2020, 4:55 PM ctetreau added a child revision: D78127: [SVE] Mark VectorType::getNumElements() deprecated.Apr 14 2020, 10:08 AM
This revision is now accepted and ready to land.Apr 20 2020, 2:15 PM ctetreau added a child revision: D78599: [SVE] Add Scalable vector support to C api.Apr 21 2020, 4:46 PM Closed by commit rG2dea3f129878: [SVE] Add new VectorType subclasses (authored by ctetreau). · Explain WhyApr 22 2020, 9:13 AM This revision was automatically updated to reflect the committed changes. ctetreau removed a child revision: D78576: [SVE] Make VectorType::getNumElements() complain for scalable vectors.Apr 22 2020, 9:33 AM ctetreau removed child revisions: D78599: [SVE] Add Scalable vector support to C api, D78127: [SVE] Mark VectorType::getNumElements() deprecated, D77691: [SVE] Remove calls to isScalable from IR, D77692: [SVE] Remove calls to VectorType::isScalable from analysis, D77755: [SVE] Remove calls to isScalable from CodeGen, D77758: [SVE] Remove calls to isScalable from AARCH64, D77695: [SVE] Remove isScalable from Bitcode, D77756: [SVE] Remove calls to isScalable from Transforms, D77757: [SVE] Remove calls to isScalable from Hexagon.Apr 23 2020, 10:56 AM
Revision Contents
Diff 256101 lldb/source/Expression/IRInterpreter.cpp
llvm/include/llvm-c/Core.h
llvm/include/llvm/IR/DataLayout.h
llvm/include/llvm/IR/DerivedTypes.h
llvm/include/llvm/IR/Type.h
llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/lib/CodeGen/ValueTypes.cpp
llvm/lib/ExecutionEngine/ExecutionEngine.cpp
llvm/lib/ExecutionEngine/Interpreter/Execution.cpp
llvm/lib/IR/AsmWriter.cpp
llvm/lib/IR/Constants.cpp
llvm/lib/IR/Core.cpp
llvm/lib/IR/DataLayout.cpp
llvm/lib/IR/Type.cpp
llvm/lib/Linker/IRMover.cpp
llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp
llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
llvm/lib/Target/Hexagon/HexagonTargetObjectFile.cpp
llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
llvm/lib/Transforms/IPO/GlobalOpt.cpp
llvm/lib/Transforms/Utils/FunctionComparator.cpp
|
Adding LLVMFixedVectorTypeKind and LLVMScalableVectorTypeKind without removing LLVMVectorTypeKind does't make sense.