2012-02-27 17 views
7

में निर्देश एक पीएचआई निर्देश है या नहीं, मैं एलएलवीएम पास लिख रहा हूं या नहीं। एक निर्देश के लिए (llvm :: निर्देश कक्षा), मैं कैसे जांच सकता हूं कि कोई निर्देश एक पीएचआई निर्देश है या नहीं?एलएलवीएम आईआर

+1

क्या एक 'dyn_cast (x) == NULL' काम करेगा? – Mysticial

+0

रहस्यमय - हाँ, कुछ इसी तरह, है, isa (x), मेरे लिए काम किया! – MetallicPriest

उत्तर

11

मुझे समाधान मिला। आप इस तरह एक पीएचआई नोड की जांच कर सकते हैं, isa<PHINode>(inst)

+0

ठीक है, मुझे नहीं पता था कि 'आईएसए' अस्तित्व में है। यह मेरे लिए एक +1 है। – Mysticial

+5

@ माइस्टिकल, http://llvm.org/docs/ProgrammersManual.html जानकारी का एक अच्छा स्रोत है :) –

1
Instruction* I; 

    if(I->getOpcode()==Instruction::PHI){ 
    //code 
    } 
+2

आईएसए <> समाधान यह है कि इन जांचों को कैसे किया जाना चाहिए। अगर मेरे पास पर्याप्त प्रतिष्ठा थी तो मैं इसे कम कर दूंगा ताकि आपको इसे हटा देना चाहिए। – baibo

संबंधित मुद्दे