aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Gaeke <gaeke@uiuc.edu>2003-06-16 21:54:01 +0000
committerBrian Gaeke <gaeke@uiuc.edu>2003-06-16 21:54:01 +0000
commitad95d9ef50cbd789025dbff8a1e018650cbcdc7f (patch)
treeb65b2fdf28df6eacbe0e7d54e3a0a81237f3e24b
parent5c91898e57336d8457bddce63e4d7ba7fedc936e (diff)
downloadexternal_llvm-ad95d9ef50cbd789025dbff8a1e018650cbcdc7f.zip
external_llvm-ad95d9ef50cbd789025dbff8a1e018650cbcdc7f.tar.gz
external_llvm-ad95d9ef50cbd789025dbff8a1e018650cbcdc7f.tar.bz2
Isolate machine-dependent use of <alloca.h> in "Support/Alloca.h",
so that we can easily change its use to be conditional on the result of an autoconf test later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6723 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/Support/Alloca.h30
-rw-r--r--lib/CodeGen/InstrSelection/InstrForest.cpp2
-rw-r--r--lib/Support/SystemUtils.cpp2
-rw-r--r--lib/Target/SparcV9/InstrSelection/InstrForest.cpp2
-rw-r--r--lib/Target/X86/X86CodeEmitter.cpp2
-rw-r--r--support/lib/Support/SystemUtils.cpp2
-rw-r--r--tools/bugpoint/SystemUtils.cpp2
7 files changed, 36 insertions, 6 deletions
diff --git a/include/Support/Alloca.h b/include/Support/Alloca.h
new file mode 100644
index 0000000..3c163ed
--- /dev/null
+++ b/include/Support/Alloca.h
@@ -0,0 +1,30 @@
+//===-- include/Support/Alloca.h - Support for alloca header -----*- C++ -*--=//
+//
+// Some platforms do not have alloca.h; others do. You can include this
+// file instead of <alloca.h> and it will include <alloca.h> on the platforms
+// that require you to do so to use alloca().
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_ALLOCA_H
+#define LLVM_SUPPORT_ALLOCA_H
+
+// TODO: Determine HAVE_ALLOCA_H based on autoconf results.
+// The following method is too brittle.
+#if defined(HAVE_ALLOCA_H)
+#undef HAVE_ALLOCA_H
+#endif
+
+#if defined(__linux__)
+#define HAVE_ALLOCA_H 1
+#elif defined(__sparc__)
+#define HAVE_ALLOCA_H 1
+#elif defined(__FreeBSD__)
+// not defined here
+#endif
+
+#if HAVE_ALLOCA_H
+#include <alloca.h>
+#endif
+
+#endif /* LLVM_SUPPORT_ALLOCA_H */
diff --git a/lib/CodeGen/InstrSelection/InstrForest.cpp b/lib/CodeGen/InstrSelection/InstrForest.cpp
index c33faec..5afa1da 100644
--- a/lib/CodeGen/InstrSelection/InstrForest.cpp
+++ b/lib/CodeGen/InstrSelection/InstrForest.cpp
@@ -21,7 +21,7 @@
#include "llvm/Type.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "Support/STLExtras.h"
-#include <alloca.h>
+#include "Support/Alloca.h"
using std::cerr;
using std::vector;
diff --git a/lib/Support/SystemUtils.cpp b/lib/Support/SystemUtils.cpp
index 034c141f..c88a516 100644
--- a/lib/Support/SystemUtils.cpp
+++ b/lib/Support/SystemUtils.cpp
@@ -10,7 +10,7 @@
#include <fstream>
#include <iostream>
#include <cstdlib>
-#include <alloca.h>
+#include "Support/Alloca.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
diff --git a/lib/Target/SparcV9/InstrSelection/InstrForest.cpp b/lib/Target/SparcV9/InstrSelection/InstrForest.cpp
index c33faec..5afa1da 100644
--- a/lib/Target/SparcV9/InstrSelection/InstrForest.cpp
+++ b/lib/Target/SparcV9/InstrSelection/InstrForest.cpp
@@ -21,7 +21,7 @@
#include "llvm/Type.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "Support/STLExtras.h"
-#include <alloca.h>
+#include "Support/Alloca.h"
using std::cerr;
using std::vector;
diff --git a/lib/Target/X86/X86CodeEmitter.cpp b/lib/Target/X86/X86CodeEmitter.cpp
index 45d0b8c..bfb4aaa 100644
--- a/lib/Target/X86/X86CodeEmitter.cpp
+++ b/lib/Target/X86/X86CodeEmitter.cpp
@@ -13,7 +13,7 @@
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/Value.h"
#include "Support/Statistic.h"
-#include <alloca.h>
+#include "Support/Alloca.h"
namespace {
Statistic<>
diff --git a/support/lib/Support/SystemUtils.cpp b/support/lib/Support/SystemUtils.cpp
index 034c141f..c88a516 100644
--- a/support/lib/Support/SystemUtils.cpp
+++ b/support/lib/Support/SystemUtils.cpp
@@ -10,7 +10,7 @@
#include <fstream>
#include <iostream>
#include <cstdlib>
-#include <alloca.h>
+#include "Support/Alloca.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
diff --git a/tools/bugpoint/SystemUtils.cpp b/tools/bugpoint/SystemUtils.cpp
index 034c141f..c88a516 100644
--- a/tools/bugpoint/SystemUtils.cpp
+++ b/tools/bugpoint/SystemUtils.cpp
@@ -10,7 +10,7 @@
#include <fstream>
#include <iostream>
#include <cstdlib>
-#include <alloca.h>
+#include "Support/Alloca.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>