This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Does anyone know about how the FRV port does the VLIW pack?
- From: mike at csdn dot sign dot idv dot tw
- To: gcc at gcc dot gnu dot org
- Date: Tue, 1 Jun 2004 18:03:44 +0800
- Subject: 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