[llvm-dev] how to prevent LLVM back-end from reordering instructions at instruction scheduling?
Krzysztof Parzyszek via llvm-dev
llvm-dev at lists.llvm.org
Tue Nov 15 14:18:46 PST 2016
You can override TargetInstrInfo::isSchedulingBoundary for that.
-Krzysztof
On 11/15/2016 4:13 PM, Ryan Taylor wrote:
> I have the same issue, would it be easier and more useful to attach a
> flag to the instruction to tell the scheduler not to move instructions
> across this boundary?
>
> -Ryan
>
> On Tue, Nov 15, 2016 at 5:11 PM, Krzysztof Parzyszek via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
> You can create a DAG mutation that adds artificial dependencies
> between A, B and Z.
>
> -Krzysztof
>
>
> On 11/15/2016 3:26 PM, Wei Ding via llvm-dev wrote:
>
> Hello,
>
> I have a LLVM backend question regarding how to prevent compiler
> from
> reordering instructions. For example, I have the following
> instructions.
> Z_instruction is the one which I want to insert.
>
>
> // instruction order which I am looking for
> /////////////////////////////////////////
> A_instruction
> B_instruction
>
> *Z_instruction*
>
> C_instruction
> D_instruction
> E_instruction
> F_instruction
>
> *Z_instruction*
>
> G_instruction
> F_instruction
>
>
> ==================================================
>
> But I found compiler reordered those instructions like the
> following.
> How could I prevent compiler from moving *A_instruction* and
> *B_instruction* after the first *Z_instruction*? Any
> recommendations and
> suggestion are greatly appreciated here!!!
>
> *Z_instruction*
> *
> *
> A_instruction
> B_instruction
>
> C_instruction
> D_instruction
> E_instruction
> F_instruction
>
> *Z_instruction*
>
> G_instruction
> F_instruction
>
> BTW, I have define input/output chain for : *C_instruction,
> D_instruction, E_instruction, F_instruction and Z_instruction*
> *
> *
> Thank you so much!
>
> --
> Wei Ding
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>
>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> hosted by The Linux Foundation
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>
>
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev
mailing list