llvm-project/llvm/lib/Target/NVPTX
Josh Magee 22b8ba2d67 [stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes.
This changes the MachineFrameInfo API to use the new SSPLayoutKind information
produced by the StackProtector pass (instead of a boolean flag) and updates a
few pass dependencies (to preserve the SSP analysis).

The stack layout follows the same approach used prior to this change - i.e.,
only LargeArray stack objects will be placed near the canary and everything
else will be laid out normally.  After this change, structures containing large
arrays will also be placed near the canary - a case previously missed by the
old implementation.

Out of tree targets will need to update their usage of
MachineFrameInfo::CreateStackObject to remove the MayNeedSP argument. 

The next patch will implement the rules for sspstrong and sspreq.  The end goal
is to support ssp-strong stack layout rules.

WIP.

Differential Revision: http://llvm-reviews.chandlerc.com/D2158

llvm-svn: 197653
2013-12-19 03:17:11 +00:00
..
InstPrinter [CMake] Let add_public_tablegen_target responsible to provide dependency to CommonTableGen. 2013-11-28 17:04:04 +00:00
MCTargetDesc Don't set PrivateGlobalPrefix for NVPTX and R600. 2013-12-03 01:03:35 +00:00
TargetInfo Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
CMakeLists.txt [CMake] Let add_public_tablegen_target() provide intrinsics_gen, too. 2013-11-28 17:04:31 +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] Remove unused prototypes 2013-07-22 17:04:40 +00:00
NVPTX.td Change the default of AsmWriterClassName and isMCAsmWriter. 2013-12-02 04:55:42 +00:00
NVPTXAllocaHoisting.cpp ARM: implement ldrex, strex and clrex intrinsics 2013-07-16 09:46:55 +00:00
NVPTXAllocaHoisting.h [stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes. 2013-12-19 03:17:11 +00:00
NVPTXAsmPrinter.cpp Remove the notion of primitive types. 2013-12-07 19:34:20 +00:00
NVPTXAsmPrinter.h Remove dead declarations. 2013-12-02 04:18:19 +00:00
NVPTXFrameLowering.cpp [NVPTX] Fix bug in stack code generation causes by MC conversion 2013-08-06 14:13:31 +00:00
NVPTXFrameLowering.h [NVPTX] Run clang-format on all NVPTX sources. 2013-03-30 14:29:21 +00:00
NVPTXGenericToNVVM.cpp Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
NVPTXISelDAGToDAG.cpp [NVPTX] Fix off-by-one error when creating the VT list for an SDNode 2013-12-05 12:58:00 +00:00
NVPTXISelDAGToDAG.h [NVPTX] Use approximate FP ops when unsafe-fp-math is used, and append 2013-07-22 12:18:04 +00:00
NVPTXISelLowering.cpp Remove the notion of primitive types. 2013-12-07 19:34:20 +00:00
NVPTXISelLowering.h [NVPTX] Fix handling of indirect calls 2013-11-15 12:30:04 +00:00
NVPTXInstrFormats.td
NVPTXInstrInfo.cpp [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
NVPTXInstrInfo.h [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
NVPTXInstrInfo.td [NVPTX] Fix handling of indirect calls 2013-11-15 12:30:04 +00:00
NVPTXIntrinsics.td [NVPTX] Add isel patterns for [reg+offset] form of ldg/ldu. 2013-07-01 12:58:52 +00:00
NVPTXLowerAggrCopies.cpp [NVPTX] Run clang-format on all NVPTX sources. 2013-03-30 14:29:21 +00:00
NVPTXLowerAggrCopies.h [stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes. 2013-12-19 03:17:11 +00:00
NVPTXMCExpr.cpp [NVPTX] Start conversion to MC infrastructure 2013-08-06 14:13:27 +00:00
NVPTXMCExpr.h [NVPTX] Start conversion to MC infrastructure 2013-08-06 14:13:27 +00:00
NVPTXPrologEpilogPass.cpp [NVPTX] Re-enable support for virtual registers in the final output 2013-05-31 12:14:49 +00:00
NVPTXRegisterInfo.cpp [NVPTX] Remove i8 register class. PTX support for i8 (.b8, .u8, .s8) is rather poor and we're better off just ignoring it and letting LLVM expand all i8 ops out to i16. 2013-06-28 17:57:59 +00:00
NVPTXRegisterInfo.h Don't pass in the TargetInstrInfo into the register info object. It doesn't use it. 2013-06-19 21:59:00 +00:00
NVPTXRegisterInfo.td [NVPTX] Cut down on physical register defs 2013-07-01 12:59:06 +00:00
NVPTXSection.h [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
NVPTXSplitBBatBar.cpp Fix spelling intruction -> instruction. 2013-09-28 11:46:15 +00:00
NVPTXSplitBBatBar.h [stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes. 2013-12-19 03:17:11 +00:00
NVPTXSubtarget.cpp [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
NVPTXSubtarget.h Turn NVPTXSubtarget::getDataLayout into a static function. 2013-12-14 06:36:30 +00:00
NVPTXTargetMachine.cpp The preferred alignment defaults to the abi alignment. Omit if it is the same. 2013-12-16 18:01:51 +00:00
NVPTXTargetMachine.h [NVPTX] Run clang-format on all NVPTX sources. 2013-03-30 14:29:21 +00:00
NVPTXTargetObjectFile.h [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
NVPTXUtilities.cpp [NVPTX] Run clang-format on all NVPTX sources. 2013-03-30 14:29:21 +00:00
NVPTXUtilities.h [NVPTX] Run clang-format on all NVPTX sources. 2013-03-30 14:29:21 +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 Mark some command line flags as hidden 2013-10-18 23:38:13 +00:00
cl_common_defines.h [NVPTX] Run clang-format on all NVPTX sources. 2013-03-30 14:29:21 +00:00