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
"...
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...