Template_token: <s> unsigned Align = TD -> getPreferredAlignmentLog ( GVar ) ; printVisibility ( name , GVar -> getVisibility ( ) ) ; SwitchToSection ( TAI -> SectionForGlobal ( GVar ) ) ; if ( C -> isNullValue ( ) && ! GVar -> hasSection ( ) ) { if ( ! GVar -> isThreadLocal ( ) && ( GVar -> hasLocalLinkage ( ) || GVar -> isWeakForLinker ( ) ) ) { if ( Size == <NUM_LIT> ) Size = <NUM_LIT> ; if ( GVar -> hasLocalLinkage ( ) ) { O << <STR_LIT> << name << <STR_LIT> << Size << ',' << ( <NUM_LIT> << Align ) ; O << '\n' ; } else { O << <STR_LIT> << name << <STR_LIT> << Size << ',' << ( <NUM_LIT> << Align ) ; O << '\n' ; } return ; } } switch ( GVar -> getLinkage ( ) ) { case GlobalValue :: LinkOnceAnyLinkage : case GlobalValue :: LinkOnceODRLinkage : case GlobalValue :: CommonLinkage : case GlobalValue :: WeakAnyLinkage : case GlobalValue :: WeakODRLinkage : O << <STR_LIT> << name << '\n' ; break ; case GlobalValue :: AppendingLinkage : case GlobalValue :: ExternalLinkage : O << TAI -> getGlobalDirective ( ) << name << '\n' ; case GlobalValue :: InternalLinkage : case GlobalValue :: PrivateLinkage : break ; case GlobalValue :: GhostLinkage : cerr << <STR_LIT> ; abort (

Func: printModuleLevelGV

Target_Clf: CPU

Compiler_Type: LLVM


Template_token: <s> FunctionPass * llvm :: create<ISA_LIT>CodePrinterPass ( raw_ostream & o , <ISA_LIT>TargetMachine & tm , CodeGenOpt :: Level OptLevel , bool verbose ) { return new <ISA_LIT>AsmPrinter ( o , tm , tm . getTargetAsmInfo

ground_truth: ( ) , OptLevel , verbose ) ;


Template_token: <s> I != E ; ++ I ) printModuleLevelGV ( I ) ; O << <STR_LIT> ; for ( std :: set < std :: string > :: iterator i = ExternalFunctionNames . begin ( ) , e = ExternalFunctionNames . end ( ) ; i != e ; ++ i ) { O << <STR_LIT> << * i << <STR_LIT> << * i << <STR_LIT> ; } O << <STR_LIT> ; O << <STR_LIT> ; for ( std :: set < std :: string > :: iterator i = ExternalObjectNames . begin ( ) , e = ExternalObjectNames . end ( ) ; i != e ; ++ i ) { O << <STR_LIT> << * i <<

ground_truth: <STR_LIT> << * i << <STR_LIT> ;

Func: doFinalization


Template_token: <s> bool <ISA_LIT>AsmPrinter :: doInitialization ( Module & M ) { bool Result = AsmPrinter :: doInitialization ( M ) ; O << <STR_LIT> << <STR_LIT> << <STR_LIT> << <STR_LIT> ; return Result

Func: doInitialization


Template_token: <s> virtual const char * getPassName ( )

ground_truth: const {

Func: getPassName


Template_token: <s> virtual const char * getPassName ( ) const { return <STR_LIT>


Template_token: <s> void printCallOperand ( const MachineInstr * MI , unsigned OpNo ) { printOp ( MI -> getOperand (

ground_truth: OpNo ) , true ) ;

Func: printCallOperand


Template_token: <s> void printGlobalOperand ( const MachineInstr * MI , unsigned OpNo ) { printOp ( MI -> getOperand ( OpNo

ground_truth: ) , false ) ;

Func: printGlobalOperand


Template_token: <s> unsigned Size = TD -> getTypeAllocSize ( C -> getType ( ) ) ; unsigned Align = TD -> getPreferredAlignmentLog ( GVar ) ; printVisibility ( name , GVar -> getVisibility ( ) ) ; SwitchToSection ( TAI -> SectionForGlobal ( GVar ) ) ; if ( C -> isNullValue ( ) && ! GVar -> hasSection ( ) ) { if ( ! GVar -> isThreadLocal ( ) && ( GVar -> hasLocalLinkage ( ) || GVar -> isWeakForLinker ( ) ) ) { if ( Size == <NUM_LIT> ) Size = <NUM_LIT> ; if ( GVar -> hasLocalLinkage ( ) ) { O << <STR_LIT> << name << <STR_LIT> << Size << ',' << ( <NUM_LIT> << Align ) ; O << '\n' ; } else { O << <STR_LIT> << name << <STR_LIT> << Size << ',' << ( <NUM_LIT> << Align ) ; O << '\n' ; } return ; } } switch ( GVar -> getLinkage ( ) ) { case GlobalValue :: LinkOnceAnyLinkage : case GlobalValue :: LinkOnceODRLinkage : case GlobalValue :: CommonLinkage : case GlobalValue :: WeakAnyLinkage : case GlobalValue :: WeakODRLinkage : O << <STR_LIT> << name << '\n' ; break ; case GlobalValue :: AppendingLinkage : case GlobalValue :: ExternalLinkage : O << TAI -> getGlobalDirective ( ) << name << '\n' ; case GlobalValue :: InternalLinkage : case GlobalValue :: PrivateLinkage : break ; case GlobalValue :: GhostLinkage : cerr << <STR_LIT> ; abort ( ) ; case GlobalValue :: DLLImportLinkage : cerr << <STR_LIT> ; abort ( ) ; case GlobalValue :: DLLExportLinkage : cerr << <STR_LIT> ; abort ( ) ; default : assert ( <NUM_LIT> && <STR_LIT> ) ; } EmitAlignment ( Align , GVar ) ; if ( TAI -> hasDotTypeDotSizeDirective ( ) ) { O << <STR_LIT> << name << <STR_LIT> ; O << <STR_LIT> << name << ',' << Size << '\n' ; } O << name <<


Template_token: <s> const MachineOperand & MO = MI -> getOperand ( OpNo ) ; if ( MO . getType ( ) == MachineOperand :: MO_Register ) { assert ( TargetRegisterInfo :: isPhysicalRegister ( MO . getReg ( ) ) && <STR_LIT> ) ; O << TM . getRegisterInfo ( ) -> get ( MO . getReg ( ) ) . AsmName ; } else { printOp ( MO )

Func: printOperand


Template_token: <s> int val = ( unsigned int ) MI -> getOperand ( OpNo

ground_truth: ) . getImm ( ) ;


Template_token: <s> void printS22ImmOperand ( const MachineInstr * MI , unsigned OpNo ) { int val = ( unsigned int ) MI -> getOperand ( OpNo ) . getImm ( ) ; if ( val >= <NUM_LIT> ) val = val -


Template_token: <s> void printS22ImmOperand ( const MachineInstr * MI , unsigned OpNo ) { int val = ( unsigned int ) MI -> getOperand ( OpNo ) . getImm ( ) ; if ( val >= <NUM_LIT> )

ground_truth: val = val - <NUM_LIT> ;


Template_token: <s> int val = ( unsigned int ) MI -> getOperand ( OpNo ) . getImm ( ) ; if ( val >= <NUM_LIT> ) val = val - <NUM_LIT> ; O <<

ground_truth: val ;


Template_token: <s> O << ( uint64_t ) MI -> getOperand ( OpNo ) . getImm


Template_token: <s> void printU64ImmOperand ( const MachineInstr * MI

ground_truth: , unsigned OpNo ) {


Template_token: <s> if ( ! I -> pred_empty ( ) ) { printBasicBlockLabel ( I , true , true ) ; O << '\n' ; } for ( MachineBasicBlock :: const_iterator II = I -> begin ( ) , E = I -> end ( ) ; II != E ; ++ II ) { printMachineInstruction ( II

Func: runOnMachineFunction


Template_token: <s> FunctionPass * llvm :: create<ISA_LIT>BundlingPass ( <ISA_LIT>TargetMachine & tm ) { return new <ISA_LIT>BundlingPass ( tm


Template_token: <s> if ( MO . isReg ( ) ) { if ( MO . isUse ( ) ) { CurrentReads . insert ( MO . getReg ( ) ) ; } if ( MO . isDef ( ) ) { CurrentWrites . insert ( MO . getReg ( ) ) ; OrigWrites . insert ( MO . getReg ( ) ) ; } } } set_intersect ( CurrentReads , PendingRegWrites ) ; set_intersect ( CurrentWrites , PendingRegWrites ) ; if ( ! ( CurrentReads . empty ( ) && CurrentWrites . empty ( ) ) ) { CurrentInsn = BuildMI ( MBB , CurrentInsn , CurrentInsn -> getDebugLoc ( ) , TM . getInstrInfo ( ) -> get ( <STR_LIT> ) , <NUM_LIT> ) ; PendingRegWrites = OrigWrites ; Changed = true ; StopBitsAdded ++ ; } else { set_union ( PendingRegWrites , OrigWrites ) ; } } return Changed

Func: runOnMachineBasicBlock


Template_token: <s> std :: set < unsigned > CurrentReads , CurrentWrites , OrigWrites ; for ( unsigned i = <NUM_LIT> ; i < CurrentInsn -> getNumOperands ( ) ; i ++ ) { MachineOperand & MO = CurrentInsn -> getOperand ( i ) ; if ( MO . isReg ( ) ) { if ( MO . isUse ( ) ) { CurrentReads . insert ( MO . getReg ( ) ) ; } if ( MO . isDef ( ) ) { CurrentWrites . insert ( MO . getReg ( ) ) ; OrigWrites . insert ( MO . getReg ( ) ) ; } } } set_intersect ( CurrentReads , PendingRegWrites ) ; set_intersect ( CurrentWrites , PendingRegWrites ) ; if ( ! ( CurrentReads . empty ( ) && CurrentWrites . empty ( ) ) ) { CurrentInsn = BuildMI ( MBB , CurrentInsn , CurrentInsn -> getDebugLoc ( ) , TM . getInstrInfo ( ) -> get ( <STR_LIT> ) , <NUM_LIT> ) ; PendingRegWrites = OrigWrites ; Changed = true ;

ground_truth: StopBitsAdded ++ ;


Template_token: <s> bool runOnMachineFunction ( MachineFunction & F ) { bool Changed = false ; for ( MachineFunction :: iterator FI = F . begin ( ) , FE = F . end ( ) ; FI != FE ; ++ FI ) Changed |= runOnMachineBasicBlock ( *

ground_truth: FI ) ;


Template_token: <s> inline const MachineInstrBuilder & addFrameReference ( const MachineInstrBuilder & MIB , int FI , int Offset = <NUM_LIT> , bool mem = true ) { if ( mem ) return MIB . addImm ( Offset ) . addFrameIndex ( FI ) ; else return MIB . addFrameIndex ( FI )

ground_truth: . addImm ( Offset ) ;

Func: addFrameReference


Template_token: <s> BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) ) . addFrameIndex ( FrameIdx ) . addReg ( SrcReg , false , false , isKill ) ; } else if ( RC == <STR_LIT> ) { BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) ; BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addImm ( <NUM_LIT> ) . addReg ( SrcReg , false , false , isKill ) ; BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) ) . addFrameIndex

ground_truth: ( FrameIdx ) . addReg ( <STR_LIT> ) ;

Func: storeRegToStackSlot


Template_token: <s> BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) ) . addFrameIndex ( FrameIdx ) . addReg ( SrcReg , false , false , isKill ) ; } else if ( RC == <STR_LIT> ) { BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) ) . addFrameIndex ( FrameIdx ) . addReg ( SrcReg , false , false , isKill ) ; } else if ( RC == <STR_LIT> ) { BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , <STR_LIT> ) .

ground_truth: addReg ( <STR_LIT> ) ;


Template_token: <s> if ( DestRC == <STR_LIT> ) BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , DestReg ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) . addReg ( SrcReg ) ; else BuildMI ( MBB , MI , DL , get ( <STR_LIT>

ground_truth: ) , DestReg ) . addReg ( SrcReg ) ;

Func: copyRegToReg


Template_token: <s> bool <ISA_LIT>InstrInfo :: copyRegToReg ( MachineBasicBlock & MBB , MachineBasicBlock :: iterator MI , unsigned DestReg , unsigned SrcReg , const TargetRegisterClass * DestRC , const TargetRegisterClass * SrcRC ) const { if ( DestRC != SrcRC ) { return false ; } DebugLoc DL = DebugLoc :: getUnknownLoc ( ) ; if ( MI != MBB . end ( ) ) DL = MI

ground_truth: -> getDebugLoc ( ) ;


Template_token: <s> DebugLoc dl = DebugLoc :: getUnknownLoc ( ) ; assert ( Cond . empty ( ) && ! FBB && TBB && <STR_LIT> ) ; BuildMI ( & MBB , dl , get ( <STR_LIT> )

ground_truth: ) . addMBB ( TBB ) ;

Func: InsertBranch


Template_token: <s> SrcSR = DstSR = <NUM_LIT> ; unsigned oc = MI . getOpcode ( ) ; if ( oc == <STR_LIT> || oc == <STR_LIT> ) { assert ( MI . getNumOperands ( ) >= <NUM_LIT> && <STR_LIT> ) ; if ( MI . getOperand ( <NUM_LIT> ) . isReg ( ) && MI . getOperand ( <NUM_LIT> ) . isReg ( ) ) { sourceReg = MI . getOperand ( <NUM_LIT> ) . getReg ( ) ; destReg = MI . getOperand ( <NUM_LIT> ) . getReg ( ) ; return true ; } } return false

Func: isMoveInstr


Template_token: <s> unsigned Opc = <NUM_LIT> ; if ( RC == <STR_LIT> ) { Opc = <STR_LIT> ; } else if ( RC == <STR_LIT> ) { Opc = <STR_LIT> ; } else if ( RC == <STR_LIT> ) { Opc = <STR_LIT> ; } else { assert ( <NUM_LIT> && <STR_LIT> ) ; } DebugLoc DL = DebugLoc :: getUnknownLoc ( ) ; MachineInstrBuilder MIB = BuildMI ( MF , DL , get ( Opc ) , DestReg ) ; for ( unsigned i = <NUM_LIT> , e = Addr . size ( ) ; i != e

ground_truth: ; ++ i ) MIB . addOperand ( Addr [ i ] ) ;

Func: loadRegFromAddr


Template_token: <s> unsigned Opc = <NUM_LIT> ; if ( RC == <STR_LIT> ) { Opc = <STR_LIT> ; } else if ( RC == <STR_LIT> ) { Opc = <STR_LIT> ; } else if ( RC == <STR_LIT> ) { Opc = <STR_LIT> ; } else { assert ( <NUM_LIT> && <STR_LIT> ) ; } DebugLoc DL = DebugLoc :: getUnknownLoc


Template_token: <s> BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , DestReg ) . addFrameIndex ( FrameIdx ) ; } else if ( RC == <STR_LIT> ) { BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , DestReg ) . addFrameIndex ( FrameIdx ) ; } else if ( RC == <STR_LIT> ) { BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , <STR_LIT> ) . addFrameIndex ( FrameIdx ) ; BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) ,

ground_truth: DestReg ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ;

Func: loadRegFromStackSlot


Template_token: <s> BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , DestReg ) . addFrameIndex ( FrameIdx ) ; } else if ( RC == <STR_LIT> ) { BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , <STR_LIT> ) . addFrameIndex ( FrameIdx ) ; BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , DestReg ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ; }

ground_truth: else {


Template_token: <s> } DebugLoc DL = DebugLoc :: getUnknownLoc ( ) ; MachineInstrBuilder MIB = BuildMI ( MF , DL , get ( Opc ) ) ; for ( unsigned i = <NUM_LIT> , e = Addr . size ( ) ; i != e ; ++ i ) MIB . addOperand ( Addr [ i ] ) ; MIB . addReg ( SrcReg , getKillRegState ( isKill ) ) ; NewMIs . push_back ( MIB

Func: storeRegToAddr


Template_token: <s> Opc = <STR_LIT> ; } else { assert ( <NUM_LIT> && <STR_LIT> ) ; } DebugLoc DL = DebugLoc :: getUnknownLoc ( ) ; MachineInstrBuilder MIB = BuildMI ( MF , DL , get ( Opc ) ) ; for ( unsigned i = <NUM_LIT> , e = Addr . size ( ) ; i != e ; ++ i ) MIB . addOperand ( Addr [ i ] ) ; MIB . addReg ( SrcReg , getKillRegState (

ground_truth: isKill ) ) ;


Template_token: <s> BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) ) . addFrameIndex ( FrameIdx ) . addReg ( SrcReg , getKillRegState ( isKill ) ) ; } else if ( RC == <STR_LIT> ) { BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) ; BuildMI ( MBB , MI , DL , get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT>

ground_truth: ) . addImm ( <NUM_LIT> ) . addReg ( SrcReg , getKillRegState ( isKill ) ) ;


Template_token: <s> return new <ISA_LIT>DAGToDAGISel ( TM


Template_token: <s> return CurDAG -> getTargetConstant ( Imm

ground_truth: , <STR_LIT> ) ;


Template_token: <s> DEBUG ( BB -> dump ( ) ) ; SelectRoot ( *

ground_truth: CurDAG ) ;

Func: InstructionSelect


Template_token: <s> SelectRoot ( * CurDAG ) ; CurDAG -> RemoveDeadNodes ( )


Template_token: <s> virtual bool runOnFunction ( Function & Fn ) { GlobalBaseReg = <NUM_LIT>

Func: runOnFunction


Template_token: <s> return SelectionDAGISel :: runOnFunction


Template_token: <s> SDValue OpsY3 [ ] = { TmpY2 , TmpE2 , TmpY2 , TmpPR } ; TmpY3 = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , OpsY3 , <NUM_LIT> ) , <NUM_LIT> ) ; Chain = TmpY3 . getValue ( <NUM_LIT> ) ; SDValue OpsQ0 [ ] = { Tmp1 , TmpY3 , F0 , TmpPR } ; TmpQ0 = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , OpsQ0 , <NUM_LIT> ) , <NUM_LIT> ) ; Chain = TmpQ0 . getValue ( <NUM_LIT> ) ; SDValue OpsR0 [ ] = { Tmp2 , TmpQ0 , Tmp1 , TmpPR } ; TmpR0 = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , OpsR0 , <NUM_LIT> ) , <NUM_LIT> ) ; Chain = TmpR0 . getValue ( <NUM_LIT> ) ; SDValue Ops [ ] = { TmpF5 , TmpY3 , TmpR0 , TmpQ0 , TmpPR } ; Result = CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , Ops , <NUM_LIT> ) ; Chain = SDValue ( Result , <NUM_LIT> ) ; return Result ; } else { SDValue TmpQ2 , TmpR2 , TmpQ3 , TmpQ ; SDValue OpsQ2 [ ] = { TmpF3 , TmpY2 , F0 , TmpPR } ; TmpQ2 = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , OpsQ2 , <NUM_LIT> ) , <NUM_LIT> ) ; Chain = TmpQ2 . getValue ( <NUM_LIT> ) ; SDValue OpsR2 [ ] = { TmpF4 , TmpQ2 , TmpF3 , TmpPR } ; TmpR2 = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , OpsR2 , <NUM_LIT> ) , <NUM_LIT> ) ; Chain = TmpR2 . getValue ( <NUM_LIT> ) ; SDValue OpsQ3 [ ] = { TmpF5 , TmpR2 , TmpY2 , TmpQ2 , TmpPR } ; TmpQ3 = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , OpsQ3 , <NUM_LIT> ) , <NUM_LIT> ) ; Chain = TmpQ3 . getValue ( <NUM_LIT> ) ; if ( isSigned ) TmpQ = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , TmpQ3 ) , <NUM_LIT> ) ; else TmpQ = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , TmpQ3 ) , <NUM_LIT> ) ; Chain = TmpQ . getValue ( <NUM_LIT> ) ; if ( isModulus ) { SDValue FPminusB = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , minusB ) , <NUM_LIT> ) ; Chain = FPminusB . getValue ( <NUM_LIT> ) ; SDValue Remainder = SDValue ( CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , TmpQ , FPminusB , TmpF1 ) , <NUM_LIT> ) ; Chain = Remainder . getValue ( <NUM_LIT> ) ; Result = CurDAG -> getTargetNode ( <STR_LIT> , dl , <STR_LIT> , Remainder ) ; Chain = SDValue ( Result , <NUM_LIT> ) ; } else

Func: SelectDIV


Template_token: <s> const char * <ISA_LIT>TargetLowering :: getTargetNodeName ( unsigned Opcode ) const { switch ( Opcode ) { default : return <NUM_LIT> ; case <STR_LIT> : return <STR_LIT> ; case <STR_LIT> : return <STR_LIT>

Func: getTargetNodeName


Template_token: <s> setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Custom ) ; setShiftAmountType ( <STR_LIT> ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Promote ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Promote ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> , <STR_LIT> , Expand ) ; setOperationAction ( <STR_LIT> ,

ground_truth: <STR_LIT> , Expand ) ;


Template_token: <s> <ISA_LIT>FunctionInfo ( MachineFunction & MF ) { outRegsUsed =

ground_truth: <NUM_LIT> ; }


Template_token: <s> <ISA_LIT>FunctionInfo ( MachineFunction & MF ) { outRegsUsed = <NUM_LIT>


Template_token: <s> if ( Amount != <NUM_LIT> ) { unsigned Align = MF . getTarget ( ) . getFrameInfo ( ) -> getStackAlignment ( ) ; Amount = ( Amount + Align - <NUM_LIT> ) / Align * Align ; if ( Old -> getOpcode ( ) == <STR_LIT> ) { BuildMI ( MBB , I , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addImm ( - Amount ) ; }

Func: eliminateCallFramePseudoInstr


Template_token: <s> unsigned i = <NUM_LIT> ; MachineInstr & MI = * II ; MachineBasicBlock & MBB = * MI . getParent ( ) ; MachineFunction & MF = * MBB . getParent ( ) ; DebugLoc dl = MI . getDebugLoc ( ) ; bool FP = hasFP ( MF ) ; while ( ! MI . getOperand ( i ) . isFI ( ) ) { ++ i ; assert ( i < MI . getNumOperands ( ) && <STR_LIT> ) ; } int FrameIndex = MI . getOperand ( i ) . getIndex ( ) ; unsigned BaseRegister = FP ? <STR_LIT> : <STR_LIT> ; MI . getOperand ( i ) . ChangeToRegister ( BaseRegister , false ) ; int Offset = MF . getFrameInfo ( ) -> getObjectOffset ( FrameIndex ) ; Offset += MF . getFrameInfo ( ) -> getStackSize ( ) ; if ( Offset <= <NUM_LIT> && Offset >= - <NUM_LIT> ) { MI . getOperand ( i ) . ChangeToRegister ( <STR_LIT> , false ) ; BuildMI ( MBB , II , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( BaseRegister ) . addImm ( Offset ) ; } else { MI . getOperand ( i ) . ChangeToRegister ( <STR_LIT> , false ) ; BuildMI ( MBB , II , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( Offset ) ; BuildMI ( MBB , II , dl , TII . get ( <STR_LIT> )

ground_truth: , <STR_LIT> ) . addReg ( BaseRegister ) . addReg ( <STR_LIT> ) ;

Func: eliminateFrameIndex


Template_token: <s> MachineInstr & MI = * II ; MachineBasicBlock & MBB = * MI . getParent ( ) ; MachineFunction & MF = * MBB . getParent ( ) ; DebugLoc dl = MI . getDebugLoc ( ) ; bool FP = hasFP ( MF ) ; while ( ! MI . getOperand ( i ) . isFI ( ) ) { ++ i ; assert ( i < MI . getNumOperands ( ) && <STR_LIT> ) ; } int FrameIndex = MI . getOperand ( i ) . getIndex ( ) ; unsigned BaseRegister = FP ? <STR_LIT> : <STR_LIT> ; MI . getOperand ( i ) . ChangeToRegister ( BaseRegister , false ) ; int Offset = MF . getFrameInfo ( ) -> getObjectOffset ( FrameIndex ) ; Offset += MF . getFrameInfo ( ) ->

ground_truth: getStackSize ( ) ;


Template_token: <s> unsigned NumBytes = MFI -> getStackSize ( ) ; if ( FP ) { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) ; BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) ; } if ( NumBytes != <NUM_LIT> ) { if ( NumBytes <= <NUM_LIT> ) { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addReg ( <STR_LIT> ) . addImm ( NumBytes ) ; } else { BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT> ) . addImm ( NumBytes ) ; BuildMI ( MBB , MBBI , dl , TII . get ( <STR_LIT> ) , <STR_LIT>

ground_truth: ) . addReg ( <STR_LIT> ) . addReg ( <STR_LIT> ) ;

Func: emitEpilogue


Template_token: <s> const TargetRegisterClass * const * <ISA_LIT>RegisterInfo :: getCalleeSavedRegClasses ( const MachineFunction * MF ) const { static const TargetRegisterClass * const CalleeSavedRegClasses [

Func: getCalleeSavedRegClasses


Template_token: <s> static const unsigned CalleeSavedRegs [ ] = { <STR_LIT> , <NUM_LIT>

Func: getCalleeSavedRegs


Template_token: <s> int <ISA_LIT>RegisterInfo :: getDwarfRegNum ( unsigned RegNum , bool

ground_truth: isEH ) const {

Func: getDwarfRegNum


Template_token: <s> assert ( <NUM_LIT> &&

ground_truth: <STR_LIT> ) ;

Func: getEHExceptionRegister


Template_token: <s> unsigned <ISA_LIT>RegisterInfo :: getFrameRegister ( MachineFunction & MF ) const { return hasFP ( MF ) ?

Func: getFrameRegister


Template_token: <s> assert ( <NUM_LIT> && <STR_LIT>

Func: getRARegister


Template_token: <s> unsigned <ISA_LIT>RegisterInfo :: getRARegister ( ) const { assert ( <NUM_LIT>


Template_token: <s> Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; return Reserved

Func: getReservedRegs


Template_token: <s> BitVector <ISA_LIT>RegisterInfo :: getReservedRegs ( const MachineFunction & MF ) const { BitVector Reserved ( getNumRegs ( ) ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT> ) ; Reserved . set ( <STR_LIT>


Template_token: <s> bool <ISA_LIT>RegisterInfo :: hasFP ( const MachineFunction & MF ) const { const MachineFrameInfo * MFI = MF . getFrameInfo ( ) ; return NoFramePointerElim || MFI -> hasVarSizedObjects (

Func: hasFP


Template_token: <s> return ( TM . getRelocationModel ( ) != Reloc :: Static ? Reloc :: LocalOrGlobal :

ground_truth: Reloc :: Global ) ;

Func: RelocBehaviour


Template_token: <s> PM . add ( create<ISA_LIT>CodePrinterPass ( Out , * this

ground_truth: , Fast ) ) ;

Func: addAssemblyEmitter


Template_token: <s> bool <ISA_LIT>TargetMachine :: addPreEmitPass ( PassManagerBase & PM , bool Fast

Func: addPreEmitPass


Template_token: <s> PM . add ( create<ISA_LIT>CodePrinterPass ( Out , * this ,

ground_truth: OptLevel , Verbose ) ) ;


Template_token: <s> PM . add ( create<ISA_LIT>CodePrinterPass ( Out , * this , OptLevel , Verbose ) ) ; return false


Template_token: <s> bool <ISA_LIT>TargetMachine :: addInstSelector ( PassManagerBase & PM , CodeGenOpt

ground_truth: :: Level OptLevel ) {

Func: addInstSelector


Template_token: <s> PM . add ( create<ISA_LIT>BundlingPass ( * this ) ) ; return true


Template_token: <s> return new <ISA_LIT>TargetAsmInfo (

ground_truth: * this ) ;

Func: createTargetAsmInfo


Template_token: <s> return new <ISA_LIT>TargetAsmInfo ( *

ground_truth: this ) ;


Template_token: <s> virtual const TargetFrameInfo * getFrameInfo ( ) const { return &

ground_truth: FrameInfo ;

Func: getFrameInfo


Template_token: <s> virtual const <ISA_LIT>InstrInfo *

ground_truth: getInstrInfo ( ) const {

Func: getInstrInfo


Template_token: <s> if ( ( TT [ <NUM_LIT> ] == 'i' || TT [ <NUM_LIT> ] == 'I' ) && ( TT [ <NUM_LIT> ] == 'a' || TT [ <NUM_LIT> ] == 'A' ) ) { for ( unsigned int i = <NUM_LIT> ; i < ( TT . size ( ) - <NUM_LIT> ) ; i ++ ) if ( TT [ i ] == '6' && TT [ i + <NUM_LIT> ] == '4' ) seen<ISA_LIT> = true ; } if ( seen<ISA_LIT> ) return <NUM_LIT> ; } if ( ! TT . empty ( ) ) return <NUM_LIT> ; return <NUM_LIT>

Func: getModuleMatchQuality


Template_token: <s> virtual const <ISA_LIT>RegisterInfo * getRegisterInfo (

ground_truth: ) const {

Func: getRegisterInfo


Template_token: <s> return & InstrInfo . getRegisterInfo (


Template_token: <s> virtual const <ISA_LIT>Subtarget * getSubtargetImpl ( )

ground_truth: const {

Func: getSubtargetImpl


Template_token: <s> virtual const TargetData * getTargetData ( ) const

Func: getTargetData


Template_token: <s> return const_cast < <ISA_LIT>TargetLowering * > ( & TLInfo

Func: getTargetLowering