Akira Hatanaka
2012-Apr-25 18:59 UTC
[LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
Hi Anton, I ran llc with -verify-coalescing. There were no error messages. Then I added code in MipsPassConfig::addPreEmitPass() to prevent machine verifier from running post delay -slot-filler, and ran llc again. Again, there were no error messages. This is the list of passes run after post-RA scheduling. machine verifier is run twice after post RA scheduler (and CriticalAntiDepBreaker) is run. Post RA top-down list latency scheduler Verify generated machine code Analyze Machine Code For Garbage Collection Machine Block Frequency Analysis Branch Probability Basic Block Placement Verify generated machine code Mips Delay Slot Filler MachineDominator Tree Construction Machine Natural Loop Construction Mips Assembly Printer Delete Garbage Collector Information On Tue, Apr 24, 2012 at 11:36 PM, Anton Korobeynikov < anton at korobeynikov.info> wrote:> Hi Akira, > > > When I add -verify-machineinstrs, it complains that there are > instructions > > after terminator instructions. > Yes, -verify-machineinstrs and -verify-coalescing are your friends here :) > > -- > With best regards, Anton Korobeynikov > Faculty of Mathematics and Mechanics, Saint Petersburg State University >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120425/5feb8989/attachment.html>
Akira Hatanaka
2012-Apr-25 19:08 UTC
[LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
Sorry, I meant to say, I added code to prevent llc from running machine verifier after delay slots are filled. MipsInstrInfo::AnalyzeBranch generates incorrect results after delay slots are filled. Also, it seems that code in MachineVerifier.cpp wasn't written with architectures that have delay slots in mind. On Wed, Apr 25, 2012 at 11:59 AM, Akira Hatanaka <ahatanak at gmail.com> wrote:> Hi Anton, > > I ran llc with -verify-coalescing. There were no error messages. > Then I added code in MipsPassConfig::addPreEmitPass() to prevent machine > verifier from running post delay -slot-filler, and ran llc again. Again, > there were no error messages. > > This is the list of passes run after post-RA scheduling. machine verifier > is run twice after post RA scheduler (and CriticalAntiDepBreaker) is run. > > Post RA top-down list latency scheduler > Verify generated machine code > Analyze Machine Code For Garbage Collection > Machine Block Frequency Analysis > Branch Probability Basic Block Placement > Verify generated machine code > Mips Delay Slot Filler > MachineDominator Tree Construction > Machine Natural Loop Construction > Mips Assembly Printer > Delete Garbage Collector Information > > > On Tue, Apr 24, 2012 at 11:36 PM, Anton Korobeynikov < > anton at korobeynikov.info> wrote: > >> Hi Akira, >> >> > When I add -verify-machineinstrs, it complains that there are >> instructions >> > after terminator instructions. >> Yes, -verify-machineinstrs and -verify-coalescing are your friends here :) >> >> -- >> With best regards, Anton Korobeynikov >> Faculty of Mathematics and Mechanics, Saint Petersburg State University >> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120425/18372406/attachment.html>
Akira Hatanaka
2012-May-15 01:11 UTC
[LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
I filed a PR. Bug 12829 <http://llvm.org/bugs/show_bug.cgi?id=12829> On Wed, Apr 25, 2012 at 12:08 PM, Akira Hatanaka <ahatanak at gmail.com> wrote:> Sorry, I meant to say, > > I added code to prevent llc from running machine verifier after delay > slots are filled. > > MipsInstrInfo::AnalyzeBranch generates incorrect results after delay slots > are filled. Also, it seems that code in MachineVerifier.cpp wasn't written > with architectures that have delay slots in mind. > > > On Wed, Apr 25, 2012 at 11:59 AM, Akira Hatanaka <ahatanak at gmail.com>wrote: > >> Hi Anton, >> >> I ran llc with -verify-coalescing. There were no error messages. >> Then I added code in MipsPassConfig::addPreEmitPass() to prevent machine >> verifier from running post delay -slot-filler, and ran llc again. Again, >> there were no error messages. >> >> This is the list of passes run after post-RA scheduling. machine verifier >> is run twice after post RA scheduler (and CriticalAntiDepBreaker) is run. >> >> Post RA top-down list latency scheduler >> Verify generated machine code >> Analyze Machine Code For Garbage Collection >> Machine Block Frequency Analysis >> Branch Probability Basic Block Placement >> Verify generated machine code >> Mips Delay Slot Filler >> MachineDominator Tree Construction >> Machine Natural Loop Construction >> Mips Assembly Printer >> Delete Garbage Collector Information >> >> >> On Tue, Apr 24, 2012 at 11:36 PM, Anton Korobeynikov < >> anton at korobeynikov.info> wrote: >> >>> Hi Akira, >>> >>> > When I add -verify-machineinstrs, it complains that there are >>> instructions >>> > after terminator instructions. >>> Yes, -verify-machineinstrs and -verify-coalescing are your friends here >>> :) >>> >>> -- >>> With best regards, Anton Korobeynikov >>> Faculty of Mathematics and Mechanics, Saint Petersburg State University >>> >> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120514/b9dfd9ae/attachment.html>
Apparently Analagous Threads
- [LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
- [LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
- [LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
- [LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction
- [LLVMdev] CriticalAntiDepBreaker rewrites a register operand of a call instruction