search for: ismoveimm

Displaying 8 results from an estimated 8 matches for "ismoveimm".

2015 Dec 02
4
lower 64 bits constant
...t such as 'long' and 'double'. So I define them like this: def CONSTI64 : InstFOO<(outs GRWideRegs:$dst), (ins i64imm:$src), "const-long $dst, $src", [(set (i64 GRWideRegs:$dst), imm:$src)]>{ let isMoveImm = 1; } def CONSTF64 : InstFOO<(outs GRWideRegs:$dst), (ins f64imm:$src), "const-double $dst, $src", [(set (f64 GRWideRegs:$dst), fpimm:$src)]>{ let isMoveImm = 1; } GRWideRegs can be f64 and i64. However, the &...
2020 Jun 16
2
[ARM] Thumb code-gen for 8-bit imm arguments results in extra reg copies
...mp, for the above test-case: %0:tgpr, dead $cpsr = tMOVi8 10, 14, $noreg %1:tgpr, dead $cpsr = tMOVi8 20, 14, $noreg $r0 = COPY %0:tgpr $r1 = COPY %1:tgpr IIUC, there are a couple of reasons why this happens: (a) tMOVi8 pattern isn't marked with isRematerializable, isAsCheapAsMove, and isMoveImm. (b) After annotating the pattern with above flags, RegisterCoalescer::reMaterializeTrivialDef still bails out because the above assignment has 2 definitions, with only one live definition. To address this issue, I attached a hackish patch that (a) Marks tMOVi8 pattern with: let isReMaterializable...
2019 Feb 14
2
RFC: [DebugInfo] Improving Debug Information in LLVM to Recover Optimized-out Function Parameters
...target-independent way? Would it be easier in earlier pre-regalloc MIR, or does that have the same problem because the instructions are already target-specific? >> > > It has enough generic meta information for some kind of instructions but > not for all. MachineInstr has bits for isMoveImm, isMoveReg and mayLoad > that can be useful for recognizing some kind of parameter loading > instructions. But we're not quite sure whether it is enough for > recognizing all of them. For example there is no support for recognizing > X86::LEA instructions with such mechanism (and th...
2019 Feb 12
2
RFC: [DebugInfo] Improving Debug Information in LLVM to Recover Optimized-out Function Parameters
[+ some folks more knowledgable about the Machine layer than me.] > On Feb 12, 2019, at 5:07 AM, Nikola Prica <nikola.prica at rt-rk.com> wrote: > > Hi, > > I am one of the authors of this feature. On Phabricator, we agreed to > take discussion whether encoding this in IR and threading it through the > compiler or performing a late MIR analysis is the better approach.
2019 Feb 14
2
RFC: [DebugInfo] Improving Debug Information in LLVM to Recover Optimized-out Function Parameters
...t be easier in earlier pre-regalloc MIR, or does that have the same problem because the instructions are already target-specific? >>>> >>> >>> It has enough generic meta information for some kind of instructions but >>> not for all. MachineInstr has bits for isMoveImm, isMoveReg and mayLoad >>> that can be useful for recognizing some kind of parameter loading >>> instructions. But we're not quite sure whether it is enough for >>> recognizing all of them. For example there is no support for recognizing >>> X86::LEA instruct...
2016 Nov 27
5
Extending Register Rematerialization
Hello LLVM Developers, We are working on extending currently available register rematerialization to include cases where sequence of multiple instructions is required to rematerialize a value. We had a discussion on this in community mailing list and link is here: http://lists.llvm.org/pipermail/llvm-dev/2016-September/subject.html#104777 >From the above discussion and studying the code we
2019 Feb 22
3
RFC: [DebugInfo] Improving Debug Information in LLVM to Recover Optimized-out Function Parameters
...ave the same problem because the instructions >>>>>> are already target-specific? >>>>>> >>>>> >>>>> It has enough generic meta information for some kind of instructions but >>>>> not for all. MachineInstr has bits for isMoveImm, isMoveReg and mayLoad >>>>> that can be useful for recognizing some kind of parameter loading >>>>> instructions. But we're not quite sure whether it is enough for >>>>> recognizing all of them. For example there is no support for recognizing >&g...
2012 Apr 19
0
[LLVMdev] Target Dependent Hexagon Packetizer patch
...>> [(HexagonBARRIER)]>; >> >> @@ -2324,35 +2324,35 @@ def CONST32 : LDInst<(outs IntRegs:$dst), (ins globaladdress:$global), >> (load (HexagonCONST32 tglobaltlsaddr:$global)))]>; >> >> let isReMaterializable = 1, isMoveImm = 1 in >> -def CONST32_set : LDInst<(outs IntRegs:$dst), (ins globaladdress:$global), >> +def CONST32_set : LDInst2<(outs IntRegs:$dst), (ins globaladdress:$global), >> "$dst = CONST32(#$global)", >> [(set IntRegs:$dst,...