Running the following command, llc -asm-verbose=false -O3 Output/ReedSolomon.llvm.bc -o Output/ReedSolomon.llc.s -verify-machineinstrs in llvm-test/SingleSource/Benchmarks/Misc currently yields seven errors, all of the form *** Bad machine code: PHI operand is not live-out from predecessor *** - function: main - basic block: bb2.i.preheader 0x1ba7680 (BB#5) - instruction: %reg1032<def> = PHI %reg1280, <BB#3>, %reg1287, <BB#4> - operand 1: %reg1280 The code seems to run ok though. Is this something that's worth looking in to, or just over zealous reporting by the machine verifier? Cheers, Lang. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100509/6529bd36/attachment.html>
On May 9, 2010, at 5:27 AM, Lang Hames wrote:> Running the following command, > > llc -asm-verbose=false -O3 Output/ReedSolomon.llvm.bc -o Output/ReedSolomon.llc.s -verify-machineinstrs > > in llvm-test/SingleSource/Benchmarks/Misc currently yields seven errors, all of the form > > *** Bad machine code: PHI operand is not live-out from predecessor *** > - function: main > - basic block: bb2.i.preheader 0x1ba7680 (BB#5) > - instruction: %reg1032<def> = PHI %reg1280, <BB#3>, %reg1287, <BB#4> > - operand 1: %reg1280 > > The code seems to run ok though. > > Is this something that's worth looking in to, or just over zealous reporting by the machine verifier?That sounds like a proper bug. Can you tell why %reg1280 is not live-out from BB#3? /jakob
I just merged the last few days worth of mainline commits into my repo and this bug seems to have disappeared. If it was real it looks like it has been fixed. I'll keep an eye out for it though. - Lang. On Tue, May 11, 2010 at 2:56 AM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:> > On May 9, 2010, at 5:27 AM, Lang Hames wrote: > >> Running the following command, >> >> llc -asm-verbose=false -O3 Output/ReedSolomon.llvm.bc -o Output/ReedSolomon.llc.s -verify-machineinstrs >> >> in llvm-test/SingleSource/Benchmarks/Misc currently yields seven errors, all of the form >> >> *** Bad machine code: PHI operand is not live-out from predecessor *** >> - function: main >> - basic block: bb2.i.preheader 0x1ba7680 (BB#5) >> - instruction: %reg1032<def> = PHI %reg1280, <BB#3>, %reg1287, <BB#4> >> - operand 1: %reg1280 >> >> The code seems to run ok though. >> >> Is this something that's worth looking in to, or just over zealous reporting by the machine verifier? > > That sounds like a proper bug. Can you tell why %reg1280 is not live-out from BB#3? > > /jakob > >
Apparently Analagous Threads
- [LLVMdev] Machine Verifier question.
- [LLVMdev] Removing dead code
- [LLVMdev] implicit CC register Defs cause "physreg was not killed in defining block!" assert
- [LLVMdev] implicit CC register Defs cause "physreg was not killed in defining block!" assert
- [LLVMdev] Linearscan allocator bug?