Commits
Arnold Schwaighofer committed 87fe2bf7362
stdlib: Add a _isClassOrObjCExistentialAndSizeofAnyObject function The function _isClassOrObjCExistentialAndSizeofAnyObject encapsulates the "sizeof(x) == sizeof(AnyObject)" check and the call to swift_isClassOrObjCExistential. The sizeof(x) check cannot be eliminated at the SIL level and creates extra control flow such that the call to swift_isClassOrObjCExistential does not dominate. Encapsulating both checks results in one function call that does dominate allowing us to CSE calls when we add the attributes inline(late) and effects(readnone). benchmark``````````````,``baserun0``,``optrun2``,``delta,``speedup ClassArrayGetter```````,``977.00````,``571.00```,``409.00``,````````72.0% DeltaBlue``````````````,``2594.00```,``2086.00``,``311.00``,````````14.9% Rectangles`````````````,``921.00````,``605.00```,``314.00``,````````52.0% rdar://17961249 Swift SVN r21287