[llvm-dev] disable loop unrolling for store of large objects? (original) (raw)
Bagel via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 29 10:08:02 PDT 2018
- Previous message: [llvm-dev] Issue with initialization order for ManagedStaticMutex
- Next message: [llvm-dev] disable loop unrolling for store of large objects?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
If a store has a type which is "large", the code generated is loop unrolled. For example:
%R = type {i32, [255 x i32]} @a = global %R zeroinitializer, align 4 define void @foo(%R* %y$) nounwind { L.0: %y = alloca %R* store %R* %y$, %R** %y %0 = load %R*, %R** %y %1 = load %R, %R* %0 store %R %1, %R* @a br label %return return: ret void }
generates a huge number of instructions. Is there a flag somewhere (I couldn't find one) that which cause this store loop not to be unrolled.
Thanks, brian
- Previous message: [llvm-dev] Issue with initialization order for ManagedStaticMutex
- Next message: [llvm-dev] disable loop unrolling for store of large objects?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]