{"push_id":1046629911,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"ecdbf86c9dc601bc443b61f4286de026cd38bb11","before":"dbdebc6557ac6b3aed9150629e5c73ba7ab2ab79","commits":[{"sha":"ecdbf86c9dc601bc443b61f4286de026cd38bb11","author":{"email":"d249ff550556e030437dab9351eb61496cc48f03@multicorewareinc.com","name":"Chuang-Yu Cheng"},"message":"[PPC64] Bug fix: when enabling sibling-call-opt and shrink-wrapping, the tail call branch instruction might disappear\n\nBug Pattern:\n    # BB#0:                                 # %entry\n\t    cmpldi\t 3, 0\n\t    beq-\t 0, .LBB0_2\n    # BB#1:                                 # %exit\n\t    lwz 4, 0(3)\n\t    #TC_RETURNd8 LVComputationKind 0\n    .LBB0_2:                                # %cond.false\n\t    mflr 0\n\t    std 0, 16(1)\n\t    stdu 1, -96(1)\n    .Ltmp0:\n\t    .cfi_def_cfa_offset 96\n    .Ltmp1:\n\t    .cfi_offset lr, 16\n\t    bl __assert_fail\n\t    nop\n\nThe branch instruction for tail call return is not generated, because the\nshrink-wrapping pass choosing a new Restore Point: %cond.false, so %exit\nblock is not sent to emitEpilogue, that's why the branch is not generated.\n\nThanks Kit's opinions!\nReviewers: nemanjai hfinkel tjablin kbarton\n\nhttp://reviews.llvm.org/D17606","distinct":true,"url":"https://api.github.com/repos/llvm-project/llvm-project/commits/ecdbf86c9dc601bc443b61f4286de026cd38bb11"}]}