[llvm] r211037 - Refactor the disabling of Thumb-1 LDM/STM generation
Eric Christopher
echristo at gmail.com
Mon Jun 16 10:06:28 PDT 2014
Thanks James!
On Jun 16, 2014 9:54 AM, "James Molloy" <james.molloy at arm.com> wrote:
> Author: jamesm
> Date: Mon Jun 16 11:42:53 2014
> New Revision: 211037
>
> URL: http://llvm.org/viewvc/llvm-project?rev=211037&view=rev
> Log:
> Refactor the disabling of Thumb-1 LDM/STM generation
>
> Originally I switched the LD/ST optimizer off in TargetMachine as it was
> previously, but Eric has suggested he'd prefer that it be short-circuited
> in the pass itself.
>
> No functionality change.
>
>
> Modified:
> llvm/trunk/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
> llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
>
> Modified: llvm/trunk/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMLoadStoreOptimizer.cpp?rev=211037&r1=211036&r2=211037&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMLoadStoreOptimizer.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/ARMLoadStoreOptimizer.cpp Mon Jun 16
> 11:42:53 2014
> @@ -1734,6 +1734,10 @@ bool ARMLoadStoreOpt::runOnMachineFuncti
> isThumb2 = AFI->isThumb2Function();
> isThumb1 = AFI->isThumbFunction() && !isThumb2;
>
> + // FIXME: Temporarily disabling for Thumb-1 due to miscompiles
> + if (isThumb1)
> + return false;
> +
> bool Modified = false;
> for (MachineFunction::iterator MFI = Fn.begin(), E = Fn.end(); MFI != E;
> ++MFI) {
>
> Modified: llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp?rev=211037&r1=211036&r2=211037&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp Mon Jun 16 11:42:53 2014
> @@ -203,8 +203,7 @@ bool ARMPassConfig::addInstSelector() {
> }
>
> bool ARMPassConfig::addPreRegAlloc() {
> - // FIXME: Temporarily disabling Thumb-1 pre-RA Load/Store optimization
> pass
> - if (getOptLevel() != CodeGenOpt::None &&
> !getARMSubtarget().isThumb1Only())
> + if (getOptLevel() != CodeGenOpt::None)
> addPass(createARMLoadStoreOptimizationPass(true));
> if (getOptLevel() != CodeGenOpt::None && getARMSubtarget().isCortexA9())
> addPass(createMLxExpansionPass());
> @@ -219,11 +218,8 @@ bool ARMPassConfig::addPreRegAlloc() {
>
> bool ARMPassConfig::addPreSched2() {
> if (getOptLevel() != CodeGenOpt::None) {
> - // FIXME: Temporarily disabling Thumb-1 post-RA Load/Store
> optimization pass
> - if (!getARMSubtarget().isThumb1Only()) {
> - addPass(createARMLoadStoreOptimizationPass());
> - printAndVerify("After ARM load / store optimizer");
> - }
> + addPass(createARMLoadStoreOptimizationPass());
> + printAndVerify("After ARM load / store optimizer");
>
> if (getARMSubtarget().hasNEON())
> addPass(createExecutionDependencyFixPass(&ARM::DPRRegClass));
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140616/6f809f17/attachment.html>
More information about the llvm-commits
mailing list