On 01/18/10 03:39, fanqifei wrote:
2010/1/18 Adam Nemet<adambne...@gmail.com>:
Sorry for jumping in late.  See make_file_assigment in combine.c.

The problem usually is that:

  (set A (ior (and B C1) OTHER))

can only be turned into a bit-insertion if A and B happen to be the same
pseudos.

Adam

Thank you, Adam.  The problem is that before combine pass the
statement is expressed in 6 insns. The insns can't be combined into
the expected pattern (set A (ior (and B C1) OTHER)). Otherwise,
make_field_assignment can do the job of simplifying the SET insn.
It is sometimes possible to create intermediate patterns to allow the combiner to see a larger window of insns. Obviously if you create these intermediate patterns you should split them if they survive beyond the combiner phase.

jeff


Reply via email to