search for: hasctrldep

Displaying 12 results from an estimated 12 matches for "hasctrldep".

2012 Jun 24
2
[LLVMdev] Complex load patterns and token factors
...with other "simple" loads in the PowerPC backend, > > canFoldAsLoad is set but mayLoad is not (is this wrong)? > > Hmm. So far we've got: mayLoad, mayStore, canFoldAsLoad and > hasUnmodeledSideEffects as candidates. > > Looking at Target.td, I see that I missed hasCtrlDep which seems to be > exactly what we're looking for, though it doesn't appear to actually > be used for *anything* at the moment. I'm not sure how I missed it > before. > > Unless anyone comes up with a better idea (or just a reason why this > idea is bad) I think I...
2012 Jun 24
0
[LLVMdev] Complex load patterns and token factors
...rk for me. As is > the case with other "simple" loads in the PowerPC backend, > canFoldAsLoad is set but mayLoad is not (is this wrong)? Hmm. So far we've got: mayLoad, mayStore, canFoldAsLoad and hasUnmodeledSideEffects as candidates. Looking at Target.td, I see that I missed hasCtrlDep which seems to be exactly what we're looking for, though it doesn't appear to actually be used for *anything* at the moment. I'm not sure how I missed it before. Unless anyone comes up with a better idea (or just a reason why this idea is bad) I think I'll send a patch making the p...
2012 Jun 24
0
[LLVMdev] Complex load patterns and token factors
> If it is not being used, maybe we should change it to be > doesNotNeedChain? That sounded like a really good idea until I started to actually go through removing all traces of hasCtrlDep from other Targets. I felt really bad about wiping those flags people had carefully put on their instructions, even if useless. > I am not sure what kind of load does not need to be chained (prefetch?), but I'd prefer to keep the system friendly if at > all possible. They'll be fewer...
2012 Jun 24
2
[LLVMdev] Complex load patterns and token factors
On Sat, 23 Jun 2012 21:25:48 -0500 Hal Finkel <hfinkel at anl.gov> wrote: > On Sat, 23 Jun 2012 21:18:37 -0500 > Hal Finkel <hfinkel at anl.gov> wrote: > > > On Sat, 23 Jun 2012 22:28:55 +0100 > > Tim Northover <t.p.northover at gmail.com> wrote: > > > > > On Sat, Jun 23, 2012 at 04:10:51PM -0500, Hal Finkel wrote: > > > >
2008 Nov 03
3
[LLVMdev] Multi-instruction patterns, tablegen and chains
...tting hasSideEffects = 1 on the RD Instruction seemed like a logical idea, but only resulting in tblgen telling me he already inferred that. After some discussion, it seems that the problem here is that the RD nodes don't get a chain input and output in the selected DAG. As a second try, I set hasCtrlDep = 1 on the RD instruction, assuming it would ensure that RD would always use chain operands (the comment on hasCtrlDep says "Does this instruction r/w ctrl-flow chains?"). However, this didn't help at all. In fact, it seems that the value of hasCtrlDep is totally ignored by tblgen. It...
2012 Apr 19
0
[LLVMdev] Target Dependent Hexagon Packetizer patch
...-def LDd_GP : LDInst<(outs DoubleRegs:$dst), >> +def LDd_GP : LDInst2<(outs DoubleRegs:$dst), >> (ins globaladdress:$global), >> "$dst=memd(#$global)", >> []>; >> >> let isPredicable = 1, mayLoad = 1, hasCtrlDep = 1, neverHasSideEffects = 1 in >> -def POST_LDrid : LDInstPI<(outs DoubleRegs:$dst, IntRegs:$dst2), >> +def POST_LDrid : LDInst2PI<(outs DoubleRegs:$dst, IntRegs:$dst2), >> (ins IntRegs:$src1, s4Imm:$offset), >> "$dst = memd($src1++#$o...
2017 Sep 15
2
Changes to 'ADJCALLSTACK*' and 'callseq_*' between LLVM v4.0 and v5.0
...uot;MYISD::CALL", SDT_MYCall, [SDNPHasChain, SDNPOptInGlue, SDNPOutGlue, SDNPVariadic]>; def MYret : SDNode<"MYISD::RET_FLAG", SDTNone, [SDNPHasChain, SDNPOptInGlue, SDNPVariadic]>; let hasCtrlDep = 1, hasSideEffects = 1 in { def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), [(MYCallseqStart timm:$amt1, timm:$amt2)]>; def ADJCALLSTACKUP : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2),...
2017 Sep 15
0
Changes to 'ADJCALLSTACK*' and 'callseq_*' between LLVM v4.0 and v5.0
...> [SDNPHasChain, SDNPOptInGlue, > SDNPOutGlue, > SDNPVariadic]>; > def MYret : SDNode<"MYISD::RET_FLAG", SDTNone, > [SDNPHasChain, SDNPOptInGlue, > SDNPVariadic]>; > > let hasCtrlDep = 1, hasSideEffects = 1 in { > def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), > [(MYCallseqStart timm:$amt1, > timm:$amt2)]>; > def ADJCALLSTACKUP : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), >...
2017 Sep 19
1
Changes to 'ADJCALLSTACK*' and 'callseq_*' between LLVM v4.0 and v5.0
...SDTypeProfile<0, -1, [SDTCisPtrTy<0>]>, [SDNPHasChain, SDNPOptInGlue, SDNPOutGlue, SDNPVariadic]>; def my_ret : SDNode<"MyISD::RET_FLAG", SDTNone, [SDNPHasChain, SDNPOptInGlue, SDNPVariadic]>; let hasCtrlDep = 1, hasSideEffects = 1, isCodeGenOnly = 1, Defs = [SP], Uses = [SP] in { def ADJCALLSTACKDOWN : Pseudo<(outs), (ins i32imm:$amt1, i32imm:$amt2), [(MyCallseqStart timm:$amt1, timm:$amt2)]>; def ADJCALLSTACKUP...
2008 Nov 04
0
[LLVMdev] Multi-instruction patterns, tablegen and chains
Hi Matthijs, On Nov 3, 2008, at 9:05 AM, Matthijs Kooijman wrote: > > Am I doing something wrong here, or is tblgen mistaken? I think you're doing something that is beyond what tblgen is currently prepared for. But it's interesting :-). Having rd and RD have explicit chain operands and results sounds like the right thing to do. This is needed to prevent them from being reordered
2008 Nov 04
2
[LLVMdev] Multi-instruction patterns, tablegen and chains
...p the chain to both RD and MOVE. I think it might even join the two output chains together, not exactly sure about that. Not sure if this is really what I want, but it would work. So, the main thing needed is some way of telling that an instruction is chained, other than giving it a pattern. Using hasCtrlDep for this makes sense, but I'm afraid I won't be having the time nor expertise to implement this... I'd be glad to test it though :-) Gr. Matthijs -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189...
2008 Apr 27
2
[LLVMdev] Questions for new Backend
...it isConvertibleToThreeAddress = 0; // see question 1 bit isCommutable = 0; // see rq1 below bit isTerminator = 0; // terminate what? A BB, A function, or the program bit isReMaterializable = 0; // ? bit isPredicable = 0; bit hasDelaySlot = 0; bit usesCustomDAGSchedInserter = 0; bit hasCtrlDep = 0; // ? bit isNotDuplicable = 0; // ? bit hasSideEffects = 0; bit mayHaveSideEffects = 0; // how is this different from has side effect? bit neverHasSideEffects = 1; Rq1: If I have a instruction 'add reg, imm' and don't have 'add imm, reg' I suppose the instruction i...