llvm-project/llvm/lib
Hans Wennborg acb842d523 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

llvm-svn: 202930
2014-03-05 02:43:26 +00:00
..
Analysis Allow constant folding of fma and fmuladd 2014-03-05 00:02:00 +00:00
AsmParser [Modules] Move ValueHandle into the IR library where Value itself lives. 2014-03-04 11:17:44 +00:00
Bitcode [Modules] Move ValueHandle into the IR library where Value itself lives. 2014-03-04 11:17:44 +00:00
CodeGen Check for dynamic allocas and inline asm that clobbers sp before building 2014-03-05 02:43:26 +00:00
DebugInfo Switch all uses of LLVM_OVERRIDE to just use 'override' directly. 2014-03-02 09:09:27 +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 API: Add functions to get or set a GlobalValue's DLLStorageClass 2014-03-05 02:34:23 +00:00
IRReader Make parseBitcodeFile return an ErrorOr<Module *>. 2014-01-15 01:08:23 +00:00
LTO [cleanup] Re-sort all the includes with utils/sort_includes.py. 2014-03-04 10:07:28 +00:00
LineEditor [CMake] Use LINK_LIBS instead of target_link_libraries(). 2014-02-26 06:41:29 +00:00
Linker Compare DataLayout by Value, not by pointer. 2014-02-26 17:02:08 +00:00
MC [C++11] Replace llvm::next and llvm::prior with std::next and std::prev. 2014-03-02 12:27:27 +00:00
Object Now that it is possible, use the mangler in IRObjectFile. 2014-02-28 02:17:23 +00:00
Option Avoid buffer copies when a Twine already is a StringRef. 2013-12-03 18:18:28 +00:00
Support Remove dependence on std::function. 2014-03-04 22:13:07 +00:00
TableGen Fix odd indentation. 2014-02-27 03:11:13 +00:00
Target Remove a special character in comment that accidentially got committed. 2014-03-04 22:56:57 +00:00
Transforms [Modules] Move the ConstantRange class into the IR library. This is 2014-03-04 12:24:34 +00:00
CMakeLists.txt Introduce line editor library. 2014-01-31 23:46:14 +00:00
LLVMBuild.txt Introduce line editor library. 2014-01-31 23:46:14 +00:00
Makefile Introduce line editor library. 2014-01-31 23:46:14 +00:00