Normally an 'optnone' function goes through fast-isel, which does not
authorPaul Robinson <paul_robinson@playstation.sony.com>
Mon, 3 Nov 2014 18:19:26 +0000 (18:19 +0000)
committerPaul Robinson <paul_robinson@playstation.sony.com>
Mon, 3 Nov 2014 18:19:26 +0000 (18:19 +0000)
commitad06e430ce0f63ba197f78b58a67267d993e574f
treee2eac6d81ced48405cd68607f81f07ccc883bf2b
parent3d5a02f677262841d951257b928e49d18c460410
Normally an 'optnone' function goes through fast-isel, which does not
call DAGCombiner. But we ran into a case (on Windows) where the
calling convention causes argument lowering to bail out of fast-isel,
and we end up in CodeGenAndEmitDAG() which does run DAGCombiner.
So, we need to make DAGCombiner check for 'optnone' after all.

Commit includes the test that found this, plus another one that got
missed in the original optnone work.

llvm-svn: 221168
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
llvm/test/CodeGen/X86/fastmath-optnone.ll [new file with mode: 0644]
llvm/test/Transforms/FunctionAttrs/optnone-simple.ll [new file with mode: 0644]