[llvm-dev] Pre-RA scheduler does not generate NOPs when getHazardType() returns NoopHazard
Alex Susu via llvm-dev
llvm-dev at lists.llvm.org
Tue Mar 21 06:29:47 PDT 2017
Hello.
I am not sure if this is the correct answer to the question I put in the previous
email, but please take a look at what I wrote in another thread at
http://lists.llvm.org/pipermail/llvm-dev/2017-March/111293.html .
Basically, I describe there I was more successful to use PreEmitNoops(), instead of
the getHazardType() method which, when I return NoopHazard, it does NOT always generate a
NOP - in my case it works for Store, but not for Load MachineInstructions.
Does the ScoreboardHazardRecognizer class generate (or not) a NOP instruction, when
instructed to in getHazardType(), depending on the type of the instruction analyzed?
Thank you,
Alex
On 2/12/2017 4:10 AM, Alex Susu wrote:
> Hello.
> I am new to the schedulers implemented in the back end of LLVM.
> I am trying to handle data hazards in my simple processor, with instructions that
> execute in 1 cycle.
>
> I have tried the standard post-RA scheduler, implemented in
> lib/CodeGen/PostRASchedulerList.cpp, (with a ScoreboardHazardRecognizer), but I have some
> issues with some consecutive instructions that are separated in the final ASM listing and
> they should not.
>
> I also tried the standard pre-RA scheduler, implemented in
> lib/CodeGen/ScheduleDAGRRList.cpp, (with a ScoreboardHazardRecognizer), but even if I
> report that I have a data hazard in getHazardType() and return NoopHazard, the scheduler
> will not insert a NOP instruction in the respective place where I report the hazard . For
> me it is more convenient, in principle, to use the pre-RA scheduler, but it is not
> generating NOPs.
> Could you please tell me how can I generate NOPs with a pre-RA scheduler when I am
> already informing it that at the current place we have a NoopHazard.
>
> Thank you,
> Alex
>
> PS: Also, could you please tell me if with the standard pre-RA scheduler with
> ScoreboardHazardRecognizer I could also employ other useful program instructions when
> dealing with hazards, instead of using NOPs.
More information about the llvm-dev
mailing list