yroux added inline comments.
================ Comment at: llvm/lib/Target/ARM/ARMTargetMachine.cpp:553 addPass(createARMConstantIslandPass()); - addPass(createARMLowOverheadLoopsPass()); + if (!MachineOutlinerEnabled) + addPass(createARMLowOverheadLoopsPass()); ---------------- samparker wrote: > yroux wrote: > > samparker wrote: > > > We'll need the LowOverheadLoops pass to run for correctness, so we should > > > instead only add the MachineOutliner if the subtarget doesn't support LOB. > > What do you mean by "for correctness" ? > > > > I think that it makes more sense that until MachineOutliner and > > LowOverheadLoops can work together, we have loloops enabled on targets > > which have LOB support unless it is explicitly disabled by > > -disable-arm-loloops flag or if the user wants machine outlining with the > > flag -moutline. If we do that in the opposite way it means that passing > > the flag -moutline will have no impact on such targets unless the > > -disable-arm-loloops flag is used > > > Ok. Well, the HardwareLoops pass inserts intrinsics, which are lowered to > pseudos and then finalised by ARMLowOverheadLoops so the compiler could crash > with this logic. TTI controls whether we generate a low-overhead loop and it > also controls whether the vectorizer tries to optimise for those loops too... > So, I think TTI will need to understand when we're trying to use the outliner > too. Ah Ok thanks, I'll try to find how to add that info into TTI Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D76066/new/ https://reviews.llvm.org/D76066 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits