mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-27 00:21:03 +00:00
Changes in IntelJITEventListener - By Arch Robinson
- take->release: LLVM has moved to C++11. MockWrapper became an instance of unique_ptr. - method symbol_iterator::increment disappeared recently, in this revision: r200442 | rafael | 2014-01-29 20:49:50 -0600 (Wed, 29 Jan 2014) | 9 lines Simplify the handling of iterators in ObjectFile. None of the object file formats reported error on iterator increment. In retrospect, that is not too surprising: no object format stores symbols or sections in a linked list or other structure that requires chasing pointers. As a consequence, all error checking can be done on begin() and end(). This reduces the text segment of bin/llvm-readobj in my machine from 521233 to 518526 bytes. My change mimics the change that the revision made to lib/DebugInfo/DWARFContext.cpp . - const_cast: Shut up a warning from gcc. I ran unittests/ExecutionEngine/JIT/Debug+Asserts/JITTests to make sure it worked. - Arch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205689 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -193,11 +193,10 @@ void IntelJITEventListener::NotifyObjectEmitted(const ObjectImage &Obj) {
|
|||||||
MethodAddressVector Functions;
|
MethodAddressVector Functions;
|
||||||
|
|
||||||
// Use symbol info to iterate functions in the object.
|
// Use symbol info to iterate functions in the object.
|
||||||
error_code ec;
|
|
||||||
for (object::symbol_iterator I = Obj.begin_symbols(),
|
for (object::symbol_iterator I = Obj.begin_symbols(),
|
||||||
E = Obj.end_symbols();
|
E = Obj.end_symbols();
|
||||||
I != E && !ec;
|
I != E;
|
||||||
I.increment(ec)) {
|
++I) {
|
||||||
std::vector<LineNumberInfo> LineInfo;
|
std::vector<LineNumberInfo> LineInfo;
|
||||||
std::string SourceFileName;
|
std::string SourceFileName;
|
||||||
|
|
||||||
@@ -234,7 +233,7 @@ void IntelJITEventListener::NotifyObjectEmitted(const ObjectImage &Obj) {
|
|||||||
FunctionMessage.line_number_table = 0;
|
FunctionMessage.line_number_table = 0;
|
||||||
} else {
|
} else {
|
||||||
SourceFileName = Lines.front().second.getFileName();
|
SourceFileName = Lines.front().second.getFileName();
|
||||||
FunctionMessage.source_file_name = (char *)SourceFileName.c_str();
|
FunctionMessage.source_file_name = const_cast<char *>(SourceFileName.c_str());
|
||||||
FunctionMessage.line_number_size = LineInfo.size();
|
FunctionMessage.line_number_size = LineInfo.size();
|
||||||
FunctionMessage.line_number_table = &*LineInfo.begin();
|
FunctionMessage.line_number_table = &*LineInfo.begin();
|
||||||
}
|
}
|
||||||
|
@@ -83,7 +83,7 @@ public:
|
|||||||
EXPECT_TRUE(0 != MockWrapper);
|
EXPECT_TRUE(0 != MockWrapper);
|
||||||
|
|
||||||
Listener.reset(JITEventListener::createIntelJITEventListener(
|
Listener.reset(JITEventListener::createIntelJITEventListener(
|
||||||
MockWrapper.take()));
|
MockWrapper.release()));
|
||||||
EXPECT_TRUE(0 != Listener);
|
EXPECT_TRUE(0 != Listener);
|
||||||
EE->RegisterJITEventListener(Listener.get());
|
EE->RegisterJITEventListener(Listener.get());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user