llvm-6502/lib/Transforms
Bill Wendling 1fb43c32ed The method of doing the matching with a 'select' instruction was wrong. The
original code was matching like this:

	if (match(A, m_Not(m_Value(B))))

B was already matched as a 'select' instruction. However, this isn't matching
what we think it's matching. It would match B as a 'Value', so basically
anything would match to it. In this case, a Constant matched. B was replaced
with a constant representation. And then the wrong value would be used in the
SelectInst::Create statement, causing a crash.

After thinking on this for a moment, and after Nick L. told me how the pattern
matching stuff was supposed to work, the solution was to match NOT an m_Value,
but an m_Select.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58946 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-09 23:17:42 +00:00
..
Hello Initial support for the CMake build system. 2008-09-22 01:08:49 +00:00
Instrumentation Use Function::getEntryBlock() instead of Function::front(), for clarity. 2008-10-21 03:10:28 +00:00
IPO Do now allow InlineAlways pass to remove dead functions. 2008-11-05 01:39:16 +00:00
Scalar The method of doing the matching with a 'select' instruction was wrong. The 2008-11-09 23:17:42 +00:00
Utils Rework r58829, allowing removal of dbg info intrinsics during alloca 2008-11-08 04:12:17 +00:00
Makefile