From 937105a220983351695bf4c8924171ba5d17a68c Mon Sep 17 00:00:00 2001 From: Logan Chien Date: Mon, 2 Apr 2012 02:37:37 +0800 Subject: Use ELF function index to distinguish generated functions. We replaced LLVMLongName and LLVMStubName with ElfFuncName, and we are using the simple name: Art0, Art1, ..., ArtN, as the function name of every generated functions. This gives us 3 benefits: 1. We can avoid the ambiguous function name returned by LLVMLongName() in some special situation. 2. We don't need to have the art::Method object during the executable linking procedure. Besides, this will make bootstrapping easier. 3. Reduce the size of the ELF executable, since we don't have to save a long function name, which usually contains more than 30 characters. Change-Id: Ib698062b272458e847ad5545d7acf33a4dc9eb85 --- src/compiler_llvm/utils_llvm.h | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'src/compiler_llvm/utils_llvm.h') diff --git a/src/compiler_llvm/utils_llvm.h b/src/compiler_llvm/utils_llvm.h index fb4da34ff6..fb9f0cb3f2 100644 --- a/src/compiler_llvm/utils_llvm.h +++ b/src/compiler_llvm/utils_llvm.h @@ -17,26 +17,17 @@ #ifndef ART_SRC_UTILS_LLVM_H_ #define ART_SRC_UTILS_LLVM_H_ -#include "object.h" +#include "stringprintf.h" +#include #include namespace art { -// Performs LLVM name mangling (similar to MangleForJni with additional '<' and -// '>' being mangled). -std::string MangleForLLVM(const std::string& s); +inline static std::string ElfFuncName(uint16_t elf_func_idx) { + return StringPrintf("Art%u", static_cast(elf_func_idx)); +} -// Returns the LLVM function name for the non-overloaded method 'm'. -std::string LLVMShortName(const Method* m); - -// Returns the LLVM function name for the overloaded method 'm'. -std::string LLVMLongName(const Method* m); - -// Returns the LLVM stub function name for the overloaded method 'm'. -std::string LLVMStubName(const Method* m); - -void LLVMLinkLoadMethod(const std::string& file_name, Method* method); } // namespace art #endif // ART_SRC_UTILS_LLVM_H_ -- cgit v1.2.3-59-g8ed1b