search for: geninstrinfo

Displaying 13 results from an estimated 13 matches for "geninstrinfo".

2015 Nov 23
3
Qs about TwoOperandAliasConstraint and TIED_TO
in llvm-3.6.2.src 1. when I put this around one of my instruction definitions in my target "InstrInfo.td" file, let TwoOperandAliasConstraint = "$dst = $rs1" in { } I do not see any TIED_TO in the generated GenInstrInfo.inc file for the OperandInfo used by the instruction, the question is what am I doing wrong ? 2. I've noticed that TwoOperandAliasConstraint does not appear anywhere in source/lib/Target/X86/* yet TIED_TO occurs in 162 of the OperandInfo's in build/lib/Target/X86/X86GenInstrIn...
2012 Aug 21
8
[LLVMdev] Let's get rid of neverHasSideEffects
...s not the way it worked out. It is often more convenient to use def : Pat<>, and sometimes custom instruction selection is required. As a result, many instructions are defined without a pattern, and we often forget to set neverHasSideEffects = 1. $ grep -c UnmodeledSideEffects lib/Target/*/*GenInstrInfo.inc lib/Target/ARM/ARMGenInstrInfo.inc:727 lib/Target/X86/X86GenInstrInfo.inc:920 I don't think more than half of those UnmodeledSideEffects flags should be there. I want to stop inferring instruction properties from patterns in TableGen. It has become very hard to read instruction definitio...
2013 Dec 31
2
[LLVMdev] Random question about the x86 backend (and backends in general I suppose)
...mayLoad, do these instructions have patterns? Tablegen can infer > mayLoad/mayStores/hasSideEffects from patterns so it doesn't always > need to be listed explicitly in the td files. Having recently audited these flags in the PowerPC backend, I highly recommend looking at these from the *GenInstrInfo.inc file directly. I find this much easier. In theory, we'd like to move away from the pattern-based flag inference. Once a target is free of dependence on the inference rules, it can set bit guessInstructionProperties = 0; to turn them off completely (see class InstrInfo in Target.td). -Hal...
2014 Jan 07
3
[LLVMdev] Random question about the x86 backend (and backends in general I suppose)
...e patterns? Tablegen can infer >>> mayLoad/mayStores/hasSideEffects from patterns so it doesn't always >>> need to be listed explicitly in the td files. >> >> Having recently audited these flags in the PowerPC backend, I highly recommend looking at these from the *GenInstrInfo.inc file directly. I find this much easier. In theory, we'd like to move away from the pattern-based flag inference. Once a target is free of dependence on the inference rules, it can set bit guessInstructionProperties = 0; to turn them off completely (see class InstrInfo in Target.td). > &...
2014 Jan 07
3
[LLVMdev] Random question about the x86 backend (and backends in general I suppose)
...gt;>>>> mayLoad/mayStores/hasSideEffects from patterns so it doesn't always >>>>> need to be listed explicitly in the td files. >>>> >>>> Having recently audited these flags in the PowerPC backend, I highly recommend looking at these from the *GenInstrInfo.inc file directly. I find this much easier. In theory, we'd like to move away from the pattern-based flag inference. Once a target is free of dependence on the inference rules, it can set bit guessInstructionProperties = 0; to turn them off completely (see class InstrInfo in Target.td). >&gt...
2012 Aug 21
0
[LLVMdev] Let's get rid of neverHasSideEffects
...ked out. It is often more convenient to use def : Pat<>, and sometimes custom instruction selection is required. > > As a result, many instructions are defined without a pattern, and we often forget to set neverHasSideEffects = 1. > > $ grep -c UnmodeledSideEffects lib/Target/*/*GenInstrInfo.inc > lib/Target/ARM/ARMGenInstrInfo.inc:727 > lib/Target/X86/X86GenInstrInfo.inc:920 > > I don't think more than half of those UnmodeledSideEffects flags should be there. > > > I want to stop inferring instruction properties from patterns in TableGen. It has become very...
2008 Jan 03
2
[LLVMdev] Building LLVM on Windows
.../%GenInstrNames.inc.tmp): \ $(ObjDir)/%GenInstrNames.inc.tmp : %.td $(ObjDir)/.dir $(Echo) "Building $(<F) instruction names with tblgen" - $(Verb) $(TableGen) -gen-instr-enums -o $@ $< + $(Verb) $(TableGen) -gen-instr-enums -o $(call SYSPATH, $@) $< $(TARGET:%=$(ObjDir)/%GenInstrInfo.inc.tmp): \ $(ObjDir)/%GenInstrInfo.inc.tmp : %.td $(ObjDir)/.dir $(Echo) "Building $(<F) instruction information with tblgen" - $(Verb) $(TableGen) -gen-instr-desc -o $@ $< + $(Verb) $(TableGen) -gen-instr-desc -o $(call SYSPATH, $@) $< $(TARGET:%=$(ObjDir)/%GenAsmWriter...
2012 Apr 11
0
[LLVMdev] float16/half float support situation? (and a problem)
...x2f566b0: i32 = fp32_to_fp16 0x2f66bb0 [ID=876] So I created an instruction pattern which matches this fp32_to_fp16 def CFHrf : InstTCE<(outs R32IRegs:$op2), (ins R32FPRegs:$op1), "", [(set R32IRegs:$op2, (fp32_to_fp16 R32FPRegs:$op1))]>; But then I got error /tmp/tcecc-dKBdca/GenInstrInfo.td:30:91: error: Variable not defined: 'fp32_to_fp16'
2012 Aug 21
0
[LLVMdev] Let's get rid of neverHasSideEffects
...ked out. It is often more convenient to use def : Pat<>, and sometimes custom instruction selection is required. > > As a result, many instructions are defined without a pattern, and we often forget to set neverHasSideEffects = 1. > > $ grep -c UnmodeledSideEffects lib/Target/*/*GenInstrInfo.inc > lib/Target/ARM/ARMGenInstrInfo.inc:727 > lib/Target/X86/X86GenInstrInfo.inc:920 > > I don't think more than half of those UnmodeledSideEffects flags should be there. > > > I want to stop inferring instruction properties from patterns in TableGen. It has become very...
2012 Aug 21
0
[LLVMdev] Let's get rid of neverHasSideEffects
...It is often more convenient to use def : > Pat<>, and sometimes custom instruction selection is required. > > As a result, many instructions are defined without a pattern, and we often > forget to set neverHasSideEffects = 1. > > $ grep -c UnmodeledSideEffects lib/Target/*/*GenInstrInfo.inc > lib/Target/ARM/ARMGenInstrInfo.inc:727 > lib/Target/X86/X86GenInstrInfo.inc:920 > > I don't think more than half of those UnmodeledSideEffects flags should be > there. > > > I want to stop inferring instruction properties from patterns in TableGen. > It has beco...
2013 Dec 30
2
[LLVMdev] Random question about the x86 backend (and backends in general I suppose)
Having worked with a few people to better understand the tablegen descriptions of instructions and patterns in LLVM's backend and looking at x86's pretty heavily, I have some questions: 1) Are there instruction definition flags that are really just "when needed"? I'm thinking of things like "mayLoad" which is really alarmingly missing from a bunch of instructions
2018 May 10
2
[RFC] MC support for variant scheduling classes.
...heckANDW, CheckANDX, CheckCOPY]>>; ``` TIIPredicate definitions are used to model calls to the target-specific InstrInfo. A TIIPredicate definition is treated specially by the InstrInfoEmitter tablegen backend, which will use it to automatically generate a definition in the target specific `GenInstrInfo` class. Basically, we can tell tablegen to generate that definition for us. Now that the description of IsGPRZero is available in the form of a MCPredicate, we can modify the original SchedWriteVariant WriteImmZ as follows: ``` def WriteZPred : MCSchedPredicate<IsGPRZero>; def WriteImmZ :...
2005 May 19
3
[LLVMdev] [Cygwin] llvm 'make install' build errors
Reid, I think it is the first time it is run that the errors occcur !? Not sure but that would seem logical. Aaron