Re: [PATCH] RISC-V: Return implied_exts by const reference
Jeffrey Law <[email protected]> Tue, 4 Aug 2026 11:01:55 -0600
| Newsgroups | gmane.comp.gcc.patches |
|---|---|
| Message-ID | <[email protected]> |
On 8/4/2026 12:43 AM, Jin Ma wrote: >> On 7/22/2026 5:50 AM, Jin Ma wrote: >>> riscv_ext_info_t::implied_exts() returns its std::vector member by >>> value, but all three callers (check_implied_ext, handle_combine_ext, >>> riscv_minimal_hwprobe_feature_bits) only iterate over the result and >>> never need ownership. Every invocation therefore copies the entire >>> implied-extension vector. During option parsing this runs once per >>> compiled source file; at -O0 the optimisation passes are skipped so >>> option-parsing overhead dominates, causing a 6.7% compile-time >>> regression on CSIBE -O0 benchmarks. >>> >>> Return a const reference instead. The underlying m_implied_exts >>> member lives in a static global map entry and outlives every caller, >>> so no dangling-reference risk exists. >>> >>> gcc/ChangeLog: >>> >>> * common/config/riscv/riscv-common.cc >>> (riscv_ext_info_t::implied_exts): Return const reference >>> instead of by-value copy. >> This is OK assuming it has gone through the usual testing (no testing >> was mentioned). > Hi Jeff, > > I did omit the testing information from the original email. Sorry. > > The patch passed my local CI with no new failures. Since this change > affects a common code path exercised by most tests, I do not think an > additional test case is necessary. > > OK for trunk? Yes, it's OK for the trunk. Thanks. jeff