Hi, Attaching updated patch for function multiversioning which brings in plenty of changes. * As suggested by Richard earlier, I have made cgraph aware of function versions. All nodes of function versions are chained and the dispatcher bodies are created on demand while building cgraph edges. The dispatcher body will be created if and only if there is a call or reference to a versioned function. Previously, I was maintaining the list of versions separately in a hash map, all that is gone now. * Now, the file multiverison.c has some helper routines that are used in the context of function versioning. There are no new passes and no new globals. * More tests, updated existing tests. * Fixed lots of bugs. * Updated patch description. Patch attached. Patch also available for review at http://codereview.appspot.com/5752064 Please let me know what you think, Thanks, -Sri. On Mon, May 14, 2012 at 11:28 AM, Sriraman Tallam wrote: > Hi H.J, > >   Attaching new patch with 2 test cases, mv2.C checks ISAs only and > mv1.C checks ISAs and arches mixed. Right now, checking only arches is > not needed as they are mutually exclusive, any order should be fine. > > Patch also available for review here:  http://codereview.appspot.com/5752064 > > Thanks, > -Sri. > > On Sat, May 12, 2012 at 6:37 AM, H.J. Lu wrote: >> On Fri, May 11, 2012 at 7:04 PM, Sriraman Tallam wrote: >>> Hi H.J., >>> >>>   I have updated the patch to improve the dispatching method like we >>> discussed. Each feature gets a priority now, and the dispatching is >>> done in priority order. Please see i386.c for the changes. >>> >>> Patch also available for review here:  http://codereview.appspot.com/5752064 >>> >> >> I think you need 3 tests: >> >> 1.  Only with ISA. >> 2.  Only with arch >> 3.  Mixed with ISA and arch >> >> since test mixed ISA and arch may hide issues with ISA only or arch only. >> >> -- >> H.J.