[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:11:37 PST 2016


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
> 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