Chromium Code Reviews| Index: src/IceConverter.h |
| diff --git a/src/IceConverter.h b/src/IceConverter.h |
| index 763dcaeb4f13010ed5534b1474770f00cc781ba8..2a0bad1cc3cd7b58b6bfec05671f87cdf54adfc0 100644 |
| --- a/src/IceConverter.h |
| +++ b/src/IceConverter.h |
| @@ -14,9 +14,11 @@ |
| #ifndef SUBZERO_SRC_ICECONVERTER_H |
| #define SUBZERO_SRC_ICECONVERTER_H |
| +#include "IceDefs.h" |
| #include "IceTranslator.h" |
| namespace llvm { |
| +class GlobalValue; |
| class Module; |
| } |
| @@ -24,21 +26,45 @@ namespace Ice { |
| class Converter : public Translator { |
| public: |
| + typedef std::map<const llvm::GlobalValue *, GlobalDeclaration *> |
| + GlobalDeclarationMapType; |
|
jvoung (off chromium)
2014/10/10 23:01:16
It might be possible to make this typedef private,
Karl
2014/10/13 17:43:02
Done.
|
| Converter(llvm::Module *Mod, GlobalContext *Ctx, const Ice::ClFlags &Flags) |
| : Translator(Ctx, Flags), Mod(Mod) {} |
| + ~Converter() {} |
| + |
| /// Converts the LLVM Module to ICE. Sets exit status to false if successful, |
| /// true otherwise. |
| void convertToIce(); |
| + llvm::Module *getModule() const { return Mod; } |
| + |
| + // Returns the global declaration associated with the corresponding |
| + // global value V. If no such global address, generates fatal error. |
| + GlobalDeclaration *getGlobalDeclaration(const llvm::GlobalValue *V); |
| + |
| private: |
| llvm::Module *Mod; |
| + GlobalDeclarationMapType GlobalDeclarationMap; |
| + |
| + // Walks module and generates names for unnamed globals using prefix |
| + // getFlags().DefaultGlobalPrefix, if the prefix is non-empty. |
| + void nameUnnamedGlobalVariables(llvm::Module *Mod); |
| + |
| + // Walks module and generates names for unnamed functions using |
| + // prefix getFlags().DefaultFunctionPrefix, if the prefix is |
| + // non-empty. |
| + void nameUnnamedFunctions(llvm::Module *Mod); |
| + |
| // Converts functions to ICE, and then machine code. |
| void convertFunctions(); |
| // Converts globals to ICE, and then machine code. |
| void convertGlobals(llvm::Module *Mod); |
| + // Installs global declarations into GlobalDeclarationMap. |
| + void installGlobalDeclarations(llvm::Module *Mod); |
| + |
| Converter(const Converter &) = delete; |
| Converter &operator=(const Converter &) = delete; |
| }; |