llvm-6502/lib/Transforms
Reid Kleckner 0f8f086e21 [ASan] Don't use stack malloc for 32-bit functions using inline asm
This prevents us from running out of registers in the backend.

Introducing stack malloc calls prevents the backend from recognizing the
inline asm operands as stack objects. When the backend recognizes a
stack object, it doesn't need to materialize the address of the memory
in a physical register. Instead it generates a simple SP-based memory
operand. Introducing a stack malloc forces the backend to find a free
register for every memory operand. 32-bit x86 simply doesn't have enough
registers for this to succeed in most cases.

Reviewers: kcc, samsonov

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233979 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-02 21:44:55 +00:00
..
Hello
InstCombine [opaque pointer type] Change GetElementPtrInst::getIndexedType to take the pointee type 2015-03-30 21:41:43 +00:00
Instrumentation [ASan] Don't use stack malloc for 32-bit functions using inline asm 2015-04-02 21:44:55 +00:00
IPO [opaque pointer type] API migration for GEP constant factories 2015-04-02 18:55:32 +00:00
ObjCARC Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
Scalar [SLSR] handles off bounds GEPs 2015-04-02 21:18:32 +00:00
Utils Fix a bug indicated by -fsanitize=shift-exponent. 2015-04-02 01:30:10 +00:00
Vectorize Transforms: Use the new DebugLoc API, NFC 2015-03-30 19:49:49 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile