Guys,
I think I figure out the way that the current LLVM allocators are handling IMPLICIT_DEF's. One question more: why are you adding null length intervals to IMPLICIT_DEF instructions? If they were non-null, I think the code to handle them would be more homogeneous, e.g a traversal of the intervals during register allocation would already reveal virtuals defined implicitly.
best,
Fernando
Guys,
I think I figure out the way that the current LLVM allocators are
handling IMPLICIT_DEF's. One question more: why are you adding null length
intervals to IMPLICIT_DEF instructions? If they were non-null, I think the
code to handle them would be more homogeneous, e.g a traversal of the
intervals during register allocation would already reveal virtuals defined
implicitly.
Assigning IMPLICIT_DEF defined interval a null length interval is an optimization. It enables more coalescing since an implicitly defined register should not conflict with anything else.
Evan