HomeFreeBSD

Pull in r325478 from upstream clang trunk (by Ivan A. Kosarev):

Description

Pull in r325478 from upstream clang trunk (by Ivan A. Kosarev):

[CodeGen] Initialize large arrays by copying from a global

Currently, clang compiles explicit initializers for array elements
into series of store instructions. For large arrays of built-in types
this results in bloated output code and significant amount of time
spent on the instruction selection phase. This patch fixes the issue
by initializing such arrays with global constants that store the
binary image of the initializer.

Differential Revision: https://reviews.llvm.org/D43181

This should fix a compiler hang (and excessive memory usage) while
building the science/rmg port.

Approved by: re (kib)
Reported by: yuri@tsoft.com
See also: https://bugs.llvm.org/show_bug.cgi?id=38798
MFC after: 3 days

Details

Provenance
dimAuthored on
Parents
rS338696: Revert r338695: it depends on r334032, which was not MFCed.
Branches
Unknown
Tags
Unknown