1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/lib/Target/NVPTX
Jingyue Wu cc35aae4ef Disable indvar widening if arithmetics on the wider type are more expensive
Summary:
IndVarSimplify should not widen an indvar if arithmetics on the wider
indvar are more expensive than those on the narrower indvar. For
instance, although NVPTX64 treats i64 as a legal type, an ADD on i64 is
twice as expensive as that on i32, because the hardware needs to
simulate a 64-bit integer using two 32-bit integers.

Split from D6188, and based on D6195 which adds NVPTXTargetTransformInfo.

Fixes PR21148.

Test Plan:
Added @indvar_32_bit that verifies we do not widen an indvar if the arithmetics
on the wider type are more expensive.

Reviewers: jholewinski, eliben, meheff, atrick

Reviewed By: atrick

Subscribers: jholewinski, llvm-commits

Differential Revision: http://reviews.llvm.org/D6196

llvm-svn: 221772
2014-11-12 06:58:45 +00:00
..
InstPrinter Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MCTargetDesc Fix a bit of confusion about .set and produce more readable assembly. 2014-10-21 01:17:30 +00:00
TargetInfo Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
cl_common_defines.h Update a couple of header inclusion guards 2014-05-31 21:26:09 +00:00
CMakeLists.txt [NVPTX] Add an NVPTX-specific TargetTransformInfo 2014-11-10 18:38:25 +00:00
LLVMBuild.txt NVPTX/LLVMBuild.txt: Add "Scalar" to required_libraries. It is really referenced. 2014-07-14 02:52:19 +00:00
Makefile
ManagedStringPool.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTX.h [NVPTX] Add an NVPTX-specific TargetTransformInfo 2014-11-10 18:38:25 +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
NVPTXAllocaHoisting.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXAsmPrinter.cpp Reduce double set lookups. NFC. 2014-10-10 15:32:50 +00:00
NVPTXAsmPrinter.h NVPTX: remove raw delete call 2014-08-25 01:59:29 +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 Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
NVPTXFrameLowering.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXGenericToNVVM.cpp Revert "IR: MDNode => Value" 2014-11-11 21:30:22 +00:00
NVPTXImageOptimizer.cpp Fix typos 2014-06-07 21:23:09 +00:00
NVPTXInstrFormats.td [NVPTX] Add more surface/texture intrinsics, including CUDA unified texture fetch 2014-07-17 11:59:04 +00:00
NVPTXInstrInfo.cpp Remove caching of the target machine in NVPTXInstrInfo and 2014-06-27 01:27:08 +00:00
NVPTXInstrInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXInstrInfo.td [NVPTX] Improve handling of FP fusion 2014-07-17 18:10:09 +00:00
NVPTXIntrinsics.td NVPTX: support direct f16 <-> f64 conversions via intrinsics. 2014-07-18 08:30:10 +00:00
NVPTXISelDAGToDAG.cpp [NVPTX] Remove MemIntrinsicSDNode/MemSDNode duplicate checking 2014-08-13 04:59:51 +00:00
NVPTXISelDAGToDAG.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXISelLowering.cpp Remove a bit of dead code. 2014-11-12 01:27:22 +00:00
NVPTXISelLowering.h Add override to overriden virtual methods, remove virtual keywords. 2014-09-03 11:41:21 +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 Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXLowerStructArgs.cpp Clean up NVPTXLowerStructArgs.cpp. NFC 2014-11-06 17:05:49 +00:00
NVPTXMachineFunctionInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXMCExpr.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +00:00
NVPTXMCExpr.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXPrologEpilogPass.cpp Have MachineFunction cache a pointer to the subtarget to make lookups 2014-08-05 02:39:49 +00:00
NVPTXRegisterInfo.cpp [NVPTX] Rename registers %fl -> %fd and %rl -> %rd 2014-07-16 16:26:58 +00:00
NVPTXRegisterInfo.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXRegisterInfo.td [NVPTX] Rename registers %fl -> %fd and %rl -> %rd 2014-07-16 16:26:58 +00:00
NVPTXReplaceImageHandles.cpp Add override to overriden virtual methods, remove virtual keywords. 2014-09-03 11:41:21 +00:00
NVPTXSection.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXSubtarget.cpp Improve some const-correctness to remove a -Wcast-qual warning. No functional changes intended. 2014-08-01 12:34:58 +00:00
NVPTXSubtarget.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXTargetMachine.cpp [NVPTX] Add an NVPTX-specific TargetTransformInfo 2014-11-10 18:38:25 +00:00
NVPTXTargetMachine.h [NVPTX] Add an NVPTX-specific TargetTransformInfo 2014-11-10 18:38:25 +00:00
NVPTXTargetObjectFile.h Remove a bit of dead code. 2014-11-12 01:27:22 +00:00
NVPTXTargetTransformInfo.cpp Disable indvar widening if arithmetics on the wider type are more expensive 2014-11-12 06:58:45 +00:00
NVPTXutil.cpp
NVPTXutil.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXUtilities.cpp Revert "IR: MDNode => Value" 2014-11-11 21:30:22 +00:00
NVPTXUtilities.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
NVPTXVector.td
NVVMReflect.cpp [NVPTX] Add reflect intrinsic (better than matching by function name) 2014-06-27 18:36:11 +00:00