llvm-project/llvm/lib/CodeGen/SelectionDAG
Tom Stellard d42c594960 TargetLowering: Add getVectorIdxTy() function v2
This virtual function can be implemented by targets to specify the type
to use for the index operand of INSERT_VECTOR_ELT, EXTRACT_VECTOR_ELT,
INSERT_SUBVECTOR, EXTRACT_SUBVECTOR.  The default implementation returns
the result from TargetLowering::getPointerTy()

The previous code was using TargetLowering::getPointerTy() for vector
indices, because this is guaranteed to be legal on all targets.  However,
using TargetLowering::getPointerTy() can be a problem for targets with
pointer sizes that differ across address spaces.  On such targets,
when vectors need to be loaded or stored to an address space other than the
default 'zero' address space (which is the address space assumed by
TargetLowering::getPointerTy()), having an index that
is a different size than the pointer can lead to inefficient
pointer calculations, (e.g. 64-bit adds for a 32-bit address space).

There is no intended functionality change with this patch.

llvm-svn: 187748
2013-08-05 22:22:01 +00:00
..
CMakeLists.txt llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. 2012-06-24 13:32:01 +00:00
DAGCombiner.cpp TargetLowering: Add getVectorIdxTy() function v2 2013-08-05 22:22:01 +00:00
FastISel.cpp Un-break the buildbot by tweaking the indirection flag. 2013-07-10 01:53:37 +00:00
FunctionLoweringInfo.cpp Debug Info: clean up usage of Verify. 2013-06-28 05:43:10 +00:00
InstrEmitter.cpp Reapply an improved version of r180816/180817. 2013-07-09 20:28:37 +00:00
InstrEmitter.h Add -*- C++ -*- to InstrEmitter.h. 2013-07-17 18:53:29 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
LegalizeDAG.cpp TargetLowering: Add getVectorIdxTy() function v2 2013-08-05 22:22:01 +00:00
LegalizeFloatTypes.cpp Remove trailing whitespace from SelectionDAG/*.cpp 2013-07-08 00:37:03 +00:00
LegalizeIntegerTypes.cpp TargetLowering: Add getVectorIdxTy() function v2 2013-08-05 22:22:01 +00:00
LegalizeTypes.cpp Remove invalid assert in DAGTypeLegalizer::RemapValue 2013-07-15 18:57:05 +00:00
LegalizeTypes.h Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. 2013-07-14 04:42:23 +00:00
LegalizeTypesGeneric.cpp TargetLowering: Add getVectorIdxTy() function v2 2013-08-05 22:22:01 +00:00
LegalizeVectorOps.cpp TargetLowering: Add getVectorIdxTy() function v2 2013-08-05 22:22:01 +00:00
LegalizeVectorTypes.cpp TargetLowering: Add getVectorIdxTy() function v2 2013-08-05 22:22:01 +00:00
Makefile
ResourcePriorityQueue.cpp Cache the TargetLowering info object as a pointer. 2013-06-06 00:43:09 +00:00
SDNodeDbgValue.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
ScheduleDAGFast.cpp Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. 2013-07-14 04:42:23 +00:00
ScheduleDAGRRList.cpp Add 'const' qualifier to some arrays. 2013-07-15 08:02:13 +00:00
ScheduleDAGSDNodes.cpp Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. 2013-07-14 04:42:23 +00:00
ScheduleDAGSDNodes.h Fix #includes, so we include only what we really need. 2013-02-20 00:26:25 +00:00
ScheduleDAGVLIW.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
SelectionDAG.cpp TargetLowering: Add getVectorIdxTy() function v2 2013-08-05 22:22:01 +00:00
SelectionDAGBuilder.cpp TargetLowering: Add getVectorIdxTy() function v2 2013-08-05 22:22:01 +00:00
SelectionDAGBuilder.h Added c++ mode selector to head of SelectionDAGBuilder.h so editors open it in c++ mode instead of c mode. 2013-07-01 16:53:41 +00:00
SelectionDAGDumper.cpp Remove the EXCEPTIONADDR, EHSELECTION, and LSDAADDR ISD opcodes. 2013-07-04 13:54:20 +00:00
SelectionDAGISel.cpp Reimplement isPotentiallyReachable to make nocapture deduction much stronger. 2013-07-27 01:24:00 +00:00
SelectionDAGPrinter.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
TargetLowering.cpp Remove trailing whitespace from SelectionDAG/*.cpp 2013-07-08 00:37:03 +00:00
TargetSelectionDAGInfo.cpp Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00