search for: getvregdef

Displaying 15 results from an estimated 15 matches for "getvregdef".

2017 Feb 21
2
Error at Pre-regalloc Machine LICM: "getVRegDef assumes a single definition or no definition"' failed.
...%vreg85 dbg:IfVectorize.c:42:18 from BB#12 to BB#11 Can't remat / high reg-pressure: %vreg94<def> = COPY %vreg86; BoolMask:%vreg94 MSA128D:%vreg86 dbg:IfVectorize.c:42:13 llc: /llvm/lib/CodeGen/MachineRegisterInfo.cpp:339: llvm::MachineInstr* llvm::MachineRegisterInfo::getVRegDef(unsigned int) const: Assertion `(I.atEnd() || std::next(I) == def_instr_end()) && "getVRegDef assumes a single definition or no definition"' failed. 0 libLLVMSupport.so 0x00007f634e255700 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 72 1 libLLVMSupport....
2013 Apr 24
1
[LLVMdev] use of ARM GPRPair register class
...g with creating instructions that write into virtual registers that use the ARM GPRPair register class in Pre-RA phase. During register allocation, I hit an assertion because the code is not in SSA form: lib/CodeGen/MachineRegisterInfo.cpp:271: llvm::MachineInstr* llvm::MachineRegisterInfo::getVRegDef(unsigned int) const: Assertion `(I.atEnd() || llvm::next(I) == def_end()) && "getVRegDef assumes a single definition or no definition"' failed. The code in lib\CodeGen\MachineRegisterInfo.cpp has information about the virtual register's sub-register been written, but t...
2014 Oct 28
2
[LLVMdev] Problem in X86 backend (again)
...B#1 %vreg5<def> = MOV32r0 %EFLAGS<imp-def,dead>; GR32:%vreg5 %EAX<def> = COPY %vreg5; GR32:%vreg5 RETQ %EAX # End machine code for function main. clang: /home/pyknite/work/ollvm/obfuscator-llvm/lib/CodeGen/MachineRegisterInfo.cpp:305: llvm::MachineInstr *llvm::MachineRegisterInfo::getVRegDef(unsigned int) const: Assertion `(I.atEnd() || std::next(I) == def_instr_end()) && "getVRegDef assumes a single definition or no definition"' failed. 0 clang 0x00000000027c3645 llvm::sys::PrintStackTrace(_IO_FILE*) + 37 1 clang 0x00000000027c3e33 2 libpthread.so.0 0x00007fba6de...
2017 Jun 06
2
Putting "tied-to" constraints on virtual registers in SelectionDAGISel's Select() method
...ke to assign twice to the same physical register - but since I don't want to "mess" with the register allocator, I am using only virtual registers. However, if I write in my C++ code 2 getCopyToReg() calls to the same virtual register - this gives me the following error: "getVRegDef assumes a single definition or no definition" later, after instruction selection. Therefore, I try to use 2 virtual registers for the same physical register. I know in TablGen instruction specs we can give "tied-to" constraints on virtual registers of the form: string C...
2017 Sep 11
3
Live Register Spilling
Hi Matthias, Sorry for the late reply. Yes, you are correct, I do have optnone attribute on my function. I did pass -O0 to the tools. For your information, my invocations are as below: clang --target=mips-unknown-linux -mips32 test.c -emit-llvm -S llc -O0 -march=mips -mcpu=mips32 test.ll -o test.s Based on the generated .ll file, there is optnone attribute on the function, i
2018 Sep 10
3
How to avoid multiple registers definitions in customInserter.
...ss:%7 416B MOV_A_ro @c1, def %8; FPUaOffsetClass:%8 Result: an assertion is raised... !! ********** PROCESS IMPLICIT DEFS ********** ********** Function: _start llc: /home/dte/eclipse-workspace/llvm/lib/CodeGen/MachineRegisterInfo.cpp:366: llvm::MachineInstr* llvm::MachineRegisterInfo::getVRegDef(unsigned int) const: Assertion `(I.atEnd() || std::next(I) == def_instr_end()) && "getVRegDef assumes a single definition or no definition"' failed. LLVMSymbolizer: error reading file: No such file or directory Here is the inner part of my customInserter. Are there any additi...
2017 Sep 12
2
Live Register Spilling
...<mbraun at apple.com> Cc: llvm-dev at lists.llvm.org Subject: Re: [llvm-dev] Live Register Spilling Sorry about the previous message This message showed up: llc: /home/jc/Desktop/Project/For_Testing/llvm/lib/CodeGen/MachineRegisterInfo.cpp:366: llvm::MachineInstr* llvm::MachineRegisterInfo::getVRegDef(unsigned int) const: Assertion `(I.atEnd() || std::next(I) == def_instr_end()) && "getVRegDef assumes a single definition or no definition"' failed. I am assuming that i messed up the virtual register allocation when i am using BuildMI(). Also, i cannot invoke the clang as...
2014 Sep 25
2
[LLVMdev] MachineRegisterInfo use_iterator/reg_iterator?
Thanks Quentin. I'm trying to examine from the operands of the return instruction, and then to get the last assignment of those. I thought use_iterator/reg_iterator may suit better than just loop through the machine basicblock in the reverse order. Cheng-Chih On Thu, Sep 25, 2014 at 1:51 PM, Quentin Colombet <qcolombet at apple.com> wrote: > Hi Cheng-Chih, > > On Sep 25,
2013 Mar 17
0
[LLVMdev] Problem with executing recompileAndRelinkFunction successively
...fter changing the basic blocks, everything looks correct. But when the recompileAndRelinkFunction(Fn) is executed, I get the error: /home/varun/llvm-git/lib/CodeGen/MachineLICM.cpp:956: bool <anonymous namespace>::MachineLICM::IsLoopInvariantInst(llvm::MachineInstr &): Assertion `MRI->getVRegDef(Reg) && "Machine instr not mapped for this vreg?!"' failed. What am I missing? Thanks, Varun Agrawal
2020 Jun 26
2
How to implement load/store for vector predicate register
Hi, I am planning to expanding the pseudo instructions in XXXTargetLowering::EmitInstrWithCustomInserter(), and use temporary virtual registers as operands. If I use virtual registers, do I need to mark them as "early clobber"? I saw that sometimes they marked virtual register as "early clobber" in EmitInstrWithCustomInserter() in MIPS backend. What is the effect of marking a
2017 Mar 07
2
Specifying conditional blocks for the back end
Hello. Because I experience optimizations (DCE, OoO schedule) which mess the correct semantics of the list of instructions lowered in ISelLowering from the VSELECT LLVM instruction, and these bad transformations happen even before scheduling, at later I-sel subpasses, I try to fix this problem by lowering VSELECT to only one pseudo-instruction and LATER translate it to a list of
2017 Sep 14
2
Live Register Spilling
...t; Cc: llvm-dev at lists.llvm.org > Subject: Re: [llvm-dev] Live Register Spilling > > Sorry about the previous message > This message showed up: > llc: /home/jc/Desktop/Project/For_Testing/llvm/lib/CodeGen/MachineRegisterInfo.cpp:366: llvm::MachineInstr* llvm::MachineRegisterInfo::getVRegDef(unsigned int) const: Assertion `(I.atEnd() || std::next(I) == def_instr_end()) && "getVRegDef assumes a single definition or no definition"' failed. > I am assuming that i messed up the virtual register allocation when i am using BuildMI(). > > Also, i cannot invoke...
2009 Nov 20
2
[LLVMdev] llc barfing
...=local -f aout.bc -o aout.s But fails with -tailcallopt with different error messages in each case: $ llc -O0 -tailcallopt -f aout.bc -o aout.s llc: LiveVariables.cpp:125: void llvm::LiveVariables::HandleVirtRegUse(unsigned int, llvm::MachineBasicBlock*, llvm::MachineInstr*): Assertion `MRI->getVRegDef(reg) && "Register use before def!"' failed. 0 llc 0x08b8efe8 Stack dump: 0. Program arguments: llc -O0 -tailcallopt -f aout.bc -o aout.s 1. Running pass 'Live Variable Analysis' on function '@"visit_array_aux<`Reference>"' Aborted...
2012 Sep 18
0
[LLVMdev] liveness assertion problem in llc
On Sep 18, 2012, at 1:45 PM, Bjorn De Sutter <bjorn.desutter at elis.ugent.be> wrote: > I am working on a backend for a CGRA architecture with advanced predicate support (as on EPIC machines and as first used in the OpenIMPACT compiler). Until last month, the backend was working fine, but since the r161643 commit by stoklund, my backend doesn't work anymore. I think I noticed some
2012 Sep 18
2
[LLVMdev] liveness assertion problem in llc
Hi, I am working on a backend for a CGRA architecture with advanced predicate support (as on EPIC machines and as first used in the OpenIMPACT compiler). Until last month, the backend was working fine, but since the r161643 commit by stoklund, my backend doesn't work anymore. I think I noticed some related commits later on, and the assertion I get on the latest trunk (r164162) differs from