OLD | NEW |
1 //===-- gold-plugin.cpp - Plugin to gold for Link Time Optimization ------===// | 1 //===-- gold-plugin.cpp - Plugin to gold for Link Time Optimization ------===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This is a gold plugin for LLVM. It provides an LLVM implementation of the | 10 // This is a gold plugin for LLVM. It provides an LLVM implementation of the |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 extra.push_back(opt); | 145 extra.push_back(opt); |
146 } | 146 } |
147 } | 147 } |
148 } | 148 } |
149 | 149 |
150 static ld_plugin_status claim_file_hook(const ld_plugin_input_file *file, | 150 static ld_plugin_status claim_file_hook(const ld_plugin_input_file *file, |
151 int *claimed); | 151 int *claimed); |
152 static ld_plugin_status all_symbols_read_hook(void); | 152 static ld_plugin_status all_symbols_read_hook(void); |
153 static ld_plugin_status cleanup_hook(void); | 153 static ld_plugin_status cleanup_hook(void); |
154 | 154 |
155 extern "C" ld_plugin_status onload(ld_plugin_tv *tv); | 155 extern "C" ld_plugin_status llvm_plugin_onload(ld_plugin_tv *tv); // @LOCALMOD |
156 ld_plugin_status onload(ld_plugin_tv *tv) { | 156 ld_plugin_status llvm_plugin_onload(ld_plugin_tv *tv) { // @LOCALMOD |
157 // We're given a pointer to the first transfer vector. We read through them | 157 // We're given a pointer to the first transfer vector. We read through them |
158 // until we find one where tv_tag == LDPT_NULL. The REGISTER_* tagged values | 158 // until we find one where tv_tag == LDPT_NULL. The REGISTER_* tagged values |
159 // contain pointers to functions that we need to call to register our own | 159 // contain pointers to functions that we need to call to register our own |
160 // hooks. The others are addresses of functions we can use to call into gold | 160 // hooks. The others are addresses of functions we can use to call into gold |
161 // for services. | 161 // for services. |
162 | 162 |
163 bool registeredClaimFile = false; | 163 bool registeredClaimFile = false; |
164 | 164 |
165 for (; tv->tv_tag != LDPT_NULL; ++tv) { | 165 for (; tv->tv_tag != LDPT_NULL; ++tv) { |
166 switch (tv->tv_tag) { | 166 switch (tv->tv_tag) { |
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
599 static ld_plugin_status cleanup_hook(void) { | 599 static ld_plugin_status cleanup_hook(void) { |
600 std::string ErrMsg; | 600 std::string ErrMsg; |
601 | 601 |
602 for (int i = 0, e = Cleanup.size(); i != e; ++i) | 602 for (int i = 0, e = Cleanup.size(); i != e; ++i) |
603 if (Cleanup[i].eraseFromDisk(false, &ErrMsg)) | 603 if (Cleanup[i].eraseFromDisk(false, &ErrMsg)) |
604 (*message)(LDPL_ERROR, "Failed to delete '%s': %s", Cleanup[i].c_str(), | 604 (*message)(LDPL_ERROR, "Failed to delete '%s': %s", Cleanup[i].c_str(), |
605 ErrMsg.c_str()); | 605 ErrMsg.c_str()); |
606 | 606 |
607 return LDPS_OK; | 607 return LDPS_OK; |
608 } | 608 } |
OLD | NEW |