From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NOR01-OL1-obe.outbound.protection.outlook.com (mail-ol1nor01on2067.outbound.protection.outlook.com [40.107.224.67]) by sourceware.org (Postfix) with ESMTPS id 106483858C52 for ; Thu, 19 Oct 2023 16:03:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 106483858C52 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=westcontrol.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=westcontrol.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 106483858C52 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.224.67 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1697731420; cv=pass; b=FrNZNrJSjQrcGLTev6oLthCAsbmW65SCf6U1dDCsoUJUlGv9KMKJFp1eGEALERY6jQZoKbdp3FCL8f1bl8tBHVwH9nl9+4XVHLBLiMuAAktK634kBTrK1YbRqhzdEEUkkmag1JO9gQkcPvjvzq7br2JIbGTGhVETgWeZEQ7jjsU= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1697731420; c=relaxed/simple; bh=0bwUQ8VMoQ8JBevYQ2o9bHuxV0xkKTGYy9qo8jZkKmo=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=he9jWAJCa/tNIvNHpaPdM1v5aBnMLiIIfY0GNqLKMlso6RhLWSJHDbNm1kJPhlQA67VStGdTe2ICX7+o5b5z2szTm1ywZh9hHDia8y+ykCzcmqXpLjkC3lhPNMqSPhwXgQLwGH8RMJ4SGmyFpe9xrNzSKvsnX6WhxPoSwtpR+bs= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ToKrjHNl1qEzdHOuoL9RAKwaNriEiIdkZDpZ5VT56KHTQHjIKse5DQxXNpUx3pHv4eW4KXulZ88xTPb8o0nvCGsWXiEsGl4ntVsXXXIb0L7QWjCwoWW+6JYQx8GFwCCbi4B1YEmv2U2SpcTje0I3Fd5lBgqkRFk+lEDdk2IB/bZJKYYWi8RL38YGp3DFE+0M4OO1p6EdR7URNdpYXYl1/fSItSbJqLrk5ibIlmautgHVk7MiAYN4xixd2lk97JsCw/gbauZWO5RKRvRwTedBt1ESOryR3ornvQN6ihCXm6BXmFpMAtjZlFiOLa+pRa+hB9B1r1LcNQ4RR298rPRIbg== 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=8gF4iFeJR09merCUro4bKzgEU7Y279brMYLWQA173Bk=; b=RGKxjRF8TXibDG7Erg5HSS5d09zJNBNNPoBY1IFzQobAWm6dQubVyUXqNRWmxgcZaXjgxvd2DpP6x59DDhziO0cusG9uRPogSvoMye7y/a/30AHk0oWcB/SUWa751hUFeFSofQtiwuj2vBsfGJ64sySCNk9JTj51cma1eWeF8DdQu/bnV9u/Jbs+eUad8T04bXBXXi6gxVw91CyTHHCGgYgIuw2yIpEhbvaDaq4ikOg6aY+sPCGZjb7dqZOcw/qLypidelAuh8BC20Pc1aOnX/44Sx07DrT5FUWm4Dy4PZ8D8yXCQcX4f0DsBXpZryacgN0MJkv6IvXtsOyZ5X513g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=westcontrol.com; dmarc=pass action=none header.from=westcontrol.com; dkim=pass header.d=westcontrol.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=westcontrol.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8gF4iFeJR09merCUro4bKzgEU7Y279brMYLWQA173Bk=; b=dOyWRp/8P2zyaDZdu4ZdimhVp5vj54Y2qfyEn1vK5DIryt+XBDBAPoLmaWRGblLzl9IBQJaKb74IsWR209MLZf28HgyMzWiWprkvVrJX7/YSOpeawVt8TgPArCsckzBt/63C4EHDh2VsHIPGWzMLsxlIJRH3UT5cLLZMADxva3yKMB1U/MdViojkgYIwJBvKfGFVrm4C9UiD/2Oh78p71G5Ta+uo1S3rrxDlKmizjmIPlNfQEjKUTtou5B53FAtf1zNpVDGBy47RU0+rha9bU4BeaWI1EkypYC7N8s9wwOIowlq3qFPz6NnNtUZ3f3CmQJsOewXul83l0alS/PNmkg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=westcontrol.com; Received: from SV0P279MB0233.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:b::13) by OS5P279MB0694.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:22::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.25; Thu, 19 Oct 2023 16:03:36 +0000 Received: from SV0P279MB0233.NORP279.PROD.OUTLOOK.COM ([fe80::1e40:a4aa:a2b2:3c70]) by SV0P279MB0233.NORP279.PROD.OUTLOOK.COM ([fe80::1e40:a4aa:a2b2:3c70%4]) with mapi id 15.20.6907.022; Thu, 19 Oct 2023 16:03:36 +0000 Message-ID: <7834093f-0639-9ae1-cf9f-b0377a26f00b@westcontrol.com> Date: Thu, 19 Oct 2023 18:03:35 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: Compilation of lengthy C++ Files Content-Language: en-GB To: Kai Song , gcc-help@gcc.gnu.org, jwakely.gcc@gmail.com References: From: David Brown In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SV0P279CA0030.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:12::17) To SV0P279MB0233.NORP279.PROD.OUTLOOK.COM (2603:10a6:f10:b::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SV0P279MB0233:EE_|OS5P279MB0694:EE_ X-MS-Office365-Filtering-Correlation-Id: d5c92b78-bf6b-4e2a-c196-08dbd0bcf3a2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Hs0Thw95m1MxwNoxdYcExkY9yQMiwuWyPxzvAb0PIIFAqQlI63fK2f5OoJgm+J6AlRge3NVcbzoQOmAKB1T2SGEIBZ4N5dTl2qzYa0TVjU2W1Jly87/jgAWx7sf3Eni4zHHywquo45+tGm+K5iWWibJ8iQbxy2GSKdlWbZBGroGkbmEZJ0PuQ5RWWJuz5xz2NEgqYVgs0FHiqKRHtrjRQa6LNv9TZniZSvebP4HLlnrKrr+RqY7dTfjpm3jhIsye4lBXdszrI1K3Kj9TvkFVmdJRXnk2Qo5NxnUuzn07rE32QMDDk9zsc/VLA28FAxj13IEDk14+HVryrpicm4oPacx8lNWMCPP8l15oh65FjF6bq/g7Zc6LwfW7yAx457GJu3wCUrLXF+v2iHyu3CswrHxcYBQDFLTh9kaosVdsRstdb43EJsBSeMBrD9y/nSNfGI2IrKjyBJ2OhtziGAMhmCyd3mjTvwIdJoCJzBlB95JvcMnjcmNZW1Dq6WAgh7GS31uuDuqWlLW8TtxDN9DgfJiKOl0HT0JOh+jsuZe4E9wTxU+mFdhViDMf/z9c62tHJyZbIHaAoyAY3p6YAU0/FBsfXzVejPsCT+5dOczJRcSwLaoOtteo7k6nR2/YNRcTRDwWkCxj3pmQVPdq8FwDYQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SV0P279MB0233.NORP279.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(39850400004)(376002)(396003)(136003)(346002)(366004)(230922051799003)(186009)(1800799009)(64100799003)(451199024)(38100700002)(478600001)(66476007)(6486002)(6506007)(6512007)(53546011)(66946007)(66556008)(316002)(41300700001)(5660300002)(8936002)(8676002)(2906002)(83380400001)(2616005)(26005)(86362001)(36756003)(31686004)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eDJ2QnFEUUFjZnlhbFVIOTUzeHNFL2E3dnlYR0JFYTU1ZERyTXVvTXBEVGJI?= =?utf-8?B?d1I1TTIrd3VlMXFYSk92ZXFtR2NubFpPVVU3NXpGdHJ3NGFKaW5VMzhpS1lZ?= =?utf-8?B?ejd3OHNXeWl1Y09Kd2t3QmozK05LZXhVczF2OGNBVC9JSlNpZ1RReEdzdVBS?= =?utf-8?B?U0VuVUNQWlVBTGU3eUxwczNiLzhNRXRSb3ZzNzROMjlFQUxBOTNCUE56S01F?= =?utf-8?B?aVdrWjRDcGluR2FDUzY0anFvTENiRUV4WGI1NlNFZ2RRaUJFU2xORTJBTFFY?= =?utf-8?B?ektQWllWeGtqcXJud1RrSEZZQWNhTGhaUnZqVVQ4OTBJUE1MTWI5VUdLblYv?= =?utf-8?B?QnhrNVNRRVFyazNQalRMR3B5MW5VMDRuUlpZTUV5bmF0Skcyc3d2dGtVSXFP?= =?utf-8?B?elhIQVIwdWZzVU9peTdUZWR5WUE5TDEvSGxMTDFRNjc3ZndOVDRzSFF5bVNO?= =?utf-8?B?SWdaRjZ0NWVDK3NnaCtIZjRwZElGTENsODJVZU5QclpxaU5BdEZrRUhsank5?= =?utf-8?B?eVlvaEpxUlBLdG0xcHh6TENtQkRnOHU2bkJDTXUzeVZrOFdQWEZkemw5bXA5?= =?utf-8?B?d0g3WWhFbUd2QXIzd093WG50bE1KSHZaZDd4NzNBVy8xaVBsQ1JzRWFXT2w2?= =?utf-8?B?ZHpkaUw5UTBTRmVpWmZvTzBUemt6RVFxSUc5TWF4a3BiV25qMXI3cGNydmMr?= =?utf-8?B?RXhvMEQ5WDdGQzRGQy9CUVJKU1ZFMmVkNDZ5OGVzc2ozYVV1S0pRZGFEendn?= =?utf-8?B?ZFB2VENOc3ZnWHQ3UWhEcmtBcENaTlZlVUZpSy9ETHlKRS9rMStNQ3lRRmRP?= =?utf-8?B?T05GYlNDUUtOSXdqV0ZPcithY1BVMmE2UjEwMm9qOFA0SkQ0bzJkZURnQWp3?= =?utf-8?B?alVLYUJEYjdPNit2aHljMkJMNDRua215L3hNaDRFKzgxYXB6b2Vjb1Z1d09x?= =?utf-8?B?N2Zqc2dzZll1QU5sZXJVMEtJbGxuclllMk5Oc2MxYTkxMkcvbTY3cEwzVHNt?= =?utf-8?B?Wk9yajNvRVNaN0dSVVpPVkpoMzlpZ1EyRU5jSThpYkErc3QvK1pKUlFla0R5?= =?utf-8?B?WENSVWV6SDJxd3VLTTBBajg3QTZXQ0FqN2JZUDladzRPL1kzVXFneFdnQm1Y?= =?utf-8?B?bi9INC9CNXlTL3EwdFFJT09EZk1Vb21yTmxnWEhrQW0wTkhBaHBUU0pqZG12?= =?utf-8?B?VXd0cm9GUkd0OTRDdVJjVzF1NGxvZ09qTVJLaDhOU2JFRzhMbm81RGJsZ3F0?= =?utf-8?B?bUJ6OVQrbG5LN2ZCMGpMY3JkZU5FaEp6bEtReDBRQXlQQ1VmTkFxWmpBRmtk?= =?utf-8?B?akRFTW8yRUhXZlJoeE9oRDZLeHpuendUTDNRVEIwVVh4Vk5lNkpLTllsRjFD?= =?utf-8?B?am9VWWh2NTJjUzNqY3ljS2xLeUdTeVJJWXRhVlNDWnRjUHdQUmhFMkpKS1V3?= =?utf-8?B?NFplNnY1Qzdmbkh4Q0krbHBFTDgxQTJ6bkY2K0NUQUNta2Z3TU5lVElvcE92?= =?utf-8?B?ZlBieUlsbXRpdjFJbGRjaVhLZDhCQ2pSSVQwcmcwczVEa2JUNjNvcW1mY2xY?= =?utf-8?B?d2F2UG1nMC9ZZnZ2N0JUU2hRQkM1bEYvdDZLS2F2VndaWkhDVFE1MGFURDVH?= =?utf-8?B?ZENlMnBtUnBWWEQ2REE3LzZ6by9QV0R5TXZFK0hmcnoxYWY5WndoS2o2MUZT?= =?utf-8?B?bzJtWW9OV3B4T3pkbkFiVEVQK3Y5UVdYdEV6MVUwQlEybkFFVnJLUVNqTm9G?= =?utf-8?B?MlpoUmFkTmVMK2kySHNRd0szRWRVaXNvU1Fuek50UUNrWEtlcFFISG9xaEtS?= =?utf-8?B?YVVCZlRJNXV5dEVYSjNacDFtWUROZ2hkM0xjR3JjaWpDbzIxeG9WNGhEbGlu?= =?utf-8?B?QlFsL3FZN1gveEZieWZXQjd4ZUdNR2pORkpZM1h6N3lyenVjbUhzanR3N1pT?= =?utf-8?B?MmlRamVzRUpXNGdpdWFLTGg0SE9ZZnF1NzFJTHFlREdERWU2Ymt1S0RKWitD?= =?utf-8?B?TldRK0w0c1JZSXVVcDVRR0RxY0JmQ1NKdGgyMEhTbit0cnd6Kzl0QXRqcVpM?= =?utf-8?B?d0E3NGhhbCs1eStZdmJlamk4QzVLWWhzWjlaN0lDV2pSakhLc2M3MGZaSmtk?= =?utf-8?Q?6dsOXpDhuCYTfWFNkc0fD2LEK?= X-OriginatorOrg: westcontrol.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5c92b78-bf6b-4e2a-c196-08dbd0bcf3a2 X-MS-Exchange-CrossTenant-AuthSource: SV0P279MB0233.NORP279.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2023 16:03:36.4674 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: c75fbd3c-42ad-4db0-9cff-972faf83ae45 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zHA6L2t2SsURWb3US1BrkOIvsNxy3lo5kWlzb2cETZldDC6Ho/v8iMqEn2nfXdv8P3axxZu+FUDckfAm3WOs6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS5P279MB0694 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 19/10/2023 17:11, Kai Song via Gcc-help wrote: (It can be helpful to include attributions when replying, so that it is clear who wrote what. Thus you should have this line included:) > On 19/10/2023 16:26, Jonathan Wakely via Gcc-help wrote: >> Nothing you have said actually explains why you can't refactor the >> code into utility functions that avoid doing everything in one huge >> function. >> > > Because there are no two pieces of code that are exactly identical. The > relative distance of two variables being involved into an identical formula > will change with every line. > Example: > Line 1000: tmp[100]=foo(tmp[101],tmp[102]); > Line 2000: tmp[200]=foo(tmp[201],tmp[203]); // dang it, not tmp[202] but > tmp[203] > It is like with penrose tiling. It seems all identical but the details > break it. You just do not find two identical local areas. No-where. And if, > you have to particularly search for them by brute-force, and that should > become useless whenever the particular pattern you try to find does just > not exist in that particular user's instance. > Surely this is screaming out for a table? const int foo_table[][3] = { { 100, 101, 102 }, { 200, 201, 203 }, ... }; for (int i = 0; i < 100000000; i++) { tmp[foo_table[i][0]] = foo(tmp[foo_table[i][1]], tmp[foo_table[i][2]]); } This will turn your million-line program into a four line program with a big table, which will compile quickly and run faster.