Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(469)

Side by Side Diff: src/hydrogen-instructions.cc

Issue 8256016: Eliminate write barrier for global stores at compile time if value stored is a smi. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/hydrogen-instructions.h ('k') | src/ia32/lithium-codegen-ia32.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 1728 matching lines...) Expand 10 before | Expand all | Expand 10 after
1739 HType HDeleteProperty::CalculateInferredType() { 1739 HType HDeleteProperty::CalculateInferredType() {
1740 return HType::Boolean(); 1740 return HType::Boolean();
1741 } 1741 }
1742 1742
1743 1743
1744 HType HInstanceOfKnownGlobal::CalculateInferredType() { 1744 HType HInstanceOfKnownGlobal::CalculateInferredType() {
1745 return HType::Boolean(); 1745 return HType::Boolean();
1746 } 1746 }
1747 1747
1748 1748
1749 HType HChange::CalculateInferredType() {
1750 if (from().IsDouble() && to().IsTagged()) return HType::HeapNumber();
1751 return type();
1752 }
1753
1754
1749 HType HBitwiseBinaryOperation::CalculateInferredType() { 1755 HType HBitwiseBinaryOperation::CalculateInferredType() {
1750 return HType::TaggedNumber(); 1756 return HType::TaggedNumber();
1751 } 1757 }
1752 1758
1753 1759
1754 HType HArithmeticBinaryOperation::CalculateInferredType() { 1760 HType HArithmeticBinaryOperation::CalculateInferredType() {
1755 return HType::TaggedNumber(); 1761 return HType::TaggedNumber();
1756 } 1762 }
1757 1763
1758 1764
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1794 HType HShr::CalculateInferredType() { 1800 HType HShr::CalculateInferredType() {
1795 return HType::TaggedNumber(); 1801 return HType::TaggedNumber();
1796 } 1802 }
1797 1803
1798 1804
1799 HType HSar::CalculateInferredType() { 1805 HType HSar::CalculateInferredType() {
1800 return HType::TaggedNumber(); 1806 return HType::TaggedNumber();
1801 } 1807 }
1802 1808
1803 1809
1810 HType HStringCharFromCode::CalculateInferredType() {
1811 return HType::String();
1812 }
1813
1814
1815 HType HArrayLiteral::CalculateInferredType() {
1816 return HType::JSArray();
1817 }
1818
1819
1820 HType HObjectLiteral::CalculateInferredType() {
1821 return HType::JSObject();
1822 }
1823
1824
1825 HType HRegExpLiteral::CalculateInferredType() {
1826 return HType::JSObject();
1827 }
1828
1829
1830 HType HFunctionLiteral::CalculateInferredType() {
1831 return HType::JSObject();
1832 }
1833
1834
1804 HValue* HUnaryMathOperation::EnsureAndPropagateNotMinusZero( 1835 HValue* HUnaryMathOperation::EnsureAndPropagateNotMinusZero(
1805 BitVector* visited) { 1836 BitVector* visited) {
1806 visited->Add(id()); 1837 visited->Add(id());
1807 if (representation().IsInteger32() && 1838 if (representation().IsInteger32() &&
1808 !value()->representation().IsInteger32()) { 1839 !value()->representation().IsInteger32()) {
1809 if (value()->range() == NULL || value()->range()->CanBeMinusZero()) { 1840 if (value()->range() == NULL || value()->range()->CanBeMinusZero()) {
1810 SetFlag(kBailoutOnMinusZero); 1841 SetFlag(kBailoutOnMinusZero);
1811 } 1842 }
1812 } 1843 }
1813 if (RequiredInputRepresentation(0).IsInteger32() && 1844 if (RequiredInputRepresentation(0).IsInteger32() &&
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1935 1966
1936 1967
1937 void HCheckPrototypeMaps::Verify() { 1968 void HCheckPrototypeMaps::Verify() {
1938 HInstruction::Verify(); 1969 HInstruction::Verify();
1939 ASSERT(HasNoUses()); 1970 ASSERT(HasNoUses());
1940 } 1971 }
1941 1972
1942 #endif 1973 #endif
1943 1974
1944 } } // namespace v8::internal 1975 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/hydrogen-instructions.h ('k') | src/ia32/lithium-codegen-ia32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698