On Wed, Apr 13, 2011 at 5:32 PM, Ian Lance Taylor <i...@google.com> wrote: > Feng LI <nemoking...@gmail.com> writes: > >> I use unspec_volatile for a function with void arguments and >> void return value for some initialization work. But it didn't generate >> code in this case. I think probably I need to add more restrictions >> some where but I don't know why and how. The code looks like: >> >> extern __inline void __attribute__((__gnu_inline__, __always_inline__, >> __artificial__)) >> __TEnd (void) >> { >> __builtin_ia32_tend (); >> } >> >> (define_expand "dta_tend" >> [(unspec_volatile [(const_int 0)] UNSPEC_TEND)] >> "" >> "") >> >> (define_insn "*dta_tend" >> [(unspec_volatile [(const_int 0)] UNSPEC_TEND)] >> "" >> "tend" >> [(set_attr "length" "3") >> (set_attr "mode" "none")]) > > In the RTL dumps generated by -da, where does the insn appear and where > does it disappear?
Do you have any const or pure attributes on the tend builtin? Richard. > Ian >