Replace the core comparison login in merge functions. We can now merge
authorNick Lewycky <nicholas@mxc.ca>
Thu, 13 May 2010 05:48:45 +0000 (05:48 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Thu, 13 May 2010 05:48:45 +0000 (05:48 +0000)
commit33ab0b15689abd32f72a5417cd104bde19f4b4aa
tree96efcf929bf419633d28abead2009726bb87d10b
parent054be92e1da7015190377d6bade57196f28cf33a
Replace the core comparison login in merge functions. We can now merge
vector<>::push_back() in:

  int foo(vector<int> &a, vector<unsigned> &b) {
    a.push_back(10);
    b.push_back(11);
  }

to two calls to the same push_back function, or fold away the two copies of
push_back() in:

  struct T { int; };
  struct S { char; };
  vector<T*> t;
  vector<S*> s;
  void f(T *x) { t.push_back(x); }
  void g(S *x) { s.push_back(x); }

but leave f() and g() separate, since they refer to two different global
variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103698 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/IPO/MergeFunctions.cpp