From patchwork Thu Jun 9 23:15:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 34745 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6914:b0:82:6b11:2509 with SMTP id q20csp640087pzj; Thu, 9 Jun 2022 16:16:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzEm2t4fujbgYTJywI8fOGV+XSbCz4gZ2AsWkk46/+/K4Ab+KR+9s0GPkhaYgEQBqFuyuzr X-Received: by 2002:a17:907:7f06:b0:6fe:b81f:f885 with SMTP id qf6-20020a1709077f0600b006feb81ff885mr38281064ejc.621.1654816589281; Thu, 09 Jun 2022 16:16:29 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d24-20020a056402145800b0041d9354ecacsi4495762edx.222.2022.06.09.16.16.28; Thu, 09 Jun 2022 16:16:29 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=CU+flWi0; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4878C68B64E; Fri, 10 Jun 2022 02:16:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2107.outbound.protection.outlook.com [40.92.91.107]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7601768B64E for ; Fri, 10 Jun 2022 02:16:17 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ny9UEfQfG1FeWDi9n1JOKMlXEiU3rdveTcqGZEL5m3gIdGj3lLuFcw2VtQLKhMszDw8qvymsz7NzK0BYo4wxcoB5lhrBES31Lc/kYS3qxB1YjQTGSe/MLfgpNaj1n49BIjnRxyMTaMTqrwGYEwn/IwnPzt00LNRHXNuj/0ZPWJ0kxAFtnMKRLaq1qbYrnrjqljpW6sFlboMn3/tmMv823CeFn5Ho1u1nI/BA4FzQaQN5nRbFP/jf0L2mFsBWqdjck42MHy3n5ijVVSC4cATQHFFLaShoS7z45DOBSN8UXjL4kxmOcv/Kq9v1kqUxrhRxRHNubijP7UKLu3SECmgwCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UPsEAO01k6xLJgZGZTqT0Xcf/CfOLln9CdURTdXsAcY=; b=aj3FJQrntRql5nXmrsyizBz7S3ZPpofRVReTbjri1zd2kPtR5i/EtpeplRQRNv1Ehl9H3hJFP05kBkLzsf3hH32AWDzdQ5vgA3OfjhZXb9u39ljkqrKdnmUxMYlyvBP/d5AHVOJkflCg8VE/iYDvieg0Q5YZOk28GhG/uj5klL8ChFAwwA8bY4c9w7oClewGGcCPFkPeVsed03TXlo+7cheUc57ginjmZtP8nTr1CChTmin26XGwltSPA/Z/yvyVYF69oVaCrGFCLOK/IRN5sYzipUdpk7zgbWkRjwa2dqFlot3Kxbs4XbsQ1MAqbwq+mOvlz87owZRAQr0eqvmOvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UPsEAO01k6xLJgZGZTqT0Xcf/CfOLln9CdURTdXsAcY=; b=CU+flWi0MkXSAez2WWjtXcnq1WW34HsqzS11g8fSwSnyt2itNNhiig+4VPCej3JKJ/OcYh52lOUFbKx1Os4572eaRjqjBz4OfE4OA4AHITSEqGREMLBXJgpytIRBPWrojDsmbKsXsjpHD+PfZWq0k24IgLeIrO2lrhRJdw52XMJKb4zhP/KODo4qZuvGYyQ+kYSTP5Rbl4C9LoaTmQMkM3OSSfCeUb2u5Rxy2VqmYw/VBZG7nEoAjMIpM7ddJQY/wcm3hfFLgckjsnFls3Tew3XcB5oEFJO7p+tdAhq/FjQa0vpOgM7KOH6pcZf/Xp4vQqbnYE5adQSPTTHzslgOag== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by VI1PR01MB4334.eurprd01.prod.exchangelabs.com (2603:10a6:803:66::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5332.12; Thu, 9 Jun 2022 23:16:15 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%10]) with mapi id 15.20.5332.013; Thu, 9 Jun 2022 23:16:15 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 10 Jun 2022 01:15:23 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [WQ6e+1vlLClbCGscjHWxjO8IRMTsom6A] X-ClientProxiedBy: ZR0P278CA0164.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::14) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220609231604.271984-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 42bcc978-119a-4ad6-d9ae-08da4a6e0ca8 X-MS-Exchange-SLBlob-MailProps: EpEO96k6WonAGWAYIHxzt79KejfqWXcIXdiN7gFs+3B4eVvT7VvagIqSfrSINo+5mX8YCJjPUfpxTOwVkG12LB/BifQyOsFQ77e7t/0L0lq0ZnZ8ZJpgYqwyBQZ1pwL76wsneoa65Ps8d9azB4dQuSI9uezQU4bfFYL0nOCrKE2CaOmY27VDC/2xOWyuuntaPsk2Glkr/AXrIQZpQSNpygsRUFYOkK2eraeW8fnz4qUSPNRn0do0/t7F60k38Tcd3WfOSjf03191IhMFD2foUwf0s4Rynj9QgqwGLd2W375AFmeI4MtNCCy0x+8JJ2JKIC3rCX9QcHMZCpurZq4/sKmh9XdVDshl5fb51QNiwVZ6p5YqIkYeEOEGnsDgbPs1Ll34nJv6q+EflQ+lJbC+7PXfxcRXFCQa3a2tpb8R0r+uBFE+2XNY4tg7c0UyggnnZBt7NAqnM2CZ4xNPHER+xDEEwX7ulUqt1uOieDsE+otZ2u/URwjtQjWc4N/41U7glZUSKENNGYaXTo5E89Dt2zB7ywfDnSouBDlI7T4ZSvIwxnW8c3iK2tdRaQ2wGaIk45l3FCt1NFK+vBmTntl+aNFVsL9JYBYZlVqCHaC8hNfLBkZ9+f8iw0IPTG2+AQ0WnVfe576IT346jBzUiyeV1N5M39npKxAQciYDaBR9hEsiHk8Fn/aFfQI/vvZsHWZDryn/lhFRM/PE57LDGDSIkC1SUBhVLKcv3oRll4xPcuNBEBpeoMgbBTBa4Pom2KZ906EltJxgLSs= X-MS-TrafficTypeDiagnostic: VI1PR01MB4334:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PNo0Dw6ci+lVStU4b+GDwUPk+jYwb941zfc6h4+lX3kC90WUUy9ZASLQu96JxUXNFk7zBPldS0/oVq2ZGmTnfuyLMqBXAq4UCD0CGl21xojeZJRBWgCvh20aHQPxul5pgVyepqKXZHomzZzYAqL4eAT1tnL5XZQH2eXO5abIB45ZKal98Yc358Mz2TPl31ohb2MFysTShOpL1gcW5+usNHK8g9Rv3OUPZeDCIkLCotCrFCCq+CvKvIHA2iVcOnUXs20v6F/Xbjd2x6v0oxUdAhFWsN/GB21bZjlqF0U8SBpiA0CKJ9Thi/fDislEe3JRiqU5byfyVEMCY/eEYOuFmitw/rwgXek4Elr/dShofMYzESPZf+gB3hEQkaGng+lh0/ohZVPuTOsWa/rvke423p1e1oUqOVm82R8dgjZwRNDwv4YSEez5zI8NVGT21WBOEu/M4yxf8ks9FwziyNPcnUysbSTsLCXs+2ioI+LkAYWWxOYe6TkavVZmW1G4aw7mzlGNZ22d1arn3CUs7NusEcRS9aR5KsLnmAMj8FR2ziZUGVA+9dJ0QEEXyHNGtfsWXcqPFWvEDhN3Tr9iHqdgqQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: w+vAIN685vreizk1kKVt+W5VBQni8Qfz/o6L4Lo6ASDYJVXaAO2BZasyGUSYXEGb8nFNsWNiqIk6qnUms/VDUcxasnJ6/vEwx9NoYNjHF5J8alJYK2o9NJ3E7uGy2PlaCuzbI3XQnYmLWnFsl0o6VQR6qCi3RmzlHYs99G0/JHTFWeMTXM/dbBVNneEeZWiG98StjSfMMw2teOpRccn/x52CU9J0gZW+dIU/le0bUwpvSCKGnktALGyAI8Hxc0xUdBwgj8oxhfykwQBeg3LnNrBhdzS+OAa/Pwmt3SPgeXIW836dVRo4svtoSNCp84vWQt0JQx+wvqO2us3PATKZwpLEkKOrrxdCLCIWjQiqkl3nY2XVLink+F8Khf0nkGCgiWFwFUpXcksj/u5Q6BqAlneymvWfqRIkZHyWWeBl/+wuN8PzSCu9Fs4iu+yr6WDyXylLrQ41ikjW1HQnNTskCJTRq9NWFzih5n/N9Ow6L36x7g3lNHe3rN2U/sr4Zj7qSSiLJ1qaTpnr2lX+yjajdhEIPsPc35TRoshuqHizJA4JcykP5gtYqmTQgEOM7Q9lKdcNrVH1va6A0hjGtantmSrFX2AbGD9Rk1gCyWOesL0jembpvXomMpRlEfhhAenOtDIYNQhHmBEsqEfcLR0E5SA/u9fHtvqUt6v8VfbEib6bvIVECiKs3wcSwahTKDUxw/6h8PKDsej0Iy9qRaFgETxKHgDzIxOHIhoB21J5UGOHn4WBLz0SIdbAqCN/YJyzV2c5ypI5KYIrpMbvfoxjKD0tvSWG6F3oXKvv8tkRpaacB7e9pHhEL7jaTn6Mw9PW3xpjx3DmY+e0/ZN0iay9i9G1/L3HCkxZxzQjT9MbLM40lFjRffJFlz8sS2SCaR3C4RfWmFj6LBUMyG9SVn8fOsjs+gjCYaRS2a1BgGivZoLa20b9JifMMlT0M7qlH1CktHrnRLb13i3cSwmBVdNam3nlfxBe49nZPVSkYx2K4uLzfn8ujMHgJV0r1sE1jb8okxChVwzWEqabWWCkFNYyxuzWggo/nvJXeNg6wTSjFwC/bUWCDRtjw1u4a5AYE5DnWaN41XgOb4ZJS0+oZ2qz6D8bSWEArUaQzoqCO1+vbeF448UrSUElkFxHu5BdzQqGZ+sKXiPz7DWE8HnsUeWyhINNkoZuxw9rDf+yl6JoTXz3fGoAL4OLnFdO3GnROZjXHNQrZ/MubJI2zcrtWq03BWQUlmdeK/mzYqRGq9r2bOTzZhmmlXJf6ZHfcjDXyKpEOzEPt4oHywR+e+YNo+zN5izC9L5xNmFrAnmJWQb8xJoe5kg5pfN8bnJAeIy2GNSMBBYaGbAxT1epyNz27H6M1EXoeO0J8dCrmxwGpdc6K8IQsbKs+rrb6Q2i09wH1yawUsOWRhVvtGUiKjWlE45xwjUOKd6YA5NW4qV1GxBua2Y8mzFXDZHfJRPLFVI3fjRDqIQiumX29K5MaA07bKYxXA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42bcc978-119a-4ad6-d9ae-08da4a6e0ca8 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2022 23:16:14.9659 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR01MB4334 Subject: [FFmpeg-devel] [PATCH 00/41] Stop including superseded functions for x64 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 7+xTFD6PqyKH x64 requires MMX, MMXEXT, SSE and SSE2; yet there is no shortage of code like the following: if (EXTERNAL_MMX(cpu_flags)) { c->ssd_int8_vs_int16 = ff_ssd_int8_vs_int16_mmx; } if (EXTERNAL_SSE2(cpu_flags)) { c->ssd_int8_vs_int16 = ff_ssd_int8_vs_int16_sse2; } Given that SSE2 is always present on x64, the only way for the mmx version to be chosen in the above example is if SSE2 has been disabled either at compile-time or at runtime, i.e. it is never used unless one shoots oneself in the foot. This patchset therefore disables such functions for x64 by #if'ing them away; x86 has not been affected. This saves about 140KB. (Another way to handle this would be to remove every function that would be overridden if one had a processor capable of MMX, MMXEXT, SSE and SSE2. x86 processors not fulfilling this requirement (which are truely ancient nowadays) would still work, but would be slower, i.e. they would be treated as second-class citizens. This would have the advantage of avoiding #ifs and would lighten x86 binaries of code that is not used at all by the overwhelming majority of users. I'll update this patchset if it is preferred to do it that way.) Andreas Rheinhardt (41): avcodec/x86/qpeldsp: Remove unused ff_put_no_rnd_pixels16_l2_3dnow avcodec/x86/hevcdsp_init: Remove unnecessary inclusion of get_bits.h avcodec/hevcdec: Make ff_hevc_pel_weight static avcodec/v4l2_m2m: Remove unused ff_v4l2_m2m_codec_full_reinit avcodec/videodsp: Make ff_emulated_edge_mc_16 static avcodec/x86/fpel: Remove unused ff_avg_pixels4_mmx avcodec/x86/rv34dsp: Remove unused ff_rv34_idct_dc_mmxext avcodec/x86/h264_qpel_8bit: Remove unused function avcodec/x86/vc1dsp_init: Disable overridden functions on x64 avcodec/x86/ac3dsp_init: Disable overridden functions on x64 avcodec/x86/audiodsp_init: Disable overridden functions on x64 avcodec/x86/diracdsp_init: Disable overridden functions on x64 avcodec/x86/mpegvideoenc: Disable overridden functions on x64 avcodec/x86/fdct: Disable overridden functions on x64 avcodec/x86/hevcdsp_init: Disable overridden functions on x64 avcodec/x86/rv40dsp_init: Disable overridden functions on x64 avcodec/x86/cavsdsp: Disable overridden functions on x64 avcodec/x86/h264_intrapred_init: Disable overridden functions on x64 avfilter/x86/vf_noise: Disable overridden functions on x64 avcodec/x86/me_cmp: Disable overridden functions on x64 avcodec/x86/mpegvideoencdsp: Disable ff_pix_norm1_mmx on x64 avcodec/x86/h264dsp_init: Disable overridden functions on x64 avcodec/x86/sbrdsp_init: Disable overridden functions on x64 avcodec/x86/idctdsp_init: Disable overridden functions on x64 avcodec/x86/blockdsp_init: Disable overridden functions on x64 avcodec/x86/pixblockdsp_init: Disable overridden functions on x64 avcodec/x86/lossless_audiodsp_init: Disable overridden functions on x64 avcodec/x86/svq1enc_init: Disable overridden functions on x64 avcodec/x86/fmtconvert_init: Disable overridden functions on x64 avcodec/x86/hpeldsp_vp3_init: Disable overridden functions on x64 avcodec/x86/hpeldsp_init: Disable overridden functions on x64 avcodec/x86/h264_qpel: Make functions only used here static avcodec/x86/h264_qpel: Disable overridden functions on x64 avcodec/x86/h264chroma_init: Disable overridden functions on x64 swresample/x86/audio_convert_init: Disable overridden functions on x64 swresample/x86/rematrix_init: Disable overridden functions on x64 swscale/x86/rgb2rgb: Disable overridden functions on x64 swscale/x86/yuv2rgb: Disable overridden functions on x64 swscale/x86/swscale: Disable overridden functions on x64 avfilter/x86/vf_eq_init: Disable overridden functions on x64 avutil/x86/pixelutils_init: Disable overridden functions on x64 libavcodec/hevcdec.c | 10 +-- libavcodec/tests/x86/dct.c | 4 +- libavcodec/v4l2_m2m.c | 76 --------------------- libavcodec/videodsp.c | 4 ++ libavcodec/videodsp.h | 1 - libavcodec/videodsp_template.c | 1 + libavcodec/x86/ac3dsp.asm | 5 ++ libavcodec/x86/ac3dsp_init.c | 2 + libavcodec/x86/audiodsp.asm | 4 ++ libavcodec/x86/audiodsp_init.c | 2 + libavcodec/x86/blockdsp.asm | 4 ++ libavcodec/x86/blockdsp_init.c | 2 + libavcodec/x86/cavsdsp.c | 20 ++++-- libavcodec/x86/cavsidct.asm | 2 + libavcodec/x86/diracdsp_init.c | 4 +- libavcodec/x86/fdct.c | 12 ++-- libavcodec/x86/fdctdsp_init.c | 2 + libavcodec/x86/fmtconvert.asm | 4 ++ libavcodec/x86/fmtconvert_init.c | 2 + libavcodec/x86/fpel.asm | 3 +- libavcodec/x86/h264_chromamc.asm | 4 +- libavcodec/x86/h264_deblock.asm | 24 ++----- libavcodec/x86/h264_idct.asm | 57 ++++------------ libavcodec/x86/h264_intrapred.asm | 26 ++++++++ libavcodec/x86/h264_intrapred_10bit.asm | 16 +++++ libavcodec/x86/h264_intrapred_init.c | 20 ++++-- libavcodec/x86/h264_qpel.c | 88 ++++++++++++++----------- libavcodec/x86/h264_qpel_8bit.asm | 5 +- libavcodec/x86/h264_weight.asm | 8 +++ libavcodec/x86/h264chroma_init.c | 2 + libavcodec/x86/h264dsp_init.c | 21 ++++-- libavcodec/x86/hevc_idct.asm | 2 + libavcodec/x86/hevcdsp_init.c | 7 +- libavcodec/x86/hpeldsp.asm | 22 +++++++ libavcodec/x86/hpeldsp_init.c | 40 +++++++---- libavcodec/x86/hpeldsp_vp3.asm | 4 ++ libavcodec/x86/hpeldsp_vp3_init.c | 2 + libavcodec/x86/idctdsp.asm | 6 ++ libavcodec/x86/idctdsp_init.c | 4 ++ libavcodec/x86/lossless_audiodsp.asm | 2 + libavcodec/x86/lossless_audiodsp_init.c | 2 + libavcodec/x86/me_cmp.asm | 6 ++ libavcodec/x86/me_cmp_init.c | 61 ++++++++++------- libavcodec/x86/mpegvideoenc.c | 8 ++- libavcodec/x86/mpegvideoencdsp.asm | 2 + libavcodec/x86/pixblockdsp.asm | 4 ++ libavcodec/x86/pixblockdsp_init.c | 2 + libavcodec/x86/qpeldsp.asm | 2 - libavcodec/x86/rnd_template.c | 2 + libavcodec/x86/rv34dsp.asm | 13 +--- libavcodec/x86/rv40dsp.asm | 2 + libavcodec/x86/rv40dsp_init.c | 10 +-- libavcodec/x86/sbrdsp.asm | 2 + libavcodec/x86/sbrdsp_init.c | 2 + libavcodec/x86/simple_idct.asm | 2 + libavcodec/x86/svq1enc.asm | 2 + libavcodec/x86/svq1enc_init.c | 2 + libavcodec/x86/vc1dsp_init.c | 41 ++++++++---- libavcodec/x86/vc1dsp_loopfilter.asm | 2 + libavfilter/x86/vf_eq.asm | 2 + libavfilter/x86/vf_eq_init.c | 4 ++ libavfilter/x86/vf_noise.c | 4 ++ libavutil/x86/pixelutils.asm | 4 ++ libavutil/x86/pixelutils_init.c | 4 ++ libswresample/x86/audio_convert.asm | 2 + libswresample/x86/audio_convert_init.c | 4 ++ libswresample/x86/rematrix.asm | 2 + libswresample/x86/rematrix_init.c | 2 + libswscale/x86/rgb2rgb.c | 6 ++ libswscale/x86/rgb2rgb_template.c | 10 +-- libswscale/x86/swscale.c | 6 +- libswscale/x86/yuv2rgb.c | 13 ++-- libswscale/x86/yuv2rgb_template.c | 5 +- libswscale/x86/yuv_2_rgb.asm | 5 ++ 74 files changed, 472 insertions(+), 292 deletions(-)