{"push_id":567556456,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"4c2a2ac1965714a3201c26868984c9364df9eb51","before":"e003f1ac8cb8e921b50eae9a997dfc9258cc998f","commits":[{"sha":"6dc42dd2daef95e115653065569b4693e1a9693f","author":{"email":"d7a6b5668afca32909ec82de7d490acab5faf1b8@kleckner.net","name":"Reid Kleckner"},"message":"Don't dllexport declarations\n\nFixes PR22488\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228411 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/llvm/commits/6dc42dd2daef95e115653065569b4693e1a9693f"},{"sha":"b3189eac3fbededf540c3c0570c928971bca93a0","author":{"email":"2df88d93b29f556204c4c4bee7e5b886dbefddeb@apple.com","name":"Adam Nemet"},"message":"[LV] Move addRuntimeCheck to LoopAccessAnalysis\n\nThis will allow it to be shared with the new Loop Distribution pass.\n\ngetFirstInst is currently duplicated across LoopVectorize.cpp and\nLoopAccessAnalysis.cpp.  This is a short-term work-around until we figure out\na better solution.\n\nNFC.  (The code moved is adjusted a bit for the name of the Loop member and\nthat PtrRtCheck is now a reference rather than a pointer.)\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228418 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/llvm/commits/b3189eac3fbededf540c3c0570c928971bca93a0"},{"sha":"4c2a2ac1965714a3201c26868984c9364df9eb51","author":{"email":"7d288e6836572ae72b1427e06e061fd492aa8050@apple.com","name":"Quentin Colombet"},"message":"[LiveIntervalAnalysis] Speed up creation of live ranges for physical registers\nby using a segment set.\n\nThe patch addresses a compile-time performance regression in the LiveIntervals\nanalysis pass (see http://llvm.org/bugs/show_bug.cgi?id=18580). This regression\nis especially critical when compiling long functions. Our analysis had shown\nthat the most of time is taken for generation of live intervals for physical\nregisters. Insertions in the middle of the array of live ranges cause quadratic\nalgorithmic complexity, which is apparently the main reason for the slow-down. \n\nOverview of changes:\n- The patch introduces an additional std::set<Segment>* member in LiveRange for\n  storing segments in the phase of initial creation. The set is used if this\n  member is not NULL, otherwise everything works the old way. \n- The set of operations on LiveRange used during initial creation (i.e. used by\n  createDeadDefs and extendToUses) have been reimplemented to use the segment\n  set if it is available.\n- After a live range is created the contents of the set are flushed to the\n  segment vector, because the set is not as efficient as the vector for the\n  later uses of the live range. After the flushing, the set is deleted and\n  cannot be used again.\n- The set is only for live ranges computed in\n  LiveIntervalAnalysis::computeLiveInRegUnits() and getRegUnit() but not in\n  computeVirtRegs(), because I did not bring any performance benefits to\n  computeVirtRegs() and for some examples even brought a slow down.\n\nPatch by Vaidas Gasiunas <vaidas.gasiunas@sap.com>\n\nDifferential Revision: http://reviews.llvm.org/D6013\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228421 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/llvm/commits/4c2a2ac1965714a3201c26868984c9364df9eb51"}]}