Mercurial > hg > CbC > CbC_llvm
view test/TableGen/DuplicateFieldValues.td @ 129:9ec641e857f8
Fix compile error to update llvm 5.0
author | mir3636 |
---|---|
date | Tue, 12 Dec 2017 19:42:58 +0900 |
parents | 803732b1fca8 |
children |
line wrap: on
line source
// RUN: llvm-tblgen -gen-instr-info -I %p/../../include %s | FileCheck %s // CHECK: ABCForm_A // CHECK-NOT: ABCForm_A // // include Target.td for InstrMapping class and define minimally required objects // include "llvm/Target/Target.td" class DFVReg<string n> : Register<n> { let Namespace = "DFV"; } def R0 : DFVReg<"r0">; def DFVRegClass : RegisterClass<"DFV",[i32],0,(add R0)>; def DFVInstrInfo : InstrInfo; def DFVTest : Target { let InstructionSet = DFVInstrInfo; } // // Define a number of a InstrMappings with repeated ValueCol fields // class ABCRel; def getAFormFromBForm : InstrMapping { let FilterClass = "ABCRel"; let RowFields = ["BaseName"]; let ColFields = ["ABCForm"]; let KeyCol = ["B"]; let ValueCols = [["A"]]; } def getAFormFromCForm : InstrMapping { let FilterClass = "ABCRel"; let RowFields = ["BaseName"]; let ColFields = ["ABCForm"]; let KeyCol = ["C"]; let ValueCols = [["A"]]; } def getAFormFromDForm : InstrMapping { let FilterClass = "ABCRel"; let RowFields = ["BaseName"]; let ColFields = ["ABCForm"]; let KeyCol = ["D"]; let ValueCols = [["A"]]; } def getAFormFromEForm : InstrMapping { let FilterClass = "ABCRel"; let RowFields = ["BaseName"]; let ColFields = ["ABCForm"]; let KeyCol = ["E"]; let ValueCols = [["A"]]; } class I : Instruction { let Namespace = "DFV"; let OutOperandList = (outs); let InOperandList = (ins); string BaseName = ""; string ABCForm = ""; } class isAForm { string ABCForm = "A"; } class isBForm { string ABCForm = "B"; } class isCForm { string ABCForm = "C"; } class isDForm { string ABCForm = "D"; } class isEForm { string ABCForm = "E"; } let BaseName = "0" in { def A0 : I, ABCRel, isAForm; def B0 : I, ABCRel, isBForm; def C0 : I, ABCRel, isCForm; def D0 : I, ABCRel, isDForm; def E0 : I, ABCRel, isEForm; }