On 06/11/14 03:35, Zhenqiang Chen wrote:
Thanks for the comments. df_live seams redundant.
With flag_ira_loop_pressure, the pass will call df_analyze () at the
beginning, which can make sure all the DF info are correct.
Can we guarantee all DF_... correct without df_analyze ()?
They should be fine in this context.
+/* Pre-check candidate DEST to skip the one which can not make a valid insn
+ during move_invariant_reg. SIMPlE is to skip HARD_REGISTER. */
s/SIMPlE/SIMPLE/
+ {
+ /* Multi definitions at this stage, most likely are due to
+ instruction constrain, which requires both read and write
s/constrain/constraints/
Though that doesn't make sense. Constraints don't come into play until
much later in the pipeline. Certainly there's been code in the
expanders and elsewhere to try and make the code we generate more
acceptable to 2-address targets and that's probably what you're really
running into. I think the code is fine, but that you need to improve
the comment.
ISTM that if your primary focus is to filter out read/write operands,
then just say that and ignore the constraints or other mechanisms by
which we got a read/write pseudo.
So I think with those two small comment changes, this patch is OK for
the trunk. Please post the final version for archival purposes before
checking it in.
Thanks,
Jeff