{"push_id":1281127049,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"fe32eccfec706170aa07dd6ae5fb00883939e23e","before":"0bb0baeec05e23b6ae7826419c6cbf69a3032e14","commits":[{"sha":"fe32eccfec706170aa07dd6ae5fb00883939e23e","author":{"name":"Duncan P. N. Exon Smith","email":"f246090f7fd4fd585e767cd9d62dc21b62e736c1@apple.com"},"message":"ADT: Split out iplist_impl from iplist, NFC\n\nSplit out iplist_impl from iplist, and change SymbolTableList to inherit\ndirectly from iplist_impl.  This makes it more straightforward to add\nnew template paramaters to iplist [*]:\n- iplist_impl takes a \"base\" list that provides the intrusive\n  functionality (usually simple_ilist<T>) and a traits class.\n- iplist no longer takes a \"Traits\" template parameter.  It only takes\n  the value_type, T, and instantiates iplist_impl with simple_ilist<T>\n  and ilist_traits<T>.\n- SymbolTableList now inherits from iplist_impl, instead of iplist.\n\nNote for out-of-tree code: if you have an iplist whose second template\nparameter was *not* the default (i.e., not ilist_traits<YourT>), you\nhave three options:\n- Stop using a custom traits class, and instead specialize\n  ilist_traits<YourT>.  This is the usual thing to do.\n- Specialize iplist<YourT> to pass your custom traits class into\n  iplist_impl.\n- Create your own trivial list type that passes your custom traits class\n  into iplist_impl (see SymbolTableList<> for an example).\n\n[*]: The eventual goal is to start tracking a sentinel bit on the\nMachineInstr list even when LLVM_ENABLE_ABI_BREAKING_CHECKS is off,\nwhich will enable MachineBasicBlock::reverse_iterator to have normal\nlist invalidation semantics that matching the new\niplist<>::reverse_iterator from r280032.\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280569 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm/commits/fe32eccfec706170aa07dd6ae5fb00883939e23e"}]}
{"actor":{"display_login":"chapuni"}}