search for: _list_const_iterator

Displaying 5 results from an estimated 5 matches for "_list_const_iterator".

2010 Jul 26
3
[LLVMdev] How to disable simplifying function parameters in llvm-g++
.... } > > names like this only exist to make the LLVM IR more readable, and have no > effect on the final assembler. If you want to find out original parameter > names you need to use debug info. Note that the original parameter (of the function in concern) is of type "struct.std::_List_const_iterator<int>", whereas the parameter (after the compilation) is of type "struct.std::_List_node_base"*. Evidently, llvm-g++ replaces the original parameter with its sole field. This is understandable and the LLVM output indicates this by using "__position.0" rather than &quot...
2010 Jul 26
2
[LLVMdev] How to disable simplifying function parameters in llvm-g++
...erybody, It seems to me that there is one kind of default optimization executed by llvm-g++, simplifying function parameters in certain cases. Consider the following example: Given an iterator (in the context of C++ STL) (i.e. a class containing a pointer to another class): %"struct.std::_List_const_iterator<int>" = type { %"struct.std::_List_node_base"* } (The form in the readable LLVM language) and a function definition (declaration): void _M_insert(iterator __position, const value_type& __x) { ... } By issuing this command: llvm-g++ -fno-exceptions -fno-inline -emi...
2010 Jul 26
0
[LLVMdev] How to disable simplifying function parameters in llvm-g++
Hi Xiaolong, > Note that the original parameter (of the function in concern) is of > type "struct.std::_List_const_iterator<int>", whereas the parameter > (after the compilation) is of type > "struct.std::_List_node_base"*. Evidently, llvm-g++ replaces the > original parameter with its sole field. This is understandable and the > LLVM output indicates this by using "__position.0&quo...
2010 Jul 26
0
[LLVMdev] How to disable simplifying function parameters in llvm-g++
Hi Xiaolong, > The compilation substitutes "__position.0" for "__position", as shown below: > > define linkonce_odr void @_ZNSt4listIiSaIiEE9_M_insertESt14_List_iteratorIiERKi(%"struct.std::list<int,std::allocator<int> >"* %this, i64 %__position.0, i32* %__x) nounwind ssp { ... } names like this only exist to make the LLVM IR more readable,
2010 Jul 26
1
[LLVMdev] How to disable simplifying function parameters in llvm-g++
Hi Duncan, > > Note that the original parameter (of the function in concern) is of > > type "struct.std::_List_const_iterator<int>", whereas the parameter > > (after the compilation) is of type > > "struct.std::_List_node_base"*. Evidently, llvm-g++ replaces the > > original parameter with its sole field. This is understandable and the > > LLVM output indicates this by using &q...