From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 130180 invoked by alias); 22 Jan 2018 16:02:02 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 130149 invoked by uid 89); 22 Jan 2018 16:02:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=H*i:sk:5A66097, H*f:sk:5A66097, universe, apache X-HELO: NAM03-BY2-obe.outbound.protection.outlook.com Received: from mail-by2nam03on0118.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) (104.47.42.118) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 22 Jan 2018 16:01:53 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=joel.sherrill@oarcorp.com; Received: from [192.168.1.121] (67.63.146.110) by BY2PR19MB0152.namprd19.prod.outlook.com (10.163.73.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.428.17; Mon, 22 Jan 2018 16:01:48 +0000 Reply-To: joel.sherrill@oarcorp.com Subject: Re: Unused GCC builtins To: David Brown , Manuel Rigger , gcc@gcc.gnu.org Cc: s.marr@kent.ac.uk, bram.adams@polymtl.ca References: <5A66076F0200008100014BC3@s05gw02.im.jku.at> <5A66097E.7010005@westcontrol.com> From: Joel Sherrill Message-ID: <1710b594-8989-6ed6-8457-0b7a03b087c2@oarcorp.com> Date: Mon, 22 Jan 2018 16:02:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <5A66097E.7010005@westcontrol.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: DM5PR19CA0016.namprd19.prod.outlook.com (10.175.226.154) To BY2PR19MB0152.namprd19.prod.outlook.com (10.163.73.146) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f3b8b8e2-6524-49e6-53de-08d561b17235 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(7021125)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:BY2PR19MB0152; X-Microsoft-Exchange-Diagnostics: 1;BY2PR19MB0152;3:3IIrhtJgzo5Li/pJcDqrnErHsY3z+U/68+t2KiCNUqORJDmUzddoX1MqYnOHihsdzACrPGcwM1bIcDSiUqSgnqqZgTNDMDZ2X86jZ/DkSOu1C62ehkZPD34cvo0QVTZj28rGl6AACBT5JlpTHJa5cRJOmjgvsbTC4FXMzk+8iUVfFBGev72sJnA7kARkFMbQIqcdGVX5eCL7s7rhFTn4VgWszoH/li6US7vJKmoK9l57EHzGRIF3/v8vprj/d6xt;25:Ta/oYeYCWd/qSqL7RtMIGPMG04oT1WF83tjzB1xxhVcx2mmoDToO4UnqHLEqfDMSzS5vfavPcKuRxyeziYpqq88e7Ew/FyF4c1mEPbV7PuFObASovCKS7uBEkZQ5RTbYI0zBcQWto3CL2qg2sQ+e9eC119EvrIYh1Y07BWtZPIjRtwdNThKzWBzpQAuhZZ7jSst3zheH5JqvvIBPmebRvDZLJAD791eDbOpS4iEcnP3cF1BljY1RMuNsiQh5gFsWhfUGy6vwHgSi7Kc9dlDv0j6TTjkiU1pFJy0CNQp50WkwhnSK7fJPcNFXG3EOwiFiwr6fZ8VqeJWzcONrHdcYIA==;31:FJqShMlmBeoCn0FcjYS02vS1ucHvgxMQ4UosidO9O2d5WSfRVqVhCXU14jmomaS11rG/aCuwGKFUsVkYMomzAXTJmOKEIa/5P4bCXL329v4QjtGw+N1d27XpJLrzJF7IS7Rd1TdPG1PsUs2w59yC4wCYJnx7s0qIahFn5sAulKpFa5TXXStamlKWbSWbk8aMng6OgumfF/6QjaRULO448ISb+/E3cHtnMjkrknxviTw= X-MS-TrafficTypeDiagnostic: BY2PR19MB0152: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(22074186197030)(183786458502308)(5213294742642); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040501)(2401047)(5005006)(8121501046)(3231023)(2400081)(944501161)(10201501046)(3002001)(93006095)(93001095)(6041288)(20161123558120)(2016111802025)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(6072148)(6043046)(201708071742011);SRVR:BY2PR19MB0152;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:BY2PR19MB0152; X-Microsoft-Exchange-Diagnostics: 1;BY2PR19MB0152;4:7BGS2QGppAoHmE4ZOo8O5huIRJzDnsaEWNdAdUv3hXohHGnklrzbh6tmCDgxMjSpzV7tuJiR68m6ypGXrDoNS+rykmrvHD9IGqUn9n/CeEF1tcu59BPhga6jvh0KrtDvOTufftR5pP7e6OdcBc/ewfPKQdNuAUEjcP+UeQvFwlQDJ4y3y3kfuBY7hDs7Z6rpNYlZofvKx3NQGvnRu5jjShJJIz9JxglBPiVCMNbkfeh8J4gi/vmGTgtsJ/icIRvk2HNynGHkk6JndqQT1jTcRO4cdWamRFGYyIN18kol+uBLl15pVIuenyfGhL3X6c0dKM9MXEvpjFAMNOlpuE+nxxuX4LMTwwLK/1/9TFzaPoKxO6pRAtNN1btvnfFCNaA7 X-Forefront-PRVS: 0560A2214D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(39830400003)(396003)(39380400002)(366004)(376002)(346002)(199004)(189003)(53754006)(7116003)(65806001)(65956001)(105586002)(68736007)(97736004)(52116002)(3450700001)(52146003)(2486003)(23676004)(66066001)(8676002)(8936002)(3480700004)(81156014)(81166006)(3846002)(6116002)(31696002)(7736002)(26005)(86362001)(77096007)(2950100002)(6666003)(76176011)(36916002)(5660300001)(305945005)(31686004)(316002)(110136005)(90366009)(3260700006)(117156002)(25786009)(16576012)(58126008)(386003)(43066004)(65826007)(67846002)(53546011)(6246003)(229853002)(966005)(106356001)(4326008)(6486002)(2906002)(83506002)(2870700001)(47776003)(16526018)(6306002)(64126003)(50466002)(53936002)(36756003)(478600001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR19MB0152;H:[192.168.1.121];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: oarcorp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjE5TUIwMTUyOzIzOlp2bER6WHZTMlMxVXpsV3JCUElTd2hQelNt?= =?utf-8?B?anZuOGVFNEJheDFkMXRIb0M0TmF4R3d1azlZNFE3YnEvVVRESTZVZzJXUkQ2?= =?utf-8?B?MVR3RUxSeHFHRGkyZXVDTWRvZWZNWGpBUmxRcnY4Sk5mR0lTYXJyTFZFdVdT?= =?utf-8?B?bXdwV04wRjNiUTZodVh2WWswd01YS0wrcGlOM0RGb2lnRkV2SURKNXhxcWQz?= =?utf-8?B?d0pUSDAvQ1UvWmhHZU9vRlBnUzIzbXNqL2l3Nm5zdXhsN1l0MmFZVWZvTi9m?= =?utf-8?B?bUltcXl6VkNwVjVoWEhXMDBMcTgyRFp1SDJvTDc0K2o5L0NtbkExVXlld00z?= =?utf-8?B?cWE0bkt6cDB5bk13QzU0UlM3dXVBRlZNTzNUVE1nbmRMeU55MVBZbElXUWV5?= =?utf-8?B?WktXZllqRUM0d002L2M2SEQ1eTJFa3dQWjJ6VzczU3lMZXQzVFUzem5xaERZ?= =?utf-8?B?OWZabmFnOUdZdXZ0azR2cmJ1U2JiajI4R1pJRGRNUGJPb1lCNERFUEdFLzVG?= =?utf-8?B?b1NDSStuUHlTejNnTnNRVHBXZEFOc09jeWRoSTl1WWZxN3d4cE1PcHdPTDBN?= =?utf-8?B?cDhIQ25jdjFzWDBMS1RJLzBtTE5MV3JxRnNHRzdxOEFPUTZwZElVTGNUV0do?= =?utf-8?B?WFhSeGQyWXNHaU9aRlJQYTRldDdWbFZvdDZ3Tmd0ZVlRUWZqbkNXQUFSMTN0?= =?utf-8?B?Mi9IRjF1YnI0TUhXU2toUGdNdjd0WU5RSXdCSWs2bWQ3ZGMwQ0JvUlNpbEpk?= =?utf-8?B?LzFjWWFvRFVmSG96UHZoaDFJT2xnVjlZUDdvaGlKVmo1QkJ0SnArbGZmV3Ni?= =?utf-8?B?Q3dEZ0c2a05RaFR0SW14T1IyVnM1WTN2d1ZxWDRhTmxLS1lRdGZKcEduWFhW?= =?utf-8?B?K1dHYlZoVzUrRjVKYkdOU0VWYkxuaUNJVlB5Q2tONXYva3pBSEk4N2lWUFRT?= =?utf-8?B?NDhlbGZxRm1Fc0Ywbjg4akg2SkIyNFpwclZBb3o1cm1DRE83M0FiMjZyYW9v?= =?utf-8?B?U2EzQ09RYkIvUUZRRUQwQUxDR2JOQVliaUJzclNZekhBQjZEQ2c4Y3ZXK3Jy?= =?utf-8?B?aE1wcjdhdlptRWRkSlJEQlE0TUU5WVlGaU90a3puSnhocDN6ekpGeW5SVWda?= =?utf-8?B?RHpGamdzVi9HVWI2QWdhaDB3ME5peVFra2hvcEJSUjBNV0toNyt5K0ExY29q?= =?utf-8?B?MGRXK1FEbkNzTWc4dXc2WEkvem1naDBucXdjazZlTEYyUFQ3Ly90U1VBQjVv?= =?utf-8?B?OUVITmFndmplY3M2eXQrNnVhR2JibXdMQjl3L0JoNjlJc0Y2ZTRZek1WVEFh?= =?utf-8?B?TEFOQTdwMkVNaFdkQ2J6eUF6MnJxbVEvY0pSL0RRc2R5NkxFKzZQUWdzZ1Zj?= =?utf-8?B?WVluVlNBenBkM1QzUUI4RDVrVHZUVnFoSTdoZXErNjF5ZTNYY0NCcVZId0tM?= =?utf-8?B?S1NwNUVhR0N6U2ltcXBzT1dNOTcvM1djOEF2a2YwYW9SU0FnTkZwNW5lZXNy?= =?utf-8?B?ZWZtTzFaTy9MWE5EaENOUWZrYTZKR1M0UC9qTXh4SkQ0eE5UWnExMGNTdzNp?= =?utf-8?B?aVh0SzhDWklSQkZoazRrRXRyT0J0SHdVeEZENitkZTRTUS9KZ0xWUkxHUnVi?= =?utf-8?B?MUNtYVZPSHp1czF5YUFIUlRpSDhOVXpMeTNURlNDekUyZUJBWUZQOXQ5Z2Fl?= =?utf-8?B?dU9CZFIwNnRBbFdTR3hEaDFubTZCTlg0dU1mRDEzR0M2a2JZbzBhd0ltaFVi?= =?utf-8?B?anNiUUtLeXdlNlJuUE9yRFdJRWQrQ1A2RkNEZVpHYVVWME4wZGhXOW5xeFVi?= =?utf-8?B?T2g1RzlXR1pMKzdFdVpvZ0tGVmtZcEVzVERya3V3a0F0eFk5Z0FranBiZlV5?= =?utf-8?B?WFM0T1UyZjBseFN1SVR4TXZjZWlXanJxK1dodHpaZm8yc1VoUGZmYWJXQ0NZ?= =?utf-8?B?bnY3VGg0S0VUSFhkVHljMzd5WWZPRmJXSnIzYVVPTWdzR1B3Vys0VzhIcWlT?= =?utf-8?B?bHIvR3VPRVRmOThuU2VjT0ZNK0o5cHN1bmZ2dS83OVo5YXZZTzZLR0VmeU1l?= =?utf-8?B?RWQrR2V5SDlCSnd0U3oxREl3Q0Fac3JXRHNmZ1lUWnNBNmFVeVRoNFMwZ0U4?= =?utf-8?Q?Nm0QwXin8VHJ7TtM28NvCKR6eR/ahiPAVe5ziJGH1cIK?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR19MB0152;6:Z84TugWH24uOWNRts8DvrfWN071zxrXjXsLVYgBrSVvz5fPMXxIhZys+mHMUGg0/qGL4Gy6+OyXD0xQavl4gTqsYfUZKh8Di2HXgHlqlq6cqeX9mfBQMrXX9EDk9fbOWnOQzVFEt2fL4y/JnB8ORZiGO5HLkOt8yf89+A+VtqjVFTbdPZstdzRWc7egQGYPf3pyifBOixSlP3tIv3ZI45CyZ4VG1MDWb0lHPr72Ar/trhcSGhEeeNxwPybAJDIRz4pgNceJBg6RUIONHbVlwuE1ZLP32gvdupcK+8hUZwV7a2L6Wo62VuDZuXBXB4Hj8J4LF2yGQmgsMzoHXvMR/xsKFbYT2mXCcyTY46j9a5Uo=;5:AsqHKzK1GxOjX6P9RO6ZuveSqzFA3iCyFnGFfXG972l3zBKorRggRNVw8mm3X2iOo4pczONJwvcCt6OAbh2iw57TAh95hn4Mn6Z8+MbcNhmFP3ouZKmGioHBjzkW1YOF8LoxurJinkgQ12qAaf89Y5Swaa3DS35MMXXBeOJCNu4=;24:yVSpNRXwiPYG7dPNMSe1rJZCiDhgG9nft5F6vz7+fi3TC16IdEgi4Up/1xBIx/bQcB2e//ui63GPycZboTfWCKncUECmf3qWTS6VnGOXGl0=;7:DUbdkCI4McX6FmLWIOHXJwjpS6bHpzoPOWGJ5oCWIs+kanUMXLSsPFzSiSG4YfUAY9g+Cz8A4B4a28DpYPdjSQXFEZDOD1aAqlydo+kfemHmDLtWxhit1Io41yK8JGBiRlAf1ullbsGqqtjya55LFh/YkphX4DKDbCdECLp/YeXqi2OmR/J7gUog88VMMr9gK2o6smIJIhC3lvwyVVo2/OlWnF+xxvavRtENz49RYFNrVfja6N+OBAjNnya51bRm SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: oarcorp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jan 2018 16:01:48.8964 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f3b8b8e2-6524-49e6-53de-08d561b17235 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7bdf32a6-03de-4c70-a71b-8665ba1294e3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR19MB0152 X-IsSubscribed: yes X-SW-Source: 2018-01/txt/msg00168.txt.bz2 On 1/22/2018 9:55 AM, David Brown wrote: > On 22/01/18 16:46, Manuel Rigger wrote: >> Hi everyone, >> >> As part of my research, we have been analyzing the usage of GCC builtins >> in 5,000 C GitHub projects. One of our findings is that many of these >> builtins are unused, even though they are described in the documentation >> (see https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html#C-Extensions) >> and obviously took time to develop and maintain. I’ve uploaded a CSV >> file with the unused builtins to >> http://ssw.jku.at/General/Staff/ManuelRigger/unused-builtins.csv. >> >> Details: We downloaded all C projects from GitHub that had more than 80 >> GitHub stars, which yielded almost 5,000 projects with a total of more >> than one billion lines of C code. We filtered GCC, forks of GCC, and >> other compilers as we did not want to incorporate internal usages of GCC >> builtins or test cases. We extracted all builtin names from the GCC >> docs, and also tried to find such names in the source code, which we >> considered as builtin usages. We excluded subdirectories with GCC or >> Clang, and removed other false positives. In total, we found 320k >> builtin usages in these projects, and 3030 unused builtins out of a >> total of 6039 builtins. >> >> What is your take on this? Do you believe that some of these unused >> builtins could be removed from the GCC docs or deprecated? Or are they >> used in special "niche" domains that we did not consider? If yes, do you >> think it is worth to maintain them? Are some of them only used in C++ >> projects? Might it be possible to remove their implementations (which >> has already happened for the Cilk Plus builtins)? >> >> We would be glad for any feedback. >> >> - Manuel >> > > Many of these are going to be used automatically by the compiler. You > write "strdup" in your code, and the compiler treats it as > "__builtin_strdup". I don't know that such functions need to be > documented as extensions, but they are certainly in use. > > You will also find that a large number of the builtins are for specific > target processors, and projects using them are not going to turn up on > GitHub. They will be used in embedded software that is not open source. > > I am sure there are builtins that are rarely or never used - but I doubt > if it is anything like as many as you have identified from this survey. > My first thought was that there is a lot of free and open source software that is not hosted at github. Larger projects are often self-hosted. Does this list cover all GNU, Savannah, sourceware.org, Apache, KDE, *BSD, Mozilla, etc projects? You might get lucky and some like RTEMS and FreeBSD (I think) have a github mirror. But github is not the entire universe of free and open source software. --joel sherrill RTEMS