1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 21:42:54 +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 Remove autoconf support 2016-01-26 21:29:08 +00:00
MCTargetDesc Delete Reloc::Default. 2016-05-18 22:04:49 +00:00
TargetInfo Remove autoconf support 2016-01-26 21:29:08 +00:00
cl_common_defines.h
CMakeLists.txt [NVPTX] Added NVVMIntrRange pass 2016-05-26 17:02:56 +00:00
LLVMBuild.txt
ManagedStringPool.h
NVPTX.h [NVPTX] Added NVVMIntrRange pass 2016-05-26 17:02:56 +00:00
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 Add optimization bisect opt-in calls for NVPTX passes 2016-04-26 23:44:31 +00:00
NVPTXFrameLowering.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
NVPTXFrameLowering.h Change eliminateCallFramePseudoInstr() to return an iterator 2016-03-31 18:33:38 +00:00
NVPTXGenericToNVVM.cpp IR: Introduce ConstantAggregate, NFC 2016-04-05 21:10:45 +00:00
NVPTXImageOptimizer.cpp Add optimization bisect opt-in calls for NVPTX passes 2016-04-26 23:44:31 +00:00
NVPTXInferAddressSpaces.cpp Add optimization bisect opt-in calls for NVPTX passes 2016-04-26 23:44:31 +00:00
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 [NVPTX] Fix sign/zero-extending ldg/ldu instruction selection 2016-05-02 18:12:02 +00:00
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 Add optimization bisect opt-in calls for NVPTX passes 2016-04-26 23:44:31 +00:00
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 Add optimization bisect opt-in calls for NVPTX passes 2016-04-26 23:44:31 +00:00
NVPTXPrologEpilogPass.cpp
NVPTXRegisterInfo.cpp
NVPTXRegisterInfo.h
NVPTXRegisterInfo.td
NVPTXReplaceImageHandles.cpp
NVPTXSection.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
NVPTXSubtarget.cpp
NVPTXSubtarget.h Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
NVPTXTargetMachine.cpp [NVPTX] Added NVVMIntrRange pass 2016-05-26 17:02:56 +00:00
NVPTXTargetMachine.h Delete Reloc::Default. 2016-05-18 22:04:49 +00:00
NVPTXTargetObjectFile.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
NVPTXTargetTransformInfo.cpp
NVPTXTargetTransformInfo.h [NVPTX] Set NVPTXTTI::getInliningThresholdMultiplier to 5. 2016-04-15 01:38:50 +00:00
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 Init member structs in constructor. 2016-05-26 17:29:20 +00:00
NVVMReflect.cpp [NVPTX] Don't (incorrectly) say that the NVVMReflect pass preserves all analyses. 2016-05-25 23:12:38 +00:00