mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-20 12:31:40 +00:00
Fix PR1446 by not scalarrepl'ing giant structures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37326 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d20d40299b
commit
7139406707
@ -148,6 +148,8 @@ bool SROA::performScalarRepl(Function &F) {
|
||||
if (AllocationInst *A = dyn_cast<AllocationInst>(I))
|
||||
WorkList.push_back(A);
|
||||
|
||||
const TargetData &TD = getAnalysis<TargetData>();
|
||||
|
||||
// Process the worklist
|
||||
bool Changed = false;
|
||||
while (!WorkList.empty()) {
|
||||
@ -177,7 +179,9 @@ bool SROA::performScalarRepl(Function &F) {
|
||||
// value cannot be decomposed at all.
|
||||
if (!AI->isArrayAllocation() &&
|
||||
(isa<StructType>(AI->getAllocatedType()) ||
|
||||
isa<ArrayType>(AI->getAllocatedType()))) {
|
||||
isa<ArrayType>(AI->getAllocatedType())) &&
|
||||
AI->getAllocatedType()->isSized() &&
|
||||
TD.getTypeSize(AI->getAllocatedType()) < 128) {
|
||||
// Check that all of the users of the allocation are capable of being
|
||||
// transformed.
|
||||
switch (isSafeAllocaToScalarRepl(AI)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user