[llvm-commits] [see] CVS: llvm/lib/Target/CBackend/Writer.cpp
John Criswell
criswell at cs.uiuc.edu
Wed May 16 12:50:01 PDT 2007
Changes in directory llvm/lib/Target/CBackend:
Writer.cpp updated: 1.280.4.2 -> 1.280.4.3
---
Log message:
Hack to see branch to label functions as pure and const.
Also fixed the creation of function prototypes with extern linkage.
---
Diffs of the changes: (+14 -4)
Writer.cpp | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
Index: llvm/lib/Target/CBackend/Writer.cpp
diff -u llvm/lib/Target/CBackend/Writer.cpp:1.280.4.2 llvm/lib/Target/CBackend/Writer.cpp:1.280.4.3
--- llvm/lib/Target/CBackend/Writer.cpp:1.280.4.2 Mon Mar 19 00:37:44 2007
+++ llvm/lib/Target/CBackend/Writer.cpp Wed May 16 14:49:42 2007
@@ -1247,11 +1247,20 @@
Out << " __ATTRIBUTE_DTOR__";
#if 1
- if ((I->getName() == "exactcheck") || (I->getName() == "exactcheck2") ||
- (I->getName() == "poolcheck") ||
- (I->getName() == "poolcheckarray") || (I->getName() == "poolcheckarray_i") ||
- (I->getName() == "pchk_bounds") || (I->getName() == "pchk_bounds_i")) {
+ if ((I->getName() == "exactcheck") ||
+ (I->getName() == "exactcheck2") ||
+ (I->getName() == "exactcheck3"))
Out << " __attribute__ ((const))";
+ if ((I->getName() == "poolcheck") ||
+ (I->getName() == "poolcheckarray") ||
+ (I->getName() == "poolcheckarray_i") ||
+ (I->getName() == "getBounds") ||
+ (I->getName() == "getBounds_i") ||
+ (I->getName() == "getBegin") ||
+ (I->getName() == "getEnd") ||
+ (I->getName() == "pchk_bounds") ||
+ (I->getName() == "pchk_bounds_i")) {
+ Out << " __attribute__ ((pure))";
}
#endif
if (I->hasName() && I->getName()[0] == 1)
@@ -1453,6 +1462,7 @@
bool isCStructReturn = F->getCallingConv() == CallingConv::CSRet;
if (F->hasInternalLinkage()) Out << "static ";
+ if (F->isExternal()) Out << "extern ";
if (F->hasDLLImportLinkage()) Out << "__declspec(dllimport) ";
if (F->hasDLLExportLinkage()) Out << "__declspec(dllexport) ";
switch (F->getCallingConv()) {
More information about the llvm-commits
mailing list