{"push_id":642709308,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"c364314ec3143d8c323e006ea588168a3b3516d5","before":"9ed816ae52d7435a7894ff79dc4118127782c0a7","commits":[{"sha":"c364314ec3143d8c323e006ea588168a3b3516d5","author":{"email":"7d288e6836572ae72b1427e06e061fd492aa8050@apple.com","name":"Quentin Colombet"},"message":"[MachineCopyPropagation] Handle undef flags conservatively so that we do not\nremove copies that are useful after breaking some hardware dependencies.\nIn other words, handle this kind of situations conservatively by assuming reg2\nis redefined by the undef flag.\nreg1 = copy reg2\n= inst reg2<undef>\nreg2 = copy reg1\nCopy propagation used to remove the last copy.\nThis is incorrect because the undef flag on reg2 in inst, allows next\npasses to put whatever trashed value in reg2 that may help.\nIn practice we end up with this code:\nreg1 = copy reg2\nreg2 = 0\n= inst reg2<undef>\nreg2 = copy reg1\n\nThis fixes PR21743.\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235647 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm/commits/c364314ec3143d8c323e006ea588168a3b3516d5"}]}