<p dir="ltr"><br>
On Mar 24, 2015 5:18 PM, "Paul Robinson" <<a href="mailto:paul_robinson@playstation.sony.com">paul_robinson@playstation.sony.com</a>> wrote:<br>
><br>
> Author: probinson<br>
> Date: Tue Mar 24 19:10:24 2015<br>
> New Revision: 233153<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=233153&view=rev">http://llvm.org/viewvc/llvm-project?rev=233153&view=rev</a><br>
> Log:<br>
> 'optnone' should not disable DAG combiner.<br>
><br>
> Reverts the code change from r221168 and the relevant test.<br>
> It was a mistake to disable the combiner, and based on the ultimate<br>
> definition of 'optnone' we shouldn't have considered the test case<br>
> as failing in the first place.</p>
<p dir="ltr">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?</p>
<p dir="ltr">><br>
> Removed:<br>
>     llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll<br>
> Modified:<br>
>     llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp<br>
><br>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=233153&r1=233152&r2=233153&view=diff">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=233153&r1=233152&r2=233153&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)<br>
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Tue Mar 24 19:10:24 2015<br>
> @@ -1183,11 +1183,6 @@ void DAGCombiner::Run(CombineLevel AtLev<br>
>    LegalOperations = Level >= AfterLegalizeVectorOps;<br>
>    LegalTypes = Level >= AfterLegalizeTypes;<br>
><br>
> -  // Early exit if this basic block is in an optnone function.<br>
> -  if (DAG.getMachineFunction().getFunction()->hasFnAttribute(<br>
> -          Attribute::OptimizeNone))<br>
> -    return;<br>
> -<br>
>    // Add all the dag nodes to the worklist.<br>
>    for (SelectionDAG::allnodes_iterator I = DAG.allnodes_begin(),<br>
>         E = DAG.allnodes_end(); I != E; ++I)<br>
><br>
> Removed: llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll?rev=233152&view=auto">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll?rev=233152&view=auto</a><br>
> ==============================================================================<br>
> --- llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll (original)<br>
> +++ llvm/trunk/test/CodeGen/X86/fastmath-optnone.ll (removed)<br>
> @@ -1,35 +0,0 @@<br>
> -; RUN: llc < %s -mcpu=corei7 -march=x86-64 -mattr=+sse2 | FileCheck %s<br>
> -; Verify that floating-point operations inside 'optnone' functions<br>
> -; are not optimized even if unsafe-fp-math is set.<br>
> -<br>
> -define float @foo(float %x) #0 {<br>
> -entry:<br>
> -  %add = fadd fast float %x, %x<br>
> -  %add1 = fadd fast float %add, %x<br>
> -  ret float %add1<br>
> -}<br>
> -<br>
> -; CHECK-LABEL: @foo<br>
> -; CHECK-NOT: add<br>
> -; CHECK: mul<br>
> -; CHECK-NOT: add<br>
> -; CHECK: ret<br>
> -<br>
> -define float @fooWithOptnone(float %x) #1 {<br>
> -entry:<br>
> -  %add = fadd fast float %x, %x<br>
> -  %add1 = fadd fast float %add, %x<br>
> -  ret float %add1<br>
> -}<br>
> -<br>
> -; CHECK-LABEL: @fooWithOptnone<br>
> -; CHECK-NOT: mul<br>
> -; CHECK: add<br>
> -; CHECK-NOT: mul<br>
> -; CHECK: add<br>
> -; CHECK-NOT: mul<br>
> -; CHECK: ret<br>
> -<br>
> -<br>
> -attributes #0 = { "unsafe-fp-math"="true" }<br>
> -attributes #1 = { noinline optnone "unsafe-fp-math"="true" }<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</p>