llvm-6502/include/llvm
Hans Wennborg 2f471c83a0 Check for dynamic allocas and inline asm that clobbers sp before building
selection dag (PR19012)

In X86SelectionDagInfo::EmitTargetCodeForMemcpy we check with MachineFrameInfo
to make sure that ESI isn't used as a base pointer register before we choose to
emit rep movs (which clobbers esi).

The problem is that MachineFrameInfo wouldn't know about dynamic allocas or
inline asm that clobbers the stack pointer until SelectionDAGBuilder has
encountered them.

This patch fixes the problem by checking for such things when building the
FunctionLoweringInfo.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202930 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-05 02:43:26 +00:00
..
ADT APFloat: Add a move ctor and operator= 2014-03-04 20:26:51 +00:00
Analysis [Modules] Move the ConstantRange class into the IR library. This is 2014-03-04 12:24:34 +00:00
AsmParser Move the LLVM IR asm writer header files into the IR directory, as they 2014-01-07 12:34:26 +00:00
Bitcode Make parseBitcodeFile return an ErrorOr<Module *>. 2014-01-15 01:08:23 +00:00
CodeGen Check for dynamic allocas and inline asm that clobbers sp before building 2014-03-05 02:43:26 +00:00
Config Add patch level to llvm version in CMake and Autoconf 2014-03-03 15:22:00 +00:00
DebugInfo llvm-dwarfdump: Support for debug_line.dwo section for file names for type units under fission. 2014-02-24 23:58:54 +00:00
ExecutionEngine [Modules] Move ValueMap to the IR library. While this class does not 2014-03-04 11:26:31 +00:00
IR [C++11] Sink the iterator over a Value's users into the Value type 2014-03-05 01:50:35 +00:00
IRReader Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LineEditor [cleanup] Re-sort all the includes with utils/sort_includes.py. 2014-03-04 10:07:28 +00:00
LTO LTO API: add lto_module_create_from_memory_with_path. 2014-02-10 23:26:14 +00:00
MC Switch all uses of LLVM_OVERRIDE to just use 'override' directly. 2014-03-02 09:09:27 +00:00
Object Switch all uses of LLVM_OVERRIDE to just use 'override' directly. 2014-03-02 09:09:27 +00:00
Option Option parsing: support case-insensitive option matching. 2013-08-28 20:04:31 +00:00
Support Partially roll back r202915. 2014-03-05 00:43:02 +00:00
TableGen Typo fix. 2014-01-24 23:40:08 +00:00
Target [Modules] Move CallSite into the IR library where it belogs. It is 2014-03-04 11:01:28 +00:00
Transforms [Modules] Move CFG.h to the IR library as it defines graph traits over 2014-03-04 11:45:46 +00:00
AutoUpgrade.h Debug Info: drop debug info via upgrading path if version number does not match. 2013-12-02 21:29:56 +00:00
CMakeLists.txt The llvm_headers_do_not_build project needs to be excluded from the default build, otherwise it gets built (at least in Visual Studio 2013). 2014-01-28 16:07:10 +00:00
DebugInfo.h Pass to emit DWARF path discriminators. 2014-03-03 20:06:11 +00:00
DIBuilder.h [Modules] Move ValueHandle into the IR library where Value itself lives. 2014-03-04 11:17:44 +00:00
GVMaterializer.h Use error_code in GVMaterializer. 2013-11-05 19:36:34 +00:00
InitializePasses.h Pass to emit DWARF path discriminators. 2014-03-03 20:06:11 +00:00
InstVisitor.h [Modules] Move CallSite into the IR library where it belogs. It is 2014-03-04 11:01:28 +00:00
LinkAllIR.h [cleanup] Move the Dominators.h and Verifier.h headers into the IR 2014-01-13 09:26:24 +00:00
LinkAllPasses.h Revert "Revert "Add Constant Hoisting Pass" (r200034)" 2014-01-25 02:02:55 +00:00
Linker.h Set the SuppressWarnings option on tool level and propagate to the library. 2014-02-20 22:19:24 +00:00
Pass.h Constify the Optnone checks in IR passes. 2014-02-26 01:23:26 +00:00
PassAnalysisSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PassManager.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
PassRegistry.h Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
PassSupport.h Revert "[C++11] Replace LLVM atomics with std::atomic." 2014-03-03 18:02:34 +00:00