OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 841 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
852 } | 852 } |
853 | 853 |
854 | 854 |
855 void HLoadFieldByIndex::PrintDataTo(StringStream* stream) { | 855 void HLoadFieldByIndex::PrintDataTo(StringStream* stream) { |
856 object()->PrintNameTo(stream); | 856 object()->PrintNameTo(stream); |
857 stream->Add(" "); | 857 stream->Add(" "); |
858 index()->PrintNameTo(stream); | 858 index()->PrintNameTo(stream); |
859 } | 859 } |
860 | 860 |
861 | 861 |
862 HValue* HConstant::Canonicalize() { | |
863 return HasNoUses() ? NULL : this; | |
864 } | |
865 | |
866 | |
867 HValue* HTypeof::Canonicalize() { | |
868 return HasNoUses() ? NULL : this; | |
869 } | |
870 | |
871 | |
872 HValue* HBitwise::Canonicalize() { | 862 HValue* HBitwise::Canonicalize() { |
873 if (!representation().IsInteger32()) return this; | 863 if (!representation().IsInteger32()) return this; |
874 // If x is an int32, then x & -1 == x, x | 0 == x and x ^ 0 == x. | 864 // If x is an int32, then x & -1 == x, x | 0 == x and x ^ 0 == x. |
875 int32_t nop_constant = (op() == Token::BIT_AND) ? -1 : 0; | 865 int32_t nop_constant = (op() == Token::BIT_AND) ? -1 : 0; |
876 if (left()->IsConstant() && | 866 if (left()->IsConstant() && |
877 HConstant::cast(left())->HasInteger32Value() && | 867 HConstant::cast(left())->HasInteger32Value() && |
878 HConstant::cast(left())->Integer32Value() == nop_constant && | 868 HConstant::cast(left())->Integer32Value() == nop_constant && |
879 !right()->CheckFlag(kUint32)) { | 869 !right()->CheckFlag(kUint32)) { |
880 return right(); | 870 return right(); |
881 } | 871 } |
(...skipping 1653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2535 | 2525 |
2536 | 2526 |
2537 void HCheckFunction::Verify() { | 2527 void HCheckFunction::Verify() { |
2538 HInstruction::Verify(); | 2528 HInstruction::Verify(); |
2539 ASSERT(HasNoUses()); | 2529 ASSERT(HasNoUses()); |
2540 } | 2530 } |
2541 | 2531 |
2542 #endif | 2532 #endif |
2543 | 2533 |
2544 } } // namespace v8::internal | 2534 } } // namespace v8::internal |
OLD | NEW |