[PATCH] D75661: Remove SequentialType from the type heirarchy.

Eli Friedman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 4 19:03:39 PST 2020


efriedma created this revision.
Herald added subscribers: cfe-commits, kerbowa, hiraditya, nhaehnle, jvesely, arsenm.
Herald added projects: clang, LLVM.
efriedma added a parent revision: D75660: Remove CompositeType class.

This is a bit more dubious than removing CompositeType, given the number of uses of "getSequentialElementType()" and "getSequentialNumElements()" I'm introducing here.  But there's a distinction here that isn't getting captured in the original SequentialType: getSequentialElementType() makes sense on any vector, but getSequentialNumElements() only makes sense for non-scalable vectors.  So some of these changes are probably necessary anyway.

Chris Tetrault is working on a proposal to make "SequentialType" refer to either an array or a fixed-length vector.  This would probably help in some of the places this patch currently uses getSequentialNumElements(), or introduces multiple codepaths for vectors vs. arrays.  This patch should help evaluate whether that's worthwhile.

I might end up splitting this into pieces, depending on what we decide to do; some of the cleanups make sense independent of the fate of SequentialType.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75661

Files:
  clang/lib/CodeGen/CGDecl.cpp
  clang/lib/CodeGen/CGExprConstant.cpp
  llvm/include/llvm/IR/Constants.h
  llvm/include/llvm/IR/DerivedTypes.h
  llvm/include/llvm/IR/GetElementPtrTypeIterator.h
  llvm/include/llvm/IR/Type.h
  llvm/lib/Analysis/BasicAliasAnalysis.cpp
  llvm/lib/Analysis/ConstantFolding.cpp
  llvm/lib/Analysis/ScalarEvolution.cpp
  llvm/lib/Bitcode/Reader/BitcodeReader.cpp
  llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
  llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
  llvm/lib/IR/ConstantFold.cpp
  llvm/lib/IR/Constants.cpp
  llvm/lib/IR/Core.cpp
  llvm/lib/IR/Instructions.cpp
  llvm/lib/IR/Type.cpp
  llvm/lib/Linker/IRMover.cpp
  llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
  llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp
  llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
  llvm/lib/Transforms/IPO/GlobalOpt.cpp
  llvm/lib/Transforms/IPO/StripSymbols.cpp
  llvm/lib/Transforms/Scalar/SROA.cpp
  llvm/lib/Transforms/Utils/FunctionComparator.cpp
  llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75661.248369.patch
Type: text/x-patch
Size: 31170 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200305/db77884e/attachment-0001.bin>


More information about the cfe-commits mailing list