[PATCH] D15689: [opaque pointer types] Prune some uses of PointerType::getElementType.Breaking API changes:* PointerType no longer inherits from SequentialType* PointerType::getElementType deprecated in favor of getPointerElementType* Type...
Eduard Burtescu via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 21 06:42:15 PST 2015
eddyb created this revision.
eddyb added a reviewer: dblaikie.
eddyb added a subscriber: llvm-commits.
Herald added a reviewer: tstellarAMD.
Herald added subscribers: dsanders, jyknight, arsenm, sanjoy, jholewinski.
...::getPointerElementType removed, cast to PointerType instead
* GetElementPtrInst::getType override returning SequentialType removed
* gep_type_iterator requires explicit pointee types, no pointer shorthand
* DataLayout::getIndexedOffset now takes the pointee, instead of the pointer type
* SimplifyGEPInst requires the source element (pointee) type
* Creating a GetElementPtrConstantExpr takes both source and result element types
* isDereferenceable(AndAligned)Pointer and isSafeToLoadUnconditionally all take an explicit access size
* isStridedPtr and ConstantFoldLoadFromConstPtr both require an pointee type
* FindAvailableLoadedValue takes a LoadInst* instead of a Value*
Disinherit PointerType from SequentialType and limit pointee accesses to getPointerElementType.
Use GlobalValue::getValueType for the pointee instead of GlobalValue::getType.
Use GEP get{Source,Result}ElementType instead of going through pointer types.
Get the loaded/stored type directly, not from getPointerElementType.
Get alloca types via getAllocatedType(), bypassing getPointerElementType().
Remove one dead getPointerElementType() call.
http://reviews.llvm.org/D15689
Files:
include/llvm/Analysis/ConstantFolding.h
include/llvm/Analysis/InstructionSimplify.h
include/llvm/Analysis/Loads.h
include/llvm/Analysis/LoopAccessAnalysis.h
include/llvm/Analysis/TargetTransformInfoImpl.h
include/llvm/Analysis/ValueTracking.h
include/llvm/IR/DataLayout.h
include/llvm/IR/DerivedTypes.h
include/llvm/IR/GetElementPtrTypeIterator.h
include/llvm/IR/IRBuilder.h
include/llvm/IR/Instructions.h
include/llvm/IR/Operator.h
include/llvm/IR/Statepoint.h
include/llvm/IR/Type.h
lib/Analysis/AliasAnalysisEvaluator.cpp
lib/Analysis/BasicAliasAnalysis.cpp
lib/Analysis/ConstantFolding.cpp
lib/Analysis/GlobalsModRef.cpp
lib/Analysis/InlineCost.cpp
lib/Analysis/InstructionSimplify.cpp
lib/Analysis/Lint.cpp
lib/Analysis/Loads.cpp
lib/Analysis/LoopAccessAnalysis.cpp
lib/Analysis/MemDerefPrinter.cpp
lib/Analysis/MemoryBuiltins.cpp
lib/Analysis/ObjCARCInstKind.cpp
lib/Analysis/PHITransAddr.cpp
lib/Analysis/ScalarEvolution.cpp
lib/Analysis/ScalarEvolutionExpander.cpp
lib/Analysis/ValueTracking.cpp
lib/Analysis/VectorUtils.cpp
lib/AsmParser/LLParser.cpp
lib/Bitcode/Reader/BitcodeReader.cpp
lib/Bitcode/Writer/BitcodeWriter.cpp
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
lib/CodeGen/AtomicExpandPass.cpp
lib/CodeGen/CodeGenPrepare.cpp
lib/CodeGen/GCRootLowering.cpp
lib/CodeGen/SelectionDAG/FastISel.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/SelectionDAG/StatepointLowering.cpp
lib/CodeGen/SelectionDAG/TargetLowering.cpp
lib/ExecutionEngine/ExecutionEngine.cpp
lib/ExecutionEngine/Interpreter/Execution.cpp
lib/ExecutionEngine/Orc/IndirectionUtils.cpp
lib/IR/AsmWriter.cpp
lib/IR/ConstantFold.cpp
lib/IR/ConstantFold.h
lib/IR/Constants.cpp
lib/IR/ConstantsContext.h
lib/IR/Core.cpp
lib/IR/DataLayout.cpp
lib/IR/Function.cpp
lib/IR/Globals.cpp
lib/IR/IRBuilder.cpp
lib/IR/Instructions.cpp
lib/IR/Mangler.cpp
lib/IR/Operator.cpp
lib/IR/Type.cpp
lib/IR/Verifier.cpp
lib/Linker/IRMover.cpp
lib/Linker/LinkModules.cpp
lib/Target/AArch64/AArch64FastISel.cpp
lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AMDGPU/AMDGPUISelLowering.cpp
lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
lib/Target/AMDGPU/SITypeRewriter.cpp
lib/Target/ARM/ARMFastISel.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/CppBackend/CPPBackend.cpp
lib/Target/Hexagon/HexagonCommonGEP.cpp
lib/Target/Hexagon/HexagonISelLowering.cpp
lib/Target/Hexagon/HexagonTargetObjectFile.cpp
lib/Target/Mips/Mips16HardFloat.cpp
lib/Target/Mips/MipsTargetObjectFile.cpp
lib/Target/NVPTX/NVPTXAsmPrinter.cpp
lib/Target/NVPTX/NVPTXFavorNonGenericAddrSpaces.cpp
lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
lib/Target/NVPTX/NVPTXISelLowering.cpp
lib/Target/NVPTX/NVPTXLowerAlloca.cpp
lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
lib/Target/Sparc/SparcISelLowering.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/XCore/XCoreAsmPrinter.cpp
lib/Target/XCore/XCoreISelLowering.cpp
lib/Target/XCore/XCoreLowerThreadLocal.cpp
lib/Target/XCore/XCoreTargetObjectFile.cpp
lib/Transforms/IPO/ArgumentPromotion.cpp
lib/Transforms/IPO/ExtractGV.cpp
lib/Transforms/IPO/GlobalOpt.cpp
lib/Transforms/InstCombine/InstCombineCalls.cpp
lib/Transforms/InstCombine/InstCombineCasts.cpp
lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
lib/Transforms/InstCombine/InstructionCombining.cpp
lib/Transforms/Instrumentation/AddressSanitizer.cpp
lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
lib/Transforms/Instrumentation/GCOVProfiling.cpp
lib/Transforms/Instrumentation/MemorySanitizer.cpp
lib/Transforms/Instrumentation/SafeStack.cpp
lib/Transforms/Instrumentation/ThreadSanitizer.cpp
lib/Transforms/ObjCARC/ObjCARCOpts.cpp
lib/Transforms/Scalar/GVN.cpp
lib/Transforms/Scalar/IndVarSimplify.cpp
lib/Transforms/Scalar/JumpThreading.cpp
lib/Transforms/Scalar/LoopLoadElimination.cpp
lib/Transforms/Scalar/MemCpyOptimizer.cpp
lib/Transforms/Scalar/NaryReassociate.cpp
lib/Transforms/Scalar/PlaceSafepoints.cpp
lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
lib/Transforms/Scalar/SCCP.cpp
lib/Transforms/Scalar/SROA.cpp
lib/Transforms/Scalar/ScalarReplAggregates.cpp
lib/Transforms/Scalar/Scalarizer.cpp
lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
lib/Transforms/Scalar/TailRecursionElimination.cpp
lib/Transforms/Utils/CloneModule.cpp
lib/Transforms/Utils/InlineFunction.cpp
lib/Transforms/Utils/Local.cpp
lib/Transforms/Utils/LoopUtils.cpp
lib/Transforms/Utils/ModuleUtils.cpp
lib/Transforms/Utils/SimplifyCFG.cpp
lib/Transforms/Vectorize/BBVectorize.cpp
lib/Transforms/Vectorize/LoopVectorize.cpp
lib/Transforms/Vectorize/SLPVectorizer.cpp
tools/bugpoint/CrashDebugger.cpp
tools/llvm-nm/llvm-nm.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15689.43370.patch
Type: text/x-patch
Size: 286974 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151221/b8770451/attachment-0001.bin>
More information about the llvm-commits
mailing list