Change ABIInfo to compute information for a full signature at a time
(the main point of this restructing).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63619 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/ABIInfo.h b/lib/CodeGen/ABIInfo.h
index 83348d2..a2d80ed 100644
--- a/lib/CodeGen/ABIInfo.h
+++ b/lib/CodeGen/ABIInfo.h
@@ -15,6 +15,14 @@
}
namespace clang {
+ class ASTContext;
+
+ // FIXME: This is a layering issue if we want to move ABIInfo
+ // down. Fortunately CGFunctionInfo has no real tie to CodeGen.
+ namespace CodeGen {
+ class CGFunctionInfo;
+ }
+
/* FIXME: All of this stuff should be part of the target interface
somehow. It is currently here because it is not clear how to factor
the targets to support this, since the Targets currently live in a
@@ -112,12 +120,9 @@
class ABIInfo {
public:
virtual ~ABIInfo();
-
- virtual ABIArgInfo classifyReturnType(QualType RetTy,
- ASTContext &Context) const = 0;
-
- virtual ABIArgInfo classifyArgumentType(QualType Ty,
- ASTContext &Context) const = 0;
+
+ virtual void computeInfo(CodeGen::CGFunctionInfo &FI,
+ ASTContext &Ctx) const = 0;
};
} // end namespace clang