[LLVMdev] Getting Metadata

Михаил neonomaly.x at gmail.com
Fri May 4 15:57:00 PDT 2012


Hi.

I have strange case:


This is a code for getting metadata from callsite:
....
			CallSite CS(cast<Value>(I->first));

			SmallVector<std::pair<unsigned int, MDNode*> , 4> MD;
			CS.getInstruction()->getAllMetadata(MD);
			CS.getInstruction()->dump();
			for (SmallVector<std::pair<unsigned int, MDNode*> , 4>::iterator md = MD.begin(); md!=MD.end(); md++) {
				for (unsigned i=0; i<md->second->getNumOperands(); i++) {
					md->second->dump();
....

Metadata from IR: 
....
!2488 = metadata !{metadata !"ISPDIL_MTHD_~IndexReader"}
!2489 = metadata !{metadata !"ISPDIL_MTHD_indexExists"}
!2490 = metadata !{metadata !"ISPDIL_MTHD_isLocked"}
!2491 = metadata !{metadata !"ISPDIL_MTHD_unlock"}
!2492 = metadata !{metadata !"ISPDIL_MTHD_IndexWriter"}
!2493 = metadata !{metadata !"ISPDIL_MTHD_optimize"}
!2494 = metadata !{metadata !"ISPDIL_MTHD_~IndexWriter"}
!2495 = metadata !{metadata !"ISPDIL_MTHD_Init"}
!2496 = metadata !{%"class.lucene::document::Document" zeroinitializer}
....


And I have in console:
  invoke void %16(%"class.lucene::index::IndexWriter"* %storemerge)
          to label %if.end24 unwind label %lpad, !tbaa !2490
!{metadata !"ISPDIL_MTHD_~IndexWriter"}


Question:

Why I get data from MD !2494 instead of !2490?

P.S. Before this case I have correctly output for CallSite with metadata !2494 

Thanks!
	

Yours sincerely,
Kadysev Mikhail





More information about the llvm-dev mailing list