Evan Cheng 1bc6443c22 At top of generated isel SelectCode() is this:
if (!N.Val->hasOneUse()) {
    std::map<SDOperand, SDOperand>::iterator CGMI = CodeGenMap.find(N);
    if (CGMI != CodeGenMap.end()) return CGMI->second;
  }

Suppose a DAG like this:

           X
         ^   ^
        /     \
      USE1    USE2

Suppose USE1 is being selected first and during which X is selected and
returned a new node. After this, USE1 is no longer an use of X. During USE2
selection, X will be selected again since it has only one use!

The fix is to always query CodeGenMap.

llvm-svn: 24679
2005-12-12 23:22:48 +00:00
..
2005-08-27 18:50:39 +00:00
2005-04-22 00:00:37 +00:00
2005-04-22 00:00:37 +00:00
2005-12-05 02:35:08 +00:00
2005-09-12 05:30:06 +00:00
2005-09-30 06:09:50 +00:00
2005-09-30 04:11:27 +00:00
2005-08-27 18:50:39 +00:00
2005-11-30 18:37:14 +00:00
2005-04-22 00:00:37 +00:00
2005-04-22 00:00:37 +00:00