diff options
| author | Anton Korobeynikov <asl@math.spbu.ru> | 2010-02-12 15:28:40 +0000 |
|---|---|---|
| committer | Anton Korobeynikov <asl@math.spbu.ru> | 2010-02-12 15:28:40 +0000 |
| commit | c9276dfe04d4aa839871b6a02c11f1de81c74248 (patch) | |
| tree | cd27f4f514d8dfbbaa6c8ad965d566c9f2bc32fb /llvm/lib/Target/X86/X86COFFMachineModuleInfo.h | |
| parent | 0194f5804756e429876eeb8b5e054ed13590c378 (diff) | |
| download | bcm5719-llvm-c9276dfe04d4aa839871b6a02c11f1de81c74248.tar.gz bcm5719-llvm-c9276dfe04d4aa839871b6a02c11f1de81c74248.zip | |
Cleanup stdcall / fastcall name mangling.
This should fix alot of problems we saw so far, e.g. PRs 5851 & 2936
llvm-svn: 95980
Diffstat (limited to 'llvm/lib/Target/X86/X86COFFMachineModuleInfo.h')
| -rw-r--r-- | llvm/lib/Target/X86/X86COFFMachineModuleInfo.h | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/llvm/lib/Target/X86/X86COFFMachineModuleInfo.h b/llvm/lib/Target/X86/X86COFFMachineModuleInfo.h index 0e2009e003d..9de3dcd6349 100644 --- a/llvm/lib/Target/X86/X86COFFMachineModuleInfo.h +++ b/llvm/lib/Target/X86/X86COFFMachineModuleInfo.h @@ -21,44 +21,25 @@ namespace llvm { class X86MachineFunctionInfo; class TargetData; - + /// X86COFFMachineModuleInfo - This is a MachineModuleInfoImpl implementation /// for X86 COFF targets. class X86COFFMachineModuleInfo : public MachineModuleInfoImpl { StringSet<> CygMingStubs; - - // We have to propagate some information about MachineFunction to - // AsmPrinter. It's ok, when we're printing the function, since we have - // access to MachineFunction and can get the appropriate MachineFunctionInfo. - // Unfortunately, this is not possible when we're printing reference to - // Function (e.g. calling it and so on). Even more, there is no way to get the - // corresponding MachineFunctions: it can even be not created at all. That's - // why we should use additional structure, when we're collecting all necessary - // information. - // - // This structure is using e.g. for name decoration for stdcall & fastcall'ed - // function, since we have to use arguments' size for decoration. - typedef std::map<const Function*, X86MachineFunctionInfo> FMFInfoMap; - FMFInfoMap FunctionInfoMap; - + DenseMap<const Function*, unsigned> FnArgWords; public: X86COFFMachineModuleInfo(const MachineModuleInfo &); ~X86COFFMachineModuleInfo(); - - + void DecorateCygMingName(MCSymbol* &Name, MCContext &Ctx, const GlobalValue *GV, const TargetData &TD); void DecorateCygMingName(SmallVectorImpl<char> &Name, const GlobalValue *GV, const TargetData &TD); - - void AddFunctionInfo(const Function *F, const X86MachineFunctionInfo &Val); - + void addExternalFunction(const StringRef& Name); typedef StringSet<>::const_iterator stub_iterator; stub_iterator stub_begin() const { return CygMingStubs.begin(); } stub_iterator stub_end() const { return CygMingStubs.end(); } - - }; |

