aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-05-09 21:31:18 +0000
committerChris Lattner <sabre@nondot.org>2002-05-09 21:31:18 +0000
commit3af3ba8b38c55d0fab521a4040c9850854b9862e (patch)
tree51efea485749f2dc797cb0fcc11a7e7e229ed304
parentd0c668c380d4bc9654e49b663e77d00fb80dbb9f (diff)
Last minor cleanups, this code still does not work for all cases, but it
works much better than it used to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2588 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/CBackend/CBackend.cpp28
-rw-r--r--lib/Target/CBackend/Writer.cpp28
2 files changed, 20 insertions, 36 deletions
diff --git a/lib/Target/CBackend/CBackend.cpp b/lib/Target/CBackend/CBackend.cpp
index 39cdff49ad..27199fe440 100644
--- a/lib/Target/CBackend/CBackend.cpp
+++ b/lib/Target/CBackend/CBackend.cpp
@@ -1,14 +1,12 @@
-//===-- Writer.cpp - Library for writing C files --------------------------===//
+//===-- Writer.cpp - Library for converting LLVM code to C ----------------===//
//
// This library implements the functionality defined in llvm/Assembly/CWriter.h
-// and CLocalVars.h
//
// TODO : Recursive types.
//
//===-----------------------------------------------------------------------==//
#include "llvm/Assembly/CWriter.h"
-#include "llvm/SlotCalculator.h"
#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Module.h"
@@ -22,13 +20,12 @@
#include "llvm/iOther.h"
#include "llvm/iOperators.h"
#include "llvm/SymbolTable.h"
+#include "llvm/SlotCalculator.h"
#include "llvm/Support/InstVisitor.h"
#include "llvm/Support/InstIterator.h"
#include "Support/StringExtras.h"
#include "Support/STLExtras.h"
-
#include <algorithm>
-#include <strstream>
using std::string;
using std::map;
using std::ostream;
@@ -188,10 +185,9 @@ static string calcTypeNameVar(const Type *Ty,
return Result + "}";
}
- case Type::PointerTyID: {
+ case Type::PointerTyID:
return calcTypeNameVar(cast<const PointerType>(Ty)->getElementType(),
TypeNames, "*" + NameSoFar);
- }
case Type::ArrayTyID: {
const ArrayType *ATy = cast<const ArrayType>(Ty);
@@ -220,14 +216,10 @@ namespace {
inline void write(Module *M) { printModule(M); }
- ostream& printTypeVar(const Type *Ty, const string &VariableName) {
+ ostream& printType(const Type *Ty, const string &VariableName = "") {
return Out << calcTypeNameVar(Ty, TypeNames, VariableName);
}
- ostream& printType(const Type *Ty) {
- return Out << calcTypeNameVar(Ty, TypeNames, "");
- }
-
void writeOperand(const Value *Operand);
void writeOperandInternal(const Value *Operand);
@@ -329,7 +321,7 @@ void CWriter::writeOperandInternal(const Value *Operand) {
} else if (const Constant *CPV = dyn_cast<const Constant>(Operand)) {
if (isa<ConstantPointerNull>(CPV)) {
Out << "((";
- printTypeVar(CPV->getType(), "");
+ printType(CPV->getType(), "");
Out << ")NULL)";
} else
Out << getConstStrValue(CPV);
@@ -381,7 +373,7 @@ void CWriter::printModule(Module *M) {
for (Module::const_giterator I = M->gbegin(), E = M->gend(); I != E; ++I) {
GlobalVariable *GV = *I;
if (GV->hasInternalLinkage()) Out << "static ";
- printTypeVar(GV->getType()->getElementType(), getValueName(GV));
+ printType(GV->getType()->getElementType(), getValueName(GV));
if (GV->hasInitializer()) {
Out << " = " ;
@@ -460,14 +452,14 @@ void CWriter::printFunctionSignature(const Function *F) {
if (!F->isExternal()) {
if (!F->getArgumentList().empty()) {
- printTypeVar(F->getArgumentList().front()->getType(),
- getValueName(F->getArgumentList().front()));
+ printType(F->getArgumentList().front()->getType(),
+ getValueName(F->getArgumentList().front()));
for (Function::ArgumentListType::const_iterator
I = F->getArgumentList().begin()+1,
E = F->getArgumentList().end(); I != E; ++I) {
Out << ", ";
- printTypeVar((*I)->getType(), getValueName(*I));
+ printType((*I)->getType(), getValueName(*I));
}
}
} else {
@@ -501,7 +493,7 @@ void CWriter::printFunction(Function *F) {
for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I)
if ((*I)->getType() != Type::VoidTy && !isInlinableInst(*I)) {
Out << " ";
- printTypeVar((*I)->getType(), getValueName(*I));
+ printType((*I)->getType(), getValueName(*I));
Out << ";\n";
}
diff --git a/lib/Target/CBackend/Writer.cpp b/lib/Target/CBackend/Writer.cpp
index 39cdff49ad..27199fe440 100644
--- a/lib/Target/CBackend/Writer.cpp
+++ b/lib/Target/CBackend/Writer.cpp
@@ -1,14 +1,12 @@
-//===-- Writer.cpp - Library for writing C files --------------------------===//
+//===-- Writer.cpp - Library for converting LLVM code to C ----------------===//
//
// This library implements the functionality defined in llvm/Assembly/CWriter.h
-// and CLocalVars.h
//
// TODO : Recursive types.
//
//===-----------------------------------------------------------------------==//
#include "llvm/Assembly/CWriter.h"
-#include "llvm/SlotCalculator.h"
#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Module.h"
@@ -22,13 +20,12 @@
#include "llvm/iOther.h"
#include "llvm/iOperators.h"
#include "llvm/SymbolTable.h"
+#include "llvm/SlotCalculator.h"
#include "llvm/Support/InstVisitor.h"
#include "llvm/Support/InstIterator.h"
#include "Support/StringExtras.h"
#include "Support/STLExtras.h"
-
#include <algorithm>
-#include <strstream>
using std::string;
using std::map;
using std::ostream;
@@ -188,10 +185,9 @@ static string calcTypeNameVar(const Type *Ty,
return Result + "}";
}
- case Type::PointerTyID: {
+ case Type::PointerTyID:
return calcTypeNameVar(cast<const PointerType>(Ty)->getElementType(),
TypeNames, "*" + NameSoFar);
- }
case Type::ArrayTyID: {
const ArrayType *ATy = cast<const ArrayType>(Ty);
@@ -220,14 +216,10 @@ namespace {
inline void write(Module *M) { printModule(M); }
- ostream& printTypeVar(const Type *Ty, const string &VariableName) {
+ ostream& printType(const Type *Ty, const string &VariableName = "") {
return Out << calcTypeNameVar(Ty, TypeNames, VariableName);
}
- ostream& printType(const Type *Ty) {
- return Out << calcTypeNameVar(Ty, TypeNames, "");
- }
-
void writeOperand(const Value *Operand);
void writeOperandInternal(const Value *Operand);
@@ -329,7 +321,7 @@ void CWriter::writeOperandInternal(const Value *Operand) {
} else if (const Constant *CPV = dyn_cast<const Constant>(Operand)) {
if (isa<ConstantPointerNull>(CPV)) {
Out << "((";
- printTypeVar(CPV->getType(), "");
+ printType(CPV->getType(), "");
Out << ")NULL)";
} else
Out << getConstStrValue(CPV);
@@ -381,7 +373,7 @@ void CWriter::printModule(Module *M) {
for (Module::const_giterator I = M->gbegin(), E = M->gend(); I != E; ++I) {
GlobalVariable *GV = *I;
if (GV->hasInternalLinkage()) Out << "static ";
- printTypeVar(GV->getType()->getElementType(), getValueName(GV));
+ printType(GV->getType()->getElementType(), getValueName(GV));
if (GV->hasInitializer()) {
Out << " = " ;
@@ -460,14 +452,14 @@ void CWriter::printFunctionSignature(const Function *F) {
if (!F->isExternal()) {
if (!F->getArgumentList().empty()) {
- printTypeVar(F->getArgumentList().front()->getType(),
- getValueName(F->getArgumentList().front()));
+ printType(F->getArgumentList().front()->getType(),
+ getValueName(F->getArgumentList().front()));
for (Function::ArgumentListType::const_iterator
I = F->getArgumentList().begin()+1,
E = F->getArgumentList().end(); I != E; ++I) {
Out << ", ";
- printTypeVar((*I)->getType(), getValueName(*I));
+ printType((*I)->getType(), getValueName(*I));
}
}
} else {
@@ -501,7 +493,7 @@ void CWriter::printFunction(Function *F) {
for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I)
if ((*I)->getType() != Type::VoidTy && !isInlinableInst(*I)) {
Out << " ";
- printTypeVar((*I)->getType(), getValueName(*I));
+ printType((*I)->getType(), getValueName(*I));
Out << ";\n";
}