llvm-project/llvm/lib/Target/NVPTX
Chandler Carruth 9d010fffe1 [codegen,aarch64] Add a target hook to the code generator to control
vector type legalization strategies in a more fine grained manner, and
change the legalization of several v1iN types and v1f32 to be widening
rather than scalarization on AArch64.

This fixes an assertion failure caused by scalarizing nodes like "v1i32
trunc v1i64". As v1i64 is legal it will fail to scalarize v1i32.

This also provides a foundation for other targets to have more granular
control over how vector types are legalized.

Patch by Hao Liu, reviewed by Tim Northover. I'm committing it to allow
some work to start taking place on top of this patch as it adds some
really important hooks to the backend that I'd like to immediately start
using. =]

http://reviews.llvm.org/D4322

llvm-svn: 212242
2014-07-03 00:23:43 +00:00
..
InstPrinter [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition 2014-04-29 07:57:44 +00:00
MCTargetDesc [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
TargetInfo Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
CMakeLists.txt [NVPTX] Add preliminary intrinsics and codegen support for textures/surfaces 2014-04-09 15:39:15 +00:00
LLVMBuild.txt Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
Makefile
ManagedStringPool.h Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
NVPTX.h [NVPTX] Add preliminary intrinsics and codegen support for textures/surfaces 2014-04-09 15:39:15 +00:00
NVPTX.td [NVPTX] Add target options for PTX 3.2/4.0 and SM 5.0 (Maxwell) 2014-06-27 18:35:18 +00:00
NVPTXAllocaHoisting.cpp ARM: implement ldrex, strex and clrex intrinsics 2013-07-16 09:46:55 +00:00
NVPTXAllocaHoisting.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition 2014-04-29 07:57:44 +00:00
NVPTXAsmPrinter.cpp [NVPTX] Error out if initializer is given for variable in an address space that does not support initialization 2014-06-27 18:36:01 +00:00
NVPTXAsmPrinter.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition 2014-04-29 07:57:44 +00:00
NVPTXAssignValidGlobalNames.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition 2014-04-29 07:57:44 +00:00
NVPTXFavorNonGenericAddrSpaces.cpp Test commit. 2014-05-23 06:30:12 +00:00
NVPTXFrameLowering.cpp Move the constructor for NVPTXFrameLowering into the implementation 2014-06-27 02:05:24 +00:00
NVPTXFrameLowering.h Move the constructor for NVPTXFrameLowering into the implementation 2014-06-27 02:05:24 +00:00
NVPTXGenericToNVVM.cpp [NVPTX] Do not process samplers in GenericToNVVM 2014-06-27 18:36:02 +00:00
NVPTXISelDAGToDAG.cpp [NVPTX] Fix handling of ldg/ldu intrinsics. 2014-06-27 18:35:51 +00:00
NVPTXISelDAGToDAG.h [NVPTX] Fix handling of ldg/ldu intrinsics. 2014-06-27 18:35:51 +00:00
NVPTXISelLowering.cpp [codegen,aarch64] Add a target hook to the code generator to control 2014-07-03 00:23:43 +00:00
NVPTXISelLowering.h [codegen,aarch64] Add a target hook to the code generator to control 2014-07-03 00:23:43 +00:00
NVPTXImageOptimizer.cpp Fix typos 2014-06-07 21:23:09 +00:00
NVPTXInstrFormats.td
NVPTXInstrInfo.cpp Remove caching of the target machine in NVPTXInstrInfo and 2014-06-27 01:27:08 +00:00
NVPTXInstrInfo.h Remove caching of the target machine in NVPTXInstrInfo and 2014-06-27 01:27:08 +00:00
NVPTXInstrInfo.td [NVPTX] Add support for [SHL,SRA,SRL]_PARTS 2014-06-27 18:35:40 +00:00
NVPTXIntrinsics.td [NVPTX] Fix handling of ldg/ldu intrinsics. 2014-06-27 18:35:51 +00:00
NVPTXLowerAggrCopies.cpp [C++11] Add range based accessors for the Use-Def chain of a Value. 2014-03-09 03:16:01 +00:00
NVPTXLowerAggrCopies.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition 2014-04-29 07:57:44 +00:00
NVPTXMCExpr.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +00:00
NVPTXMCExpr.h Move expression visitation logic up to MCStreamer. 2014-06-25 15:45:33 +00:00
NVPTXMachineFunctionInfo.h [NVPTX] Add preliminary intrinsics and codegen support for textures/surfaces 2014-04-09 15:39:15 +00:00
NVPTXPrologEpilogPass.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition 2014-04-29 07:57:44 +00:00
NVPTXRegisterInfo.cpp De-virtualize or remove some methods that have no overrides nor override anything. In some cases remove all together if there are no callers either. 2014-04-30 05:53:27 +00:00
NVPTXRegisterInfo.h De-virtualize or remove some methods that have no overrides nor override anything. In some cases remove all together if there are no callers either. 2014-04-30 05:53:27 +00:00
NVPTXRegisterInfo.td [NVPTX] Add support for envreg reads 2014-06-27 18:35:21 +00:00
NVPTXReplaceImageHandles.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition 2014-04-29 07:57:44 +00:00
NVPTXSection.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition 2014-04-29 07:57:44 +00:00
NVPTXSubtarget.cpp [NVPTX] Add target options for PTX 3.2/4.0 and SM 5.0 (Maxwell) 2014-06-27 18:35:18 +00:00
NVPTXSubtarget.h [NVPTX] Update sub-target feature detection 2014-06-27 18:35:16 +00:00
NVPTXTargetMachine.cpp [NVPTX] Directly control the Machine SSA passes that are invoked for NVPTX. 2014-06-27 18:35:14 +00:00
NVPTXTargetMachine.h Move NVPTX subtarget dependent variables from the target machine 2014-06-27 04:33:14 +00:00
NVPTXTargetObjectFile.h [C++] Use 'nullptr'. 2014-04-28 04:05:08 +00:00
NVPTXUtilities.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
NVPTXUtilities.h [NVPTX] Add query support for read-write images and managed variables 2014-04-09 15:38:52 +00:00
NVPTXVector.td
NVPTXutil.cpp [NVPTX] Run clang-format on all NVPTX sources. 2013-03-30 14:29:21 +00:00
NVPTXutil.h
NVVMReflect.cpp [NVPTX] Add reflect intrinsic (better than matching by function name) 2014-06-27 18:36:11 +00:00
cl_common_defines.h Update a couple of header inclusion guards 2014-05-31 21:26:09 +00:00