[clang] [llvm] [MC] Make UseAssemblerInfoForParsing mostly true (PR #91082)

Fangrui Song via cfe-commits cfe-commits at lists.llvm.org
Mon May 20 11:32:26 PDT 2024


MaskRay wrote:

> @MaskRay It looks like the new version still causes large compile-time regressions for sqlite3 debug builds: http://llvm-compile-time-tracker.com/compare.php?from=7529fe2e92e79eef22a528a7168e4dd777d6e9bd&to=9500a5d02e23f9b43294e5f662ac099f8989c0e4&stat=instructions:u It's smaller than before (2% instead of 4%) but still there.

Thanks for the report. 245491a9f384e4c53421196533c2a2b693efaf8d should fix the regression.

---

Related to the poor performance of MCAssembler based constant folding
(see `bool MCExpr::evaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm) const` and
`AttemptToFoldSymbolOffsetDifference`),
commit 9500a5d02e23f9b43294e5f662ac099f8989c0e4 caused -O0 -g compile time regression.

9500a5d02e23f9b43294e5f662ac099f8989c0e4 special cased .eh_frame FDE emitting. We need a special case for .debug_* emitting as well to mitigate the rest regression.

---

The MCAssembler based constant folding strategy should be improved to remove the two special cases.


https://github.com/llvm/llvm-project/pull/91082


More information about the cfe-commits mailing list