Re: A very odd phenomenon when does -O1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



He Xiao <xiheasas@xxxxxxxxx> writes:

> after GREG, the insn becomes
>
> (insn 91 40 45 5 (set (reg:SI 27 r27 [orig:54+-2 ] [54])
>        (high:SI (const_int 24930 [0x6162]))) 4 {arch_movsi} (nil)
>    (nil)
>
> which matches "arch_movsi" pattern, and thus 0x6162 is not qualified
> for arch_move_operand, the final output is as follow:

Why does this match arch_movsi?  arch_movsi does not have HIGH in the
pattern.  Does your arch_move_operand predicate accept HIGH?  If so,
why?

Note that there are a number of examples of backends with similar
restrictions.  E.g., mips.  They usually do not use HIGH with
CONST_INT; they use HIGH with SYMBOL_REF.  For CONST_INT they split up
the value in the movsi define_expand, and then use predicates to
prevent the real insns from matching anything which the architecture
does not support.

Ian


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux