{"push_id":2433814857,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"276ad3cf6ccf02b0f2f141a5a5beb6428bc1844a","before":"b483db269fbb327419f2b7fc09e8ff608da3d5f2","commits":[{"sha":"5f51cb0ad85f85ecdeeb28f73cddc6af5a40596e","author":{"name":"Krzysztof Parzyszek","email":"40979b2c4eb65586fe7bead22e2c9fb24795e47a@codeaurora.org"},"message":"[Pipeliner] Use latency to compute RecMII\n\nThe patch contains severals changes needed to pipeline an example\nthat was transformed so that a Phi with a subreg is converted to\ncopies.\n\nThe pipeliner wasn't working for a couple of reasons.\n- The RecMII was 3 instead of 2 due to the extra copies.\n- Copy instructions contained a latency of 1.\n- The node order algorithm was not choosing the best \"bottom\"\nnode, which caused an instruction to be scheduled that had a \npredecessor and successor already scheduled.\n- Updated the Hexagon Machine Scheduler to check if the node is\nlatency bound when adding the cost for a 0-latency dependence.\n\nThe RecMII was 3 because the computation looks at the number of\nnodes in the recurrence. The extra copy is an extra node but\nit shouldn't increase the latency. The new RecMII computation\nlooks at the latency of the instructions in the recurrence. We\nchanged the latency of the dependence of a copy to 0. The latency\ncomputation for the copy also checks the use of the copy (similar\nto a reg_sequence).\n\nThe node order algorithm was not choosing the last instruction\nin the recurrence for a bottom up traversal. This was when the\nlast instruction is a copy. A check was added when choosing the\ninstruction to check for NodeNum if the maxASAP is the same. This\nmeans that the scheduler will not end up with another node in\nthe recurrence that has both a predecessor and successor already\nscheduled.\n\nThe cost computation in Hexagon Machine Scheduler adds cost when\nan instruction can be packetized with a zero-latency instruction.\nWe should only do this if the schedule is latency bound. \n\nPatch by Brendon Cahoon.\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328542 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/androm3da/llvm-doc/commits/5f51cb0ad85f85ecdeeb28f73cddc6af5a40596e"},{"sha":"2d4c98fec9693841acd2b0504fef5de73430cef4","author":{"name":"Krzysztof Parzyszek","email":"40979b2c4eb65586fe7bead22e2c9fb24795e47a@codeaurora.org"},"message":"[Pipeliner] Fix number of phis to generate in the epilog\n\nThe pipeliner was generating too many phis in the epilog blocks, which\ncaused incorrect code generation when rewriting an instruction that uses\nthe phi.\n\nIn this case, there 3 prolog and epilog stages. An existing phi was\nscheduled at stage 1. When generating the code for the 2nd epilog an\nextra new phi was generated.\n\nTo fix this, we need to update the code that calculates the maximum\nnumber of phis that can be generated, which is based upon the current\nprolog stage and the stage of the original phi. In this case, when the\nprolog stage is 1 and the original phi stage is 1, the maximum number\nof phis to generate is 2.\n\nPatch by Brendon Cahoon.\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328543 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/androm3da/llvm-doc/commits/2d4c98fec9693841acd2b0504fef5de73430cef4"},{"sha":"276ad3cf6ccf02b0f2f141a5a5beb6428bc1844a","author":{"name":"Krzysztof Parzyszek","email":"40979b2c4eb65586fe7bead22e2c9fb24795e47a@codeaurora.org"},"message":"[Pipeliner] Fix renaming in pipeliner when eliminating phis\n\nThe phi renaming code in the pipeliner uses the wrong value when\nrewriting phi uses, which results in an undefined value. In this\ncase, the original phi is no longer needed due to the order of\ninstruction in the pipelined loop. The pipeliner was assuming, in\nthis case, the the phi loop definition should be used to\nrewrite the uses. However, the pipeliner needs to check to make\nsure that the loop definition has already been scheduled. If not,\nthen the phi initial value needs to be used instead.\n\nPatch by Brendon Cahoon.\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328545 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/androm3da/llvm-doc/commits/276ad3cf6ccf02b0f2f141a5a5beb6428bc1844a"}]}
{"actor":{"display_login":"androm3da"}}