This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Does anyone know about how the FRV port does the VLIW pack?


Hello,

    After I have studied the FRV gcc port, here is my guess about how
    the FRV port packs the vliw pack.

    The function "frv_function_prologue" does the vliw packing by
    calling frv_pack_insns() and sets the static variable
    "frv_insn_packing_flag" to TRUE.  

    The function "frv_pack_insn()" invoked by "frv_function_prologue"
    rescans the insn chain and does the vliw packing.

    Because frv_function_prologue is invoked at the begining of a
    function, VLIW packing is done at every begining of a function.

    And when outputing the insn code (asm code), the function
    "frv_asm_output_opcode" adds assembler insn code suffix .p according
    to the MACRO "PACKING_FLAG_USED_P()" which is defined as the
    following code:
    (optimize && flag_schedule_insns_after_reload && ISSUE_RATE > 1)

    and the static variable "frv_insn_packing_flag".
    

    The function "frv_final_prescan_insn" controls the static variable
    "frv_insn_packing_flag" and sets it to TRUE or FALSE according to
    the insn with TImode set by frv_pack_insn().

    Am I right? Thanks.

Mike Wu
    


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]