1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Elena Demikhovsky 88c04dfc81 Extended syntax of vector version of getelementptr instruction.
The justification of this change is here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-March/082989.html

According to the current GEP syntax, vector GEP requires that each index must be a vector with the same number of elements.

%A = getelementptr i8, <4 x i8*> %ptrs, <4 x i64> %offsets

In this implementation I let each index be or vector or scalar. All vector indices must have the same number of elements. The scalar value will mean the splat vector value.

(1) %A = getelementptr i8, i8* %ptr, <4 x i64> %offsets
or
(2) %A = getelementptr i8, <4 x i8*> %ptrs, i64 %offset

In all cases the %A type is <4 x i8*>

In the case (2) we add the same offset to all pointers.

The case (1) covers C[B[i]] case, when we have the same base C and different offsets B[i].

The documentation is updated.

http://reviews.llvm.org/D10496

llvm-svn: 241788
2015-07-09 07:42:48 +00:00
..
CMakeLists.txt [Statepoints 3/4] Statepoint infrastructure for garbage collection: SelectionDAGBuilder 2014-12-02 18:50:36 +00:00
DAGCombiner.cpp Make isLegalAddressingMode() taking DataLayout as an argument 2015-07-09 02:09:40 +00:00
FastISel.cpp Make getByValTypeAlignment() taking DataLayout as an argument 2015-07-09 02:09:28 +00:00
FunctionLoweringInfo.cpp Redirect DataLayout from TargetMachine to Module in ComputeValueVTs() 2015-07-09 01:57:34 +00:00
InstrEmitter.cpp Redirect DataLayout from TargetMachine to Module in SelectionDAG 2015-07-07 19:07:19 +00:00
InstrEmitter.h [SDAG] Give InstrEmitter hidden visibility 2015-07-01 14:55:10 +00:00
LegalizeDAG.cpp Make TargetLowering::getShiftAmountTy() taking DataLayout as an argument 2015-07-09 02:09:20 +00:00
LegalizeFloatTypes.cpp Make TargetLowering::getShiftAmountTy() taking DataLayout as an argument 2015-07-09 02:09:20 +00:00
LegalizeIntegerTypes.cpp Make TargetLowering::getShiftAmountTy() taking DataLayout as an argument 2015-07-09 02:09:20 +00:00
LegalizeTypes.cpp Make TargetLowering::getPointerTy() taking DataLayout as an argument 2015-07-09 02:09:04 +00:00
LegalizeTypes.h Make TargetLowering::getPointerTy() taking DataLayout as an argument 2015-07-09 02:09:04 +00:00
LegalizeTypesGeneric.cpp Make TargetLowering::getPointerTy() taking DataLayout as an argument 2015-07-09 02:09:04 +00:00
LegalizeVectorOps.cpp Make TargetLowering::getShiftAmountTy() taking DataLayout as an argument 2015-07-09 02:09:20 +00:00
LegalizeVectorTypes.cpp Make TargetLowering::getPointerTy() taking DataLayout as an argument 2015-07-09 02:09:04 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp unique_ptrify ResourcePriorityQueue::ResourceModel 2015-03-03 20:49:08 +00:00
ScheduleDAGFast.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:18:49 +00:00
ScheduleDAGRRList.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:18:49 +00:00
ScheduleDAGSDNodes.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:18:49 +00:00
ScheduleDAGSDNodes.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ScheduleDAGVLIW.cpp Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
SDNodeDbgValue.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
SelectionDAG.cpp Remove getDataLayout() from TargetLowering 2015-07-09 02:09:52 +00:00
SelectionDAGBuilder.cpp Extended syntax of vector version of getelementptr instruction. 2015-07-09 07:42:48 +00:00
SelectionDAGBuilder.h Redirect DataLayout from TargetMachine to Module in ComputeValueVTs() 2015-07-09 01:57:34 +00:00
SelectionDAGDumper.cpp Rename llvm.frameescape and llvm.framerecover to localescape and localrecover 2015-07-07 22:25:32 +00:00
SelectionDAGISel.cpp Make TargetLowering::getPointerTy() taking DataLayout as an argument 2015-07-09 02:09:04 +00:00
SelectionDAGPrinter.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
StatepointLowering.cpp Redirect DataLayout from TargetMachine to Module in ComputeValueVTs() 2015-07-09 01:57:34 +00:00
StatepointLowering.h [StatepointLowering] Support of the gc.relocates for invoke statepoints. 2015-05-20 11:37:25 +00:00
TargetLowering.cpp Make TargetLowering::getShiftAmountTy() taking DataLayout as an argument 2015-07-09 02:09:20 +00:00
TargetSelectionDAGInfo.cpp Remove getDataLayout() from TargetSelectionDAGInfo (had no users) 2015-07-09 02:10:08 +00:00