Displaying 5 results from an estimated 5 matches for "replacemap".
2012 Aug 09
3
[LLVMdev] Type inconsistency in LLVM 3.1: CGDebugInfo.cpp
I'm probably missing something simple here but in:
CGDebugInfo.h:
std::vector<std::pair<void *, llvm::WeakVH> >ReplaceMap;
but then in
CGDebugInfo.cpp:
llvm::DIType TC = getTypeOrNull(Ty);
void * v = Ty.getAsOpaquePtr();
std::pair<void *, llvm::WeakVH> tmp = std::make_pair(v, TC);
if (TC.Verify() && TC.isForwardDecl())
ReplaceMap.push_back(Ty.getTypeOrNull(), TC);
Note that TC is of typ...
2012 Aug 09
1
[LLVMdev] Type inconsistency in LLVM 3.1: CGDebugInfo.cpp
..._Ty4=llvm::WeakVH
]
The reason it gives is std::pair<_Ty1,_Ty2>' to 'std::pair<_Ty3,_Ty4>, but as you point out there is indeed a conversion operator for DITYPE to WeakVH. Putting the explicit cast to give:
if (T.Verify() && T.isForwardDecl())
ReplaceMap.push_back(std::make_pair(Ty.getAsOpaquePtr(), (llvm::MDNode *)T));
and all it well again. This does indeed seem to be a bug in VS, unless there is some C++11 changes that stops implicit conversion under std::pair.
Regards,
Ben
- Benedict R. Gaster
Enjoy Berlin and submit a paper to Multiprog 20...
2012 Aug 09
0
[LLVMdev] Type inconsistency in LLVM 3.1: CGDebugInfo.cpp
On 09.08.2012, at 19:43, "Gaster, Benedict" <Benedict.Gaster at amd.com> wrote:
> I’m probably missing something simple here but in:
>
> CGDebugInfo.h:
>
> std::vector<std::pair<void *, llvm::WeakVH> >ReplaceMap;
>
> but then in
>
> CGDebugInfo.cpp:
>
> llvm::DIType TC = getTypeOrNull(Ty);
>
> void * v = Ty.getAsOpaquePtr();
> std::pair<void *, llvm::WeakVH> tmp = std::make_pair(v, TC);
>
> if (TC.Verify() && TC.isForwardDecl())
> Repl...
2012 Dec 01
1
llvm / clang does not build with new libc++
...-c
/usr/src/lib/clang/libclangcodegen/../../../contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp
-o CGDebugInfo.o
/usr/src/lib/clang/libclangcodegen/../../../contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp:1695:16:
error:
no matching member function for call to 'push_back'
ReplaceMap.push_back(std::make_pair(Ty.getAsOpaquePtr(), TC));
~~~~~~~~~~~^~~~~~~~~
/usr/include/c++/v1/vector:676:36: note: candidate function not viable: no
known conversion from
'pair<typename __make_pair_return<void *>::type, typename
__make_pair_return<DIType
&>::ty...
2006 Aug 25
4
[LLVMdev] Built LLVM 1.8 on VC8, invalid iterator issue/fix, some questions
...y whether it's the "right"
fix. The offending bit of generated code is this area from
X86GenDAGISel.inc, line 84+:
// ReplaceHandles - Replace all the handles with the real target
// specific nodes.
void ReplaceHandles() {
for (std::map<SDOperand, SDOperand>::iterator I = ReplaceMap.begin(),
E = ReplaceMap.end(); I != E; ++I) {
SDOperand From = I->first;
SDOperand To = I->second;
for (SDNode::use_iterator UI = From.Val->use_begin(), E =
From.Val->use_end(); UI != E; ++UI) {
SDNode *Use = *UI;
std::vector<SDOperand> Ops;...