https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117282
--- Comment #3 from Feng Xue <fxue at os dot amperecomputing.com> --- (In reply to Andrew Pinski from comment #2) > >could we introduce a new option like -mcmodel-dyn{=tiny/small/large} as a > >supplement to -mcmode > > This would cause too many confusion really. especially depending on the > definition of your tiny/small/large. I rather see other optimizations happen > in before this kind of hacks. This code piece(with conversion) exists in SIR17 523.xalanc, 7% improvement if optimized. "tiny/small/large" is from "-mcmodel", target specific, or define a middle-end aware option like: -fdata-object-size="size-limit", default value is hardware address space. For normal 64-bit "small" application, we could set "-fdata-object-size=2^32". Actually, this option could also help VRP, especially pointer-difference operation.