1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 21:13:02 +02:00
llvm-mirror/lib/Target/NVPTX
Artem Belevich daaa866808 [NVPTX] Improve lowering of byval args of device functions.
Avoid unnecessary spills of such vars to local space on SASS level and
pointer space conversion.

Instead, make a local copy with appropriate addrspacecasts and let
LLVM optimize them away when possible.

This allows loading value of the argument using [symbol+offset]
instead of converting argument to general space pointer and using it
for indexing (which also implicitly converts param space pointer to
local space one on SASS level and triggers copying of argument into
local space in the process).

This reduces call overhead, uses less registers and reduces overall
SASS size by 2-4%.

Differential Review: http://reviews.llvm.org/D21421

llvm-svn: 273313
2016-06-21 20:30:26 +00:00
..
InstPrinter
MCTargetDesc
TargetInfo
cl_common_defines.h
CMakeLists.txt
LLVMBuild.txt
ManagedStringPool.h
NVPTX.h
NVPTX.td
NVPTXAllocaHoisting.cpp
NVPTXAllocaHoisting.h
NVPTXAsmPrinter.cpp Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
NVPTXAsmPrinter.h Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
NVPTXAssignValidGlobalNames.cpp
NVPTXFavorNonGenericAddrSpaces.cpp
NVPTXFrameLowering.cpp
NVPTXFrameLowering.h
NVPTXGenericToNVVM.cpp
NVPTXImageOptimizer.cpp
NVPTXInferAddressSpaces.cpp
NVPTXInstrFormats.td
NVPTXInstrInfo.cpp Pass DebugLoc and SDLoc by const ref. 2016-06-12 15:39:02 +00:00
NVPTXInstrInfo.h Pass DebugLoc and SDLoc by const ref. 2016-06-12 15:39:02 +00:00
NVPTXInstrInfo.td
NVPTXIntrinsics.td [NVPTX] Add intrinsics for shfl instructions. 2016-06-09 20:04:08 +00:00
NVPTXISelDAGToDAG.cpp [NVPTX] Improve lowering of byval args of device functions. 2016-06-21 20:30:26 +00:00
NVPTXISelDAGToDAG.h Pass DebugLoc and SDLoc by const ref. 2016-06-12 15:39:02 +00:00
NVPTXISelLowering.cpp [NVPTX] Improve lowering of byval args of device functions. 2016-06-21 20:30:26 +00:00
NVPTXISelLowering.h Pass DebugLoc and SDLoc by const ref. 2016-06-12 15:39:02 +00:00
NVPTXLowerAggrCopies.cpp
NVPTXLowerAggrCopies.h
NVPTXLowerAlloca.cpp
NVPTXLowerKernelArgs.cpp [NVPTX] Improve lowering of byval args of device functions. 2016-06-21 20:30:26 +00:00
NVPTXMachineFunctionInfo.h
NVPTXMCExpr.cpp Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
NVPTXMCExpr.h Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
NVPTXPeephole.cpp
NVPTXPrologEpilogPass.cpp
NVPTXRegisterInfo.cpp
NVPTXRegisterInfo.h
NVPTXRegisterInfo.td
NVPTXReplaceImageHandles.cpp
NVPTXSection.h
NVPTXSubtarget.cpp
NVPTXSubtarget.h
NVPTXTargetMachine.cpp
NVPTXTargetMachine.h
NVPTXTargetObjectFile.h
NVPTXTargetTransformInfo.cpp
NVPTXTargetTransformInfo.h
NVPTXUtilities.cpp Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
NVPTXUtilities.h Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
NVPTXVector.td
NVVMIntrRange.cpp
NVVMReflect.cpp