{"push_id":840303986,"size":229,"distinct_size":229,"ref":"refs/heads/kf/gallium","head":"4ec69ea32808e919f78cf3dfa164842a1bef1131","before":"5ded4f221205d8280e10e1974f8d54e0eefeb912","commits":[{"sha":"3b75c0484a47712cec877ec9f2cd47c35b27093d","author":{"email":"4a8dfeb3a1c6b90c15fd5a5a91e8e25ea46ffe0b@rotateright.com","name":"Sanjay Patel"},"message":"[CGP] transform select instructions into branches and sink expensive operands\n\nThis was originally checked in at r250527, but reverted at r250570 because of PR25222.\nThere were at least 2 problems: \n1. The cost check was checking for an instruction with an exact cost of TCC_Expensive;\nthat should have been >=.\n2. The cause of the clang stage 1 failures was illegally sinking 'call' instructions;\nwe can't sink instructions that may have side effects / are not safe to execute speculatively.\n\nFixed those conditions in sinkSelectOperand() and added test cases.\n\nOriginal commit message:\nThis is a follow-up to the discussion in D12882.\n\nIdeally, we would like SimplifyCFG to be able to form select instructions even when the operands\nare expensive (as defined by the TTI cost model) because that may expose further optimizations.\nHowever, we would then like a later pass like CodeGenPrepare to undo that transformation if the\ntarget would likely benefit from not speculatively executing an expensive op (this patch).\n\nOnce we have this safety mechanism in place, we can adjust SimplifyCFG to restore its\nselect-formation behavior that changed with r248439.\n\nDifferential Revision: http://reviews.llvm.org/D13297\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250743 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/3b75c0484a47712cec877ec9f2cd47c35b27093d"},{"sha":"f792618d1c05c8f152a9901937529b101730b774","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"Vectorize: Remove implicit ilist iterator conversions, NFC\n\nBesides the usual, I finally added an overload to\n`BasicBlock::splitBasicBlock()` that accepts an `Instruction*` instead\nof `BasicBlock::iterator`.  Someone can go back and remove this overload\nlater (after updating the callers I'm going to skip going forward), but\nthe most common call seems to be\n`BB->splitBasicBlock(BB->getTerminator(), ...)` and I'm not sure it's\nbetter to add `->getIterator()` to every one than have the overload.\nIt's pretty hard to get the usage wrong.\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250745 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/f792618d1c05c8f152a9901937529b101730b774"},{"sha":"2949a6ae049a27a52053318ab29ab8d2775cc320","author":{"email":"00d75d81082fdf74688ec453c516b42f7cbf0f40@intel.com","name":"Michael Liao"},"message":"[InstCombine] Optimize icmp of inc/dec at RHS\n\nAllow LLVM to optimize the sequence like the following:\n\n  %inc = add nsw i32 %i, 1\n  %cmp = icmp slt %n, %inc\n\ninto:\n\n  %cmp = icmp sle i32 %n, %i\n\nThe case is not handled previously due to the complexity of compuation of %n.\nHence, LLVM cannot swap operands of icmp accordingly.\n\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250746 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/2949a6ae049a27a52053318ab29ab8d2775cc320"},{"sha":"36d045a51fbe1891f9739f79a0abaed6e7a76a55","author":{"email":"05f726f834638679f776bde9b9fcd7e9d7242de5@gmail.com","name":"David Blaikie"},"message":"Fix -Wdeprecated regarding ORC copying ValueMaterializers\n\nAs usual, this is a polymorphic hierarchy without polymorphic ownership,\nso simply make the dtor protected non-virtual, protected default copy\nctor/assign, and make derived classes final. The derived classes will\npick up correct default public copy ops (and dtor) implicitly.\n\n(wish I could add -Wdeprecated to the build, but last time I tried it\ntriggered on some system headers I still need to look into/figure out)\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250747 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/36d045a51fbe1891f9739f79a0abaed6e7a76a55"},{"sha":"989a95d395d758ba99408e70d034e49c7a65993d","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"Linker: Remove implicit ilist iterator conversion, NFC\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250748 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/989a95d395d758ba99408e70d034e49c7a65993d"},{"sha":"e61c7b5220cd118c005cba94fc14e2598b68f59e","author":{"email":"74486463aa8344ad78208a26153a7177f8db5983@gmail.com","name":"Lang Hames"},"message":"[Orc] Use '= default' for move constructor/assignment as per dblaikie's review.\n\nThanks Dave!\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250749 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/e61c7b5220cd118c005cba94fc14e2598b68f59e"},{"sha":"f2558c2db4a9820e578a212f5e6faf36c9e46f1d","author":{"email":"4205e0b10aeac2e402f2f26cf2728ee8acfd11e6@google.com","name":"Cong Hou"},"message":"Enhance loop rotation with existence of profile data in MachineBlockPlacement pass.\n\nCurrently, in MachineBlockPlacement pass the loop is rotated to let the best exit to be the last BB in the loop chain, to maximize the fall-through from the loop to outside. With profile data, we can determine the cost in terms of missed fall through opportunities when rotating a loop chain and select the best rotation. Basically, there are three kinds of cost to consider for each rotation:\n\n1. The possibly missed fall through edge (if it exists) from BB out of the loop to the loop header.\n2. The possibly missed fall through edges (if they exist) from the loop exits to BB out of the loop.\n3. The missed fall through edge (if it exists) from the last BB to the first BB in the loop chain.\n\nTherefore, the cost for a given rotation is the sum of costs listed above. We select the best rotation with the smallest cost. This is only for PGO mode when we have more precise edge frequencies.\n\nDifferential revision: http://reviews.llvm.org/D10717\n\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250754 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/f2558c2db4a9820e578a212f5e6faf36c9e46f1d"},{"sha":"25622c1340090cd1ac82b7a104d1824c5e9f9914","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"ObjCARC: Remove implicit ilist iterator conversions, NFC\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250756 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/25622c1340090cd1ac82b7a104d1824c5e9f9914"},{"sha":"354229b21763df2d158745395704f4a87d706dbb","author":{"email":"74486463aa8344ad78208a26153a7177f8db5983@gmail.com","name":"Lang Hames"},"message":"[Orc] Fix MSVC bugs introduced in r250749.\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250758 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/354229b21763df2d158745395704f4a87d706dbb"},{"sha":"974314ae03cd634a1fa62f32acfd7464b505c629","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"ARM: Remove implicit ilist iterator conversions, NFC\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250759 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/974314ae03cd634a1fa62f32acfd7464b505c629"},{"sha":"2b76674c16a5e56c47c4de3cc7bbc5db4f79b398","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"BPF: Remove implicit ilist iterator conversion, NFC\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250765 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/2b76674c16a5e56c47c4de3cc7bbc5db4f79b398"},{"sha":"7a225f7f37e08179e5dc8fc397d53d47b5e351d0","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"CppBackend: Remove implicit ilist iterator conversions, NFC\n\nMostly just converted to range-based for loops.  May have converted a\ncouple of extra loops as a drive-by (not sure).\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250766 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/7a225f7f37e08179e5dc8fc397d53d47b5e351d0"},{"sha":"ddeb82cedb89b3348662c0bb92e4a19b4dc9c8ff","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"Mips: Remove implicit ilist iterator conversions, NFC\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250769 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/ddeb82cedb89b3348662c0bb92e4a19b4dc9c8ff"},{"sha":"97fa27f70e65d5e66922b375fdaf8d320306e0ef","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"AsmPrinter: Remove implicit ilist iterator conversion, NFC\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250776 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/97fa27f70e65d5e66922b375fdaf8d320306e0ef"},{"sha":"9f16772a3deb4146a22c1949b50693442717b13e","author":{"email":"4cf69f9a9feed879248eddbda1627ff7b411a4e3@google.com","name":"JF Bastien"},"message":"WebAssembly: fix syntax for br_if.\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250777 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/9f16772a3deb4146a22c1949b50693442717b13e"},{"sha":"8525f3a7bcb41496c5316b01ab76c505db193f9d","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"Hexagon: Remove implicit ilist iterator conversions, NFC\n\nThere are two things out of the ordinary in this commit.  First, I made\na loop obviously \"infinite\" in HexagonInstrInfo.cpp.  After checking if\nan instruction was at the beginning of a basic block (in which case,\n`break`), the loop decremented and checked the iterator for `nullptr` as\nthe loop condition.  This has never been possible (the prev pointers are\nalways been circular, so even with the weird ilist/iplist\nimplementation, this isn't been possible), so I removed the condition.\n\nSecond, in HexagonAsmPrinter.cpp there was another case of comparing a\n`MachineBasicBlock::instr_iterator` against `MachineBasicBlock::end()`\n(which returns `MachineBasicBlock::iterator`).  While not incorrect,\nit's fragile.  I switched this to `::instr_end()`.\n\nAll that said, no functionality change intended here.\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250778 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/8525f3a7bcb41496c5316b01ab76c505db193f9d"},{"sha":"db991cb068bcf148dd1bf46050fb9da51d83d66a","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"NVPTX: Remove implicit ilist iterator conversions, NFC\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250779 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/db991cb068bcf148dd1bf46050fb9da51d83d66a"},{"sha":"2b1499041b5e3e5480359bc5f3e2c24cd58523f5","author":{"email":"20d921fc546146872790792fbd1b5fc4bad0eb3d@apple.com","name":"Duncan P. N. Exon Smith"},"message":"Sparc: Remove implicit ilist iterator conversions, NFC\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250781 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/2b1499041b5e3e5480359bc5f3e2c24cd58523f5"},{"sha":"8293dfd63f4a38dbf81da882c4ec699ebb098f95","author":{"email":"d72748a98fd8b476107003df407128e166d060ac@playingwithpointers.com","name":"Sanjoy Das"},"message":"[RS4GC] Minor cleanup to `normalizeForInvokeSafepoint`; NFC\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250783 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/8293dfd63f4a38dbf81da882c4ec699ebb098f95"},{"sha":"66e29d1ed12ba50ff8a14ad556a05a1f30d253b4","author":{"email":"d72748a98fd8b476107003df407128e166d060ac@playingwithpointers.com","name":"Sanjoy Das"},"message":"[RS4GC] Re-purpose `normalizeForInvokeSafepoint`; NFC.\n\n`normalizeForInvokeSafepoint` in RewriteStatepointsForGC.cpp, as it is\nwritten today, deals with `gc.relocate` and `gc.result` uses of a\nstatepoint equally well.  This change documents this fact and adds a\ntest case.\n\nThere is no functional change here -- only documentation of existing\nfunctionality.\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@250784 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/JuliaLang/llvm/commits/66e29d1ed12ba50ff8a14ad556a05a1f30d253b4"}]}