[llvm-commits] CVS: llvm/lib/Target/CBackend/CBackend.cpp

Anton Korobeynikov asl at math.spbu.ru
Tue Apr 17 02:20:33 PDT 2007



Changes in directory llvm/lib/Target/CBackend:

CBackend.cpp updated: 1.337 -> 1.338
---
Log message:

Implemented correct stack probing on mingw/cygwin for dynamic alloca's. 
Also, fixed static case in presence of eax livin. This fixes PR331: http://llvm.org/PR331 

PS: Why don't we still have push/pop instructions? :)


---
Diffs of the changes:  (+2 -2)

 CBackend.cpp |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/lib/Target/CBackend/CBackend.cpp
diff -u llvm/lib/Target/CBackend/CBackend.cpp:1.337 llvm/lib/Target/CBackend/CBackend.cpp:1.338
--- llvm/lib/Target/CBackend/CBackend.cpp:1.337	Fri Apr 13 17:52:03 2007
+++ llvm/lib/Target/CBackend/CBackend.cpp	Tue Apr 17 04:20:00 2007
@@ -1281,8 +1281,8 @@
   // Alloca is hard to get, and we don't want to include stdlib.h here.
   Out << "/* get a declaration for alloca */\n"
       << "#if defined(__CYGWIN__) || defined(__MINGW32__)\n"
-      << "extern void *_alloca(unsigned long);\n"
-      << "#define alloca(x) _alloca(x)\n"
+      << "#define  alloca(x) __builtin_alloca((x))\n"
+      << "#define _alloca(x) __builtin_alloca((x))\n"    
       << "#elif defined(__APPLE__)\n"
       << "extern void *__builtin_alloca(unsigned long);\n"
       << "#define alloca(x) __builtin_alloca(x)\n"






More information about the llvm-commits mailing list