aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Assembly
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-01-16 21:06:01 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-01-16 21:06:01 +0000
commite86bf519e1ea57a84d37422ec364f89c322e3ef4 (patch)
tree297da20423cca7cd83e39f79aa03b80fcaf281bb /include/llvm/Assembly
parent84a0605feb92b085b5cf4758b5b14d632fdd8974 (diff)
downloadexternal_llvm-e86bf519e1ea57a84d37422ec364f89c322e3ef4.zip
external_llvm-e86bf519e1ea57a84d37422ec364f89c322e3ef4.tar.gz
external_llvm-e86bf519e1ea57a84d37422ec364f89c322e3ef4.tar.bz2
For PR411:
This file makes the helper functions for auto-upgrade of llvm assembly and bytecode more accessible. This is part of de-overloading of intrinsic functions to support the flat symbol table (no type planes). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25365 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Assembly')
-rw-r--r--include/llvm/Assembly/AutoUpgrade.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/include/llvm/Assembly/AutoUpgrade.h b/include/llvm/Assembly/AutoUpgrade.h
new file mode 100644
index 0000000..fbbc7b5
--- /dev/null
+++ b/include/llvm/Assembly/AutoUpgrade.h
@@ -0,0 +1,33 @@
+//===-- llvm/Assembly/AutoUpgrade.h - AutoUpgrade Helpers --------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file was developed by Reid Spencer is distributed under the University
+// of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// These functions are implemented by the lib/VMCore/AutoUpgrade.cpp.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_ASSEMBLY_AUTOUPGRADE_H
+#define LLVM_ASSEMBLY_AUTOUPGRADE_H
+
+namespace llvm {
+ class Function;
+
+ /// This function inspects the Function \p F to see if it is an old overloaded
+ /// intrinsic. If it is, the Function's name is changed to add a suffix that
+ /// indicates the kind of arguments or result that it accepts. In LLVM release
+ /// 1.7, the overloading of intrinsic functions was replaced with separate
+ /// functions for each of the various argument sizes. This function implements
+ /// the auto-upgrade feature from the old overloaded names to the new
+ /// non-overloaded names.
+ /// @param F The Function to potentially auto-upgrade.
+ /// @brief Remove overloaded intrinsic function names.
+ bool UpgradeIntrinsicFunction(Function* F);
+
+} // End llvm namespace
+
+#endif