[llvm] r233153 - 'optnone' should not disable DAG combiner.

David Blaikie dblaikie at gmail.com
Tue Mar 24 19:13:24 PDT 2015


On Mar 24, 2015 5:18 PM, "Paul Robinson" <paul_robinson at playstation.sony.com>
wrote:
>
> Author: probinson
> Date: Tue Mar 24 19:10:24 2015
> New Revision: 233153
>
> URL: http://llvm.org/viewvc/llvm-project?rev=233153&view=rev
> Log:
> 'optnone' should not disable DAG combiner.
>
> Reverts the code change from r221168 and the relevant test.
> It was a mistake to disable the combiner, and based on the ultimate
> definition of 'optnone' we shouldn't have considered the test case
> as failing in the first place.

Leave the test case in and switch the expectation (& perhaps add a comment
explaining why this the right choice and the previous one wasn't) so
there's breadcrumbs if anyone else gets the same idea again in the future?

>
> Removed:
>     llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll
> Modified:
>     llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
> URL:
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=233153&r1=233152&r2=233153&view=diff
>
==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Tue Mar 24
19:10:24 2015
> @@ -1183,11 +1183,6 @@ void DAGCombiner::Run(CombineLevel AtLev
>    LegalOperations = Level >= AfterLegalizeVectorOps;
>    LegalTypes = Level >= AfterLegalizeTypes;
>
> -  // Early exit if this basic block is in an optnone function.
> -  if (DAG.getMachineFunction().getFunction()->hasFnAttribute(
> -          Attribute::OptimizeNone))
> -    return;
> -
>    // Add all the dag nodes to the worklist.
>    for (SelectionDAG::allnodes_iterator I = DAG.allnodes_begin(),
>         E = DAG.allnodes_end(); I != E; ++I)
>
> Removed: llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll
> URL:
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll?rev=233152&view=auto
>
==============================================================================
> --- llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll (removed)
> @@ -1,35 +0,0 @@
> -; RUN: llc < %s -mcpu=corei7 -march=x86-64 -mattr=+sse2 | FileCheck %s
> -; Verify that floating-point operations inside 'optnone' functions
> -; are not optimized even if unsafe-fp-math is set.
> -
> -define float @foo(float %x) #0 {
> -entry:
> -  %add = fadd fast float %x, %x
> -  %add1 = fadd fast float %add, %x
> -  ret float %add1
> -}
> -
> -; CHECK-LABEL: @foo
> -; CHECK-NOT: add
> -; CHECK: mul
> -; CHECK-NOT: add
> -; CHECK: ret
> -
> -define float @fooWithOptnone(float %x) #1 {
> -entry:
> -  %add = fadd fast float %x, %x
> -  %add1 = fadd fast float %add, %x
> -  ret float %add1
> -}
> -
> -; CHECK-LABEL: @fooWithOptnone
> -; CHECK-NOT: mul
> -; CHECK: add
> -; CHECK-NOT: mul
> -; CHECK: add
> -; CHECK-NOT: mul
> -; CHECK: ret
> -
> -
> -attributes #0 = { "unsafe-fp-math"="true" }
> -attributes #1 = { noinline optnone "unsafe-fp-math"="true" }
>
>
> _______________________________________________
> 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/20150324/192ca577/attachment.html>


More information about the llvm-commits mailing list