llvm-project/llvm/lib/Target/XCore
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
..
Disassembler [CMake] Let add_public_tablegen_target responsible to provide dependency to CommonTableGen. 2013-11-28 17:04:04 +00:00
InstPrinter [CMake] Let add_public_tablegen_target responsible to provide dependency to CommonTableGen. 2013-11-28 17:04:04 +00:00
MCTargetDesc Add proper dependencies to LLVMBuild.txt in llvm/lib. 2013-12-10 05:39:34 +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 Add proper dependencies to LLVMBuild.txt in llvm/lib. 2013-12-10 05:39:34 +00:00
Makefile Add instruction encodings and disassembly for 1r instructions. 2012-12-16 17:37:34 +00:00
README.txt test commit 2013-07-29 09:23:13 +00:00
XCore.h Prevent LoopVectorizer and SLPVectorizer running if the target has no vector registers. 2013-09-18 12:43:35 +00:00
XCore.td Change the default of AsmWriterClassName and isMCAsmWriter. 2013-12-02 04:55:42 +00:00
XCoreAsmPrinter.cpp Remove dead code. 2013-12-02 15:36:37 +00:00
XCoreCallingConv.td
XCoreFrameLowering.cpp XCoreFrameLowering.cpp: Use [in,out] instead of [in] [out]. [-Wdocumentation] 2013-12-02 11:31:25 +00:00
XCoreFrameLowering.h XCore target: Make handling of large frames not dependent upon an FP. 2013-12-02 11:05:28 +00:00
XCoreISelDAGToDAG.cpp [XCore] Fix instruction selection for zext, mkmsk instructions. 2013-07-02 14:46:34 +00:00
XCoreISelLowering.cpp [stackprotector] Use analysis from the StackProtector pass for stack layout in PEI a nd LocalStackSlot passes. 2013-12-19 03:17:11 +00:00
XCoreISelLowering.h Add XCore support for ATOMIC_FENCE. 2013-11-12 10:11:26 +00:00
XCoreInstrFormats.td [XCore] Add missing 2r instructions. 2013-02-17 22:38:05 +00:00
XCoreInstrInfo.cpp [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
XCoreInstrInfo.h [weak vtables] Remove a bunch of weak vtables 2013-11-19 00:57:56 +00:00
XCoreInstrInfo.td XCore target: fix large code model 'select' indirect address handling. 2013-12-02 10:18:37 +00:00
XCoreLowerThreadLocal.cpp XCore target: fix bug in XCoreLowerThreadLocal.cpp 2013-10-11 10:26:48 +00:00
XCoreMCInstLower.cpp Add a helper getSymbol to AsmPrinter. 2013-10-29 17:07:16 +00:00
XCoreMCInstLower.h Update comments to match recommended doxygen style. 2012-12-17 12:13:41 +00:00
XCoreMachineFunctionInfo.cpp XCore target: Make handling of large frames not dependent upon an FP. 2013-12-02 11:05:28 +00:00
XCoreMachineFunctionInfo.h XCore target: Make handling of large frames not dependent upon an FP. 2013-12-02 11:05:28 +00:00
XCoreRegisterInfo.cpp XCore target: Make handling of large frames not dependent upon an FP. 2013-12-02 11:05:28 +00:00
XCoreRegisterInfo.h XCore target: Make handling of large frames not dependent upon an FP. 2013-12-02 11:05:28 +00:00
XCoreRegisterInfo.td [XCore] The RRegs register class is a superset of GRRegs. 2013-04-04 19:57:46 +00:00
XCoreSelectionDAGInfo.cpp
XCoreSelectionDAGInfo.h
XCoreSubtarget.cpp Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, MSP430, PPC, PTX, Sparc, X86, XCore. 2012-02-18 12:03:15 +00:00
XCoreSubtarget.h Sort includes for all of the .h files under the 'lib' tree. These were 2012-12-04 07:12:27 +00:00
XCoreTargetMachine.cpp One last cleanup of LLVM's DataLayout strings. 2013-12-16 19:31:14 +00:00
XCoreTargetMachine.h Prevent LoopVectorizer and SLPVectorizer running if the target has no vector registers. 2013-09-18 12:43:35 +00:00
XCoreTargetObjectFile.cpp XCore target: Add large code model 2013-12-02 10:18:31 +00:00
XCoreTargetObjectFile.h XCore target: Add large code model 2013-12-02 10:18:31 +00:00
XCoreTargetTransformInfo.cpp More XCore TTI cleanup -- remove an unused private field flagged by 2013-09-18 14:11:11 +00:00

README.txt

To-do
-----

* Instruction encodings
* Tailcalls
* Investigate loop alignment
* Add builtins