llvm-6502/lib/Target/NVPTX
Jingyue Wu f15b696b79 [NVPTX] Emit .pragma "nounroll" for loops marked with nounroll
Summary:
CUDA driver can unroll loops when jit-compiling PTX. To prevent CUDA
driver from unrolling a loop marked with llvm.loop.unroll.disable is not
unrolled by CUDA driver, we need to emit .pragma "nounroll" at the
header of that loop.

This patch also extracts getting unroll metadata from loop ID metadata
into a shared helper function.

Test Plan: test/CodeGen/NVPTX/nounroll.ll

Reviewers: eliben, meheff, jholewinski

Reviewed By: jholewinski

Subscribers: jholewinski, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227703 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-01 02:27:45 +00:00
..
InstPrinter
MCTargetDesc
TargetInfo
cl_common_defines.h
CMakeLists.txt
LLVMBuild.txt Update libdeps in NVPTXCodeGen, since r225944. 2015-01-14 23:01:36 +00:00
Makefile
ManagedStringPool.h
NVPTX.h [PM] Remove a bunch of stale TTI creation method declarations. I nuked 2015-02-01 00:22:15 +00:00
NVPTX.td
NVPTXAllocaHoisting.cpp
NVPTXAllocaHoisting.h [LPM] Stop using the string based preservation API. It is an 2015-01-28 04:57:56 +00:00
NVPTXAsmPrinter.cpp [NVPTX] Emit .pragma "nounroll" for loops marked with nounroll 2015-02-01 02:27:45 +00:00
NVPTXAsmPrinter.h [NVPTX] Emit .pragma "nounroll" for loops marked with nounroll 2015-02-01 02:27:45 +00:00
NVPTXAssignValidGlobalNames.cpp
NVPTXFavorNonGenericAddrSpaces.cpp
NVPTXFrameLowering.cpp
NVPTXFrameLowering.h
NVPTXGenericToNVVM.cpp NVPTX: Use MapMetadata() instead of custom/stale/untested logic 2015-01-14 05:14:30 +00:00
NVPTXImageOptimizer.cpp [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
NVPTXInstrFormats.td
NVPTXInstrInfo.cpp [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
NVPTXInstrInfo.h
NVPTXInstrInfo.td Migrate NVPTXISelDAGToDAG's getSubtarget to a runOnMachineFunction 2015-01-30 01:40:59 +00:00
NVPTXIntrinsics.td
NVPTXISelDAGToDAG.cpp Remove unused argument. 2015-01-30 01:41:01 +00:00
NVPTXISelDAGToDAG.h Migrate NVPTXISelDAGToDAG's getSubtarget to a runOnMachineFunction 2015-01-30 01:40:59 +00:00
NVPTXISelLowering.cpp Migrate NVPTXISelLowering to take the subtarget that it's dependent 2015-01-30 01:50:07 +00:00
NVPTXISelLowering.h Migrate NVPTXISelLowering to take the subtarget that it's dependent 2015-01-30 01:50:07 +00:00
NVPTXLowerAggrCopies.cpp
NVPTXLowerAggrCopies.h [LPM] Stop using the string based preservation API. It is an 2015-01-28 04:57:56 +00:00
NVPTXLowerStructArgs.cpp
NVPTXMachineFunctionInfo.h
NVPTXMCExpr.cpp
NVPTXMCExpr.h
NVPTXPrologEpilogPass.cpp Migrate a bare getSubtarget call to query the MachineFunction 2015-01-30 01:50:09 +00:00
NVPTXRegisterInfo.cpp
NVPTXRegisterInfo.h
NVPTXRegisterInfo.td
NVPTXReplaceImageHandles.cpp [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
NVPTXSection.h
NVPTXSubtarget.cpp Migrate NVPTXISelLowering to take the subtarget that it's dependent 2015-01-30 01:50:07 +00:00
NVPTXSubtarget.h Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
NVPTXTargetMachine.cpp [PM] Switch the TargetMachine interface from accepting a pass manager 2015-01-31 11:17:59 +00:00
NVPTXTargetMachine.h [PM] Switch the TargetMachine interface from accepting a pass manager 2015-01-31 11:17:59 +00:00
NVPTXTargetObjectFile.h
NVPTXTargetTransformInfo.cpp [PM] Switch the TargetMachine interface from accepting a pass manager 2015-01-31 11:17:59 +00:00
NVPTXTargetTransformInfo.h [PM] Switch the TargetMachine interface from accepting a pass manager 2015-01-31 11:17:59 +00:00
NVPTXutil.cpp
NVPTXutil.h
NVPTXUtilities.cpp [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
NVPTXUtilities.h
NVPTXVector.td
NVVMReflect.cpp