434 // Check for chain rules here |
434 // Check for chain rules here |
435 // If this is only a chain rule |
435 // If this is only a chain rule |
436 if ((oper->_matrule) && (oper->_matrule->_lChild == NULL) && |
436 if ((oper->_matrule) && (oper->_matrule->_lChild == NULL) && |
437 (oper->_matrule->_rChild == NULL)) { |
437 (oper->_matrule->_rChild == NULL)) { |
438 |
438 |
439 const Form *form = _globalNames[oper->_matrule->_opType]; |
439 { |
440 if ((form) && form->is_operand() && |
440 const Form *form = _globalNames[oper->_matrule->_opType]; |
441 (form->ideal_only() == false)) { |
441 if ((form) && form->is_operand() && |
442 add_chain_rule_entry(oper->_matrule->_opType, oper->cost(), oper->_ident); |
442 (form->ideal_only() == false)) { |
|
443 add_chain_rule_entry(oper->_matrule->_opType, oper->cost(), oper->_ident); |
|
444 } |
443 } |
445 } |
444 // Check for additional chain rules |
446 // Check for additional chain rules |
445 if (oper->_matrule->_next) { |
447 if (oper->_matrule->_next) { |
446 rule = oper->_matrule; |
448 rule = oper->_matrule; |
447 do { |
449 do { |
1013 // |
1015 // |
1014 // Build mapping from ideal names to ideal indices |
1016 // Build mapping from ideal names to ideal indices |
1015 int idealIndex = 0; |
1017 int idealIndex = 0; |
1016 for (idealIndex = 1; idealIndex < _last_machine_leaf; ++idealIndex) { |
1018 for (idealIndex = 1; idealIndex < _last_machine_leaf; ++idealIndex) { |
1017 const char *idealName = NodeClassNames[idealIndex]; |
1019 const char *idealName = NodeClassNames[idealIndex]; |
1018 _idealIndex.Insert((void*)idealName, (void*)idealIndex); |
1020 _idealIndex.Insert((void*) idealName, (void*) (intptr_t) idealIndex); |
1019 } |
1021 } |
1020 for ( idealIndex = _last_machine_leaf+1; |
1022 for ( idealIndex = _last_machine_leaf+1; |
1021 idealIndex < _last_opcode; ++idealIndex) { |
1023 idealIndex < _last_opcode; ++idealIndex) { |
1022 const char *idealName = NodeClassNames[idealIndex]; |
1024 const char *idealName = NodeClassNames[idealIndex]; |
1023 _idealIndex.Insert((void*)idealName, (void*)idealIndex); |
1025 _idealIndex.Insert((void*) idealName, (void*) (intptr_t) idealIndex); |
1024 } |
1026 } |
1025 |
1027 |
1026 } |
1028 } |
1027 |
1029 |
1028 |
1030 |