Skip to content
  • Sam Parker's avatar
    [CostModel] Unify Intrinsic Costs. · de71def3
    Sam Parker authored
    With the two getIntrinsicInstrCosts folded into one, now fold in the
    scalar/code-size orientated getIntrinsicCost. This involved sinking
    cost of the TTIImpl into the base implementation, as it performs no
    target checks. The opcodes remaining were memcpy, cttz and ctlz which
    now have special handling in the BasicTTI implementation.
    getInstructionThroughput can now directly return the result of
    getUserCost.
    
    This had required a change in the AMDGPU backend for fabs and its
    always 'free'. I've also changed the X86 backend to return '1' for
    any intrinsic when the CostKind isn't RecipThroughput.
    
    Though this intended to be a non-functional change, there are many
    paths being combined here so I would be very surprised if this didn't
    have an effect.
    
    Differential Revision: https://reviews.llvm.org/D80012
    de71def3